6 #ifndef _INC_cSoundMixer_H
7 #define _INC_cSoundMixer_H
12 #include "../AV/cSoundBase.h"
26 #elif defined(__linux__)
27 typedef HANDLE HMIXER;
28 #define MIXER_OBJECTF_MIXER 0
39 static MMRESULT
GRAYCALL GetDevCaps(UINT i, OUT cSoundMixerCaps & caps);
55 #elif defined(__linux__)
63 operator HMIXER() const noexcept
75 #elif defined(__linux__)
76 return m_hMixer.isValidHandle();
80 HRESULT OpenMixer(UINT uMixerDeviceID = 0, DWORD_PTR dwCallback = 0, DWORD_PTR dwInstanceData = 0, DWORD dwOpenFlags = MIXER_OBJECTF_MIXER);
86 return GetHResultFrom(
_GTNSND(::mixerGetDevCaps)((UINT_PTR)m_hMixer, pCaps,
sizeof(*pCaps)));
88 HRESULT getID(UINT* puMxId)
const
90 return GetHResultFrom(::mixerGetID((HMIXEROBJ)m_hMixer, puMxId, MIXER_OBJECTF_HMIXER));
93 HRESULT GetLineInfo(_Inout_
_GTNSND(MIXERLINE)* pMxl, IN DWORD dwInfoFlags)
const
98 return GetHResultFrom(
_GTNSND(::mixerGetLineInfo)((HMIXEROBJ)m_hMixer, pMxl, dwInfoFlags | MIXER_OBJECTF_HMIXER));
100 HRESULT GetLineControls(_Inout_
_GTNSND(MIXERLINECONTROLS)* pMxlc, IN DWORD dwControls)
const
104 return GetHResultFrom(
_GTNSND(::mixerGetLineControls)((HMIXEROBJ)m_hMixer, pMxlc, dwControls | MIXER_OBJECTF_HMIXER));
106 HRESULT SetControlDetails(IN MIXERCONTROLDETAILS* pMxcd, IN DWORD dwDetails)
const
110 return GetHResultFrom(::mixerSetControlDetails((HMIXEROBJ)m_hMixer, pMxcd, dwDetails | MIXER_OBJECTF_HMIXER));
112 HRESULT GetControlDetails(_Inout_ MIXERCONTROLDETAILS* pMxcd, IN DWORD dwDetails)
const
115 return GetHResultFrom(
_GTNSND(::mixerGetControlDetails)((HMIXEROBJ)m_hMixer, pMxcd, dwDetails | MIXER_OBJECTF_HMIXER));
118 DWORD SendMessageX(IN UINT uMsg, IN DWORD_PTR dwParam1, IN DWORD_PTR dwParam2)
const
121 return ::mixerMessage(m_hMixer, uMsg, dwParam1, dwParam2);
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define WINHANDLE_NULL
HWND, HPEN, etc are NOT OS Handles. like HWND_DESKTOP. like HANDLEPTR_NULL. This is a WINAPI void* ha...
Definition: cOSHandle.h:23
#define _GTNSND
Definition: cSoundBase.h:26
Definition: cSoundMixer.h:44
HMIXER get_Handle() const noexcept
Definition: cSoundMixer.h:67
bool isOpen() const noexcept
Definition: cSoundMixer.h:71
UNITTEST_FRIEND(cSoundMixer)
void CloseHandle()
Definition: cHandlePtr.h:79
Definition: cOSHandle.h:59
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
wrap WAVEFORMATEX
Definition: cSoundBase.h:44