add sndvol32 to the build system and reformat the code
Modified: trunk/reactos/subsys/system/directory.xml
Modified: trunk/reactos/subsys/system/sndvol32/En.rc
Added: trunk/reactos/subsys/system/sndvol32/misc.c
Modified: trunk/reactos/subsys/system/sndvol32/mixer.c
Modified: trunk/reactos/subsys/system/sndvol32/sndvol32.c
Modified: trunk/reactos/subsys/system/sndvol32/sndvol32.h
Added: trunk/reactos/subsys/system/sndvol32/sndvol32.xml
_____
Modified: trunk/reactos/subsys/system/directory.xml
--- trunk/reactos/subsys/system/directory.xml 2005-09-26 19:09:32 UTC
(rev 18101)
+++ trunk/reactos/subsys/system/directory.xml 2005-09-26 19:15:27 UTC
(rev 18102)
@@ -55,6 +55,9 @@
<directory name="sm">
<xi:include href="sm/sm.xml" />
</directory>
+<directory name="sndvol32">
+ <xi:include href="sndvol32/sndvol32.xml" />
+</directory>
<directory name="taskmgr">
<xi:include href="taskmgr/taskmgr.xml" />
</directory>
Property changes on: trunk/reactos/subsys/system/sndvol32
___________________________________________________________________
Name: svn:ignore
- *.o
*.d
*.exe
*.coff
*.sym
*.map
+ *.o
*.a
*.d
*.exe
*.coff
*.sym
*.map
GNUmakefile
_____
Modified: trunk/reactos/subsys/system/sndvol32/En.rc
--- trunk/reactos/subsys/system/sndvol32/En.rc 2005-09-26 19:09:32 UTC
(rev 18101)
+++ trunk/reactos/subsys/system/sndvol32/En.rc 2005-09-26 19:15:27 UTC
(rev 18102)
@@ -13,7 +13,7 @@
BEGIN
MENUITEM "&Help Topics", IDC_HELP_TOPICS
MENUITEM SEPARATOR
- MENUITEM "&About ...", IDC_ABOUT
+ MENUITEM "&About Volume Control", IDC_ABOUT
END
END
_____
Added: trunk/reactos/subsys/system/sndvol32/misc.c
--- trunk/reactos/subsys/system/sndvol32/misc.c 2005-09-26 19:09:32 UTC
(rev 18101)
+++ trunk/reactos/subsys/system/sndvol32/misc.c 2005-09-26 19:15:27 UTC
(rev 18102)
@@ -0,0 +1,129 @@
+/*
+ * ReactOS Sound Volume Control
+ * Copyright (C) 2004-2005 Thomas Weidenmueller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA
+ *
+ * VMware is a registered trademark of VMware, Inc.
+ */
+/* $Id$
+ *
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS Sound Volume Control
+ * FILE: subsys/system/sndvol32/misc.c
+ * PROGRAMMERS: Thomas Weidenmueller <w3seek(a)reactos.com>
+ */
+#include <sndvol32.h>
+
+static INT
+LengthOfStrResource(IN HINSTANCE hInst,
+ IN UINT uID)
+{
+ HRSRC hrSrc;
+ HGLOBAL hRes;
+ LPWSTR lpName, lpStr;
+
+ if (hInst == NULL)
+ {
+ return -1;
+ }
+
+ /* There are always blocks of 16 strings */
+ lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
+
+ /* Find the string table block */
+ if ((hrSrc = FindResourceW(hInst,
+ lpName,
+ (LPWSTR)RT_STRING)) &&
+ (hRes = LoadResource(hInst,
+ hrSrc)) &&
+ (lpStr = LockResource(hRes)))
+ {
+ UINT x;
+
+ /* Find the string we're looking for */
+ uID &= 0xF; /* position in the block, same as % 16 */
+ for (x = 0; x < uID; x++)
+ {
+ lpStr += (*lpStr) + 1;
+ }
+
+ /* Found the string */
+ return (int)(*lpStr);
+ }
+ return -1;
+}
+
+INT
+AllocAndLoadString(OUT LPWSTR *lpTarget,
+ IN HINSTANCE hInst,
+ IN UINT uID)
+{
+ INT ln;
+
+ ln = LengthOfStrResource(hInst,
+ uID);
+ if (ln++ > 0)
+ {
+ (*lpTarget) = (LPWSTR)LocalAlloc(LMEM_FIXED,
+ ln * sizeof(WCHAR));
+ if ((*lpTarget) != NULL)
+ {
+ INT Ret;
+ if (!(Ret = LoadStringW(hInst,
+ uID,
+ *lpTarget,
+ ln)))
+ {
+ LocalFree((HLOCAL)(*lpTarget));
+ }
+ return Ret;
+ }
+ }
+ return 0;
+}
+
+DWORD
+LoadAndFormatString(IN HINSTANCE hInstance,
+ IN UINT uID,
+ OUT LPWSTR *lpTarget,
+ ...)
+{
+ DWORD Ret = 0;
+ LPWSTR lpFormat;
+ va_list lArgs;
+
+ if (AllocAndLoadString(&lpFormat,
+ hInstance,
+ uID) > 0)
+ {
+ va_start(lArgs, lpTarget);
+ /* let's use FormatMessage to format it because it has the
ability to
+ allocate memory automatically */
+ Ret = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_STRING,
+ lpFormat,
+ 0,
+ 0,
+ (LPWSTR)lpTarget,
+ 0,
+ &lArgs);
+ va_end(lArgs);
+
+ LocalFree((HLOCAL)lpFormat);
+ }
+
+ return Ret;
+}
+
Property changes on: trunk/reactos/subsys/system/sndvol32/misc.c
___________________________________________________________________
Name: svn:keywords
+ author date id revision
Name: svn:eol-style
+ native
_____
Modified: trunk/reactos/subsys/system/sndvol32/mixer.c
--- trunk/reactos/subsys/system/sndvol32/mixer.c 2005-09-26
19:09:32 UTC (rev 18101)
+++ trunk/reactos/subsys/system/sndvol32/mixer.c 2005-09-26
19:15:27 UTC (rev 18102)
@@ -1,6 +1,6 @@
/*
* ReactOS Sound Volume Control
- * Copyright (C) 2004 Thomas Weidenmueller
+ * Copyright (C) 2004-2005 Thomas Weidenmueller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -25,354 +25,423 @@
* FILE: subsys/system/sndvol32/mixer.c
* PROGRAMMERS: Thomas Weidenmueller <w3seek(a)reactos.com>
*/
-#include "sndvol32.h"
+#include <sndvol32.h>
#define NO_MIXER_SELECTED (~0)
static VOID
ClearMixerCache(PSND_MIXER Mixer)
{
- PSND_MIXER_DESTINATION Line, NextLine;
- PSND_MIXER_CONNECTION Con, NextCon;
+ PSND_MIXER_DESTINATION Line, NextLine;
+ PSND_MIXER_CONNECTION Con, NextCon;
- for(Line = Mixer->Lines; Line != NULL; Line = NextLine)
- {
- if(Line->Controls != NULL)
+ for (Line = Mixer->Lines; Line != NULL; Line = NextLine)
{
- HeapFree(GetProcessHeap(), 0, Line->Controls);
- }
+ if (Line->Controls != NULL)
+ {
+ HeapFree(GetProcessHeap(),
+ 0,
+ Line->Controls);
+ }
- for(Con = Line->Connections; Con != NULL; Con = NextCon)
- {
- if(Con->Controls != NULL)
- {
- HeapFree(GetProcessHeap(), 0, Con->Controls);
- }
+ for (Con = Line->Connections; Con != NULL; Con = NextCon)
+ {
+ if (Con->Controls != NULL)
+ {
+ HeapFree(GetProcessHeap(),
+ 0,
+ Con->Controls);
+ }
- NextCon = Con->Next;
- HeapFree(GetProcessHeap(), 0, Con);
+ NextCon = Con->Next;
+ HeapFree(GetProcessHeap(),
+ 0,
+ Con);
+ }
+
+ NextLine = Line->Next;
+ HeapFree(GetProcessHeap(),
+ 0,
+ Line);
}
-
- NextLine = Line->Next;
- HeapFree(GetProcessHeap(), 0, Line);
- }
- Mixer->Lines = NULL;
+ Mixer->Lines = NULL;
}
PSND_MIXER
SndMixerCreate(HWND hWndNotification)
{
- PSND_MIXER Mixer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(SND_MIXER));
- if(Mixer != NULL)
- {
- Mixer->hWndNotification = hWndNotification;
- Mixer->MixersCount = mixerGetNumDevs();
- Mixer->MixerId = NO_MIXER_SELECTED;
+ PSND_MIXER Mixer = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ sizeof(SND_MIXER));
+ if (Mixer != NULL)
+ {
+ Mixer->hWndNotification = hWndNotification;
+ Mixer->MixersCount = mixerGetNumDevs();
+ Mixer->MixerId = NO_MIXER_SELECTED;
- if(Mixer->MixersCount > 0)
- {
- /* select the first mixer by default */
- SndMixerSelect(Mixer, 0);
+ if (Mixer->MixersCount > 0)
+ {
+ /* select the first mixer by default */
+ SndMixerSelect(Mixer, 0);
+ }
}
- }
- return Mixer;
+ return Mixer;
}
VOID
SndMixerDestroy(PSND_MIXER Mixer)
{
- SndMixerClose(Mixer);
- HeapFree(GetProcessHeap(), 0, Mixer);
+ SndMixerClose(Mixer);
+ HeapFree(GetProcessHeap(),
+ 0,
+ Mixer);
}
VOID
SndMixerClose(PSND_MIXER Mixer)
{
- if(Mixer->hmx != NULL)
- {
- mixerClose(Mixer->hmx);
- Mixer->hmx = NULL;
- Mixer->MixerId = NO_MIXER_SELECTED;
- }
+ if (Mixer->hmx != NULL)
+ {
+ mixerClose(Mixer->hmx);
+ Mixer->hmx = NULL;
+ Mixer->MixerId = NO_MIXER_SELECTED;
+ }
}
static BOOL
-SndMixerQueryControls(PSND_MIXER Mixer, LPMIXERLINE LineInfo,
LPMIXERCONTROL *Controls)
+SndMixerQueryControls(PSND_MIXER Mixer,
+ LPMIXERLINE LineInfo,
+ LPMIXERCONTROL *Controls)
{
- if(LineInfo->cControls > 0)
- {
- *Controls = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
LineInfo->cControls * sizeof(MIXERCONTROL));
- if(*Controls != NULL)
+ if (LineInfo->cControls > 0)
{
- MIXERLINECONTROLS LineControls;
- UINT j;
+ *Controls = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ LineInfo->cControls *
sizeof(MIXERCONTROL));
+ if (*Controls != NULL)
+ {
+ MIXERLINECONTROLS LineControls;
+ UINT j;
- LineControls.cbStruct = sizeof(LineControls);
- LineControls.dwLineID = LineInfo->dwLineID;
- LineControls.cControls = LineInfo->cControls;
- LineControls.cbmxctrl = sizeof(MIXERCONTROL);
- LineControls.pamxctrl = (PVOID)(*Controls);
+ LineControls.cbStruct = sizeof(LineControls);
+ LineControls.dwLineID = LineInfo->dwLineID;
+ LineControls.cControls = LineInfo->cControls;
+ LineControls.cbmxctrl = sizeof(MIXERCONTROL);
+ LineControls.pamxctrl = (PVOID)(*Controls);
- for(j = 0; j < LineInfo->cControls; j++)
- {
- (*Controls)[j].cbStruct = sizeof(MIXERCONTROL);
- }
+ for (j = 0; j < LineInfo->cControls; j++)
+ {
+ (*Controls)[j].cbStruct = sizeof(MIXERCONTROL);
+ }
- if(mixerGetLineControls((HMIXEROBJ)Mixer->hmx, &LineControls,
MIXER_GETLINECONTROLSF_ALL) == MMSYSERR_NOERROR)
- {
- for(j = 0; j < LineInfo->cControls; j++)
+ if (mixerGetLineControls((HMIXEROBJ)Mixer->hmx,
+ &LineControls,
+ MIXER_GETLINECONTROLSF_ALL) ==
MMSYSERR_NOERROR)
+ {
+ for (j = 0; j < LineInfo->cControls; j++)
+ {
+ DPRINT("Line control: %ws", (*Controls)[j].szName);
+ }
+
+ return TRUE;
+ }
+ else
+ {
+ HeapFree(GetProcessHeap(),
+ 0,
+ *Controls);
+ *Controls = NULL;
+ DPRINT("Failed to get line controls!\n");
+ }
+ }
+ else
{
- DBG("Line control: %ws", (*Controls)[j].szName);
+ DPRINT("Failed to allocate memory for %d line controls!\n",
LineInfo->cControls);
}
- return TRUE;
- }
- else
- {
- HeapFree(GetProcessHeap(), 0, *Controls);
- *Controls = NULL;
- DBG("Failed to get line controls!\n");
- }
+ return FALSE;
}
else
{
- DBG("Failed to allocate memory for %d line controls!\n",
LineInfo->cControls);
+ return TRUE;
}
-
- return FALSE;
- }
- else
- {
- return TRUE;
- }
}
static BOOL
-SndMixerQueryConnections(PSND_MIXER Mixer, PSND_MIXER_DESTINATION Line)
+SndMixerQueryConnections(PSND_MIXER Mixer,
+ PSND_MIXER_DESTINATION Line)
{
- UINT i;
- MIXERLINE LineInfo;
- BOOL Ret = TRUE;
+ UINT i;
+ MIXERLINE LineInfo;
+ BOOL Ret = TRUE;
- LineInfo.cbStruct = sizeof(LineInfo);
- LineInfo.dwDestination = Line->Info.dwDestination;
- for(i = Line->Info.cConnections; i > 0; i--)
- {
- LineInfo.dwSource = i - 1;
- if(mixerGetLineInfo((HMIXEROBJ)Mixer->hmx, &LineInfo,
MIXER_GETLINEINFOF_SOURCE) == MMSYSERR_NOERROR)
+ LineInfo.cbStruct = sizeof(LineInfo);
+ LineInfo.dwDestination = Line->Info.dwDestination;
+ for (i = Line->Info.cConnections; i > 0; i--)
{
- LPMIXERCONTROL Controls;
- PSND_MIXER_CONNECTION Con;
+ LineInfo.dwSource = i - 1;
+ if (mixerGetLineInfo((HMIXEROBJ)Mixer->hmx,
+ &LineInfo,
+ MIXER_GETLINEINFOF_SOURCE) ==
MMSYSERR_NOERROR)
+ {
+ LPMIXERCONTROL Controls;
+ PSND_MIXER_CONNECTION Con;
- if(!SndMixerQueryControls(Mixer, &LineInfo, &Controls))
- {
- DBG("Failed to query connection controls\n");
- Ret = FALSE;
- break;
- }
+ if (!SndMixerQueryControls(Mixer,
+ &LineInfo,
+ &Controls))
+ {
+ DPRINT("Failed to query connection controls\n");
+ Ret = FALSE;
+ break;
+ }
- Con = HeapAlloc(GetProcessHeap(), 0,
sizeof(SND_MIXER_CONNECTION));
- if(Con != NULL)
- {
- Con->Info = LineInfo;
- Con->Controls = Controls;
- Con->Next = Line->Connections;
- Line->Connections = Con;
- }
- else
- {
- HeapFree(GetProcessHeap(), 0, Controls);
- }
+ Con = HeapAlloc(GetProcessHeap(),
+ 0,
+ sizeof(SND_MIXER_CONNECTION));
+ if (Con != NULL)
+ {
+ Con->Info = LineInfo;
+ Con->Controls = Controls;
+ Con->Next = Line->Connections;
+ Line->Connections = Con;
+ }
+ else
+ {
+ HeapFree(GetProcessHeap(),
+ 0,
+ Controls);
+ }
+ }
+ else
+ {
+ DPRINT("Failed to get connection information!\n");
+ Ret = FALSE;
+ break;
+ }
}
- else
- {
- DBG("Failed to get connection information!\n");
- Ret = FALSE;
- break;
- }
- }
- return Ret;
+ return Ret;
}
static BOOL
SndMixerQueryDestinations(PSND_MIXER Mixer)
{
- UINT i;
- BOOL Ret = TRUE;
+ UINT i;
+ BOOL Ret = TRUE;
- for(i = Mixer->Caps.cDestinations; i > 0; i--)
- {
- PSND_MIXER_DESTINATION Line;
+ for (i = Mixer->Caps.cDestinations; i > 0; i--)
+ {
+ PSND_MIXER_DESTINATION Line;
- Line = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(SND_MIXER_DESTINATION));
- if(Line != NULL)
- {
- Line->Info.cbStruct = sizeof(Line->Info);
- Line->Info.dwDestination = i - 1;
- if(mixerGetLineInfo((HMIXEROBJ)Mixer->hmx, &Line->Info,
MIXER_GETLINEINFOF_DESTINATION) == MMSYSERR_NOERROR)
- {
- if(!SndMixerQueryConnections(Mixer, Line))
+ Line = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
+ sizeof(SND_MIXER_DESTINATION));
+ if (Line != NULL)
{
- DBG("Failed to query mixer connections!\n");
- Ret = FALSE;
- break;
+ Line->Info.cbStruct = sizeof(Line->Info);
+ Line->Info.dwDestination = i - 1;
+ if (mixerGetLineInfo((HMIXEROBJ)Mixer->hmx,
+ &Line->Info,
+ MIXER_GETLINEINFOF_DESTINATION) ==
MMSYSERR_NOERROR)
+ {
+ if (!SndMixerQueryConnections(Mixer, Line))
+ {
+ DPRINT("Failed to query mixer connections!\n");
+ Ret = FALSE;
+ break;
+ }
+ if (!SndMixerQueryControls(Mixer,
+ &Line->Info,
+ &Line->Controls))
+ {
+ DPRINT("Failed to query mixer controls!\n");
+ Ret = FALSE;
+ break;
+ }
+
+ Line->Next = Mixer->Lines;
+ Mixer->Lines = Line;
+ }
+ else
+ {
+ DPRINT("Failed to get line information for id %d!\n",
i);
+ HeapFree(GetProcessHeap(),
+ 0,
+ Line);
+ Ret = FALSE;
+ break;
+ }
}
- if(!SndMixerQueryControls(Mixer, &Line->Info, &Line->Controls))
+ else
{
- DBG("Failed to query mixer controls!\n");
- Ret = FALSE;
- break;
+ DPRINT("Allocation of SND_MIXER_DEST structure for id %d
failed!\n", i);
+ Ret = FALSE;
+ break;
}
-
- Line->Next = Mixer->Lines;
- Mixer->Lines = Line;
- }
- else
- {
- DBG("Failed to get line information for id %d!\n", i);
- HeapFree(GetProcessHeap(), 0, Line);
- Ret = FALSE;
- break;
- }
}
- else
- {
- DBG("Allocation of SND_MIXER_DEST structure for id %d failed!\n",
i);
- Ret = FALSE;
- break;
- }
- }
- return Ret;
+ return Ret;
}
BOOL
-SndMixerSelect(PSND_MIXER Mixer, UINT MixerId)
+SndMixerSelect(PSND_MIXER Mixer,
+ UINT MixerId)
{
- if(MixerId >= Mixer->MixersCount)
- {
- return FALSE;
- }
+ if (MixerId >= Mixer->MixersCount)
+ {
+ return FALSE;
+ }
- SndMixerClose(Mixer);
+ SndMixerClose(Mixer);
- if(mixerOpen(&Mixer->hmx, MixerId,
(DWORD_PTR)Mixer->hWndNotification, 0, CALLBACK_WINDOW |
MIXER_OBJECTF_MIXER) == MMSYSERR_NOERROR ||
- mixerOpen(&Mixer->hmx, MixerId,
(DWORD_PTR)Mixer->hWndNotification, 0, CALLBACK_WINDOW) ==
MMSYSERR_NOERROR ||
- mixerOpen(&Mixer->hmx, MixerId, 0, 0, 0) == MMSYSERR_NOERROR)
- {
- if(mixerGetDevCaps(MixerId, &Mixer->Caps, sizeof(Mixer->Caps)) ==
MMSYSERR_NOERROR)
+ if (mixerOpen(&Mixer->hmx,
+ MixerId,
+ (DWORD_PTR)Mixer->hWndNotification,
+ 0,
+ CALLBACK_WINDOW | MIXER_OBJECTF_MIXER) ==
MMSYSERR_NOERROR ||
+ mixerOpen(&Mixer->hmx,
+ MixerId,
+ (DWORD_PTR)Mixer->hWndNotification,
+ 0,
+ CALLBACK_WINDOW) == MMSYSERR_NOERROR ||
+ mixerOpen(&Mixer->hmx,
+ MixerId,
+ 0,
+ 0,
+ 0) == MMSYSERR_NOERROR)
{
- BOOL Ret = FALSE;
+ if (mixerGetDevCaps(MixerId,
+ &Mixer->Caps,
+ sizeof(Mixer->Caps)) == MMSYSERR_NOERROR)
+ {
+ BOOL Ret = FALSE;
- Mixer->MixerId = MixerId;
+ Mixer->MixerId = MixerId;
- ClearMixerCache(Mixer);
+ ClearMixerCache(Mixer);
- Ret = SndMixerQueryDestinations(Mixer);
+ Ret = SndMixerQueryDestinations(Mixer);
- if(!Ret)
- {
- ClearMixerCache(Mixer);
- }
+ if (!Ret)
+ {
+ ClearMixerCache(Mixer);
+ }
- return Ret;
+ return Ret;
+ }
+ else
+ {
+ mixerClose(Mixer->hmx);
+ }
}
- else
- {
- mixerClose(Mixer->hmx);
- }
- }
- Mixer->hmx = NULL;
- Mixer->MixerId = NO_MIXER_SELECTED;
- return FALSE;
+ Mixer->hmx = NULL;
+ Mixer->MixerId = NO_MIXER_SELECTED;
+ return FALSE;
}
UINT
SndMixerGetSelection(PSND_MIXER Mixer)
{
- return Mixer->MixerId;
+ return Mixer->MixerId;
}
INT
-SndMixerGetProductName(PSND_MIXER Mixer, LPTSTR lpBuffer, UINT uSize)
+SndMixerGetProductName(PSND_MIXER Mixer,
+ LPTSTR lpBuffer,
+ UINT uSize)
{
- if(Mixer->hmx)
- {
- int lnsz = lstrlen(Mixer->Caps.szPname);
- if(lnsz + 1 > uSize)
+ if (Mixer->hmx)
{
- return lnsz + 1;
+ int lnsz = lstrlen(Mixer->Caps.szPname);
+ if(lnsz + 1 > uSize)
+ {
+ return lnsz + 1;
+ }
+ else
+ {
+ memcpy(lpBuffer, Mixer->Caps.szPname, lnsz *
sizeof(TCHAR));
+ lpBuffer[lnsz] = _T('\0');
+ return lnsz;
+ }
}
- else
- {
- memcpy(lpBuffer, Mixer->Caps.szPname, lnsz * sizeof(TCHAR));
- lpBuffer[lnsz] = _T('\0');
- return lnsz;
- }
- }
- return -1;
+ return -1;
}
BOOL
-SndMixerEnumProducts(PSND_MIXER Mixer, PFNSNDMIXENUMPRODUCTS EnumProc,
PVOID Context)
+SndMixerEnumProducts(PSND_MIXER Mixer,
+ PFNSNDMIXENUMPRODUCTS EnumProc,
+ PVOID Context)
{
- MIXERCAPS Caps;
- HMIXER hMixer;
- UINT i;
- BOOL Ret = TRUE;
+ MIXERCAPS Caps;
+ HMIXER hMixer;
+ UINT i;
+ BOOL Ret = TRUE;
- for(i = 0; i < Mixer->MixersCount; i++)
- {
- if(mixerOpen(&hMixer, i, 0, 0, 0) == MMSYSERR_NOERROR)
+ for (i = 0; i < Mixer->MixersCount; i++)
{
- if(mixerGetDevCaps(i, &Caps, sizeof(Caps)) == MMSYSERR_NOERROR)
- {
- if(!EnumProc(Mixer, i, Caps.szPname, Context))
+ if (mixerOpen(&hMixer,
+ i,
+ 0,
+ 0,
+ 0) == MMSYSERR_NOERROR)
{
- mixerClose(hMixer);
- Ret = FALSE;
- break;
+ if (mixerGetDevCaps(i,
+ &Caps,
+ sizeof(Caps)) == MMSYSERR_NOERROR)
+ {
+ if (!EnumProc(Mixer,
+ i,
+ Caps.szPname,
+ Context))
+ {
+ mixerClose(hMixer);
+ Ret = FALSE;
+ break;
+ }
+ }
+ else
+ {
+ DPRINT("Failed to get device capabilities for mixer id
%d!\n", i);
+ }
+ mixerClose(hMixer);
}
- }
- else
- {
- DBG("Failed to get device capabilities for mixer id %d!\n", i);
- }
- mixerClose(hMixer);
}
- }
- return Ret;
+ return Ret;
}
INT
SndMixerGetDestinationCount(PSND_MIXER Mixer)
{
- return (Mixer->hmx ? Mixer->Caps.cDestinations : -1);
+ return (Mixer->hmx ? Mixer->Caps.cDestinations : -1);
}
BOOL
-SndMixerEnumLines(PSND_MIXER Mixer, PFNSNDMIXENUMLINES EnumProc, PVOID
Context)
+SndMixerEnumLines(PSND_MIXER Mixer,
+ PFNSNDMIXENUMLINES EnumProc,
+ PVOID Context)
{
- if(Mixer->hmx)
- {
- PSND_MIXER_DESTINATION Line;
+ if (Mixer->hmx)
+ {
+ PSND_MIXER_DESTINATION Line;
- for(Line = Mixer->Lines; Line != NULL; Line = Line->Next)
- {
- if(!EnumProc(Mixer, &Line->Info, Context))
- {
- return FALSE;
- }
+ for (Line = Mixer->Lines; Line != NULL; Line = Line->Next)
+ {
+ if (!EnumProc(Mixer,
+ &Line->Info,
+ Context))
+ {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
}
- return TRUE;
- }
-
- return FALSE;
+ return FALSE;
}
_____
Modified: trunk/reactos/subsys/system/sndvol32/sndvol32.c
--- trunk/reactos/subsys/system/sndvol32/sndvol32.c 2005-09-26
19:09:32 UTC (rev 18101)
+++ trunk/reactos/subsys/system/sndvol32/sndvol32.c 2005-09-26
19:15:27 UTC (rev 18102)
@@ -1,6 +1,6 @@
/*
* ReactOS Sound Volume Control
- * Copyright (C) 2004 Thomas Weidenmueller
+ * Copyright (C) 2004-2005 Thomas Weidenmueller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
* FILE: subsys/system/sndvol32/sndvol32.c
* PROGRAMMERS: Thomas Weidenmueller <w3seek(a)reactos.com>
*/
-#include "sndvol32.h"
+#include <sndvol32.h>
HINSTANCE hAppInstance;
ATOM MainWindowClass;
@@ -33,116 +33,137 @@
HANDLE hAppHeap;
#define GetDialogData(hwndDlg, type) \
- ( P##type )GetWindowLongPtr((hwndDlg), DWLP_USER)
+ ( P##type )GetWindowLongPtr((hwndDlg), DWLP_USER)
#define GetWindowData(hwnd, type) \
- ( P##type )GetWindowLongPtr((hwnd), GWL_USERDATA)
+ ( P##type )GetWindowLongPtr((hwnd), GWL_USERDATA)
/***********************************************************************
*******/
typedef struct _PREFERENCES_CONTEXT
{
- PMIXER_WINDOW MixerWindow;
- PSND_MIXER Mixer;
- HWND hwndDlg;
+ PMIXER_WINDOW MixerWindow;
+ PSND_MIXER Mixer;
+ HWND hwndDlg;
} PREFERENCES_CONTEXT, *PPREFERENCES_CONTEXT;
typedef struct _PREFERENCES_FILL_DEVICES
{
- PPREFERENCES_CONTEXT PrefContext;
- HWND hComboBox;
- UINT Selected;
+ PPREFERENCES_CONTEXT PrefContext;
+ HWND hComboBox;
+ UINT Selected;
} PREFERENCES_FILL_DEVICES, *PPREFERENCES_FILL_DEVICES;
static BOOL CALLBACK
-FillDeviceComboBox(PSND_MIXER Mixer, UINT Id, LPCTSTR ProductName,
PVOID Context)
+FillDeviceComboBox(PSND_MIXER Mixer,
+ UINT Id,
+ LPCTSTR ProductName,
+ PVOID Context)
{
- LRESULT lres;
- PPREFERENCES_FILL_DEVICES FillContext =
(PPREFERENCES_FILL_DEVICES)Context;
+ LRESULT lres;
+ PPREFERENCES_FILL_DEVICES FillContext =
(PPREFERENCES_FILL_DEVICES)Context;
- lres = SendMessage(FillContext->hComboBox, CB_ADDSTRING, 0,
(LPARAM)ProductName);
- if(lres != CB_ERR)
- {
- /* save the index so we don't screw stuff when the combobox is
sorted... */
- SendMessage(FillContext->hComboBox, CB_SETITEMDATA, (WPARAM)lres,
Id);
+ lres = SendMessage(FillContext->hComboBox,
+ CB_ADDSTRING,
+ 0,
+ (LPARAM)ProductName);
+ if (lres != CB_ERR)
+ {
+ /* save the index so we don't screw stuff when the combobox is
sorted... */
+ SendMessage(FillContext->hComboBox,
+ CB_SETITEMDATA,
+ (WPARAM)lres,
+ Id);
- if(Id == FillContext->Selected)
- {
- SendMessage(FillContext->hComboBox, CB_SETCURSEL, (WPARAM)lres,
0);
+ if (Id == FillContext->Selected)
+ {
+ SendMessage(FillContext->hComboBox,
+ CB_SETCURSEL,
+ (WPARAM)lres,
+ 0);
+ }
}
- }
- return TRUE;
+ return TRUE;
}
static INT_PTR CALLBACK
-DlgPreferencesProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
lParam)
+DlgPreferencesProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
{
- PPREFERENCES_CONTEXT Context;
+ PPREFERENCES_CONTEXT Context;
- switch(uMsg)
- {
- case WM_COMMAND:
+ switch (uMsg)
{
- switch(LOWORD(wParam))
- {
- case IDOK:
- case IDCANCEL:
+ case WM_COMMAND:
{
- EndDialog(hwndDlg, LOWORD(wParam));
- break;
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+ case IDCANCEL:
+ {
+ EndDialog(hwndDlg,
+ LOWORD(wParam));
+ break;
+ }
+ }
+ break;
}
- }
- break;
- }
- case MM_MIXM_LINE_CHANGE:
- {
- DBG("MM_MIXM_LINE_CHANGE\n");
- break;
- }
+ case MM_MIXM_LINE_CHANGE:
+ {
+ DPRINT("MM_MIXM_LINE_CHANGE\n");
[truncated at 1000 lines; 617 more skipped]