[SNDVOL32] In record mode, rename the 'Mute' autocheckbox to 'Select', turn it into...
authorEric Kohl <eric.kohl@reactos.org>
Fri, 1 Mar 2019 21:01:14 +0000 (22:01 +0100)
committerEric Kohl <eric.kohl@reactos.org>
Fri, 1 Mar 2019 21:01:14 +0000 (22:01 +0100)
base/applications/sndvol32/dialog.c
base/applications/sndvol32/sndvol32.c

index 781a59e..5a52272 100644 (file)
@@ -674,6 +674,7 @@ VOID
 LoadDialogCtrls(
     PPREFERENCES_CONTEXT PrefContext)
 {
+    WCHAR szBuffer[64];
     HWND hDlgCtrl;
     RECT statusRect;
     UINT i;
@@ -720,9 +721,23 @@ LoadDialogCtrls(
                      SWP_NOZORDER);
     }
 
-    /* Resize the vertical line separators */
+    if (PrefContext->MixerWindow->MixerId == RECORD_MIXER)
+        LoadStringW(hAppInstance, IDS_SELECT, szBuffer, ARRAYSIZE(szBuffer));
+
     for (i = 0; i < PrefContext->MixerWindow->DialogCount; i++)
     {
+        if (PrefContext->MixerWindow->MixerId == RECORD_MIXER)
+        {
+            hDlgCtrl = GetDlgItem(PrefContext->MixerWindow->hWnd, (i + 1) * IDC_LINE_SWITCH);
+
+            /* Turn the autocheckbox into a checkbox */
+            SetWindowLongPtr(hDlgCtrl, GWL_STYLE, (GetWindowLongPtr(hDlgCtrl, GWL_STYLE) & ~BS_AUTOCHECKBOX) | BS_CHECKBOX);
+
+            /* Change text from 'Mute' to 'Select' */
+            SetWindowTextW(hDlgCtrl, szBuffer);
+        }
+
+        /* Resize the vertical line separator */
         hDlgCtrl = GetDlgItem(PrefContext->MixerWindow->hWnd, (i + 1) * IDC_LINE_SEP);
         if (hDlgCtrl != NULL)
         {
index 9a5578d..64ce3ac 100644 (file)
@@ -1000,16 +1000,28 @@ MainWindowProc(HWND hwnd,
                             /* compute window id of line name static control */
                             CtrlID = LineOffset * IDC_LINE_NAME;
 
-                            /* get line name */
-                            if (GetDlgItemTextW(hwnd, CtrlID, Context.LineName, MIXER_LONG_NAME_CHARS) != 0)
+                            if (Preferences.MixerWindow->Mixer->MixerId == PLAY_MIXER)
+                            {
+                                /* get line name */
+                                if (GetDlgItemTextW(hwnd, CtrlID, Context.LineName, MIXER_LONG_NAME_CHARS) != 0)
+                                {
+                                    /* setup context */
+                                    Context.SliderPos = SendMessage((HWND)lParam, BM_GETCHECK, 0, 0);
+                                    Context.bVertical = FALSE;
+                                    Context.bSwitch = TRUE;
+
+                                    /* set volume */
+                                    SndMixerEnumConnections(Preferences.MixerWindow->Mixer, Preferences.SelectedLine, SetVolumeCallback, (LPVOID)&Context);
+                                }
+                            }
+                            else if (Preferences.MixerWindow->Mixer->MixerId == RECORD_MIXER)
                             {
-                                /* setup context */
-                                Context.SliderPos = SendMessage((HWND)lParam, BM_GETCHECK, 0, 0);
-                                Context.bVertical = FALSE;
-                                Context.bSwitch = TRUE;
+                                UINT i;
 
-                                /* set volume */
-                                SndMixerEnumConnections(Preferences.MixerWindow->Mixer, Preferences.SelectedLine, SetVolumeCallback, (LPVOID)&Context);
+                                for (i = 0; i < Preferences.MixerWindow->DialogCount; i++)
+                                {
+                                    SendDlgItemMessageW(hwnd, (i + 1) * IDC_LINE_SWITCH, BM_SETCHECK, (WPARAM)((i + 1) == LineOffset), 0);
+                                }
                             }
                         }
                         else if (CtrlID % IDC_LINE_ADVANCED == 0)