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

precomp.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #define COBJMACROS
00004 #define NONAMELESSUNION
00005 #define NONAMELESSSTRUCT
00006 
00007 #include <windows.h>
00008 #include <setupapi.h>
00009 #include <mmddk.h>
00010 #include <objbase.h>
00011 #include <olectl.h>
00012 #include <unknwn.h>
00013 #include <dsound.h>
00014 #include <dsconf.h>
00015 #include <vfwmsgs.h>
00016 #include <setupapi.h>
00017 #define YDEBUG
00018 #include <debug.h>
00019 #include <ks.h>
00020 #include <ksmedia.h>
00021 #include <limits.h>
00022 #include <stdio.h>
00023 
00024 #include "resource.h"
00025 
00026 
00027 /* factory method */
00028 typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject);
00029 
00030 /* factory table */
00031 typedef struct
00032 {
00033     REFIID riid;
00034     LPFNCREATEINSTANCE lpfnCI;
00035 } INTERFACE_TABLE;
00036 
00037 
00038 typedef struct tagFILTERINFO
00039 {
00040     SP_DEVINFO_DATA DeviceData;
00041     WCHAR DevicePath[MAX_PATH];
00042     HANDLE hFilter;
00043     ULONG PinCount;
00044     PULONG Pin;
00045     GUID DeviceGuid[2];
00046     ULONG MappedId[2];
00047 
00048     struct tagFILTERINFO *lpNext;
00049 }FILTERINFO, *LPFILTERINFO;
00050 
00051 #define INIT_GUID(guid, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)      \
00052         guid.Data1 = l; guid.Data2 = w1; guid.Data3 = w2;               \
00053         guid.Data4[0] = b1; guid.Data4[1] = b2; guid.Data4[2] = b3;     \
00054         guid.Data4[3] = b4; guid.Data4[4] = b5; guid.Data4[5] = b6;     \
00055         guid.Data4[6] = b7; guid.Data4[7] = b8;
00056 
00057 typedef enum
00058 {
00059     PIN_TYPE_NONE = 0,
00060     PIN_TYPE_PLAYBACK = 1,
00061     PIN_TYPE_RECORDING = 2
00062 }PIN_TYPE;
00063 
00064 /* globals */
00065 extern HINSTANCE dsound_hInstance;
00066 extern LPFILTERINFO RootInfo;
00067 
00068 /* classfactory.c */
00069 
00070 IClassFactory * 
00071 IClassFactory_fnConstructor(
00072     LPFNCREATEINSTANCE lpfnCI, 
00073     PLONG pcRefDll, 
00074     REFIID riidInst);
00075 
00076 
00077 /* devicelist.c */
00078 
00079 HRESULT
00080 EnumAudioDeviceInterfaces(
00081     LPFILTERINFO *OutRootInfo);
00082 
00083 BOOL
00084 FindDeviceByGuid(
00085     LPCGUID pGuidSrc, 
00086     LPFILTERINFO *Filter);
00087 
00088 BOOL
00089 FindDeviceByMappedId(
00090     IN ULONG DeviceID, 
00091     LPFILTERINFO *Filter,
00092     BOOL bPlayback);
00093 
00094 ULONG
00095 GetPinIdFromFilter(
00096     LPFILTERINFO Filter,
00097     BOOL bCapture,
00098     ULONG Offset);
00099 
00100 /* directsound.c */
00101 
00102 HRESULT
00103 CALLBACK
00104 NewDirectSound(
00105     IUnknown* pUnkOuter,
00106     REFIID riid,
00107     LPVOID* ppvObject);
00108 
00109 
00110 /* misc.c */
00111 
00112 VOID
00113 PerformChannelConversion(
00114     PUCHAR Buffer,
00115     ULONG BufferLength,
00116     PULONG BytesRead,
00117     ULONG OldChannels,
00118     ULONG NewChannels,
00119     ULONG BitsPerSample,
00120     PUCHAR Result,
00121     ULONG ResultLength,
00122     PULONG BytesWritten);
00123 
00124 BOOL
00125 SetPinFormat(
00126     IN HANDLE hPin,
00127     IN LPWAVEFORMATEX WaveFormatEx);
00128 
00129 BOOL
00130 CreateCompatiblePin(
00131     IN HANDLE hFilter,
00132     IN DWORD PinId,
00133     IN BOOL bLoop,
00134     IN LPWAVEFORMATEX WaveFormatEx,
00135     OUT LPWAVEFORMATEX WaveFormatOut,
00136     OUT PHANDLE hPin);
00137 
00138 
00139 DWORD
00140 SyncOverlappedDeviceIoControl(
00141     IN  HANDLE Handle,
00142     IN  DWORD IoControlCode,
00143     IN  LPVOID InBuffer,
00144     IN  DWORD InBufferSize,
00145     OUT LPVOID OutBuffer,
00146     IN  DWORD OutBufferSize,
00147     OUT LPDWORD BytesTransferred OPTIONAL);
00148 
00149 DWORD
00150 PrimaryDirectSoundBuffer_Write(
00151     LPDIRECTSOUNDBUFFER8 iface,
00152     LPVOID Buffer,
00153     DWORD  BufferSize);
00154 
00155 
00156 DWORD
00157 OpenPin(
00158     HANDLE hFilter,
00159     ULONG PinId,
00160     LPWAVEFORMATEX WaveFormatEx,
00161     PHANDLE hPin,
00162     BOOL bLoop);
00163 
00164 DWORD
00165 OpenFilter(
00166     IN LPCWSTR lpFileName,
00167     IN PHANDLE OutHandle);
00168 
00169 DWORD
00170 GetFilterPinCount(
00171     IN HANDLE hFilter,
00172     OUT PULONG NumPins);
00173 
00174 DWORD
00175 GetFilterPinCommunication(
00176     IN HANDLE hFilter,
00177     IN ULONG PinId,
00178     OUT PKSPIN_COMMUNICATION Communication);
00179 
00180 DWORD
00181 GetFilterPinDataFlow(
00182     IN HANDLE hFilter,
00183     IN ULONG PinId,
00184     OUT PKSPIN_DATAFLOW DataFlow);
00185 
00186 /* primary.c */
00187 
00188 HRESULT
00189 PrimaryDirectSoundBuffer_GetPosition(
00190     LPDIRECTSOUNDBUFFER8 iface,
00191     LPDWORD pdwCurrentPlayCursor,
00192     LPDWORD pdwCurrentWriteCursor);
00193 
00194 VOID
00195 PrimaryDirectSoundBuffer_SetState(
00196     LPDIRECTSOUNDBUFFER8 iface,
00197     KSSTATE State);
00198 
00199 HRESULT
00200 NewPrimarySoundBuffer(
00201     LPDIRECTSOUNDBUFFER8 *OutBuffer,
00202     LPFILTERINFO Filter,
00203     DWORD dwLevel,
00204     DWORD dwFlags);
00205 
00206 HRESULT
00207 PrimaryDirectSoundBuffer_SetFormat(
00208     LPDIRECTSOUNDBUFFER8 iface,
00209     LPWAVEFORMATEX pcfxFormat,
00210     BOOL bLooped);
00211 
00212 VOID
00213 PrimaryDirectSoundBuffer_AcquireLock(
00214     LPDIRECTSOUNDBUFFER8 iface);
00215 
00216 VOID
00217 PrimaryDirectSoundBuffer_ReleaseLock(
00218     LPDIRECTSOUNDBUFFER8 iface);
00219 
00220 /* secondary.c */
00221 
00222 HRESULT
00223 NewSecondarySoundBuffer(
00224     LPDIRECTSOUNDBUFFER8 *OutBuffer,
00225     LPFILTERINFO Filter,
00226     DWORD dwLevel,
00227     LPCDSBUFFERDESC lpcDSBufferDesc,
00228     LPDIRECTSOUNDBUFFER8 PrimaryBuffer);
00229 
00230 /* property.c */
00231 HRESULT
00232 CALLBACK
00233 NewKsPropertySet(
00234     IUnknown* pUnkOuter,
00235     REFIID riid,
00236     LPVOID* ppvObject);
00237 
00238 /* capture.c */
00239 
00240 HRESULT
00241 CALLBACK
00242 NewDirectSoundCapture(
00243     IUnknown* pUnkOuter,
00244     REFIID riid,
00245     LPVOID* ppvObject);
00246 
00247 
00248 /* capturebuffer.c */
00249 HRESULT
00250 NewDirectSoundCaptureBuffer(
00251     LPDIRECTSOUNDCAPTUREBUFFER8 *OutBuffer,
00252     LPFILTERINFO Filter,
00253     LPCDSCBUFFERDESC lpcDSBufferDesc);
00254 
00255 /* notify.c */
00256 VOID
00257 DoNotifyPositionEvents(
00258     LPDIRECTSOUNDNOTIFY iface,
00259     DWORD OldPosition,
00260     DWORD NewPosition);
00261 
00262 HRESULT
00263 NewDirectSoundNotify(
00264     LPDIRECTSOUNDNOTIFY * Notify,
00265     BOOL bLoop,
00266     BOOL bMix,
00267     HANDLE hPin,
00268     DWORD BufferSize);

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