unit hiBASS_DeviceInfo; interface uses Kol,Share,Debug,BASS,mmsystem; type THIBASS_DeviceInfo = class(TDebug) private public _prop_Info:integer; _prop_SetDev:integer; _data_SetDev:THI_Event; _data_Info:THI_Event; _event_onSetDev:THI_Event; _event_onNoDev:THI_Event; _event_onEnumEnd:THI_Event; _event_onInfo:THI_Event; _event_onInfoStat:THI_Event; _event_onInfoInd:THI_Event; procedure _work_doSetDev(var _Data:TData; Index:word); procedure _work_doInfo(var _Data:TData; Index:word); procedure _work_doEnum(var _Data:TData; Index:word); procedure _var_CurDev(var _Data:TData; Index:word); procedure _var_Count(var _Data:TData; Index:word); end; implementation procedure THIBASS_DeviceInfo._work_doSetDev; begin BASS_SetDevice(ReadInteger(_Data,_data_SetDev,_prop_SetDev)); _hi_OnEvent(_event_onSetDev); end; procedure THIBASS_DeviceInfo._work_doInfo; var i:integer; info: BASS_DEVICEINFO; begin if waveOutGetNumDevs>0 then begin i:=ReadInteger(_Data,_data_Info,_prop_Info); if i=-1 then i:=BASS_GetDevice(); BASS_GetDeviceInfo(i,info); _hi_OnEvent(_event_onInfo,info.name); _hi_OnEvent(_event_onInfoStat,info.flags); _hi_OnEvent(_event_onInfoInd,i); _hi_OnEvent(_event_onEnumEnd); end else begin _hi_OnEvent(_event_onEnumEnd); _hi_OnEvent(_event_onNoDev); end; end; procedure THIBASS_DeviceInfo._work_doEnum; var i:integer; info: BASS_DEVICEINFO; begin if waveOutGetNumDevs>0 then begin for i:=0 to waveOutGetNumDevs-1 do begin BASS_GetDeviceInfo(i,info); _hi_OnEvent(_event_onInfo,info.name); _hi_OnEvent(_event_onInfoStat,info.flags); _hi_OnEvent(_event_onInfoInd,i); end; _hi_OnEvent(_event_onEnumEnd); end else begin _hi_OnEvent(_event_onEnumEnd); _hi_OnEvent(_event_onNoDev); end; end; procedure THIBASS_DeviceInfo._var_CurDev; begin dtInteger(_Data,BASS_GetDevice()); end; procedure THIBASS_DeviceInfo._var_Count; begin dtInteger(_Data,waveOutGetNumDevs); end; end.