From: <pst...@us...> - 2008-04-06 01:48:10
|
Revision: 404 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=404&view=rev Author: pstieber Date: 2008-04-05 18:48:08 -0700 (Sat, 05 Apr 2008) Log Message: ----------- Got toggling the metronome in the track frame working. Modified Paths: -------------- trunk/jazz/src/Metronome.cpp trunk/jazz/src/Metronome.h trunk/jazz/src/Player.cpp trunk/jazz/src/Project.cpp trunk/jazz/src/Project.h trunk/jazz/src/Resources.h trunk/jazz/src/Song.cpp trunk/jazz/src/Song.h trunk/jazz/src/TrackFrame.cpp trunk/jazz/src/TrackFrame.h Modified: trunk/jazz/src/Metronome.cpp =================================================================== --- trunk/jazz/src/Metronome.cpp 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Metronome.cpp 2008-04-06 01:48:08 UTC (rev 404) @@ -27,31 +27,45 @@ #include "Globals.h" #include "Events.h" -tMetronomeInfo::tMetronomeInfo() - : KeyAcc(36), - KeyNorm(37), - Veloc(127), - IsOn(0), - IsAccented(1) +JZMetronomeInfo::JZMetronomeInfo() + : mKeyNormal(37), + mKeyAccented(36), + mVelocity(127), + mIsOn(false), + mIsAccented(true) { } -tKeyOn* tMetronomeInfo::Normal(int clock) +void JZMetronomeInfo::ReadFromConfiguration() { + mIsAccented = (gpConfig->GetValue(C_MetroIsAccented) != 0); + mVelocity = gpConfig->GetValue(C_MetroVelocity); + mKeyNormal = gpConfig->GetValue(C_MetroNormalClick); + mKeyAccented = gpConfig->GetValue(C_MetroAccentedClick); +} + +void JZMetronomeInfo::ToggleIsOn() +{ + mIsOn = !mIsOn; +} + +tKeyOn* JZMetronomeInfo::CreateNormalEvent(int Clock) const +{ return new tKeyOn( - clock, + Clock, gpConfig->GetValue(C_DrumChannel) - 1, - KeyNorm, - Veloc, + mKeyNormal, + mVelocity, 15); } -tKeyOn* tMetronomeInfo::Accented(int clock) +tKeyOn* JZMetronomeInfo::CreateAccentedEvent(int Clock) const { return new tKeyOn( - clock, + Clock, gpConfig->GetValue(C_DrumChannel) - 1, - KeyAcc, - Veloc, + mKeyAccented, + mVelocity, 15); } + Modified: trunk/jazz/src/Metronome.h =================================================================== --- trunk/jazz/src/Metronome.h 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Metronome.h 2008-04-06 01:48:08 UTC (rev 404) @@ -25,21 +25,49 @@ class tKeyOn; -class tMetronomeInfo +//***************************************************************************** +//***************************************************************************** +class JZMetronomeInfo { public: - tMetronomeInfo(); + JZMetronomeInfo(); - tKeyOn* Normal(int clock); + void ReadFromConfiguration(); - tKeyOn* Accented(int clock); + bool IsOn() const; - unsigned char KeyAcc; - unsigned char KeyNorm; - unsigned char Veloc; - int IsOn; - int IsAccented; + bool IsAccented() const; + + void ToggleIsOn(); + + tKeyOn* CreateNormalEvent(int Clock) const; + + tKeyOn* CreateAccentedEvent(int Clock) const; + + private: + + unsigned char mKeyNormal; + + unsigned char mKeyAccented; + + unsigned char mVelocity; + + bool mIsOn; + + bool mIsAccented; }; +inline +bool JZMetronomeInfo::IsOn() const +{ + return mIsOn; +} + +inline +bool JZMetronomeInfo::IsAccented() const +{ + return mIsAccented; +} + #endif // !defined(JZ_METRONOME_H) Modified: trunk/jazz/src/Player.cpp =================================================================== --- trunk/jazz/src/Player.cpp 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Player.cpp 2008-04-06 01:48:08 UTC (rev 404) @@ -166,7 +166,7 @@ From, mStopClock, buf, - &gpProject->mMetronomeInfo, + gpProject->GetMetronomeInfo(), Delta, Mode); @@ -181,7 +181,7 @@ From, From + Size, buf, - &gpProject->mMetronomeInfo, + gpProject->GetMetronomeInfo(), Delta, Mode); } Modified: trunk/jazz/src/Project.cpp =================================================================== --- trunk/jazz/src/Project.cpp 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Project.cpp 2008-04-06 01:48:08 UTC (rev 404) @@ -141,10 +141,7 @@ mNumBars = 0; - mMetronomeInfo.IsAccented = mpConfig->GetValue(C_MetroIsAccented); - mMetronomeInfo.Veloc = mpConfig->GetValue(C_MetroVelocity); - mMetronomeInfo.KeyNorm = mpConfig->GetValue(C_MetroNormalClick); - mMetronomeInfo.KeyAcc = mpConfig->GetValue(C_MetroAccentedClick); + mMetronomeInfo.ReadFromConfiguration(); if (mpConfig->StrValue(C_SynthType)) { @@ -581,14 +578,34 @@ } //----------------------------------------------------------------------------- +// Description: +// Returns a constant reference to the metronome. //----------------------------------------------------------------------------- -tMetronomeInfo JZProject::GetMetronome() +const JZMetronomeInfo& JZProject::GetMetronomeInfo() { return mMetronomeInfo; } //----------------------------------------------------------------------------- // Description: +// Toggles the "is on" state of the metronome. +//----------------------------------------------------------------------------- +void JZProject::ToggleMetronome() +{ + mMetronomeInfo.ToggleIsOn(); +} + +//----------------------------------------------------------------------------- +// Description: +// Returns the "is on" state of the metronome. +//----------------------------------------------------------------------------- +bool JZProject::IsMetronomeOn() const +{ + return mMetronomeInfo.IsOn(); +} + +//----------------------------------------------------------------------------- +// Description: // Returns a constant pointer to the internal RecInfo member. //----------------------------------------------------------------------------- JZRecordingInfo* JZProject::GetRecInfo() Modified: trunk/jazz/src/Project.h =================================================================== --- trunk/jazz/src/Project.h 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Project.h 2008-04-06 01:48:08 UTC (rev 404) @@ -67,12 +67,18 @@ // Not yet sure what this does JZFilter* Filter; - // Stores metrome information - tMetronomeInfo mMetronomeInfo; + // Description: + // Returns a constant reference to the metronome. + const JZMetronomeInfo& GetMetronomeInfo(); - // Returns the internal pointer to the metronome - tMetronomeInfo GetMetronome(); + // Description: + // Toggles the "is on" state of the metronome. + void ToggleMetronome(); + // Description: + // Returns the "is on" state of the metronome. + bool IsMetronomeOn() const; + // Number of bars int mNumBars; @@ -169,6 +175,9 @@ JZRecordingInfo* mpRecInfo; + // Stores metronome information. + JZMetronomeInfo mMetronomeInfo; + bool mChanged; bool mIsPlaying; Modified: trunk/jazz/src/Resources.h =================================================================== --- trunk/jazz/src/Resources.h 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Resources.h 2008-04-06 01:48:08 UTC (rev 404) @@ -45,7 +45,7 @@ #define ID_SNAP_16D wxID_HIGHEST + 11 #define ID_MIXER wxID_HIGHEST + 12 #define ID_PIANOWIN wxID_HIGHEST + 13 -#define ID_METRONOME_ON wxID_HIGHEST + 14 +#define ID_METRONOME_TOGGLE wxID_HIGHEST + 14 #define ID_PLAY wxID_HIGHEST + 15 #define ID_PLAY_LOOP wxID_HIGHEST + 16 Modified: trunk/jazz/src/Song.cpp =================================================================== --- trunk/jazz/src/Song.cpp 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Song.cpp 2008-04-06 01:48:08 UTC (rev 404) @@ -181,15 +181,17 @@ int FrClock, int ToClock, tEventArray *Destin, - tMetronomeInfo *MetronomeInfo, + const JZMetronomeInfo& MetronomeInfo, int delta, int mode) { int i; // Make metronome - if (MetronomeInfo->IsOn) - MakeMetronome( FrClock, ToClock, Destin, MetronomeInfo, delta ); + if (MetronomeInfo.IsOn()) + { + MakeMetronome(FrClock, ToClock, Destin, MetronomeInfo, delta); + } // Find Solo-Tracks int solo = 0; @@ -305,7 +307,7 @@ int FrClock, int ToClock, tEventArray *Destin, - tMetronomeInfo *MetronomeInfo, + const JZMetronomeInfo& MetronomeInfo, int delta) { JZBarInfo BarInfo( this ); @@ -329,13 +331,13 @@ } // Insert normal click always - Destin->Put( MetronomeInfo->Normal(clk + delta) ); + Destin->Put(MetronomeInfo.CreateNormalEvent(clk + delta)); // On a bar? - if ( (count == 1) && (MetronomeInfo->IsAccented) ) + if (count == 1 && MetronomeInfo.IsAccented()) { // Insert accented click also - Destin->Put( MetronomeInfo->Accented(clk + delta) ); + Destin->Put(MetronomeInfo.CreateAccentedEvent(clk + delta)); } clk += BarInfo.TicksPerBar / BarInfo.CountsPerBar; Modified: trunk/jazz/src/Song.h =================================================================== --- trunk/jazz/src/Song.h 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/Song.h 2008-04-06 01:48:08 UTC (rev 404) @@ -27,7 +27,7 @@ #include "Configuration.h" #include "Globals.h" -class tMetronomeInfo; +class JZMetronomeInfo; class JZSong; class JZBarInfo @@ -64,7 +64,7 @@ int FrClock, int ToClock, tEventArray *Destin, - tMetronomeInfo* MetronomeInfo, + const JZMetronomeInfo& MetronomeInfo, int delta = 0); public: @@ -103,7 +103,7 @@ int FrClock, int ToClock, tEventArray *Destin, - tMetronomeInfo* MetronomeInfo, + const JZMetronomeInfo& MetronomeInfo, int DeltaClock = 0, int mode = 0); Modified: trunk/jazz/src/TrackFrame.cpp =================================================================== --- trunk/jazz/src/TrackFrame.cpp 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/TrackFrame.cpp 2008-04-06 01:48:08 UTC (rev 404) @@ -82,7 +82,7 @@ EVT_MENU(ID_PIANOWIN, JZTrackFrame::OnPianoWindow) - EVT_MENU(ID_METRONOME_ON, JZTrackFrame::OnMetroOn) + EVT_MENU(ID_METRONOME_TOGGLE, JZTrackFrame::OnMetroOn) EVT_MENU(wxID_ZOOM_IN, JZTrackFrame::OnZoomIn) @@ -134,11 +134,6 @@ // "Piano", // wxDefaultPosition, // wxSize(640, 480)); - - MetronomeInfo.IsAccented = gpConfig->GetValue(C_MetroIsAccented); - MetronomeInfo.Veloc = gpConfig->GetValue(C_MetroVelocity); - MetronomeInfo.KeyNorm = gpConfig->GetValue(C_MetroNormalClick); - MetronomeInfo.KeyAcc = gpConfig->GetValue(C_MetroAccentedClick); } //----------------------------------------------------------------------------- @@ -164,10 +159,10 @@ { ID_MIXER, false, mixer_xpm, "mixer" }, { ID_PIANOWIN, false, pianowin_xpm, "show piano window" }, { JZToolBar::eToolBarSeparator }, - { ID_PLAY, false, play_xpm, "start play"}, - { ID_PLAY_LOOP, false, playloop_xpm, "loop play"}, - { ID_RECORD, false, record_xpm, "record"}, - { ID_METRONOME, true, metro_xpm, "metronome" }, + { ID_PLAY, false, play_xpm, "start play"}, + { ID_PLAY_LOOP, false, playloop_xpm, "loop play"}, + { ID_RECORD, false, record_xpm, "record"}, + { ID_METRONOME_TOGGLE, true, metro_xpm, "metronome" }, { JZToolBar::eToolBarSeparator }, { wxID_ZOOM_IN, false, zoomin_xpm, "zoom in" }, { wxID_ZOOM_OUT, false, zoomout_xpm, "zoom out"}, @@ -517,7 +512,7 @@ //----------------------------------------------------------------------------- void JZTrackFrame::OnMetroOn(wxCommandEvent& Event) { - MetronomeInfo.IsOn = !MetronomeInfo.IsOn; + gpProject->ToggleMetronome(); } //----------------------------------------------------------------------------- Modified: trunk/jazz/src/TrackFrame.h =================================================================== --- trunk/jazz/src/TrackFrame.h 2008-04-06 01:46:32 UTC (rev 403) +++ trunk/jazz/src/TrackFrame.h 2008-04-06 01:48:08 UTC (rev 404) @@ -54,8 +54,6 @@ // Overridden tButtonLabelInterface finction. virtual void ButtonLabelDisplay(const wxString& Text, bool IsButtonDown); - tMetronomeInfo MetronomeInfo; - private: void OnMetroOn(wxCommandEvent& Event); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |