#include <windef.h>
#include <winbase.h>
+#include <wingdi.h>
#include <winuser.h>
#include <mmsystem.h>
#include <commctrl.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;
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;
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
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);
* 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);
/*
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 */