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

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

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