[SNDVOL32] Read the Style value from the registry and use it as the default display...
[reactos.git] / base / applications / sndvol32 / sndvol32.h
index bab57c7..65fcb36 100644 (file)
@@ -2,19 +2,36 @@
 #define __SNDVOL32_H
 
 #include <stdarg.h>
+
 #include <windef.h>
 #include <winbase.h>
-#include <winreg.h>
 #include <wingdi.h>
 #include <winuser.h>
 #include <mmsystem.h>
 #include <commctrl.h>
-#include <shellapi.h>
 #include <tchar.h>
 #include <assert.h>
 
 #include "resources.h"
 
+#define VOLUME_MIN           0
+#define VOLUME_MAX         500
+#define VOLUME_TICKS         5
+#define VOLUME_PAGE_SIZE   100
+#define BALANCE_LEFT         0
+#define BALANCE_CENTER      32
+#define BALANCE_RIGHT       64
+#define BALANCE_STEPS       64
+#define BALANCE_TICKS        1
+#define BALANCE_PAGE_SIZE   12
+
+typedef enum _WINDOW_MODE
+{
+    NORMAL_MODE,
+    SMALL_MODE,
+    TRAY_MODE
+} WINDOW_MODE, *PWINDOW_MODE;
+
 typedef struct _MIXER_WINDOW
 {
   HWND hWnd;
@@ -22,9 +39,12 @@ typedef struct _MIXER_WINDOW
   struct _SND_MIXER *Mixer;
   UINT SelectedLine;
   UINT WindowCount;
-  HWND * Window;
-
+  HWND *Window;
 
+    WINDOW_MODE Mode;
+    UINT MixerId;
+    RECT rect;
+    HFONT hFont;
 } MIXER_WINDOW, *PMIXER_WINDOW;
 
 extern HINSTANCE hAppInstance;
@@ -87,14 +107,13 @@ typedef struct _PREFERENCES_CONTEXT
     DWORD tmp;
 } PREFERENCES_CONTEXT, *PPREFERENCES_CONTEXT;
 
-typedef struct
+typedef struct _SET_VOLUME_CONTEXT
 {
     WCHAR LineName[MIXER_LONG_NAME_CHARS];
     UINT SliderPos;
     BOOL bVertical;
     BOOL bSwitch;
-
-}SET_VOLUME_CONTEXT, *PSET_VOLUME_CONTEXT;
+} SET_VOLUME_CONTEXT, *PSET_VOLUME_CONTEXT;
 
 /* NOTE: do NOT modify SNDVOL_REG_LINESTATE for binary compatibility with XP! */
 typedef struct _SNDVOL_REG_LINESTATE
@@ -108,13 +127,13 @@ typedef BOOL (CALLBACK *PFNSNDMIXENUMLINES)(PSND_MIXER Mixer, LPMIXERLINE Line,
 typedef BOOL (CALLBACK *PFNSNDMIXENUMCONNECTIONS)(PSND_MIXER Mixer, DWORD LineID, LPMIXERLINE Line, PVOID Context);
 typedef BOOL (CALLBACK *PFNSNDMIXENUMPRODUCTS)(PSND_MIXER Mixer, UINT Id, LPCTSTR ProductName, PVOID Context);
 
-PSND_MIXER SndMixerCreate(HWND hWndNotification);
+PSND_MIXER SndMixerCreate(HWND hWndNotification, UINT MixerId);
 VOID SndMixerDestroy(PSND_MIXER Mixer);
 VOID SndMixerClose(PSND_MIXER Mixer);
 BOOL SndMixerSelect(PSND_MIXER Mixer, UINT MixerId);
 UINT SndMixerGetSelection(PSND_MIXER Mixer);
-INT SndMixerSetVolumeControlDetails(PSND_MIXER Mixer, DWORD dwControlID, DWORD cbDetails, LPVOID paDetails);
-INT SndMixerGetVolumeControlDetails(PSND_MIXER Mixer, DWORD dwControlID, DWORD cbDetails, LPVOID paDetails);
+INT SndMixerSetVolumeControlDetails(PSND_MIXER Mixer, DWORD dwControlID, DWORD cChannels, DWORD cbDetails, LPVOID paDetails);
+INT SndMixerGetVolumeControlDetails(PSND_MIXER Mixer, DWORD dwControlID, DWORD cChannels, DWORD cbDetails, LPVOID paDetails);
 INT SndMixerGetProductName(PSND_MIXER Mixer, LPTSTR lpBuffer, UINT uSize);
 INT SndMixerGetLineName(PSND_MIXER Mixer, DWORD LineID, LPTSTR lpBuffer, UINT uSize, BOOL LongName);
 BOOL SndMixerEnumProducts(PSND_MIXER Mixer, PFNSNDMIXENUMPRODUCTS EnumProc, PVOID Context);
@@ -128,7 +147,7 @@ BOOL SndMixerQueryControls(PSND_MIXER Mixer, PUINT DisplayControls, LPMIXERLINE
  * dialog.c
  */
 VOID LoadDialogCtrls(PPREFERENCES_CONTEXT PrefContext);
-VOID UpdateDialogLineSliderControl(PPREFERENCES_CONTEXT PrefContext, LPMIXERLINE Line, DWORD dwControlID, DWORD DialogID, DWORD Position);
+VOID UpdateDialogLineSliderControl(PPREFERENCES_CONTEXT PrefContext, LPMIXERLINE Line, DWORD DialogID, DWORD Position);
 VOID UpdateDialogLineSwitchControl(PPREFERENCES_CONTEXT PrefContext, LPMIXERLINE Line, LONG fValue);
 
 /*
@@ -166,4 +185,17 @@ WriteLineConfig(IN LPTSTR szDeviceName,
                 IN PSNDVOL_REG_LINESTATE LineState,
                 IN DWORD cbSize);
 
+DWORD
+GetStyleValue(VOID);
+
+/* tray.c */
+
+INT_PTR
+CALLBACK
+TrayDlgProc(
+    HWND hwndDlg,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam);
+
 #endif /* __SNDVOL32_H */