summaryrefslogtreecommitdiffstats
path: root/src/MIDIDeviceSheet.cpp
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2013-09-15 21:57:55 -0700
committerKaz Kylheku <kaz@kylheku.com>2013-09-15 21:57:55 -0700
commit672e606b6d857e370ac75c076a1b2982e5bccd67 (patch)
tree46dcaace1126e2b2c2f785e42f562fe5c7718484 /src/MIDIDeviceSheet.cpp
downloadsekaiju-672e606b6d857e370ac75c076a1b2982e5bccd67.tar.gz
sekaiju-672e606b6d857e370ac75c076a1b2982e5bccd67.tar.bz2
sekaiju-672e606b6d857e370ac75c076a1b2982e5bccd67.zip
Converted Sekaiju 3.6 to Visual Studio 2008.
Diffstat (limited to 'src/MIDIDeviceSheet.cpp')
-rw-r--r--src/MIDIDeviceSheet.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/MIDIDeviceSheet.cpp b/src/MIDIDeviceSheet.cpp
new file mode 100644
index 0000000..f8ee5bb
--- /dev/null
+++ b/src/MIDIDeviceSheet.cpp
@@ -0,0 +1,93 @@
+//******************************************************************************
+// MIDIシーケンサーソフト『世界樹』
+// MIDIデバイスプロパティシートクラス
+// (C)2002-2013 おーぷんMIDIぷろじぇくと/くず
+//******************************************************************************
+
+/* 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 */
+
+#include "winver.h"
+#include <afxwin.h>
+#include <afxext.h>
+#include "../../MIDIIO/MIDIIO.h"
+#include "../../MIDIData/MIDIData.h"
+#include "../../MIDIClock/MIDIClock.h"
+#include "../../MIDIStatus/MIDIStatus.h"
+#include "../../MIDIInstrument/MIDIInstrument.h"
+#include "SekaijuApp.h"
+#include "MIDIInDevicePage.h"
+#include "MIDIOutDevicePage.h"
+#include "MIDIInstDefNormPage.h"
+#include "MIDIInstDefDrumPage.h"
+#include "MIDIDeviceSheet.h"
+
+//------------------------------------------------------------------------------
+// 構築と破壊
+//------------------------------------------------------------------------------
+
+// コンストラクタ
+CMIDIDeviceSheet::CMIDIDeviceSheet (CWnd* pParentWnd)
+ :CPropertySheet (IDS_MIDIDEVICE_AND_INSTRUMENT, pParentWnd) {
+ AddPage (&m_theMIDIInDevicePage);
+ AddPage (&m_theMIDIOutDevicePage);
+ AddPage (&m_theMIDIInstDefNormPage);
+ AddPage (&m_theMIDIInstDefDrumPage);
+}
+
+// デストラクタ
+CMIDIDeviceSheet::~CMIDIDeviceSheet () {
+}
+
+//------------------------------------------------------------------------------
+// オーバーライド
+//------------------------------------------------------------------------------
+
+// 初期化時
+BOOL CMIDIDeviceSheet::OnInitDialog() {
+ BOOL bResult = CPropertySheet::OnInitDialog();
+ CSekaijuApp* pSekaijuApp = (CSekaijuApp*)AfxGetApp ();
+ SetActivePage (pSekaijuApp->m_theCurrentPage.m_lMIDIDevice);
+ return bResult;
+}
+
+// コマンド時
+BOOL CMIDIDeviceSheet::OnCommand (WPARAM wParam, LPARAM lParam) {
+ // 『OK』又は『キャンセル』ボタンが押された
+ if (LOWORD (wParam) == IDOK || LOWORD (wParam) == IDCANCEL) {
+ CSekaijuApp* pSekaijuApp = (CSekaijuApp*)AfxGetApp ();
+ pSekaijuApp->m_theCurrentPage.m_lMIDIDevice = GetActiveIndex ();
+ }
+ return CPropertySheet::OnCommand(wParam, lParam);
+}
+
+//------------------------------------------------------------------------------
+// メッセージマップ
+//------------------------------------------------------------------------------
+
+BEGIN_MESSAGE_MAP (CMIDIDeviceSheet, CPropertySheet)
+ ON_BN_CLICKED (ID_APPLY_NOW, OnApplyNow)
+END_MESSAGE_MAP ()
+
+// 『適用』ボタンが押された
+void CMIDIDeviceSheet::OnApplyNow () {
+ CSekaijuApp* pSekaijuApp = (CSekaijuApp*)AfxGetApp ();
+ GetActivePage ()->UpdateData (TRUE);
+ pSekaijuApp->ApplyMIDIDeviceSheet (this);
+ m_theMIDIInDevicePage.SetModified (FALSE);
+ m_theMIDIOutDevicePage.SetModified (FALSE);
+ m_theMIDIInstDefNormPage.SetModified (FALSE);
+ m_theMIDIInstDefDrumPage.SetModified (FALSE);
+}
+