Index
» Empathy Jukebox : Blob bbf1b1 / Standalone_Components / Tmixercontrols / experimentaion / Unit1.pas
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,mmsystem, StdCtrls; type TForm1 = class(TForm) Button1: TButton; sb: TScrollBar; procedure sbChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; type tvol = record left,right : word; end; implementation {$R *.DFM} procedure TForm1.sbChange(Sender: TObject); var err : mmresult; hmix : hmixer; ml : tmixerline; mlc : tmixerlineControls; mc : mixercontrol; cd : tmixercontroldetails; cds : tmixercontroldetails_unsigned; begin //open mixer err:=mixeropen(@hmix,MIXER_OBJECTF_MIXER,0,0,0); if err<>MMSYSERR_NOERROR then beep; //get speaker line ml.cbStruct:=sizeof(tmixerline); ml.dwComponentType:=MIXERLINE_COMPONENTTYPE_DST_SPEAKERS; err:= mixerGetLineInfo(hmix,@ml,MIXER_GETLINEINFOF_COMPONENTTYPE); if err<>MMSYSERR_NOERROR then beep; //get current volume mlc.cbStruct:=sizeof(tmixerlinecontrols); mlc.dwLineID:=ml.dwLineID; mlc.dwControlType:=MIXERCONTROL_CONTROLTYPE_VOLUME; mlc.cControls:=1; mlc.pamxctrl:=@mc; mlc.cbmxctrl:=sizeof(tmixercontrol); err:=mixerGetLineControls(hmix,@mlc,MIXER_GETLINECONTROLSF_ONEBYTYPE); if err<>MMSYSERR_NOERROR then beep; cd.cbstruct:=sizeof(tmixercontroldetails); cd.dwControlID:=mc.dwControlID; cd.cChannels:=1; cd.hwndOwner:=0; cd.cMultipleItems:=0; cd.cbDetails:=sizeof(integer); cd.paDetails:=@cds; cds.dwValue:=sb.Position; err:=mixerSetControlDetails(hmix,@cd,MIXER_GETCONTROLDETAILSF_VALUE); if err<>MMSYSERR_NOERROR then beep; mixerclose(hmix); end; end.