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
19 APIENTRY DWORD
auxMessage(UINT dwId
,
29 DPRINT("auxMessage\n");
32 // the following cases are documented by DDK
35 case AUXDM_GETDEVCAPS
:
36 DPRINT("AUXDM_GETDEVCAPS");
37 return GetDeviceCapabilities(dwId
, AuxDevice
, (LPBYTE
)dwParam1
, (DWORD
)dwParam2
);
39 case AUXDM_GETNUMDEVS
:
40 DPRINT("AUXDM_GETNUMDEVS");
41 return GetDeviceCount(AuxDevice
);
44 DPRINT("AUXDM_GETVOLUME");
45 Result
= AuxGetAudio(dwId
, (PBYTE
) &Volume
, sizeof(Volume
));
47 if (Result
== MMSYSERR_NOERROR
)
49 *(LPDWORD
)dwParam1
= (DWORD
)MAKELONG(HIWORD(Volume
.Left
), HIWORD(Volume
.Right
));
55 DPRINT("AUXDM_SETVOLUME");
57 Volume
.Right
= HIWORD(dwParam1
) << 16;
58 Volume
.Left
= LOWORD(dwParam1
) << 16;
60 return AuxSetAudio(dwId
, (PBYTE
)&Volume
, sizeof(Volume
));
64 return MMSYSERR_NOERROR
;
68 DWORD
AuxGetAudio(DWORD dwID
, PBYTE pVolume
, DWORD sizeVolume
)
74 Result
= OpenDevice(AuxDevice
, dwID
, &DeviceHandle
, GENERIC_READ
);
75 if (Result
!= MMSYSERR_NOERROR
)
79 Result
= DeviceIoControl(DeviceHandle
, IOCTL_AUX_GET_VOLUME
, NULL
, 0, (LPVOID
)pVolume
, sizeVolume
,
80 &BytesReturned
, NULL
) ? MMSYSERR_NOERROR
: TranslateStatus();
83 CloseHandle(DeviceHandle
);
88 DWORD
AuxSetAudio(DWORD dwID
, PBYTE pVolume
, DWORD sizeVolume
)
94 Result
= OpenDevice(AuxDevice
, dwID
, &DeviceHandle
, GENERIC_READ
);
95 if (Result
!= MMSYSERR_NOERROR
)
98 Result
= DeviceIoControl(DeviceHandle
, IOCTL_AUX_SET_VOLUME
, (LPVOID
)pVolume
, sizeVolume
, NULL
, 0,
99 &BytesReturned
, NULL
) ? MMSYSERR_NOERROR
: TranslateStatus();
102 CloseHandle(DeviceHandle
);