|
From: <pst...@us...> - 2008-04-28 01:31:06
|
Revision: 478
http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=478&view=rev
Author: pstieber
Date: 2008-04-27 18:30:56 -0700 (Sun, 27 Apr 2008)
Log Message:
-----------
Added a MIDI channel knob control.
Modified Paths:
--------------
trunk/jazz/src/Dialogs/TrackDialog.cpp
trunk/jazz/src/Dialogs/TrackDialog.h
Modified: trunk/jazz/src/Dialogs/TrackDialog.cpp
===================================================================
--- trunk/jazz/src/Dialogs/TrackDialog.cpp 2008-04-28 01:27:11 UTC (rev 477)
+++ trunk/jazz/src/Dialogs/TrackDialog.cpp 2008-04-28 01:30:56 UTC (rev 478)
@@ -21,14 +21,30 @@
#include "WxWidgets.h"
#include "TrackDialog.h"
+#include "../Knob.h"
#include "../Track.h"
#include "../Configuration.h"
#include "../Globals.h"
+#include "../Resources.h"
+#include <sstream>
+
using namespace std;
//*****************************************************************************
//*****************************************************************************
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+BEGIN_EVENT_TABLE(JZTrackDialog, wxDialog)
+
+ EVT_KNOB_CHANGED(IDC_KB_CHANNEL, JZTrackDialog::OnChannelChange)
+
+ EVT_BUTTON(wxID_HELP, JZTrackDialog::OnHelp)
+
+END_EVENT_TABLE()
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
JZTrackDialog::JZTrackDialog(JZTrack& Track, wxWindow* pParent)
: wxDialog(pParent, wxID_ANY, wxString("Track Settings")),
mTrack(Track),
@@ -73,6 +89,10 @@
}
}
+ mpChannelValue = new wxStaticText(this, wxID_ANY, "00");
+
+ mpChannelKnob = new JZKnob(this, IDC_KB_CHANNEL, 0, 1, 16);
+
wxButton* pOkButton = new wxButton(this, wxID_OK, "&OK");
wxButton* pCancelButton = new wxButton(this, wxID_CANCEL, "Cancel");
wxButton* pHelpButton = new wxButton(this, wxID_HELP, "Help");
@@ -94,6 +114,21 @@
4);
pTopSizer->Add(mpPatchListBox, 0, wxGROW | wxALL, 4);
+ wxFlexGridSizer* pFlexGridSizer = new wxFlexGridSizer(1, 3, 4, 2);
+
+ pFlexGridSizer->Add(
+ new wxStaticText(this, wxID_ANY, "Channel:"),
+ 0,
+ wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
+ pFlexGridSizer->Add(
+ mpChannelValue,
+ 0,
+ wxALIGN_CENTER_VERTICAL | wxFIXED_MINSIZE);
+ pFlexGridSizer->Add(mpChannelKnob, 0, wxALIGN_CENTER_VERTICAL);
+
+ pTopSizer->Add(pFlexGridSizer, 0, wxCENTER | wxALL, 2);
+
+
wxBoxSizer* pButtonSizer = new wxBoxSizer(wxHORIZONTAL);
pButtonSizer->Add(pOkButton, 0, wxALL, 5);
pButtonSizer->Add(pCancelButton, 0, wxALL, 5);
@@ -117,6 +152,13 @@
int PatchIndex = mTrack.GetPatch() + (mTrack.GetBank() << 8);
mpPatchListBox->SetSelection(PatchIndex);
+ ostringstream Oss;
+
+ Oss << (int)mTrack.Channel;
+ mpChannelValue->SetLabel(Oss.str().c_str());
+
+ mpChannelKnob->SetValue(mTrack.Channel);
+
return true;
}
@@ -134,7 +176,25 @@
int Bank = (Selection & 0x0000ff00) >> 8;
mTrack.SetPatch(Patch);
mTrack.SetBank(Bank);
+ mTrack.Channel = mpChannelKnob->GetValue();
}
return true;
}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+void JZTrackDialog::OnChannelChange(JZKnobEvent& Event)
+{
+ int Value = Event.GetValue();
+ ostringstream Oss;
+ Oss << Value;
+ mpChannelValue->SetLabel(Oss.str().c_str());
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+void JZTrackDialog::OnHelp(wxCommandEvent& Event)
+{
+// gpHelpInstance->ShowTopic("Track Dialog");
+}
Modified: trunk/jazz/src/Dialogs/TrackDialog.h
===================================================================
--- trunk/jazz/src/Dialogs/TrackDialog.h 2008-04-28 01:27:11 UTC (rev 477)
+++ trunk/jazz/src/Dialogs/TrackDialog.h 2008-04-28 01:30:56 UTC (rev 478)
@@ -23,6 +23,9 @@
class JZTrack;
class wxTextCtrl;
+class wxStaticText;
+class JZKnobEvent;
+class JZKnob;
//*****************************************************************************
//*****************************************************************************
@@ -38,6 +41,10 @@
virtual bool TransferDataFromWindow();
+ void OnChannelChange(JZKnobEvent& Event);
+
+ void OnHelp(wxCommandEvent& Event);
+
private:
JZTrack& mTrack;
@@ -45,6 +52,12 @@
wxTextCtrl* mpTrackNameEdit;
wxListBox* mpPatchListBox;
+
+ wxStaticText* mpChannelValue;
+
+ JZKnob* mpChannelKnob;
+
+ DECLARE_EVENT_TABLE();
};
#endif // !defined(JZ_TRACKDIALOG_H)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|