3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS Multimedia
5 * FILE: lib/mmdrv/auxil.c
6 * PURPOSE: Multimedia User Mode Driver
7 * PROGRAMMER: Andrew Greenwood
10 * Mar 16, 2004: Created skeleton implementation
20 APIENTRY DWORD
auxMessage(UINT dwId
,
30 DPRINT("auxMessage\n");
33 // the following cases are documented by DDK
36 case AUXDM_GETDEVCAPS
:
37 DPRINT("AUXDM_GETDEVCAPS");
38 return GetDeviceCapabilities(dwId
, AuxDevice
, (LPBYTE
)dwParam1
, (DWORD
)dwParam2
);
40 case AUXDM_GETNUMDEVS
:
41 DPRINT("AUXDM_GETNUMDEVS");
42 return GetDeviceCount(AuxDevice
);
45 DPRINT("AUXDM_GETVOLUME");
46 Result
= AuxGetAudio(dwId
, (PBYTE
) &Volume
, sizeof(Volume
));
48 if (Result
== MMSYSERR_NOERROR
)
50 *(LPDWORD
)dwParam1
= (DWORD
)MAKELONG(HIWORD(Volume
.Left
), HIWORD(Volume
.Right
));
56 DPRINT("AUXDM_SETVOLUME");
58 Volume
.Right
= HIWORD(dwParam1
) << 16;
59 Volume
.Left
= LOWORD(dwParam1
) << 16;
61 return AuxSetAudio(dwId
, (PBYTE
)&Volume
, sizeof(Volume
));
65 return MMSYSERR_NOERROR
;
69 DWORD
AuxGetAudio(DWORD dwID
, PBYTE pVolume
, DWORD sizeVolume
)
75 Result
= OpenDevice(AuxDevice
, dwID
, &DeviceHandle
, GENERIC_READ
);
76 if (Result
!= MMSYSERR_NOERROR
)
80 Result
= DeviceIoControl(DeviceHandle
, IOCTL_AUX_GET_VOLUME
, NULL
, 0, (LPVOID
)pVolume
, sizeVolume
,
81 &BytesReturned
, NULL
) ? MMSYSERR_NOERROR
: TranslateStatus();
84 CloseHandle(DeviceHandle
);
89 DWORD
AuxSetAudio(DWORD dwID
, PBYTE pVolume
, DWORD sizeVolume
)
95 Result
= OpenDevice(AuxDevice
, dwID
, &DeviceHandle
, GENERIC_READ
);
96 if (Result
!= MMSYSERR_NOERROR
)
99 Result
= DeviceIoControl(DeviceHandle
, IOCTL_AUX_SET_VOLUME
, (LPVOID
)pVolume
, sizeVolume
, NULL
, 0,
100 &BytesReturned
, NULL
) ? MMSYSERR_NOERROR
: TranslateStatus();
103 CloseHandle(DeviceHandle
);