Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenwave.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
1.7.6.1
|