OSDN Git Service

WASAPIの排他モード・共有モードを切り替えられるようにした。
[winaudioj/async.git] / async / toplevel_window.cpp
index f96cdcd..b47e247 100644 (file)
@@ -399,6 +399,9 @@ struct toplevel_window::impl : public base_win32_dialog_t
        case IDC_REPEAT_CHECK:
          application::instance()->repeat_mode(::SendMessage(GetDlgItem(hwnd_,IDC_REPEAT_CHECK),BM_GETCHECK,0,0) == BST_CHECKED);
          return TRUE;
+       case IDC_EXC_MODE:
+         application::instance()->exclusive_mode(::SendMessage(GetDlgItem(hwnd_,IDC_EXC_MODE),BM_GETCHECK,0,0) == BST_CHECKED);
+         return TRUE;
        }
  
       //if(HIWORD(wParam) == THBN_CLICKED ){
@@ -470,6 +473,7 @@ struct toplevel_window::impl : public base_win32_dialog_t
     enable_control(IDC_PAUSE,false);
     enable_control(IDC_SLIDER,true);
     enable_control(IDC_STOP,false);
+    enable_control(IDC_EXC_MODE,true);
   }
 
   void play()
@@ -488,6 +492,7 @@ struct toplevel_window::impl : public base_win32_dialog_t
     ::SetWindowText(GetDlgItem(hwnd_,IDC_PAUSE),L"一時停止");
     enable_control(IDC_SLIDER,true);
     enable_control(IDC_FILE,false);
+    enable_control(IDC_EXC_MODE,false);
   }
 
   void stop()
@@ -506,6 +511,7 @@ struct toplevel_window::impl : public base_win32_dialog_t
     enable_control(IDC_SLIDER,true);
     ::SendMessage(GetDlgItem(hwnd_,IDC_SLIDER), TBM_SETPOS, (WPARAM)TRUE, (LPARAM)0);
     enable_control(IDC_FILE,true);
+    enable_control(IDC_EXC_MODE,true);
   }
   
   void pause()
@@ -524,6 +530,7 @@ struct toplevel_window::impl : public base_win32_dialog_t
     ::SetWindowText(GetDlgItem(hwnd_,IDC_PAUSE),L"再開");
     enable_control(IDC_SLIDER,true);
     enable_control(IDC_FILE,false);
+    enable_control(IDC_EXC_MODE,false);
   }
 
   virtual void create(){