Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmmixer.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 typedef enum 00004 { 00005 MM_STATUS_SUCCESS = 0, 00006 MM_STATUS_NOTINITIALIZED, 00007 MM_STATUS_NOT_IMPLEMENTED, 00008 MM_STATUS_NO_MORE_DEVICES, 00009 MM_STATUS_MORE_ENTRIES, 00010 MM_STATUS_INVALID_PARAMETER, 00011 MM_STATUS_UNSUCCESSFUL, 00012 MM_STATUS_NO_MEMORY 00013 00014 00015 }MIXER_STATUS; 00016 00017 00018 typedef PVOID (*PMIXER_ALLOC)( 00019 IN ULONG NumberOfBytes); 00020 00021 typedef VOID (*PMIXER_FREE)( 00022 IN PVOID Block); 00023 00024 typedef MIXER_STATUS (*PMIXER_ENUM)( 00025 IN PVOID EnumContext, 00026 IN ULONG DeviceIndex, 00027 OUT LPWSTR * DeviceName, 00028 OUT PHANDLE OutHandle, 00029 OUT PHANDLE OutDevInterfaceKey); 00030 00031 typedef MIXER_STATUS(*PMIXER_DEVICE_CONTROL)( 00032 IN HANDLE hMixer, 00033 IN ULONG dwIoControlCode, 00034 IN PVOID lpInBuffer, 00035 IN ULONG nInBufferSize, 00036 OUT PVOID lpOutBuffer, 00037 ULONG nOutBufferSize, 00038 PULONG lpBytesReturned); 00039 00040 typedef MIXER_STATUS(*PMIXER_OPEN)( 00041 IN LPWSTR DevicePath, 00042 OUT PHANDLE hDevice); 00043 00044 typedef MIXER_STATUS(*PMIXER_CLOSE)( 00045 IN HANDLE hDevice); 00046 00047 typedef MIXER_STATUS(*PMIXER_CLOSEKEY)( 00048 IN HANDLE hKey); 00049 00050 typedef VOID (CALLBACK *PMIXER_EVENT)( 00051 IN PVOID MixerEventContext, 00052 IN HANDLE hMixer, 00053 IN ULONG NotificationType, 00054 IN ULONG Value); 00055 00056 typedef VOID (*PMIXER_COPY)( 00057 IN PVOID Dst, 00058 IN PVOID Src, 00059 IN ULONG Length); 00060 00061 typedef MIXER_STATUS(*PMIXER_QUERY_KEY_VALUE)( 00062 IN HANDLE hKey, 00063 IN LPWSTR KeyName, 00064 OUT PVOID * ResultBuffer, 00065 OUT PULONG ResultLength, 00066 OUT PULONG KeyType); 00067 00068 typedef MIXER_STATUS(*PMIXER_OPEN_KEY)( 00069 IN HANDLE hKey, 00070 IN LPWSTR SubKey, 00071 IN ULONG DesiredAccess, 00072 OUT PHANDLE OutKey); 00073 00074 typedef PVOID (*PMIXER_ALLOC_EVENT_DATA)( 00075 IN ULONG ExtraBytes); 00076 00077 typedef VOID (*PMIXER_FREE_EVENT_DATA)( 00078 IN PVOID EventData); 00079 00080 typedef MIXER_STATUS (*PIN_CREATE_CALLBACK)( 00081 IN PVOID Context, 00082 IN ULONG DeviceId, 00083 IN ULONG PinId, 00084 IN HANDLE hFilter, 00085 IN PKSPIN_CONNECT PinConnect, 00086 IN ACCESS_MASK DesiredAccess, 00087 OUT PHANDLE PinHandle); 00088 00089 typedef struct 00090 { 00091 ULONG SizeOfStruct; 00092 PVOID MixerContext; 00093 00094 PMIXER_ALLOC Alloc; 00095 PMIXER_DEVICE_CONTROL Control; 00096 PMIXER_FREE Free; 00097 PMIXER_OPEN Open; 00098 PMIXER_CLOSE Close; 00099 PMIXER_COPY Copy; 00100 PMIXER_OPEN_KEY OpenKey; 00101 PMIXER_QUERY_KEY_VALUE QueryKeyValue; 00102 PMIXER_CLOSEKEY CloseKey; 00103 PMIXER_ALLOC_EVENT_DATA AllocEventData; 00104 PMIXER_FREE_EVENT_DATA FreeEventData; 00105 }MIXER_CONTEXT, *PMIXER_CONTEXT; 00106 00107 MIXER_STATUS 00108 MMixerInitialize( 00109 IN PMIXER_CONTEXT MixerContext, 00110 IN PMIXER_ENUM EnumFunction, 00111 IN PVOID EnumContext); 00112 00113 ULONG 00114 MMixerGetCount( 00115 IN PMIXER_CONTEXT MixerContext); 00116 00117 ULONG 00118 MMixerGetWaveInCount( 00119 IN PMIXER_CONTEXT MixerContext); 00120 00121 ULONG 00122 MMixerGetWaveOutCount( 00123 IN PMIXER_CONTEXT MixerContext); 00124 00125 ULONG 00126 MMixerGetMidiInCount( 00127 IN PMIXER_CONTEXT MixerContext); 00128 00129 ULONG 00130 MMixerGetMidiOutCount( 00131 IN PMIXER_CONTEXT MixerContext); 00132 00133 00134 00135 MIXER_STATUS 00136 MMixerGetCapabilities( 00137 IN PMIXER_CONTEXT MixerContext, 00138 IN ULONG MixerIndex, 00139 OUT LPMIXERCAPSW MixerCaps); 00140 00141 MIXER_STATUS 00142 MMixerOpen( 00143 IN PMIXER_CONTEXT MixerContext, 00144 IN ULONG MixerId, 00145 IN PVOID MixerEventContext, 00146 IN PMIXER_EVENT MixerEventRoutine, 00147 OUT PHANDLE MixerHandle); 00148 00149 MIXER_STATUS 00150 MMixerGetLineInfo( 00151 IN PMIXER_CONTEXT MixerContext, 00152 IN HANDLE MixerHandle, 00153 IN ULONG MixerId, 00154 IN ULONG Flags, 00155 OUT LPMIXERLINEW MixerLine); 00156 00157 MIXER_STATUS 00158 MMixerGetLineControls( 00159 IN PMIXER_CONTEXT MixerContext, 00160 IN HANDLE MixerHandle, 00161 IN ULONG MixerId, 00162 IN ULONG Flags, 00163 OUT LPMIXERLINECONTROLSW MixerLineControls); 00164 00165 MIXER_STATUS 00166 MMixerSetControlDetails( 00167 IN PMIXER_CONTEXT MixerContext, 00168 IN HANDLE MixerHandle, 00169 IN ULONG MixerId, 00170 IN ULONG Flags, 00171 OUT LPMIXERCONTROLDETAILS MixerControlDetails); 00172 00173 MIXER_STATUS 00174 MMixerGetControlDetails( 00175 IN PMIXER_CONTEXT MixerContext, 00176 IN HANDLE MixerHandle, 00177 IN ULONG MixerId, 00178 IN ULONG Flags, 00179 OUT LPMIXERCONTROLDETAILS MixerControlDetails); 00180 00181 MIXER_STATUS 00182 MMixerWaveOutCapabilities( 00183 IN PMIXER_CONTEXT MixerContext, 00184 IN ULONG DeviceIndex, 00185 OUT LPWAVEOUTCAPSW Caps); 00186 00187 MIXER_STATUS 00188 MMixerWaveInCapabilities( 00189 IN PMIXER_CONTEXT MixerContext, 00190 IN ULONG DeviceIndex, 00191 OUT LPWAVEINCAPSW Caps); 00192 00193 MIXER_STATUS 00194 MMixerOpenWave( 00195 IN PMIXER_CONTEXT MixerContext, 00196 IN ULONG DeviceIndex, 00197 IN ULONG bWaveIn, 00198 IN LPWAVEFORMATEX WaveFormat, 00199 IN PIN_CREATE_CALLBACK CreateCallback, 00200 IN PVOID Context, 00201 OUT PHANDLE PinHandle); 00202 00203 MIXER_STATUS 00204 MMixerSetWaveStatus( 00205 IN PMIXER_CONTEXT MixerContext, 00206 IN HANDLE PinHandle, 00207 IN KSSTATE State); 00208 00209 MIXER_STATUS 00210 MMixerSetWaveResetState( 00211 IN PMIXER_CONTEXT MixerContext, 00212 IN HANDLE PinHandle, 00213 IN ULONG bBegin); 00214 00215 MIXER_STATUS 00216 MMixerGetWaveDevicePath( 00217 IN PMIXER_CONTEXT MixerContext, 00218 IN ULONG bWaveIn, 00219 IN ULONG DeviceId, 00220 OUT LPWSTR * DevicePath); 00221 00222 MIXER_STATUS 00223 MMixerMidiOutCapabilities( 00224 IN PMIXER_CONTEXT MixerContext, 00225 IN ULONG DeviceIndex, 00226 OUT LPMIDIOUTCAPSW Caps); 00227 00228 MIXER_STATUS 00229 MMixerMidiInCapabilities( 00230 IN PMIXER_CONTEXT MixerContext, 00231 IN ULONG DeviceIndex, 00232 OUT LPMIDIINCAPSW Caps); 00233 00234 MIXER_STATUS 00235 MMixerGetMidiDevicePath( 00236 IN PMIXER_CONTEXT MixerContext, 00237 IN ULONG bMidiIn, 00238 IN ULONG DeviceId, 00239 OUT LPWSTR * DevicePath); 00240 00241 MIXER_STATUS 00242 MMixerSetMidiStatus( 00243 IN PMIXER_CONTEXT MixerContext, 00244 IN HANDLE PinHandle, 00245 IN KSSTATE State); 00246 00247 MIXER_STATUS 00248 MMixerOpenMidi( 00249 IN PMIXER_CONTEXT MixerContext, 00250 IN ULONG DeviceIndex, 00251 IN ULONG bMidiIn, 00252 IN PIN_CREATE_CALLBACK CreateCallback, 00253 IN PVOID Context, 00254 OUT PHANDLE PinHandle); Generated on Sun May 27 2012 04:36:12 for ReactOS by
1.7.6.1
|