43 int i, o2, o3, o4, o5;
44 bool Left,Right,BackLeft,BackRight,Center,Sub, CenterLeft, CenterRight;
58 if (!(Left || Right || BackLeft || BackRight || Center || Sub || CenterLeft || CenterRight)) {
73 for (
i=0;
i<SamplesPerSec;
i++) {
76 (*buffer)[(
i*Channels)+0] =
value;
79 (*buffer)[(
i*Channels)+1] =
value;
82 (*buffer)[(
i*Channels)+o2] =
value;
85 (*buffer)[(
i*Channels)+o3] =
value;
88 (*buffer)[(
i*Channels)+o4] =
value;
91 (*buffer)[(
i*Channels)+o5] = (
SHORT)(
cos(
i*
y)*amplitude*32767.0);
94 (*buffer)[(
i*Channels)+6] =
value;
97 (*buffer)[(
i*Channels)+7] =
value;
128 for (
i=0;
i<numDev;
i++) {
142 BOOL isChannelChecked;
176 if (!isChannelChecked)
221 if ((*pGUID) !=
NULL) {
225 if (lpGUID !=
NULL) {
257 if (
ds->GetSpeakerConfig(&speakerConfig) !=
S_OK) {
303 if (
ds->SetSpeakerConfig(speakerConfig) !=
S_OK) {
321 TCHAR szServiceName[128];
384 DeviceInterfaceData.
cbSize =
sizeof(DeviceInterfaceData);
693 hURLFont =
CreateFont(20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
VARIABLE_PITCH |
FF_SWISS,
"MS Shell Dlg");
789 unsigned char usage[] =
"/h - print this help message\r\n" \
790 "/enable71Mode - change channel configuration to 7.1\r\n" \
791 "/enable51Mode - change channel configuration to 5.1\r\n" \
792 "/enable40Mode - change channel configuration to 4.0 (Quad)\r\n" \
793 "/enable20Mode - change channel configuration to 2.0 (Stereo)\r\n" \
794 "/enableSPDIFo - enable SPDIF-out\r\n" \
795 "/disableSPDIFo - disable SPDIF-out\r\n"\
796 "/enableSPDIFi - enable SPDIF-in recording\r\n" \
797 "/disableSPDIFi - disable SPDIF-in recording\r\n" \
798 "/enableLoopThru - enable loop-through from SPDIF-in to SPDIF-out\r\n" \
799 "/disableLoopThru - disable loop-through from SPDIF-in to SPDIF-out\r\n";
814 strcat(SysDir,
"\\cmicpl.cpl");
820 strcat(SysDir,
"\\cmicontrol.exe");
885 while (szCmdLine[
i]) {
887 if (szCmdLine[
i] ==
' ') {
900 if ((szCmdLine[
i] ==
'-') || (szCmdLine[
i] ==
'/')) {
946 if (szCmdLine && szCmdLine[0] != 0) {
#define IDC_FMT_441_MULTI_PCM
BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO devinfo, DWORD index, PSP_DEVINFO_DATA info)
BOOL getDeviceInterfaceDetail(const GUID *category, CMIDEV *pDev)
bool checkToken(char *token)
#define IOCTL_KS_PROPERTY
#define MAKELCID(lgid, srtid)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
HRESULT WINAPI DirectSoundCreate8(LPCGUID lpcGUID, LPDIRECTSOUND8 *ppDS, IUnknown *pUnkOuter)
PSP_DEVICE_INTERFACE_DETAIL_DATA InterfaceDetailData
char * strcat(char *DstString, const char *SrcString)
#define FMT_480_MULTI_PCM
SP_DEVICE_INTERFACE_DETAIL_DATA_A * PSP_DEVICE_INTERFACE_DETAIL_DATA
ACPI_SIZE strlen(const char *String)
#define DSSPEAKER_7POINT1
#define KSPROPERTY_CMI_GET
#define WM_CTLCOLORSTATIC
void PrintLastError(LPCSTR function)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define SPEAKER_FREQUENCY
#define INVALID_HANDLE_VALUE
VOID WINAPI ExitProcess(IN UINT uExitCode)
DWORD WINAPI GetLastError(VOID)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
GLint GLint GLint GLint GLint x
#define SetupDiGetDeviceRegistryProperty
UInt32 invertValidBitSPDI
LRESULT CALLBACK TabDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
BOOL setDriverData(CMIDEV *pDev)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define IDC_EN_CENTER2MIC
BOOL openDevice(bool handleError)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define KSPROPERTY_TYPE_GET
#define SUBLANG_ENGLISH_US
UINT WINAPI waveOutPrepareHeader(HWAVEOUT hWaveOut, WAVEHDR *lpWaveOutHdr, UINT uSize)
#define MB_ICONEXCLAMATION
int WINAPI SetBkMode(_In_ HDC, _In_ int)
#define IDC_FMT_480_DOLBY
UInt32 enableSPDOCopyright
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
#define IDC_FMT_480_MULTI_PCM
BOOL setDlgItems(HWND hWnd)
_STLP_DECLSPEC complex< float > _STLP_CALL cos(const complex< float > &)
#define MOVEFILE_DELAY_UNTIL_REBOOT
BOOL getDriverData(CMIDEV *pDev)
UINT WINAPI waveOutGetNumDevs(void)
#define FORMAT_MESSAGE_FROM_SYSTEM
#define SetupDiGetDeviceInterfaceDetail
#define IDC_EN_SPDIMONITOR
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
struct _SP_DEVINFO_DATA SP_DEVINFO_DATA
#define FMT_960_MULTI_PCM
BOOL initDialog(HWND hWnd)
#define KSPROPERTY_CMI_SET
#define SPEAKER_AMPLITUDE
#define IDC_FMT_882_MULTI_PCM
BOOL setCurrentChannelConfig()
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
#define IDCB_CHANNELCONFIG
#define IDC_FMT_960_MULTI_PCM
UINT WINAPI waveOutWrite(HWAVEOUT hWaveOut, LPWAVEHDR lpWaveOutHdr, UINT uSize)
#define MB_ICONINFORMATION
#define IDC_FMT_882_DOLBY
#define SetupDiGetDeviceInstanceId
#define DirectSoundEnumerate
#define DSSPEAKER_CONFIG(a)
GLsizeiptr const GLvoid GLenum usage
#define memcpy(s1, s2, n)
void openURL(int control)
CHAR DevicePath[ANYSIZE_ARRAY]
#define SetupDiGetClassDevs
GLsizei const GLfloat * value
#define GetSystemDirectory
INT_PTR(CALLBACK * DLGPROC)(HWND, UINT, WPARAM, LPARAM)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define IDC_FMT_960_DOLBY
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
#define DSSPEAKER_5POINT1
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
MMRESULT WINAPI waveOutOpen(LPHWAVEOUT lphWaveOut, UINT uDeviceID, LPCWAVEFORMATEX lpFormat, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
#define waveOutGetDevCaps
HLOCAL NTAPI LocalFree(HLOCAL hMem)
BOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, CONST GUID *InterfaceClassGuid, DWORD MemberIndex, PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData)
BOOL changeTab(LPNMHDR lpnmhdr)
UINT WINAPI waveOutClose(HWAVEOUT hWaveOut)
GLint GLint GLint GLint GLint GLint y
SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
#define DIGCF_DEVICEINTERFACE
void updateChannelBoxes(HWND hWnd)
#define TabCtrl_InsertItem(hwnd, iItem, pitem)
BOOL getDeviceInfo(const GUID *category, CMIDEV *pDev)
BOOL generateTestSignal(double amplitude, int Channels, int SamplesPerSec, SHORT **buffer)
#define FMT_882_MULTI_PCM
int strcmp(const char *String1, const char *String2)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
VOID WINAPI InitCommonControls(void)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
BOOL getCurrentChannelConfig()
CHAR szPname[MAXPNAMELEN]
HBRUSH WINAPI GetSysColorBrush(_In_ int)
#define FMT_441_MULTI_PCM
#define KSPROPERTY_TYPE_SET
UINT WINAPI waveOutReset(HWAVEOUT hWaveOut)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define IDC_EN_SPDCOPYRHT
int parseArguments(LPSTR szCmdLine)
union WAVEFORMATEXTENSIBLE::@2981 Samples
BOOL CALLBACK DSEnumProc(LPGUID lpGUID, LPCTSTR lpszDesc, LPCTSTR lpszDrvName, LPVOID lpContext)
#define IDC_FMT_441_DOLBY
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define HKEY_LOCAL_MACHINE
#define ERROR_INSUFFICIENT_BUFFER
#define CreateDialogParam