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

mmixer.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 doxygen 1.7.6.1

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