10 #include "resources.h"
12 typedef struct _MIXER_WINDOW
16 struct _SND_MIXER
*Mixer
;
18 } MIXER_WINDOW
, *PMIXER_WINDOW
;
20 LRESULT CALLBACK
MainWindowProc(HWND hwnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
22 BOOL
RebuildMixerWindowControls(PMIXER_WINDOW MixerWindow
);
24 extern HINSTANCE hAppInstance
;
25 extern ATOM MainWindowClass
;
27 extern HANDLE hAppHeap
;
29 #define SZ_APP_CLASS TEXT("Volume Control")
31 #define DBG DbgPrint("SNDVOL32: %s:%i: ", __FILE__, __LINE__); DbgPrint
38 typedef struct _SND_MIXER_CONNECTION
40 struct _SND_MIXER_CONNECTION
*Next
;
42 LPMIXERCONTROL Controls
;
43 } SND_MIXER_CONNECTION
, *PSND_MIXER_CONNECTION
;
46 typedef struct _SND_MIXER_DESTINATION
48 struct _SND_MIXER_DESTINATION
*Next
;
50 LPMIXERCONTROL Controls
;
51 PSND_MIXER_CONNECTION Connections
;
52 } SND_MIXER_DESTINATION
, *PSND_MIXER_DESTINATION
;
54 typedef struct _SND_MIXER
57 HWND hWndNotification
;
61 PSND_MIXER_DESTINATION Lines
;
62 } SND_MIXER
, *PSND_MIXER
;
64 typedef BOOL (CALLBACK
*PFNSNDMIXENUMLINES
)(PSND_MIXER Mixer
, LPMIXERLINE Line
, PVOID Context
);
65 typedef BOOL (CALLBACK
*PFNSNDMIXENUMPRODUCTS
)(PSND_MIXER Mixer
, UINT Id
, LPCTSTR ProductName
, PVOID Context
);
67 PSND_MIXER
SndMixerCreate(HWND hWndNotification
);
68 VOID
SndMixerDestroy(PSND_MIXER Mixer
);
69 VOID
SndMixerClose(PSND_MIXER Mixer
);
70 BOOL
SndMixerSelect(PSND_MIXER Mixer
, UINT MixerId
);
71 UINT
SndMixerGetSelection(PSND_MIXER Mixer
);
72 INT
SndMixerGetProductName(PSND_MIXER Mixer
, LPTSTR lpBuffer
, UINT uSize
);
73 BOOL
SndMixerEnumProducts(PSND_MIXER Mixer
, PFNSNDMIXENUMPRODUCTS EnumProc
, PVOID Context
);
74 INT
SndMixerGetDestinationCount(PSND_MIXER Mixer
);
75 BOOL
SndMixerEnumDestinationLines(PSND_MIXER Mixer
, PFNSNDMIXENUMLINES EnumProc
, PVOID Context
);
77 #endif /* __SNDVOL32_H */