|
From: <pst...@us...> - 2013-03-17 23:18:13
|
Revision: 968
http://sourceforge.net/p/jazzplusplus/code/968
Author: pstieber
Date: 2013-03-17 23:18:10 +0000 (Sun, 17 Mar 2013)
Log Message:
-----------
Started adding rhythm generator and added import and export of ASCII MIDI files,
but commented out the menu entries because this is for debugging.
Modified Paths:
--------------
trunk/jazz/src/Project.cpp
trunk/jazz/src/Project.h
trunk/jazz/src/Track.cpp
trunk/jazz/src/Track.h
trunk/jazz/src/TrackFrame.cpp
trunk/jazz/src/TrackFrame.h
Modified: trunk/jazz/src/Project.cpp
===================================================================
--- trunk/jazz/src/Project.cpp 2013-03-17 23:13:43 UTC (rev 967)
+++ trunk/jazz/src/Project.cpp 2013-03-17 23:18:10 UTC (rev 968)
@@ -22,6 +22,7 @@
#include "Project.h"
+#include "AsciiMidiFile.h"
#include "Filter.h"
#include "GetOptionIndex.h"
#include "Globals.h"
@@ -515,12 +516,28 @@
{
JZStandardRead Io;
Clear();
- Read(Io, SongFileName.c_str());
+ Read(Io, SongFileName);
mpConfig->Put(C_StartUpSong, SongFileName);
}
//-----------------------------------------------------------------------------
// Description:
+// Open and read an ASCII MIDI file.
+//
+// Inputs:
+// const wxString& SongFileName:
+// Song path and file name.
+//-----------------------------------------------------------------------------
+void JZProject::OpenAndReadAsciiMidiFile(const wxString& AsciiMidiFileName)
+{
+ JZAsciiRead AsciiRead;
+ Clear();
+ Read(AsciiRead, AsciiMidiFileName);
+// mpConfig->Put(C_StartUpSong, SongFileName);
+}
+
+//-----------------------------------------------------------------------------
+// Description:
// Save a MIDI file. This function will overwrite the file if it already
// exists!
//
@@ -531,12 +548,20 @@
void JZProject::ExportMidiFile(const wxString& MidiFileName)
{
JZStandardWrite Io;
- Write(Io, MidiFileName.c_str());
+ Write(Io, MidiFileName);
mpConfig->Put(C_StartUpSong, MidiFileName);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+void JZProject::ExportAsciiMidiFile(const wxString& AsciiMidiFileName)
+{
+ JZAsciiWrite AsciiWrite;
+ Write(AsciiWrite, AsciiMidiFileName);
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
void JZProject::Play()
{
mIsPlaying = true;
Modified: trunk/jazz/src/Project.h
===================================================================
--- trunk/jazz/src/Project.h 2013-03-17 23:13:43 UTC (rev 967)
+++ trunk/jazz/src/Project.h 2013-03-17 23:18:10 UTC (rev 968)
@@ -112,6 +112,8 @@
// Song path and file name.
void OpenSong(const wxString& SongFileName);
+ void OpenAndReadAsciiMidiFile(const wxString& AsciiMidiFileName);
+
// Description:
// Save a MIDI file. This function will overwrite the file if it
// already exists!
@@ -121,6 +123,8 @@
// MIDI file path and file name.
void ExportMidiFile(const wxString& MidiFileName);
+ void ExportAsciiMidiFile(const wxString& AsciiMidiFileName);
+
// Here is the new play interface. For now it just acts as a layer
// between the Project and the GUI.
// Returns true during playback
Modified: trunk/jazz/src/Track.cpp
===================================================================
--- trunk/jazz/src/Track.cpp 2013-03-17 23:13:43 UTC (rev 967)
+++ trunk/jazz/src/Track.cpp 2013-03-17 23:18:10 UTC (rev 968)
@@ -23,8 +23,8 @@
#include "Track.h"
#include "Configuration.h"
+#include "Dialogs/TrackDialog.h"
#include "DrumUtilities.h"
-#include "Dialogs/TrackDialog.h"
#include "Globals.h"
#include "JazzPlusPlusApplication.h"
#include "Player.h"
@@ -44,7 +44,7 @@
return mMsb.Write(Io) + mLsb.Write(Io) + mDataMsb.Write(Io);
}
-void JZParam::SetCha(unsigned char Channel)
+void JZParam::SetChannel(unsigned char Channel)
{
mMsb.SetChannel(Channel);
mLsb.SetChannel(Channel);
@@ -68,7 +68,7 @@
unsigned char *data)
{
int length = 9 + datalen;
- unsigned char *mess = new unsigned char[length];
+ unsigned char* mess = new unsigned char[length];
mess[0] = 0x41;
mess[1] = 0x10;
mess[2] = 0x42;
@@ -185,15 +185,15 @@
String = Oss.str();
}
-JZMtcOffsetEvent *JZMtcTime::ToOffset()
+JZMtcOffsetEvent* JZMtcTime::ToOffset()
{
- unsigned char *mess = new unsigned char[5];
+ unsigned char* mess = new unsigned char[5];
mess[0] = (unsigned char) hour | ((unsigned char) type << 5);
mess[1] = (unsigned char) min;
mess[2] = (unsigned char) sec;
mess[3] = (unsigned char) fm;
mess[4] = 0x00;
- JZMtcOffsetEvent *s = new JZMtcOffsetEvent(0, mess, 5);
+ JZMtcOffsetEvent* s = new JZMtcOffsetEvent(0, mess, 5);
delete mess;
return s;
}
@@ -205,7 +205,7 @@
return msec;
}
-JZDrumInstrumentParameter::JZDrumInstrumentParameter(JZNrpn *par)
+JZDrumInstrumentParameter::JZDrumInstrumentParameter(JZNrpn* par)
: mPitch(par->mLsb.GetControlValue()),
mpNext(0)
{
@@ -216,18 +216,18 @@
param[drumParam2Index(par->mMsb.GetControlValue())] = par;
}
-JZNrpn *JZDrumInstrumentParameter::Get(int index)
+JZNrpn* JZDrumInstrumentParameter::Get(int index)
{
assert((index >= drumPitchIndex) && (index < numDrumParameters));
return(param[index]);
}
-void JZDrumInstrumentParameter::Put(JZNrpn *par)
+void JZDrumInstrumentParameter::Put(JZNrpn* par)
{
param[par->mLsb.GetControlValue()] = par;
}
-JZDrumInstrumentParameter *JZDrumInstrumentParameter::Next()
+JZDrumInstrumentParameter* JZDrumInstrumentParameter::Next()
{
return mpNext;
}
@@ -237,10 +237,10 @@
return mPitch;
}
-JZDrumInstrumentParameter
-*JZDrumInstrumentParameterList::GetElem(int pit)
+JZDrumInstrumentParameter*
+JZDrumInstrumentParameterList::GetElem(int pit)
{
- JZDrumInstrumentParameter *ptr = list;
+ JZDrumInstrumentParameter* ptr = list;
while (ptr)
{
if (ptr->mPitch == pit)
@@ -252,9 +252,9 @@
return ptr;
}
-JZNrpn *JZDrumInstrumentParameterList::GetParam(int pit, int index)
+JZNrpn* JZDrumInstrumentParameterList::GetParam(int pit, int index)
{
- JZDrumInstrumentParameter *ptr = GetElem(pit);
+ JZDrumInstrumentParameter* ptr = GetElem(pit);
if (ptr)
{
return ptr->Get(index);
@@ -262,7 +262,7 @@
return 0;
}
-void JZDrumInstrumentParameterList::PutParam(JZNrpn *par)
+void JZDrumInstrumentParameterList::PutParam(JZNrpn* par)
{
JZDrumInstrumentParameter* ptr = GetElem(par->mLsb.GetControlValue());
if (!ptr)
@@ -281,7 +281,7 @@
{
if (list)
{
- JZDrumInstrumentParameter *elem = GetElem(pit);
+ JZDrumInstrumentParameter* elem = GetElem(pit);
if (elem)
{
if (elem->Get(index))
@@ -300,8 +300,8 @@
DelParam(pit, i);
}
- JZDrumInstrumentParameter *ptr = list;
- JZDrumInstrumentParameter *prev = 0;
+ JZDrumInstrumentParameter* ptr = list;
+ JZDrumInstrumentParameter* prev = 0;
while (ptr)
{
if (ptr->mPitch == pit)
@@ -322,17 +322,17 @@
}
}
-JZDrumInstrumentParameter *JZDrumInstrumentParameterList::FirstElem()
+JZDrumInstrumentParameter* JZDrumInstrumentParameterList::FirstElem()
{
return list;
}
-JZDrumInstrumentParameter *JZDrumInstrumentParameterList::NextElem(
- JZDrumInstrumentParameter *cur)
+JZDrumInstrumentParameter* JZDrumInstrumentParameterList::NextElem(
+ JZDrumInstrumentParameter* cur)
{
if (cur)
{
- JZDrumInstrumentParameter *ptr = GetElem(cur->mPitch);
+ JZDrumInstrumentParameter* ptr = GetElem(cur->mPitch);
if (ptr)
{
return ptr->mpNext;
@@ -350,7 +350,7 @@
void JZDrumInstrumentParameterList::Clear()
{
- JZDrumInstrumentParameter *ptr = list;
+ JZDrumInstrumentParameter* ptr = list;
while (ptr)
{
list = ptr->mpNext;
@@ -655,17 +655,17 @@
-static int compare(const void *p1, const void *p2)
+static int compare(const void* p1, const void* p2)
{
- JZEvent *e1 = *(JZEvent **)p1;
- JZEvent *e2 = *(JZEvent **)p2;
+ JZEvent* e1 = *(JZEvent **)p1;
+ JZEvent* e2 = *(JZEvent **)p2;
return e1->Compare(*e2);
}
void JZSimpleEventArray::Sort()
{
- qsort(mppEvents, nEvents, sizeof(JZEvent *), compare);
+ qsort(mppEvents, nEvents, sizeof(JZEvent*), compare);
}
@@ -1157,7 +1157,7 @@
// kill all KeyOn's with non matching KeyOff's
for (i = 0; i < nEvents; i++)
{
- JZKeyOnEvent *k = mppEvents[i]->IsKeyOn();
+ JZKeyOnEvent* k = mppEvents[i]->IsKeyOn();
if (k && k->Length <= 0)
{
k->Kill();
@@ -1286,7 +1286,7 @@
BendPitchSens->Write(Io);
}
- JZDrumInstrumentParameter *dpar = DrumParams.FirstElem();
+ JZDrumInstrumentParameter* dpar = DrumParams.FirstElem();
while (dpar)
{
int index;
@@ -1630,7 +1630,7 @@
class JZTrackDlg : public wxForm
{
JZTrackWindow* TrackWin;
- JZTrack *trk;
+ JZTrack* trk;
std::string& mTrackName;
JZNamedChoice PatchChoice;
JZNamedChoice DeviceChoice;
@@ -1641,15 +1641,15 @@
int AudioMode;
public:
- JZTrackDlg::JZTrackDlg(JZTrackWindow *w, JZTrack *t);
- void EditForm(wxPanel *panel);
+ JZTrackDlg::JZTrackDlg(JZTrackWindow* w, JZTrack* t);
+ void EditForm(wxPanel* panel);
virtual void OnOk();
virtual void OnCancel();
virtual void OnHelp();
};
-JZTrackDlg::JZTrackDlg(JZTrackWindow *w, JZTrack *t)
+JZTrackDlg::JZTrackDlg(JZTrackWindow* w, JZTrack* t)
: wxForm(USED_WXFORM_BUTTONS),
PatchChoice(
"Patch",
@@ -1698,7 +1698,7 @@
trk->SetDevice(Device);
if (trk->ForceChannel)
{
- JZChannelEvent *c;
+ JZChannelEvent* c;
JZSysExEvent* s;
JZEventIterator Iterator(trk);
trk->Sort();
@@ -1707,7 +1707,7 @@
{
if ((c = pEvent->IsChannelEvent()) != 0)
{
- c = (JZChannelEvent *)pEvent->Copy();
+ c = (JZChannelEvent*)pEvent->Copy();
c->SetChannel(trk->Channel - 1);
trk->Kill(pEvent);
trk->Put(c);
@@ -1728,7 +1728,7 @@
*pChannel |= sysex_channel(trk->Channel);
}
- s = (JZSysExEvent *) pEvent->Copy();
+ s = (JZSysExEvent*) pEvent->Copy();
trk->Kill(pEvent);
trk->Put(s);
}
@@ -1738,39 +1738,39 @@
if (trk->VibRate)
{
- trk->VibRate->SetCha(trk->Channel - 1);
+ trk->VibRate->SetChannel(trk->Channel - 1);
}
if (trk->VibDepth)
{
- trk->VibDepth->SetCha(trk->Channel - 1);
+ trk->VibDepth->SetChannel(trk->Channel - 1);
}
if (trk->VibDelay)
{
- trk->VibDelay->SetCha(trk->Channel - 1);
+ trk->VibDelay->SetChannel(trk->Channel - 1);
}
if (trk->Cutoff)
{
- trk->Cutoff->SetCha(trk->Channel - 1);
+ trk->Cutoff->SetChannel(trk->Channel - 1);
}
if (trk->Resonance)
{
- trk->Resonance->SetCha(trk->Channel - 1);
+ trk->Resonance->SetChannel(trk->Channel - 1);
}
if (trk->EnvAttack)
{
- trk->EnvAttack->SetCha(trk->Channel - 1);
+ trk->EnvAttack->SetChannel(trk->Channel - 1);
}
if (trk->EnvDecay)
{
- trk->EnvDecay->SetCha(trk->Channel - 1);
+ trk->EnvDecay->SetChannel(trk->Channel - 1);
}
if (trk->EnvRelease)
{
- trk->EnvRelease->SetCha(trk->Channel - 1);
+ trk->EnvRelease->SetChannel(trk->Channel - 1);
}
if (trk->BendPitchSens)
{
- trk->BendPitchSens->SetCha(trk->Channel - 1);
+ trk->BendPitchSens->SetChannel(trk->Channel - 1);
}
if (trk->mpBank)
{
@@ -1782,14 +1782,14 @@
}
if (!trk->DrumParams.IsEmpty())
{
- JZDrumInstrumentParameter *dpar = trk->DrumParams.FirstElem();
+ JZDrumInstrumentParameter* dpar = trk->DrumParams.FirstElem();
while (dpar)
{
for (int index = drumPitchIndex; index < numDrumParameters; ++index)
{
if (dpar->Get(index))
{
- dpar->Get(index)->SetCha(trk->Channel - 1);
+ dpar->Get(index)->SetChannel(trk->Channel - 1);
}
}
dpar = trk->DrumParams.NextElem(dpar);
@@ -1801,7 +1801,7 @@
wxForm::OnOk();
}
-void JZTrackDlg::EditForm(wxPanel *panel)
+void JZTrackDlg::EditForm(wxPanel* panel)
{
PatchNr = trk->GetPatch() + (trk->GetBank() << 8);
Device = trk->GetDevice();
@@ -1911,7 +1911,7 @@
return Channel == gpConfig->GetValue(C_DrumChannel);
}
-void JZTrack::Merge(JZEventArray *t)
+void JZTrack::Merge(JZEventArray* t)
{
for (int i = 0; i < t->nEvents; i++)
{
@@ -1976,7 +1976,7 @@
{
if (mUndoCount > 0)
{
- JZUndoBuffer *undo = &mUndoBuffers[mUndoIndex];
+ JZUndoBuffer* undo = &mUndoBuffers[mUndoIndex];
for (int i = undo->nEvents - 1; i >= 0; i--)
{
JZEvent* pEvent = undo->mppEvents[i];
@@ -2006,7 +2006,7 @@
{
mUndoIndex = (mUndoIndex + 1) % MaxUndo;
- JZUndoBuffer *undo = &mUndoBuffers[mUndoIndex];
+ JZUndoBuffer* undo = &mUndoBuffers[mUndoIndex];
for (int i = 0; i < undo->nEvents; i++)
{
JZEvent* pEvent = undo->mppEvents[i];
@@ -2060,14 +2060,14 @@
{
if (mpCopyright)
{
- return (const char *)mpCopyright->GetData();
+ return (const char*)mpCopyright->GetData();
}
return "";
}
-void JZTrack::SetCopyright(char *str)
+void JZTrack::SetCopyright(char* str)
{
if (mpCopyright)
{
@@ -2080,7 +2080,7 @@
{
len = strlen(str);
}
- Put(new JZCopyrightEvent(0, (unsigned char *)str, len));
+ Put(new JZCopyrightEvent(0, (unsigned char*)str, len));
}
Cleanup();
}
@@ -2106,7 +2106,7 @@
{
Put(new JZTrackNameEvent(
0,
- (unsigned char *)pTrackName,
+ (unsigned char*)pTrackName,
strlen(pTrackName)));
}
Cleanup();
@@ -2608,7 +2608,7 @@
{
if (!DrumParams.IsEmpty())
{
- JZNrpn *par = DrumParams.GetParam(pitch, index);
+ JZNrpn* par = DrumParams.GetParam(pitch, index);
if (par)
{
return(par->GetVal() + 1);
@@ -2761,7 +2761,7 @@
if (pValue)
{
- return *pValue + 1;
+ return* pValue + 1;
}
return 0;
@@ -2955,7 +2955,7 @@
int JZTrack::GetChorusType(int lsb)
{
- const unsigned char *pValue = gpSynth->GetSysexValPtr(ChorusType);
+ const unsigned char* pValue = gpSynth->GetSysexValPtr(ChorusType);
if (pValue)
{
@@ -3112,7 +3112,7 @@
return 0;
}
-void JZTrack::SetPartRsrv(unsigned char *rsrv)
+void JZTrack::SetPartRsrv(unsigned char* rsrv)
{
if (PartialReserve)
{
@@ -3318,7 +3318,7 @@
Cleanup();
}
-JZSetTempoEvent *JZTrack::GetCurrentTempo(int clk)
+JZSetTempoEvent* JZTrack::GetCurrentTempo(int clk)
{
JZEventIterator Iterator(this);
Sort();
@@ -3338,7 +3338,7 @@
int JZTrack::GetCurrentSpeed(int clk)
{
- JZSetTempoEvent *t = GetCurrentTempo(clk);
+ JZSetTempoEvent* t = GetCurrentTempo(clk);
if (t)
{
return t->GetBPM();
Modified: trunk/jazz/src/Track.h
===================================================================
--- trunk/jazz/src/Track.h 2013-03-17 23:13:43 UTC (rev 967)
+++ trunk/jazz/src/Track.h 2013-03-17 23:18:10 UTC (rev 968)
@@ -79,18 +79,18 @@
public:
JZParam(
- int clk,
- int cha,
+ int Clock,
+ int Channel,
unsigned char id1,
unsigned char msb,
unsigned char id2,
unsigned char lsb,
unsigned char msbval)
- : mMsb(clk, cha, id1, msb),
- mLsb(clk, cha, id2, lsb),
- mDataMsb(clk, cha, 0x06, msbval),
- mResetMsb(clk, cha, id1, 0x7f),
- mResetLsb(clk, cha, id2, 0x7f)
+ : mMsb(Clock, Channel, id1, msb),
+ mLsb(Clock, Channel, id2, lsb),
+ mDataMsb(Clock, Channel, 0x06, msbval),
+ mResetMsb(Clock, Channel, id1, 0x7f),
+ mResetLsb(Clock, Channel, id2, 0x7f)
{
}
@@ -100,7 +100,7 @@
virtual int Write(JZWriteBase& Io);
- virtual void SetCha(unsigned char cha);
+ virtual void SetChannel(unsigned char Channel);
virtual int GetVal()
{
@@ -121,12 +121,12 @@
public:
JZNrpn(
- int clk,
- int cha,
+ int Clock,
+ int Channel,
unsigned char msb,
unsigned char lsb,
unsigned char msbval)
- : JZParam(clk, cha, 0x63, msb, 0x62, lsb, msbval)
+ : JZParam(Clock, Channel, 0x63, msb, 0x62, lsb, msbval)
{
}
};
@@ -138,12 +138,12 @@
public:
JZRpn(
- int clk,
- int cha,
+ int Clock,
+ int Channel,
unsigned char msb,
unsigned char lsb,
unsigned char msbval)
- : JZParam(clk, cha, 0x65, msb, 0x64, lsb, msbval)
+ : JZParam(Clock, Channel, 0x65, msb, 0x64, lsb, msbval)
{
}
};
@@ -386,7 +386,7 @@
void GrabData(JZSimpleEventArray &src);
- void Copy(JZSimpleEventArray& src, int frclk, int toclk);
+ void Copy(JZSimpleEventArray& src, int frClock, int toClock);
JZSimpleEventArray();
@@ -692,9 +692,9 @@
int GetDefaultSpeed(); // beats per minute
void SetDefaultSpeed(int bpm);
- int GetCurrentSpeed( int clk ); // beats per minute
+ int GetCurrentSpeed(int Clock); // beats per minute
- JZSetTempoEvent *GetCurrentTempo( int clk );
+ JZSetTempoEvent* GetCurrentTempo(int Clock);
int GetMasterVol();
void SetMasterVol(int MasterVol);
Modified: trunk/jazz/src/TrackFrame.cpp
===================================================================
--- trunk/jazz/src/TrackFrame.cpp 2013-03-17 23:13:43 UTC (rev 967)
+++ trunk/jazz/src/TrackFrame.cpp 2013-03-17 23:18:10 UTC (rev 968)
@@ -22,20 +22,21 @@
#include "TrackFrame.h"
+#include "AboutDialog.h"
+#include "Configuration.h"
+#include "Dialogs/MetronomeSettingsDialog.h"
+#include "Dialogs/SynthesizerSettingsDialog.h"
+#include "Globals.h"
+#include "Harmony.h"
#include "JazzPlusPlusApplication.h"
#include "Player.h"
#include "Project.h"
#include "ProjectManager.h"
+#include "RecordingInfo.h"
#include "Resources.h"
-#include "RecordingInfo.h"
+#include "Rhythm.h"
#include "TrackWindow.h"
#include "ToolBar.h"
-#include "Globals.h"
-#include "Configuration.h"
-#include "Harmony.h"
-#include "Dialogs/MetronomeSettingsDialog.h"
-#include "Dialogs/SynthesizerSettingsDialog.h"
-#include "AboutDialog.h"
#ifdef __WXMSW__
#include "mswin/WindowsPlayer.h"
@@ -89,8 +90,12 @@
EVT_MENU(ID_IMPORT_MIDI, JZTrackFrame::OnFileImportMidi)
+ EVT_MENU(ID_IMPORT_ASCII_MIDI, JZTrackFrame::OnFileImportAscii)
+
EVT_MENU(ID_EXPORT_MIDI, JZTrackFrame::OnFileExportMidi)
+ EVT_MENU(ID_EXPORT_ASCII_MIDI, JZTrackFrame::OnFileExportAscii)
+
EVT_MENU(
ID_EXPORT_SELECTION_AS_MIDI,
JZTrackFrame::OnFileExportSelectionAsMidi)
@@ -113,6 +118,8 @@
EVT_MENU(ID_TOOLS_HARMONY_BROWSER, JZTrackFrame::OnToolsHarmonyBrowser)
+ EVT_MENU(ID_TOOLS_RHYTHM_GENERATOR, JZTrackFrame::OnToolsRhythmGenerator)
+
EVT_MENU(ID_SETTINGS_METRONOME, JZTrackFrame::OnSettingsMetronome)
EVT_MENU(ID_SETTINGS_SYNTHESIZER, JZTrackFrame::OnSettingsSynthesizerType)
@@ -238,8 +245,9 @@
mpFileMenu->AppendSeparator();
mpFileMenu->Append(ID_IMPORT_MIDI, "Import MIDI...");
-
+//DEBUG mpFileMenu->Append(ID_IMPORT_ASCII_MIDI, "Import ASCII...");
mpFileMenu->Append(ID_EXPORT_MIDI, "Export as MIDI...");
+//DEBUG mpFileMenu->Append(ID_EXPORT_ASCII_MIDI, "Export as ASCII...");
mpFileMenu->Append(
ID_EXPORT_SELECTION_AS_MIDI,
"Export Selection as MIDI...");
@@ -309,7 +317,8 @@
pMiscMenu->Append(ID_MISC_SET_COPYRIGHT, "&Set Music Copyright...");
mpToolsMenu = new wxMenu;
- mpToolsMenu->Append(ID_TOOLS_HARMONY_BROWSER, "&Harmony Browser...");
+ mpToolsMenu->Append(ID_TOOLS_HARMONY_BROWSER, "&Harmony Browser...");
+ mpToolsMenu->Append(ID_TOOLS_RHYTHM_GENERATOR, "&Rhythm Generator...");
#if 0
// Move to Project Menu
@@ -468,6 +477,7 @@
// }
delete gpHarmonyBrowser;
+ delete gpRhythmGeneratorFrame;
return true;
}
@@ -557,6 +567,27 @@
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+void JZTrackFrame::OnFileImportAscii(wxCommandEvent&)
+{
+ wxFileDialog OpenDialog(
+ 0,
+ "Load ASCII File",
+ "",
+ "",
+ "ASCII MIDI files (txt)|*.txt|All files (*.*)|*.*",
+ wxFD_OPEN | wxFD_CHANGE_DIR);
+ if (OpenDialog.ShowModal() == wxID_OK)
+ {
+ wxString AsciiMidiFileName = OpenDialog.GetPath();
+ gpProject->OpenAndReadAsciiMidiFile(AsciiMidiFileName);
+ SetTitle(AsciiMidiFileName);
+ mpTrackWindow->SetScrollRanges();
+ mpTrackWindow->Refresh(false);
+ }
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
void JZTrackFrame::OnFileExportMidi(wxCommandEvent& Event)
{
// wxFD_OVERWRITE_PROMPT - For save dialog only: prompt for a confirmation
@@ -578,6 +609,27 @@
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+void JZTrackFrame::OnFileExportAscii(wxCommandEvent&)
+{
+ // wxFD_OVERWRITE_PROMPT - For save dialog only: prompt for a confirmation
+ // if a file will be overwritten.
+ wxFileDialog SaveAsDialog(
+ 0,
+ "Save MIDI File as ASCII",
+ "",
+ "",
+ "ASCII MIDI files (txt)|*.txt|All files (*.*)|*.*",
+ wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
+ if (SaveAsDialog.ShowModal() == wxID_OK)
+ {
+ wxString FileName = SaveAsDialog.GetPath();
+ gpProject->ExportAsciiMidiFile(FileName);
+ SetTitle(FileName);
+ }
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
void JZTrackFrame::OnFileExportSelectionAsMidi(wxCommandEvent& Event)
{
}
@@ -654,6 +706,13 @@
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+void JZTrackFrame::OnToolsRhythmGenerator(wxCommandEvent& Event)
+{
+ CreateRhythmGenerator();
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
void JZTrackFrame::OnSettingsMetronome(wxCommandEvent& Event)
{
JZMetronomeInfo MetronomeInfo = gpProject->GetMetronomeInfo();
Modified: trunk/jazz/src/TrackFrame.h
===================================================================
--- trunk/jazz/src/TrackFrame.h 2013-03-17 23:13:43 UTC (rev 967)
+++ trunk/jazz/src/TrackFrame.h 2013-03-17 23:18:10 UTC (rev 968)
@@ -81,8 +81,12 @@
void OnFileImportMidi(wxCommandEvent& Event);
+ void OnFileImportAscii(wxCommandEvent& Event);
+
void OnFileExportMidi(wxCommandEvent& Event);
+ void OnFileExportAscii(wxCommandEvent& Event);
+
void OnFileExportSelectionAsMidi(wxCommandEvent& Event);
void OnFileExit(wxCommandEvent& Event);
@@ -101,6 +105,8 @@
void OnToolsHarmonyBrowser(wxCommandEvent& Event);
+ void OnToolsRhythmGenerator(wxCommandEvent& Event);
+
void OnSettingsMetronome(wxCommandEvent& Event);
void OnSettingsSynthesizerType(wxCommandEvent& Event);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|