Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensndvol32.h
Go to the documentation of this file.
00001 #ifndef __SNDVOL32_H 00002 #define __SNDVOL32_H 00003 00004 #include <windows.h> 00005 #include <mmsystem.h> 00006 #include <commctrl.h> 00007 #include <shellapi.h> 00008 #include <stdio.h> 00009 #include <tchar.h> 00010 #include <string.h> 00011 #include "resources.h" 00012 #include <assert.h> 00013 00014 typedef struct _MIXER_WINDOW 00015 { 00016 HWND hWnd; 00017 HWND hStatusBar; 00018 struct _SND_MIXER *Mixer; 00019 UINT SelectedLine; 00020 UINT WindowCount; 00021 HWND * Window; 00022 00023 00024 } MIXER_WINDOW, *PMIXER_WINDOW; 00025 00026 extern HINSTANCE hAppInstance; 00027 extern ATOM MainWindowClass; 00028 extern HWND hMainWnd; 00029 extern HANDLE hAppHeap; 00030 00031 #define SZ_APP_CLASS TEXT("Volume Control") 00032 00033 ULONG DbgPrint(PCH , ...); 00034 #define DPRINT DbgPrint("SNDVOL32: %s:%i: ", __FILE__, __LINE__); DbgPrint 00035 00036 00037 /* 00038 * MIXER 00039 */ 00040 00041 typedef struct _SND_MIXER_CONNECTION 00042 { 00043 struct _SND_MIXER_CONNECTION *Next; 00044 MIXERLINE Info; 00045 LPMIXERCONTROL Controls; 00046 UINT DisplayControls; 00047 } SND_MIXER_CONNECTION, *PSND_MIXER_CONNECTION; 00048 00049 00050 typedef struct _SND_MIXER_DESTINATION 00051 { 00052 struct _SND_MIXER_DESTINATION *Next; 00053 MIXERLINE Info; 00054 LPMIXERCONTROL Controls; 00055 UINT DisplayControls; 00056 PSND_MIXER_CONNECTION Connections; 00057 } SND_MIXER_DESTINATION, *PSND_MIXER_DESTINATION; 00058 00059 typedef struct _SND_MIXER 00060 { 00061 UINT MixersCount; 00062 HWND hWndNotification; 00063 UINT MixerId; 00064 HMIXER hmx; 00065 MIXERCAPS Caps; 00066 PSND_MIXER_DESTINATION Lines; 00067 } SND_MIXER, *PSND_MIXER; 00068 00069 typedef struct _PREFERENCES_CONTEXT 00070 { 00071 PMIXER_WINDOW MixerWindow; 00072 PSND_MIXER Mixer; 00073 HWND hwndDlg; 00074 00075 UINT Selected; 00076 DWORD SelectedLine; 00077 DWORD PlaybackID; 00078 DWORD RecordingID; 00079 UINT OtherLines; 00080 TCHAR DeviceName[128]; 00081 00082 DWORD Count; 00083 DWORD tmp; 00084 } PREFERENCES_CONTEXT, *PPREFERENCES_CONTEXT; 00085 00086 typedef struct 00087 { 00088 WCHAR LineName[MIXER_LONG_NAME_CHARS]; 00089 UINT SliderPos; 00090 BOOL bVertical; 00091 BOOL bSwitch; 00092 00093 }SET_VOLUME_CONTEXT, *PSET_VOLUME_CONTEXT; 00094 00095 /* NOTE: do NOT modify SNDVOL_REG_LINESTATE for binary compatibility with XP! */ 00096 typedef struct _SNDVOL_REG_LINESTATE 00097 { 00098 DWORD Flags; 00099 WCHAR LineName[MIXER_LONG_NAME_CHARS]; 00100 } SNDVOL_REG_LINESTATE, *PSNDVOL_REG_LINESTATE; 00101 00102 00103 typedef BOOL (CALLBACK *PFNSNDMIXENUMLINES)(PSND_MIXER Mixer, LPMIXERLINE Line, UINT DisplayControls, PVOID Context); 00104 typedef BOOL (CALLBACK *PFNSNDMIXENUMCONNECTIONS)(PSND_MIXER Mixer, DWORD LineID, LPMIXERLINE Line, PVOID Context); 00105 typedef BOOL (CALLBACK *PFNSNDMIXENUMPRODUCTS)(PSND_MIXER Mixer, UINT Id, LPCTSTR ProductName, PVOID Context); 00106 00107 PSND_MIXER SndMixerCreate(HWND hWndNotification); 00108 VOID SndMixerDestroy(PSND_MIXER Mixer); 00109 VOID SndMixerClose(PSND_MIXER Mixer); 00110 BOOL SndMixerSelect(PSND_MIXER Mixer, UINT MixerId); 00111 UINT SndMixerGetSelection(PSND_MIXER Mixer); 00112 INT SndMixerSetVolumeControlDetails(PSND_MIXER Mixer, DWORD dwControlID, DWORD cbDetails, LPVOID paDetails); 00113 INT SndMixerGetVolumeControlDetails(PSND_MIXER Mixer, DWORD dwControlID, DWORD cbDetails, LPVOID paDetails); 00114 INT SndMixerGetProductName(PSND_MIXER Mixer, LPTSTR lpBuffer, UINT uSize); 00115 INT SndMixerGetLineName(PSND_MIXER Mixer, DWORD LineID, LPTSTR lpBuffer, UINT uSize, BOOL LongName); 00116 BOOL SndMixerEnumProducts(PSND_MIXER Mixer, PFNSNDMIXENUMPRODUCTS EnumProc, PVOID Context); 00117 INT SndMixerGetDestinationCount(PSND_MIXER Mixer); 00118 BOOL SndMixerEnumLines(PSND_MIXER Mixer, PFNSNDMIXENUMLINES EnumProc, PVOID Context); 00119 BOOL SndMixerEnumConnections(PSND_MIXER Mixer, DWORD LineID, PFNSNDMIXENUMCONNECTIONS EnumProc, PVOID Context); 00120 BOOL SndMixerIsDisplayControl(PSND_MIXER Mixer, LPMIXERCONTROL Control); 00121 BOOL SndMixerQueryControls(PSND_MIXER Mixer, PUINT DisplayControls, LPMIXERLINE LineInfo, LPMIXERCONTROL *Controls); 00122 00123 /* 00124 * dialog.c 00125 */ 00126 VOID LoadDialogCtrls(PPREFERENCES_CONTEXT PrefContext); 00127 VOID UpdateDialogLineSliderControl(PPREFERENCES_CONTEXT PrefContext, LPMIXERLINE Line, DWORD dwControlID, DWORD DialogID, DWORD Position); 00128 VOID UpdateDialogLineSwitchControl(PPREFERENCES_CONTEXT PrefContext, LPMIXERLINE Line, LONG fValue); 00129 00130 /* 00131 * MISC 00132 */ 00133 00134 extern HKEY hAppSettingsKey; 00135 00136 BOOL 00137 InitAppConfig(VOID); 00138 00139 VOID 00140 CloseAppConfig(VOID); 00141 00142 INT 00143 AllocAndLoadString(OUT LPWSTR *lpTarget, 00144 IN HINSTANCE hInst, 00145 IN UINT uID); 00146 00147 DWORD 00148 LoadAndFormatString(IN HINSTANCE hInstance, 00149 IN UINT uID, 00150 OUT LPWSTR *lpTarget, 00151 ...); 00152 00153 BOOL 00154 ReadLineConfig(IN LPTSTR szDeviceName, 00155 IN LPTSTR szLineName, 00156 IN LPTSTR szControlName, 00157 OUT DWORD *Flags); 00158 00159 BOOL 00160 WriteLineConfig(IN LPTSTR szDeviceName, 00161 IN LPTSTR szLineName, 00162 IN PSNDVOL_REG_LINESTATE LineState, 00163 IN DWORD cbSize); 00164 00165 #endif /* __SNDVOL32_H */ Generated on Sun May 27 2012 04:17:44 for ReactOS by
1.7.6.1
|