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. |