Zitat:
So hast du eine pbMasterMeter und eine pbAppMeter usw., alles doppelt.
Nein da wird nichts doppelt verwendet.
Das MasterVolume ist nicht gleich AnwendungsVolume.
Siehe!
Delphi-Quellcode:
WM_EndpointVolume:
begin
PVolMuteRec := PVolMute(Msg.WPARAM);
if Assigned(tbMasterVolume) then
begin
tbMasterVolume.Position := round((1.0 - PVolMuteRec^.Volume) * tbMasterVolume.Max); // **** Added
cbMasterMute.Checked := PVolMuteRec^.Muted; // **** Added
end;
end;
WM_VolumeEvent:
begin
PVolMuteRec := PVolMute(Msg.WPARAM);
if Assigned(tbAppVolume) then
begin
tbAppVolume.Position := round((1.0 - PVolMuteRec^.Volume) * tbAppVolume.Max);
// **** Added
cbAppMute.Checked := PVolMuteRec^.Muted; // **** Added
end;
if (MyVolSet and (abs(PVolMuteRec^.Volume - MyVolVal) < 0.0001)) then
MyVolSet := false
else if (MyMuteSet and (PVolMuteRec^.Muted = MyMuteVal)) then
MyMuteSet := false;
end;
Für die anderen Device sind sie gleich ....
Aber Device ist nicht gleich AppVolumen.
Dafür benötige ich 2 Unterschiedliche Slider.
Zitat:
AppVolume True oder False
Nein..
AppVolume wird in SetAppVolume zugewiesen
MasterVolume(Device) in SetComponents
Hingegen tbMasterVolume ist für alle Device gleich.
Zitat:
Da die gleichzeitig nie verwendet werden, macht das doch keinen Sinn...
Klar werden die gleichzeitig verwendet.
Aber Wahlweise.
Zitat:
Debuggen kannst du das sehr einfach indem du die
IDE als Hostanwendung des Packages einträgst.
Ok! Danke für die Info. (zweite Instance starten.. ja)
Zitat:
Im SetAppVolume werden diverse Komponenten erstellt, aber keine freigegeben.
Jo
muss da noch einiges machen. Hatte mich im Moment zu sehr auf die beiden Probleme fixiert.
PS:
Hab das jetzt gefixt mit der AppVolume.
Das umschalten geht jetzt und die Ressourcen werden freigegeben.
Mit der Liste muss ich noch überlegen ob das sinn macht und wie groß der Aufwand dafür ist.
gruss