ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

auxil.c
Go to the documentation of this file.
00001 /*
00002  *
00003  * COPYRIGHT:            See COPYING in the top level directory
00004  * PROJECT:              ReactOS Multimedia
00005  * FILE:                 lib/mmdrv/auxil.c
00006  * PURPOSE:              Multimedia User Mode Driver
00007  * PROGRAMMER:           Andrew Greenwood
00008  *                       Aleksey Bragin
00009  * UPDATE HISTORY:
00010  *                       Mar 16, 2004: Created skeleton implementation
00011  */
00012 #include "mmdrv.h"
00013 #include "wave.h"
00014 
00015 
00016 #define NDEBUG
00017 #include <debug.h>
00018 
00019 APIENTRY DWORD auxMessage(UINT dwId,
00020                   UINT uMessage,
00021                   DWORD dwUser,
00022                   DWORD dwParam1,
00023                   DWORD dwParam2)
00024 
00025 {
00026     MMRESULT Result;
00027     AUX_DD_VOLUME Volume;
00028 
00029     DPRINT("auxMessage\n");
00030 
00031 
00032     // the following cases are documented by DDK
00033     switch (uMessage)
00034     {
00035     case AUXDM_GETDEVCAPS:
00036         DPRINT("AUXDM_GETDEVCAPS");
00037         return GetDeviceCapabilities(dwId, AuxDevice, (LPBYTE)dwParam1, (DWORD)dwParam2);
00038 
00039     case AUXDM_GETNUMDEVS:
00040         DPRINT("AUXDM_GETNUMDEVS");
00041         return GetDeviceCount(AuxDevice);
00042         
00043     case AUXDM_GETVOLUME:
00044          DPRINT("AUXDM_GETVOLUME");
00045          Result = AuxGetAudio(dwId, (PBYTE) &Volume, sizeof(Volume));
00046          
00047          if (Result == MMSYSERR_NOERROR) 
00048          {
00049             *(LPDWORD)dwParam1 = (DWORD)MAKELONG(HIWORD(Volume.Left), HIWORD(Volume.Right));
00050          }
00051          return Result;
00052         
00053 
00054     case AUXDM_SETVOLUME:
00055         DPRINT("AUXDM_SETVOLUME");
00056          
00057         Volume.Right = HIWORD(dwParam1) << 16;
00058         Volume.Left = LOWORD(dwParam1) << 16;
00059         
00060         return AuxSetAudio(dwId, (PBYTE)&Volume, sizeof(Volume));
00061 
00062     }
00063 
00064     return MMSYSERR_NOERROR;
00065 }
00066 
00067 
00068 DWORD AuxGetAudio(DWORD dwID, PBYTE pVolume, DWORD sizeVolume)
00069 {
00070     HANDLE DeviceHandle;
00071     MMRESULT Result;
00072     DWORD BytesReturned;
00073 
00074     Result = OpenDevice(AuxDevice, dwID, &DeviceHandle, GENERIC_READ);
00075     if (Result != MMSYSERR_NOERROR)
00076          return Result;
00077 
00078     
00079     Result = DeviceIoControl(DeviceHandle, IOCTL_AUX_GET_VOLUME, NULL, 0, (LPVOID)pVolume, sizeVolume,
00080                            &BytesReturned, NULL) ? MMSYSERR_NOERROR : TranslateStatus();
00081 
00082 
00083     CloseHandle(DeviceHandle);
00084 
00085     return Result;
00086  }
00087 
00088 DWORD AuxSetAudio(DWORD dwID, PBYTE pVolume, DWORD sizeVolume)
00089 {
00090     HANDLE DeviceHandle;
00091     MMRESULT Result;
00092     DWORD BytesReturned;
00093 
00094     Result = OpenDevice(AuxDevice, dwID, &DeviceHandle, GENERIC_READ);
00095     if (Result != MMSYSERR_NOERROR)
00096          return Result;
00097     
00098     Result = DeviceIoControl(DeviceHandle, IOCTL_AUX_SET_VOLUME, (LPVOID)pVolume, sizeVolume, NULL, 0, 
00099                            &BytesReturned, NULL) ? MMSYSERR_NOERROR : TranslateStatus();
00100 
00101 
00102     CloseHandle(DeviceHandle);
00103 
00104     return Result;
00105  }
00106 

Generated on Wed May 23 2012 04:22:25 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.