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

wave.h
Go to the documentation of this file.
00001 
00002 // FIXME: Should be moved somewhere else?
00003 typedef struct _WAVE_DD_VOLUME {
00004     ULONG   Left;
00005     ULONG   Right;
00006 } WAVE_DD_VOLUME, *PWAVE_DD_VOLUME;
00007 
00008 // driver
00009 #define WAVE_DD_STOP        0x0001
00010 #define WAVE_DD_PLAY        0x0002      // output devices only
00011 #define WAVE_DD_RECORD      0x0003      // input devices only
00012 #define WAVE_DD_RESET       0x0004
00013 
00014 // ioctl
00015 #define WAVE_DD_IDLE        0x0000
00016 #define WAVE_DD_STOPPED     0x0001      // stopped
00017 #define WAVE_DD_PLAYING     0x0002      // output devices only
00018 #define WAVE_DD_RECORDING   0x0003      // input devices only
00019 
00020 
00021 
00022 typedef enum {
00023     WaveThreadInvalid,
00024     WaveThreadAddBuffer,
00025     WaveThreadSetState,
00026     WaveThreadSetData,
00027     WaveThreadGetData,
00028     WaveThreadBreakLoop,
00029     WaveThreadClose,
00030     WaveThreadTerminate
00031 } WAVETHREADFUNCTION;
00032 
00033 // WARNING: MS code below!!
00034 typedef struct {
00035     OVERLAPPED Ovl;
00036     LPWAVEHDR WaveHdr;
00037 } WAVEOVL, *PWAVEOVL;
00038 
00039 // WARNING: MS code below!!
00040 // per allocation structure for wave
00041 typedef struct tag_WAVEALLOC {
00042     struct tag_WAVEALLOC *Next;         // Chaining
00043     UINT                DeviceNumber;   // Which device
00044     UINT                DeviceType;     // WaveInput or WaveOutput
00045     DWORD               dwCallback;     // client's callback
00046     DWORD               dwInstance;     // client's instance data
00047     DWORD               dwFlags;        // Open flags
00048     HWAVE               hWave;          // handle for stream
00049 
00050     HANDLE              hDev;           // Wave device handle
00051     LPWAVEHDR           DeviceQueue;    // Buffers queued by application
00052     LPWAVEHDR           NextBuffer;     // Next buffer to send to device
00053     DWORD               BufferPosition; // How far we're into a large buffer
00054     DWORD               BytesOutstanding;
00055                                         // Bytes being processed by device
00056     LPWAVEHDR           LoopHead;       // Start of loop if any
00057     DWORD               LoopCount;      // Number more loops to go
00058 
00059     WAVEOVL             DummyWaveOvl;   // For break loop
00060                                                                                 //
00061     HANDLE              Event;          // Event for driver syncrhonization
00062                                         // and notification of auxiliary
00063                                         // task operation completion.
00064     WAVETHREADFUNCTION  AuxFunction;    // Function for thread to perform
00065     union {
00066         LPWAVEHDR       pHdr;           // Buffer to pass in aux task
00067         ULONG           State;          // State to set
00068         struct {
00069             ULONG       Function;       // IOCTL to use
00070             PBYTE       pData;          // Data to set or get
00071             ULONG       DataLen;        // Length of data
00072         } GetSetData;
00073 
00074     } AuxParam;
00075                                         // 0 means terminate task.
00076     HANDLE              AuxEvent1;      // Aux thread waits on this
00077     HANDLE              AuxEvent2;      // Caller of Aux thread waits on this
00078     HANDLE              ThreadHandle;   // Handle for thread termination ONLY
00079     MMRESULT            AuxReturnCode;  // Return code from Aux task
00080 }WAVEALLOC, *PWAVEALLOC;
00081 
00082 /* Misc should move to own header */
00083 MMRESULT GetDeviceCapabilities(DWORD ID, UINT DeviceType,
00084                                       LPBYTE pCaps, DWORD Size);
00085 
00086 DWORD AuxGetAudio(DWORD dwID, PBYTE pVolume, DWORD sizeVolume);
00087 DWORD AuxSetAudio(DWORD dwID, PBYTE pVolume, DWORD sizeVolume);
00088 
00089 typedef struct _AUX_DD_VOLUME {
00090         ULONG   Left;
00091         ULONG   Right;
00092 } AUX_DD_VOLUME, *PAUX_DD_VOLUME;

Generated on Mon May 28 2012 04:24:21 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.