From: <pst...@us...> - 2008-05-19 03:57:58
|
Revision: 545 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=545&view=rev Author: pstieber Date: 2008-05-18 20:57:57 -0700 (Sun, 18 May 2008) Log Message: ----------- 1. Renamed JZEvent::Stat to JZEvent::mStat, made it protected, and added an accessor. 2. Made JZEvent::mClock protected. 3. Renamed JZEvent::Device to JZEvent::mDevice. Renamed e to pEvent in a few places. 4. Updated class and comment headers in Player.cpp. Modified Paths: -------------- trunk/jazz/src/AlsaPlayer.cpp trunk/jazz/src/AsciiMidiFile.cpp trunk/jazz/src/Dialogs.cpp trunk/jazz/src/Events.cpp trunk/jazz/src/Events.h trunk/jazz/src/Filter.h trunk/jazz/src/PianoWindow.cpp trunk/jazz/src/Player.cpp trunk/jazz/src/StandardFile.cpp trunk/jazz/src/mswin/WindowsPlayer.cpp Modified: trunk/jazz/src/AlsaPlayer.cpp =================================================================== --- trunk/jazz/src/AlsaPlayer.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/AlsaPlayer.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -402,17 +402,17 @@ // 0 = event successfully sent to driver // 1 = try again later //----------------------------------------------------------------------------- -int tAlsaPlayer::OutEvent(JZEvent *e, int now) +int tAlsaPlayer::OutEvent(JZEvent* pEvent, int now) { int rc = 0; snd_seq_event_t ev; memset(&ev, 0, sizeof(ev)); - switch (e->Stat) + switch (pEvent->GetStat()) { case StatKeyOn: { - tKeyOn *k = e->IsKeyOn(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_NOTEON); + tKeyOn *k = pEvent->IsKeyOn(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_NOTEON); ev.data.note.channel = k->Channel; ev.data.note.note = k->mKey; ev.data.note.velocity = k->mVelocity; @@ -422,8 +422,8 @@ case StatKeyOff: { - tKeyOff *k = e->IsKeyOff(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_NOTEOFF); + tKeyOff *k = pEvent->IsKeyOff(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_NOTEOFF); ev.data.note.channel = k->Channel; ev.data.note.note = k->Key; ev.data.note.velocity = k->OffVeloc; @@ -433,8 +433,8 @@ case StatProgram: { - tProgram *k = e->IsProgram(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_PGMCHANGE); + tProgram *k = pEvent->IsProgram(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_PGMCHANGE); ev.data.control.channel = k->Channel; ev.data.control.value = k->Program; rc = write(&ev, now); @@ -443,8 +443,8 @@ case StatKeyPressure: { - tKeyPressure *k = e->IsKeyPressure(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_KEYPRESS); + tKeyPressure *k = pEvent->IsKeyPressure(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_KEYPRESS); ev.data.note.channel = k->Channel; ev.data.note.note = k->Key; ev.data.note.velocity = k->Value; @@ -454,8 +454,8 @@ case StatChnPressure: { - tChnPressure *k = e->IsChnPressure(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_CHANPRESS); + tChnPressure *k = pEvent->IsChnPressure(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_CHANPRESS); ev.data.control.channel = k->Channel; ev.data.control.value = k->Value; rc = write(&ev, now); @@ -464,8 +464,8 @@ case StatControl: { - tControl *k = e->IsControl(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_CONTROLLER); + tControl *k = pEvent->IsControl(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_CONTROLLER); ev.data.control.channel = k->Channel; ev.data.control.param = k->mControl; ev.data.control.value = k->mValue; @@ -475,8 +475,8 @@ case StatPitch: { - tPitch *k = e->IsPitch(); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_PITCHBEND); + tPitch *k = pEvent->IsPitch(); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_PITCHBEND); ev.data.control.channel = k->Channel; ev.data.control.value = k->Value; rc = write(&ev, now); @@ -485,9 +485,9 @@ case StatSetTempo: { - int bpm = e->IsSetTempo()->GetBPM(); + int bpm = pEvent->IsSetTempo()->GetBPM(); int us = (int)( 60.0E6 / (double)bpm ); - set_event_header(&ev, e->GetClock(), SND_SEQ_EVENT_TEMPO); + set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_TEMPO); snd_seq_ev_set_queue_tempo(&ev, queue, us); rc = write(&ev, now); } @@ -495,12 +495,12 @@ case StatSysEx: { - tSysEx *s = e->IsSysEx(); + tSysEx *s = pEvent->IsSysEx(); // prepend 0xf0 char *buf = new char[s->Length + 1]; buf[0] = 0xF0; memcpy(buf + 1, s->mpData, s->Length); - set_event_header(&ev, e->GetClock(), s->Length + 1, buf); + set_event_header(&ev, pEvent->GetClock(), s->Length + 1, buf); rc = write(&ev, now); delete [] buf; } Modified: trunk/jazz/src/AsciiMidiFile.cpp =================================================================== --- trunk/jazz/src/AsciiMidiFile.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/AsciiMidiFile.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -164,7 +164,7 @@ { tChannelEvent *ce; - fprintf(mpFd, "%6d %02x ", pEvent->GetClock(), pEvent->Stat); + fprintf(mpFd, "%6d %02x ", pEvent->GetClock(), pEvent->GetStat()); if ((ce = pEvent->IsChannelEvent()) != 0) { fprintf(mpFd, "%2d ", ce->Channel); Modified: trunk/jazz/src/Dialogs.cpp =================================================================== --- trunk/jazz/src/Dialogs.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/Dialogs.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -1361,7 +1361,7 @@ tEventDlg *dlg = 0; const char* str = 0; - switch (e->Stat) + switch (e->GetStat()) { case StatKeyOn: if (t->GetAudioMode()) Modified: trunk/jazz/src/Events.cpp =================================================================== --- trunk/jazz/src/Events.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/Events.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -158,7 +158,7 @@ //----------------------------------------------------------------------------- int tGetMidiBytes::Write(JZEvent* pEvent, unsigned char* pData, int Length) { - int Stat = pEvent->Stat; + int Stat = pEvent->GetStat(); switch (Stat) { Modified: trunk/jazz/src/Events.h =================================================================== --- trunk/jazz/src/Events.h 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/Events.h 2008-05-19 03:57:57 UTC (rev 545) @@ -334,9 +334,13 @@ } #endif - unsigned char Stat; - int mClock; // should be protected ... + public: + unsigned char GetStat() const + { + return mStat; + } + int GetClock() const { return mClock & ~KILLED_CLOCK; @@ -353,11 +357,11 @@ BROADCAST_DEVICE = 0 }; - JZEvent(int clk, unsigned char sta) + JZEvent(int Clock, unsigned char Stat) { - mClock = clk; - Stat = sta; - Device = BROADCAST_DEVICE; + mClock = Clock; + mStat = Stat; + mDevice = BROADCAST_DEVICE; #ifdef E_DBUG Magic = MAGIC; #endif @@ -493,17 +497,23 @@ int GetDevice() const { - return Device; + return mDevice; } - void SetDevice(int d) + void SetDevice(int Device) { - Device = d; + mDevice = Device; } + protected: + + unsigned char mStat; + + int mClock; + private: - int Device; + int mDevice; }; @@ -898,7 +908,7 @@ virtual JZEvent* Copy() const { edb(); - return new tMetaEvent(mClock, Stat, mpData, Length); + return new tMetaEvent(mClock, mStat, mpData, Length); } }; Modified: trunk/jazz/src/Filter.h =================================================================== --- trunk/jazz/src/Filter.h 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/Filter.h 2008-05-19 03:57:57 UTC (rev 545) @@ -84,10 +84,10 @@ int Value = pEvent->GetValue(); for (int i = 0; i < nFltEvents; ++i) { - if (pEvent->Stat == FltEvents[i].Stat) + if (pEvent->GetStat() == FltEvents[i].Stat) { // SN++ Aftertouch gehoert eigendlich zu KeyOn Events. - if (pEvent->Stat == StatKeyPressure) + if (pEvent->GetStat() == StatKeyPressure) { int aval = pEvent->IsKeyPressure()->Key; return @@ -95,17 +95,17 @@ FltEvents[i].FromValue <= aval && aval <= FltEvents[i].ToValue; } - if (pEvent->Stat == StatTimeSignat) + if (pEvent->GetStat() == StatTimeSignat) { return FltEvents[i].Selected; } // SN++ - if (pEvent->Stat == StatChnPressure) + if (pEvent->GetStat() == StatChnPressure) { return FltEvents[i].Selected; } - if (pEvent->Stat == StatSysEx) + if (pEvent->GetStat() == StatSysEx) { return FltEvents[i].Selected; } Modified: trunk/jazz/src/PianoWindow.cpp =================================================================== --- trunk/jazz/src/PianoWindow.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/PianoWindow.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -1420,7 +1420,7 @@ while (pEvent) { - if (pEvent->Stat == Stat) + if (pEvent->GetStat() == Stat) { int Pitch = pEvent->GetPitch(); int Length = pEvent->GetLength(); @@ -2258,7 +2258,7 @@ //----------------------------------------------------------------------------- int JZPianoWindow::IsVisible(JZEvent* pEvent) { - switch (pEvent->Stat) + switch (pEvent->GetStat()) { case StatKeyOn: return mVisibleKeyOn; Modified: trunk/jazz/src/Player.cpp =================================================================== --- trunk/jazz/src/Player.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/Player.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -71,38 +71,48 @@ using namespace std; -// ------------------------- tDeviceList -------------------------- - - +//***************************************************************************** +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tDeviceList::tDeviceList() : mDeviceNames() { } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tDeviceList::~tDeviceList() { } -// ------------------------- tPlayLoop -------------------------- - +//***************************************************************************** +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tPlayLoop::tPlayLoop() : mStartClock(0), mStopClock(0) { } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tPlayLoop::Reset() { mStartClock = mStopClock = 0; } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tPlayLoop::Set(long Start, long Stop) { mStartClock = Start; mStopClock = Stop; } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- long tPlayLoop::Ext2IntClock(long Clock) { if (mStopClock) @@ -112,12 +122,17 @@ return Clock; } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- long tPlayLoop::Int2ExtClock(long Clock) { return Clock; } -// Copy events from song to output buffer. +//----------------------------------------------------------------------------- +// Description: +// Copy events from the passed song to output buffer. +//----------------------------------------------------------------------------- void tPlayLoop::PrepareOutput( tEventArray* buf, JZSong* pSong, @@ -160,9 +175,10 @@ } } -// ------------------------- JZPlayer --------------------- - - +//***************************************************************************** +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- JZPlayer::JZPlayer(JZSong* pSong) : mSamples(pSong->GetTicksPerQuarter() * pSong->Speed()) { @@ -176,17 +192,22 @@ rec_info = 0; } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- JZPlayer::~JZPlayer() { delete PlayLoop; } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void JZPlayer::ShowError() { wxMessageBox("could not install driver", "Error", wxOK); } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void JZPlayer::StartPlay(long Clock, long LoopClock, int Continue) { #ifdef DEBUG_PLAYER_STARTPLAY @@ -433,10 +454,10 @@ } // if !Continue t = Song->GetTrack(0); - JZEvent *e = t->GetCurrentTempo(Clock); - if (e) + JZEvent* pEvent = t->GetCurrentTempo(Clock); + if (pEvent) { - OutNow(e); + OutNow(pEvent); } // Send songpointer? @@ -473,7 +494,8 @@ Playing = true; } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void JZPlayer::StopPlay() { // Stop the wxTimer. @@ -492,10 +514,10 @@ if (Track) { tEventIterator Iterator(Track); - JZEvent *e = Iterator.First(); - while (e && e->GetClock() < Clock + 100) + JZEvent* pEvent = Iterator.First(); + while (pEvent && pEvent->GetClock() < Clock + 100) { - tKeyOn* pKeyOn = e->IsKeyOn(); + tKeyOn* pKeyOn = pEvent->IsKeyOn(); if (pKeyOn) { if (pKeyOn->GetClock() + pKeyOn->mLength >= Clock - 100) @@ -505,7 +527,7 @@ OutNow(&off); } } - e = Iterator.Next(); + pEvent = Iterator.Next(); } } } @@ -513,7 +535,8 @@ JZProjectManager::Instance()->NewPlayPosition(-1); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void JZPlayer::Notify() { // called by timer @@ -560,22 +583,24 @@ } } - +//----------------------------------------------------------------------------- +// Description: +// Try to send all events up to OutClock to device. +//----------------------------------------------------------------------------- void JZPlayer::FlushToDevice() -// try to send all events up to OutClock to device { int BufferFull = 0; tEventIterator Iterator(&mPlayBuffer); - JZEvent *e = Iterator.Range(0, OutClock); - while (!BufferFull && e) + JZEvent* pEvent = Iterator.Range(0, OutClock); + while (!BufferFull && pEvent) { - if (OutEvent(e) != 0) + if (OutEvent(pEvent) != 0) BufferFull = 1; else { - e->Kill(); - e = Iterator.Next(); + pEvent->Kill(); + pEvent = Iterator.Next(); } } @@ -584,7 +609,8 @@ mPlayBuffer.Cleanup(0); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void JZPlayer::AllNotesOff(int Reset) { tControl NoteOff(0, 0, 0x78, 0); @@ -616,8 +642,8 @@ } } - - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void JZPlayer::OutNow(JZTrack *t, tParam *r) { OutNow(t, &r->mMsb); @@ -627,42 +653,47 @@ OutNow(t, &r->mResetLsb); } -// ---------------------------------------------------------------------------------------------- -// MPU-Player -// ---------------------------------------------------------------------------------------------- - #ifdef DEV_MPU401 +//***************************************************************************** +// MPU-Player +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tMpuPlayer::tMpuPlayer(JZSong* pSong) : JZPlayer(pSong) { - poll_millisec = 25; - midinethost = getenv("MIDINETHOST"); - if (!midinethost || !strlen(midinethost)) { - midinethost = "localhost"; - } - midinetservice = getenv("MIDINETSERVICE"); - if (!midinetservice || !strlen(midinetservice)) { - midinetservice = MIDINETSERVICE; - } - dev = midinetconnect( midinethost, midinetservice ); + poll_millisec = 25; + midinethost = getenv("MIDINETHOST"); + if (!midinethost || !strlen(midinethost)) + { + midinethost = "localhost"; + } + midinetservice = getenv("MIDINETSERVICE"); + if (!midinetservice || !strlen(midinetservice)) + { + midinetservice = MIDINETSERVICE; + } + dev = midinetconnect( midinethost, midinetservice ); } - - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tMpuPlayer::~tMpuPlayer() { close(dev); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- int tMpuPlayer::Installed() { return dev >= 0; } - #if DB_WRITE +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- int dwrite(int dev, const char *buf, int size) { int i, written; @@ -675,13 +706,17 @@ } printf("W: "); for (i = 0; i < written; i++) + { printf("%02x ", (unsigned char)buf[i]); + } putchar('\n'); if (written != size) { printf("L: "); for (i = written; i < size; i++) + { printf("%02x ", (unsigned char)buf[i]); + } putchar('\n'); } fflush(stdout); @@ -689,6 +724,8 @@ } #endif +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tMpuPlayer::StartPlay(long IntClock, long LoopClock, int Continue) { long ExtClock = PlayLoop->Int2ExtClock(IntClock); @@ -740,9 +777,10 @@ clock_to_host_counter = 0; ActiveTrack = 0; - for (int i = 0; i < ACTIVE_TRACKS; i++) { - TrackClock[i] = ExtClock; - TrackRunningStatus[i] = 0; + for (int i = 0; i < ACTIVE_TRACKS; i++) + { + TrackClock[i] = ExtClock; + TrackRunningStatus[i] = 0; } // Setup Timebase @@ -765,49 +803,50 @@ JZPlayer::StartPlay(IntClock, LoopClock, Continue); // Supress realtime messages to MIDI Out port? - if (!Config(C_RealTimeOut)) { - char realtime[2]; - realtime[0] = CMD+1; - realtime[1] = 0x32; - write_ack_mpu( realtime, 2 ); + if (!Config(C_RealTimeOut)) + { + char realtime[2]; + realtime[0] = CMD + 1; + realtime[1] = 0x32; + write_ack_mpu(realtime, 2); } // What is the clock source ? char clocksource[2]; clocksource[0] = CMD+1; - switch (Config(C_ClockSource)) { - case CsInt: - clocksource[1] = 0x80; - play = play1; - playsize = sizeof( play1 ); - break; - case CsFsk: - clocksource[1] = 0x81; - play = play1; - playsize = sizeof( play1 ); - break; - case CsMidi: - clocksource[1] = 0x82; - play = play2; - playsize = sizeof( play2 ); - break; - default: - clocksource[1] = 0x80; - play = play1; - playsize = sizeof( play1 ); - break; + switch (Config(C_ClockSource)) + { + case CsInt: + clocksource[1] = 0x80; + play = play1; + playsize = sizeof( play1 ); + break; + case CsFsk: + clocksource[1] = 0x81; + play = play1; + playsize = sizeof( play1 ); + break; + case CsMidi: + clocksource[1] = 0x82; + play = play2; + playsize = sizeof( play2 ); + break; + default: + clocksource[1] = 0x80; + play = play1; + playsize = sizeof( play1 ); + break; } write_ack_mpu(clocksource, 2); JZPlayer::Notify(); // Start play - write_ack_mpu( play, playsize ); - + write_ack_mpu(play, playsize); } - - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tMpuPlayer::StopPlay() { static const char stop = RES; @@ -822,25 +861,33 @@ RecdBuffer.Keyoff2Length(); } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tMpuPlayer::SetHardThru(int on, int idummy, int odummy) { - char midithru[2]; midithru[0] = CMD+1; if (on) + { midithru[1] = 0x89; + } else + { midithru[1] = 0x88; + } write_ack_mpu( midithru, 2 ); - } -int tMpuPlayer::OutEvent(JZEvent *e) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int tMpuPlayer::OutEvent(JZEvent* pEvent) { if (!PlyBytes.WriteFile(dev)) + { return 1; // buffer full + } - int Stat = e->Stat; + int Stat = pEvent->GetStat(); switch (Stat) { @@ -851,156 +898,167 @@ case StatProgram: case StatChnPressure: case StatPitch: - { - tGetMidiBytes midi; - int i; - tChannelEvent *c; + { + tGetMidiBytes midi; + int i; + tChannelEvent *c; - e->Write(midi); - Stat = midi.Buffer[0]; // Status + Channel + pEvent->Write(midi); + Stat = midi.Buffer[0]; // Status + Channel - OutBreak(e->GetClock()); + OutBreak(pEvent->GetClock()); - if ( (c = e->IsChannelEvent()) != 0 ) { - switch (c->Channel) { - case 0: - case 3: - ActiveTrack = 5; - break; - case 1: - case 4: - ActiveTrack = 4; - break; - case 2: - case 5: - ActiveTrack = 3; - break; - case 6: - case 10: - case 13: - ActiveTrack = 2; - break; - case 9: - ActiveTrack = 6; - break; - case 7: - case 11: - case 14: - ActiveTrack = 1; - break; - case 8: - case 12: - case 15: - ActiveTrack = 0; - break; - default: - ActiveTrack = 6; - break; - } + if ((c = pEvent->IsChannelEvent()) != 0) + { + switch (c->Channel) + { + case 0: + case 3: + ActiveTrack = 5; + break; + case 1: + case 4: + ActiveTrack = 4; + break; + case 2: + case 5: + ActiveTrack = 3; + break; + case 6: + case 10: + case 13: + ActiveTrack = 2; + break; + case 9: + ActiveTrack = 6; + break; + case 7: + case 11: + case 14: + ActiveTrack = 1; + break; + case 8: + case 12: + case 15: + ActiveTrack = 0; + break; + default: + ActiveTrack = 6; + break; } - else { - // Not channel event => play on track #6 - ActiveTrack = 6; - } + } + else + { + // Not channel event => play on track #6 + ActiveTrack = 6; + } - long Time = e->GetClock() - TrackClock[ActiveTrack]; - assert(Time < 240); + long Time = pEvent->GetClock() - TrackClock[ActiveTrack]; + assert(Time < 240); - if (Stat != TrackRunningStatus[ActiveTrack]) - { - PlyBytes.Put(TRK + midi.nBytes + 1 + 1); - PlyBytes.Put(ActiveTrack); - PlyBytes.Put(Time); - PlyBytes.Put(Stat); - TrackRunningStatus[ActiveTrack] = Stat; - } - else - { - PlyBytes.Put(TRK + midi.nBytes + 1); - PlyBytes.Put(ActiveTrack); - PlyBytes.Put(Time); - } - for (i = 1; i < midi.nBytes; i++) - PlyBytes.Put(midi.Buffer[i]); - - TrackClock[ActiveTrack] = e->GetClock(); - return 0; + if (Stat != TrackRunningStatus[ActiveTrack]) + { + PlyBytes.Put(TRK + midi.nBytes + 1 + 1); + PlyBytes.Put(ActiveTrack); + PlyBytes.Put(Time); + PlyBytes.Put(Stat); + TrackRunningStatus[ActiveTrack] = Stat; } + else + { + PlyBytes.Put(TRK + midi.nBytes + 1); + PlyBytes.Put(ActiveTrack); + PlyBytes.Put(Time); + } + for (i = 1; i < midi.nBytes; i++) + PlyBytes.Put(midi.Buffer[i]); + TrackClock[ActiveTrack] = pEvent->GetClock(); + return 0; + } + case StatSetTempo: case StatSysEx: + { + if (pEvent->GetClock() > 0) { - if (e->GetClock() > 0) - { - OutOfBandEvents.Put(e->Copy()); - } - return 0; + OutOfBandEvents.Put(pEvent->Copy()); } + return 0; + } default: // Meterchange etc - return 0; - break; + return 0; + break; } } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tMpuPlayer::OutBreak() { // send a break to the driver starting at PlyBytes.GetClock() and ending at OutClock if (!PlyBytes.WriteFile(dev)) + { return; + } (void)OutBreak(OutClock); PlyBytes.WriteFile(dev); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tMpuPlayer::OutBreak(long BreakOver) { -int OverFlow = 1; + int OverFlow = 1; - while (OverFlow) { - OverFlow = 0; - for (int i = 0; i < ACTIVE_TRACKS; i++) { - if ( (BreakOver - TrackClock[i]) >= 240 ) { - PlyBytes.Put(TRK+1+1); - PlyBytes.Put( i ); - PlyBytes.Put(0xf8); - TrackClock[i] += 240; - OverFlow = 1; - } - } + while (OverFlow) + { + OverFlow = 0; + for (int i = 0; i < ACTIVE_TRACKS; i++) + { + if ((BreakOver - TrackClock[i]) >= 240) + { + PlyBytes.Put(TRK + 1 + 1); + PlyBytes.Put(i); + PlyBytes.Put(0xf8); + TrackClock[i] += 240; + OverFlow = 1; + } } + } } - - -void tMpuPlayer::OutNow(JZEvent *e) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void tMpuPlayer::OutNow(JZEvent* pEvent) { // send event to driver immediately regardless of events remaining // in the play-queue. int i, n = 0; tGetMidiBytes midi; - if (e->Write(midi) == 0) + if (pEvent->Write(midi) == 0) { char *buf = new char[midi.nBytes + 3]; buf[n++] = CMD+1; buf[n++] = 0xd7; buf[n++] = DAT+midi.nBytes; for (i = 0; i < midi.nBytes; i++) + { buf[n++] = midi.Buffer[i]; + } write_noack_mpu(buf, n); delete[] buf; } - else // special event { - switch (e->Stat) + switch (pEvent->GetStat()) { case StatSetTempo: { char cmd[4]; - tSetTempo *s = (tSetTempo *)e; + tSetTempo *s = (tSetTempo *)pEvent; int bpm = s->GetBPM(); cmd[0] = CMD+1; cmd[1] = 0xE0; @@ -1011,31 +1069,35 @@ break; case StatSysEx: { - n = 0; - tSysEx *s = (tSysEx *) e; - char *sysex = new char[s->Length+4]; - sysex[n++] = CMD+1; - sysex[n++] = 0xdf; - sysex[n++] = DAT + s->Length + 1; - sysex[n++] = StatSysEx; - for (i = 0; i < s->Length; i++) - sysex[n++] = s->Data[i]; - write_noack_mpu(sysex, n); - delete[] sysex; + n = 0; + tSysEx *s = (tSysEx *) pEvent; + char *sysex = new char[s->Length+4]; + sysex[n++] = CMD+1; + sysex[n++] = 0xdf; + sysex[n++] = DAT + s->Length + 1; + sysex[n++] = StatSysEx; + for (i = 0; i < s->Length; i++) + { + sysex[n++] = s->Data[i]; + } + write_noack_mpu(sysex, n); + delete[] sysex; } case StatSongPtr: { - n = 0; - tSongPtr *s = (tSongPtr *) e; - char *common = new char[s->Length+4]; - common[n++] = CMD+1; - common[n++] = 0xdf; - common[n++] = DAT + s->Length + 1; - common[n++] = StatSongPtr; - for (i = 0; i < s->Length; i++) - common[n++] = s->Data[i]; - write_noack_mpu(common, n); - delete[] common; + n = 0; + tSongPtr *s = (tSongPtr *) pEvent; + char *common = new char[s->Length+4]; + common[n++] = CMD+1; + common[n++] = 0xdf; + common[n++] = DAT + s->Length + 1; + common[n++] = StatSongPtr; + for (i = 0; i < s->Length; i++) + { + common[n++] = s->Data[i]; + } + write_noack_mpu(common, n); + delete[] common; } break; @@ -1045,20 +1107,21 @@ } } - +//----------------------------------------------------------------------------- +// try to send all out of band events up to Clock to device +//----------------------------------------------------------------------------- void tMpuPlayer::FlushOutOfBand(long Clock) -// try to send all out of band events up to Clock to device { tEventIterator Iterator(&OutOfBandEvents); - JZEvent *e = Iterator.Range(0, Clock); - while (e) + JZEvent* pEvent = Iterator.Range(0, Clock); + while (pEvent) { - switch (e->Stat) + switch (pEvent->GetStat()) { case StatSetTempo: { char cmd[4]; - tSetTempo *s = (tSetTempo *)e; + tSetTempo *s = (tSetTempo *)pEvent; int bpm = s->GetBPM(); cmd[0] = CMD+1; cmd[1] = 0xE0; @@ -1070,7 +1133,7 @@ case StatSysEx: { int n = 0; - tSysEx *s = (tSysEx *) e; + tSysEx *s = (tSysEx *) pEvent; char *sysex = new char[s->Length+4]; sysex[n++] = CMD+1; sysex[n++] = 0xdf; @@ -1084,14 +1147,15 @@ default: break; } - e->Kill(); - e = Iterator.Next(); + pEvent->Kill(); + pEvent = Iterator.Next(); } OutOfBandEvents.Cleanup(0); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- long tMpuPlayer::GetRealTimeClock() { static int receiving_song_ptr = 0; @@ -1167,7 +1231,8 @@ return playclock; } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- long tMpuPlayer::GetRecordedData() { int c, i; @@ -1196,7 +1261,7 @@ { unsigned char c1, c2; int Channel; - JZEvent *e = 0; + JZEvent* pEvent = 0; if (c & 0x80) { @@ -1211,39 +1276,43 @@ { case StatKeyOff: c2 = recbuf[i++]; // SN++ added veloc - e = new tKeyOff(RecBytes.Clock, Channel, c1, c2); - e = new tKeyOff(RecBytes.Clock, Channel, c1); + pEvent = new tKeyOff(RecBytes.Clock, Channel, c1, c2); + pEvent = new tKeyOff(RecBytes.Clock, Channel, c1); break; case StatKeyOn: c2 = recbuf[i++]; if (!c2) - e = new tKeyOff(RecBytes.Clock, Channel, c1); + { + pEvent = new tKeyOff(RecBytes.Clock, Channel, c1); + } else - e = new tKeyOn(RecBytes.Clock, Channel, c1, c2); + { + pEvent = new tKeyOn(RecBytes.Clock, Channel, c1, c2); + } break; // #if 0 case StatKeyPressure: c2 = recbuf[i++]; - e = new tKeyPressure(RecBytes.Clock, Channel, c1, c2); + pEvent = new tKeyPressure(RecBytes.Clock, Channel, c1, c2); break; case StatChnPressure: - e = new tChnPressure(RecBytes.Clock, Channel, c1); + pEvent = new tChnPressure(RecBytes.Clock, Channel, c1); break; case StatControl: c2 = recbuf[i++]; - e = new tControl(RecBytes.Clock, Channel, c1, c2); + pEvent = new tControl(RecBytes.Clock, Channel, c1, c2); break; case StatProgram: - e = new tProgram(RecBytes.Clock, Channel, c1); + pEvent = new tProgram(RecBytes.Clock, Channel, c1); break; case StatPitch: c2 = recbuf[i++]; - e = new tPitch(RecBytes.Clock, Channel, c1, c2); + pEvent = new tPitch(RecBytes.Clock, Channel, c1, c2); break; default: @@ -1251,13 +1320,14 @@ break; } - if (e) + if (pEvent) { - e->Clock = PlayLoop->Ext2IntClock(e->Clock); - RecdBuffer.Put(e); + pEvent->Clock = PlayLoop->Ext2IntClock(pEvent->Clock); + RecdBuffer.Put(pEvent); } } - else if (c == 0xfc) { + else if (c == 0xfc) + { // Data end mark } else @@ -1273,12 +1343,12 @@ #endif // DEV_MPU401 -// **************************************************************** -// /dev/sequencer2 -// **************************************************************** - #ifdef DEV_SEQUENCER2 +//***************************************************************************** +// /dev/sequencer2 +//***************************************************************************** + // SN-- SEQ_DEFINEBUF (32768); #define sequencer_buffer 65536 SEQ_DEFINEBUF (sequencer_buffer); // 64K @@ -1286,6 +1356,8 @@ int seqfd = -1; int mididev = -1; +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void seqbuf_dump(void) { if (_seqbufptr) @@ -1309,10 +1381,12 @@ memmove(_seqbuf, _seqbuf + size, _seqbufptr); } } -#define seqbuf_empty() (_seqbufptr == 0) + +#define seqbuf_empty() (_seqbufptr == 0) #define seqbuf_clear() (_seqbufptr = 0) - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void seqbuf_flush_last_event() { _seqbufptr -= 8; @@ -1320,8 +1394,11 @@ perror("ioctl flush_last"); } -// --------------------- voxware midi through ------------------------ - +//***************************************************************************** +// voxware midi through +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tOSSThru::tOSSThru() { int time_base = 120; @@ -1335,7 +1412,8 @@ Start(5); // poll every 5 ms } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tOSSThru::~tOSSThru() { Stop(); @@ -1343,7 +1421,8 @@ seqbuf_dump(); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tOSSThru::Notify() { unsigned char buf[128]; @@ -1365,13 +1444,15 @@ } if (_seqbufptr) + { seqbuf_dump(); + } } - -// ------------------------- tSeq2Player --------------------- - - +//***************************************************************************** +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tSeq2Player::tSeq2Player(JZSong* pSong) : JZPlayer(pSong) { @@ -1426,22 +1507,25 @@ } } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- int tSeq2Player::Installed() { return seqfd >= 0 && mididev >= 0; } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- tSeq2Player::~tSeq2Player() { delete through; if (seqfd > 0) close(seqfd); seqfd = -1; - } +} - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- int tSeq2Player::FindMidiDevice() { struct synth_info si; @@ -1507,6 +1591,8 @@ } } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tSeq2Player::SetSoftThru(int on, int idummy, int odummy) { gpConfig->Put(C_SoftThru, on); @@ -1527,20 +1613,21 @@ } } - -int tSeq2Player::OutEvent(JZEvent *e, int now) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int tSeq2Player::OutEvent(JZEvent* pEvent, int now) { if (!now) { - OutBreak(e->GetClock()); + OutBreak(pEvent->GetClock()); } - int Stat = e->Stat; + int Stat = pEvent->GetStat(); switch (Stat) { case StatKeyOn: { - tKeyOn* pKeyOn = e->IsKeyOn(); + tKeyOn* pKeyOn = pEvent->IsKeyOn(); SEQ_START_NOTE( mididev, pKeyOn->Channel, @@ -1552,7 +1639,7 @@ case StatKeyOff: { - tKeyOff* pKeyOff = e->IsKeyOff(); + tKeyOff* pKeyOff = pEvent->IsKeyOff(); SEQ_STOP_NOTE( mididev, pKeyOff->Channel, @@ -1563,7 +1650,7 @@ break; case StatProgram: { - tProgram *k = e->IsProgram(); + tProgram *k = pEvent->IsProgram(); SEQ_SET_PATCH(mididev, k->Channel, k->Program); if (now) seqbuf_flush_last_event(); } @@ -1572,7 +1659,7 @@ // SN++ Aftertouch case StatKeyPressure: { - tKeyPressure *k = e->IsKeyPressure(); + tKeyPressure *k = pEvent->IsKeyPressure(); SEQ_KEY_PRESSURE(mididev, k->Channel, k->Key, k->Value); if (now) seqbuf_flush_last_event(); } @@ -1581,7 +1668,7 @@ case StatChnPressure: { - tChnPressure *k = e->IsChnPressure(); + tChnPressure *k = pEvent->IsChnPressure(); SEQ_CHN_PRESSURE(mididev, k->Channel, k->Value); if (now) seqbuf_flush_last_event(); } @@ -1589,7 +1676,7 @@ case StatControl: { - tControl *k = e->IsControl(); + tControl *k = pEvent->IsControl(); SEQ_CONTROL(mididev, k->Channel, k->mControl, k->mValue); if (now) seqbuf_flush_last_event(); } @@ -1597,7 +1684,7 @@ case StatPitch: { - tPitch *k = e->IsPitch(); + tPitch *k = pEvent->IsPitch(); SEQ_BENDER(mididev, k->Channel, k->Value + 8192); if (now) seqbuf_flush_last_event(); } @@ -1605,7 +1692,7 @@ case StatSetTempo: { - int bpm = e->IsSetTempo()->GetBPM(); + int bpm = pEvent->IsSetTempo()->GetBPM(); if (now) { if (ioctl(seqfd, SNDCTL_TMR_TEMPO, &bpm) < 0) @@ -1614,7 +1701,7 @@ else { if (!GetAudioEnabled()) - if (e->GetClock() > 0) + if (pEvent->GetClock() > 0) SEQ_SET_TEMPO(bpm); } } @@ -1625,7 +1712,7 @@ if (now) { // todo - tSysEx *s = e->IsSysEx(); + tSysEx *s = pEvent->IsSysEx(); struct sysex_info *sysex = (struct sysex_info *)new char [sizeof(struct sysex_info) + s->Length + 1]; sysex->key = SYSEX_PATCH; @@ -1637,9 +1724,10 @@ delete [] (char *)sysex; } - else if (e->GetClock() > 0) { + else if (pEvent->GetClock() > 0) + { // OSS wants small packets with max 6 bytes - tSysEx *sx = e->IsSysEx(); + tSysEx *sx = pEvent->IsSysEx(); const int N = 6; int i, j; char buf[N]; @@ -1666,8 +1754,8 @@ return 0; } - - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tSeq2Player::OutBreak(long clock) { if (play_clock < clock) @@ -1688,13 +1776,16 @@ play_clock = clock; } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tSeq2Player::OutBreak() { OutBreak(OutClock); seqbuf_dump(); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tSeq2Player::StartPlay(long Clock, long LoopClock, int Continue) { char buf[512]; @@ -1772,7 +1863,8 @@ seqbuf_dump(); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- void tSeq2Player::StopPlay() { seqbuf_clear(); @@ -1796,20 +1888,21 @@ RecdBuffer.Keyoff2Length(); } - +//----------------------------------------------------------------------------- +// try to send all events up to OutClock to device +//----------------------------------------------------------------------------- void tSeq2Player::FlushToDevice() -// try to send all events up to OutClock to device { tEventIterator Iterator(&mPlayBuffer); - JZEvent *e = Iterator.Range(0, OutClock); - if (e) + JZEvent* pEvent = Iterator.Range(0, OutClock); + if (pEvent) { do { - OutEvent(e); - e->Kill(); - e = Iterator.Next(); - } while (e); + OutEvent(pEvent); + pEvent->Kill(); + pEvent = Iterator.Next(); + } while (pEvent); mPlayBuffer.Cleanup(0); } @@ -1817,7 +1910,8 @@ seqbuf_dump(); } - +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- long tSeq2Player::GetRealTimeClock() { unsigned char buf[256]; @@ -1827,7 +1921,7 @@ int i = 0; while (i < size) { - JZEvent *e = 0; + JZEvent* pEvent = 0; switch(buf[i]) { @@ -1854,16 +1948,16 @@ //printf("got: chn %d, ctl %d, val %d\n", chn, ctl, val); switch(buf[i+2]) { case MIDI_CTL_CHANGE: - e = new tControl(0, chn, ctl, val); + pEvent = new tControl(0, chn, ctl, val); break; case MIDI_PGM_CHANGE: - e = new tProgram(0, chn, ctl); + pEvent = new tProgram(0, chn, ctl); break; case MIDI_CHN_PRESSURE: - e = new tChnPressure(0, chn, ctl); + pEvent = new tChnPressure(0, chn, ctl); break; case MIDI_PITCH_BEND: - e = new tPitch(0, chn, val - 8192); + pEvent = new tPitch(0, chn, val - 8192); break; } @@ -1882,18 +1976,23 @@ unsigned char chn = buf[i+3]; unsigned char key = buf[i+4]; unsigned char vel = buf[i+5]; - switch(buf[i+2]) { + switch(buf[i+2]) + { case MIDI_NOTEOFF: // SN++ added veloc - e = new tKeyOff(0, chn, key, vel); + pEvent = new tKeyOff(0, chn, key, vel); break; case MIDI_NOTEON: if (vel == 0) - e = new tKeyOff(0, chn, key); + { + pEvent = new tKeyOff(0, chn, key); + } else - e = new tKeyOn(0, chn, key, vel); + { + pEvent = new tKeyOn(0, chn, key, vel); + } break; case MIDI_KEY_PRESSURE: - e = new tKeyPressure(0, chn, key, vel); + pEvent = new tKeyPressure(0, chn, key, vel); break; } @@ -1913,11 +2012,11 @@ break; } - if (e) + if (pEvent) { - e->SetClock(PlayLoop->Ext2IntClock(recd_clock)); - RecdBuffer.Put(e); - e = 0; + pEvent->SetClock(PlayLoop->Ext2IntClock(recd_clock)); + RecdBuffer.Put(pEvent); + pEvent = 0; } } Modified: trunk/jazz/src/StandardFile.cpp =================================================================== --- trunk/jazz/src/StandardFile.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/StandardFile.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -230,10 +230,10 @@ #if 0 printfxxo("%02X %02X ", pEvent->Clock, dif); - if (pEvent->Stat != 0x90) + if (pEvent->GetStat() != 0x90) { int i; - printf("%02X ", pEvent->Stat); + printf("%02X ", pEvent->GetStat()); for (i = 0; i < Length; i++) { printf("%02X ", Data[i]); @@ -242,7 +242,7 @@ } #endif - switch (pEvent->Stat) + switch (pEvent->GetStat()) { // KeyOff -> KeyOn mit Vel=0. Gives better Runningstatus! case StatKeyOff: @@ -281,7 +281,7 @@ // SN++ case StatChnPressure: - Stat = pEvent->Stat | pEvent->IsChannelEvent()->Channel; + Stat = pEvent->GetStat() | pEvent->IsChannelEvent()->Channel; if (Stat != RunningStatus) { RunningStatus = Stat; @@ -323,14 +323,14 @@ if (1) { int i; - printf("%02X ", pEvent->Stat); + printf("%02X ", pEvent->GetStat()); for (i = 0; i < Length; i++) printf("%02X ", Data[i]); putchar('\n'); } #endif - Stat = pEvent->Stat; + Stat = pEvent->GetStat(); RunningStatus = 0; *cp++ = 0xff; *cp++ = Stat; Modified: trunk/jazz/src/mswin/WindowsPlayer.cpp =================================================================== --- trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-19 00:59:59 UTC (rev 544) +++ trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-19 03:57:57 UTC (rev 545) @@ -210,48 +210,50 @@ } u; u.w = dw; - JZEvent *e = 0; + JZEvent* pEvent = 0; switch(u.c[0] & 0xf0) { case 0x80: - e = new tKeyOff(0, u.c[0] & 0x0f, u.c[1]); + pEvent = new tKeyOff(0, u.c[0] & 0x0f, u.c[1]); break; case 0x90: if (u.c[2]) - e = new tKeyOn(0, u.c[0] & 0x0f, u.c[1], u.c[2], 0); + pEvent = new tKeyOn(0, u.c[0] & 0x0f, u.c[1], u.c[2], 0); else - e = new tKeyOff(0, u.c[0] & 0x0f, u.c[1]); + pEvent = new tKeyOff(0, u.c[0] & 0x0f, u.c[1]); break; case 0xA0: - e = new tKeyPressure(0, u.c[0] & 0x0f, u.c[1], u.c[2]); + pEvent = new tKeyPressure(0, u.c[0] & 0x0f, u.c[1], u.c[2]); break; case 0xB0: if (u.c[1] != 0x7b) - e = new tControl(0, u.c[0] & 0x0f, u.c[1], u.c[2]); + { + pEvent = new tControl(0, u.c[0] & 0x0f, u.c[1], u.c[2]); + } break; case 0xC0: - e = new tProgram(0, u.c[0] & 0x0f, u.c[1]); + pEvent = new tProgram(0, u.c[0] & 0x0f, u.c[1]); break; case 0xD0: - e = new tChnPressure(0, u.c[0] & 0x0f, u.c[1]); + pEvent = new tChnPressure(0, u.c[0] & 0x0f, u.c[1]); break; case 0xE0: - e = new tPitch(0, u.c[0] & 0x0f, u.c[1], u.c[2]); + pEvent = new tPitch(0, u.c[0] & 0x0f, u.c[1], u.c[2]); break; } - return e; + return pEvent; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -DWORD JZWindowsPlayer::Event2Dword(JZEvent *e) +DWORD JZWindowsPlayer::Event2Dword(JZEvent* pEvent) { union { @@ -260,12 +262,12 @@ } u; u.w = 0; - int Stat = e->Stat; + int Stat = pEvent->GetStat(); switch (Stat) { case StatKeyOn: { - tKeyOn *k = e->IsKeyOn(); + tKeyOn *k = pEvent->IsKeyOn(); u.c[0] = 0x90 | k->Channel; u.c[1] = k->mKey; u.c[2] = k->mVelocity; @@ -274,7 +276,7 @@ case StatKeyOff: { - tKeyOff *k = e->IsKeyOff(); + tKeyOff *k = pEvent->IsKeyOff(); u.c[0] = 0x80 | k->Channel; u.c[1] = k->Key; u.c[2] = 0; @@ -283,7 +285,7 @@ case StatProgram: { - tProgram *k = e->IsProgram(); + tProgram *k = pEvent->IsProgram(); u.c[0] = 0xC0 | k->Channel; u.c[1] = k->Program; } @@ -291,7 +293,7 @@ case StatChnPressure: { - tChnPressure *k = e->IsChnPressure(); + tChnPressure *k = pEvent->IsChnPressure(); u.c[0] = 0xC0 | k->Channel; u.c[1] = k->Value; } @@ -299,7 +301,7 @@ case StatControl: { - tControl* pControl = e->IsControl(); + tControl* pControl = pEvent->IsControl(); u.c[0] = 0xB0 | pControl->Channel; u.c[1] = pControl->mControl; u.c[2] = pControl->mValue; @@ -308,7 +310,7 @@ case StatKeyPressure: { - tKeyPressure *k = e->IsKeyPressure(); + tKeyPressure *k = pEvent->IsKeyPressure(); u.c[0] = 0xA0 | k->Channel; u.c[1] = k->Key; u.c[2] = k->Value; @@ -317,7 +319,7 @@ case StatPitch: { - tPitch *k = e->IsPitch(); + tPitch *k = pEvent->IsPitch(); int v = k->Value + 8192; u.c[0] = 0xE0 | k->Channel; u.c[1] = (unsigned char)(v & 0x7F); @@ -339,11 +341,11 @@ case StatSetTempo: { - tSetTempo *t = e->IsSetTempo(); + tSetTempo *t = pEvent->IsSetTempo(); if (t && t->GetClock() > 0) { SetTempo( t->GetBPM(), t->GetClock() ); - OutOfBandEvents.Put( e->Copy() ); + OutOfBandEvents.Put(pEvent->Copy()); } } break; @@ -415,9 +417,9 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int JZWindowsPlayer::OutSysex(JZEvent *e, DWORD time) +int JZWindowsPlayer::OutSysex(JZEvent* pEvent, DWORD time) { - tSysEx *sx = e->IsSysEx(); + tSysEx *sx = pEvent->IsSysEx(); if (sx == 0) return 1; @@ -434,32 +436,32 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int JZWindowsPlayer::OutEvent(JZEvent *e) +int JZWindowsPlayer::OutEvent(JZEvent* pEvent) { - DWORD d = Event2Dword(e); + DWORD d = Event2Dword(pEvent); if (d) { - state->play_buffer.put(d, Clock2Time(e->GetClock())); + state->play_buffer.put(d, Clock2Time(pEvent->GetClock())); } - else if (e->IsSysEx() && (e->GetClock() > 0)) + else if (pEvent->IsSysEx() && (pEvent->GetClock() > 0)) { - OutSysex(e, Clock2Time(e->GetClock())); + OutSysex(pEvent, Clock2Time(pEvent->GetClock())); } return 0; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int JZWindowsMidiPlayer::OutEvent(JZEvent *e) +int JZWindowsMidiPlayer::OutEvent(JZEvent* pEvent) { - DWORD d = Event2Dword(e); + DWORD d = Event2Dword(pEvent); if (d) { - state->play_buffer.put(d, e->GetClock()); + state->play_buffer.put(d, pEvent->GetClock()); } - else if (e->IsSysEx() && (e->GetClock() > 0)) + else if (pEvent->IsSysEx() && (pEvent->GetClock() > 0)) { - OutSysex(e, e->GetClock()); + OutSysex(pEvent, pEvent->GetClock()); } return 0; } @@ -474,14 +476,14 @@ { midiOutShortMsg(state->hout, d); } - else if (pEvent->Stat == StatSetTempo) + else if (pEvent->GetStat() == StatSetTempo) { if (state->playing) { SetTempo(pEvent->IsSetTempo()->GetBPM(), OutClock); } } - else if (pEvent->Stat == StatSysEx) + else if (pEvent->GetStat() == StatSysEx) { tSysEx *s = pEvent->IsSysEx(); if (s->Length + 1 < maxSysLen) @@ -641,12 +643,16 @@ if (gpConfig->GetValue(C_RealTimeOut)) { - tMetaEvent *e; + tMetaEvent* pEvent; if (!Continue) - e = new tStartPlay( 0 ); + { + pEvent = new tStartPlay(0); + } else - e = new tContPlay( 0 ); - OutNow( e ); + { + pEvent = new tContPlay(0); + } + OutNow(pEvent); FillMidiClocks(mPlayBuffer.GetLastClock()); // also does a sort } @@ -709,9 +715,9 @@ JZPlayer::StopPlay(); if (gpConfig->GetValue(C_RealTimeOut)) { - tStopPlay *e = new tStopPlay(0); - OutNow( e ); - delete e; + tStopPlay* pEvent = new tStopPlay(0); + OutNow(pEvent); + delete pEvent; } AllNotesOff(); RecdBuffer.Keyoff2Length(); @@ -795,11 +801,11 @@ midi_event *m = state->recd_buffer.get(); // Event? - JZEvent *e = Dword2Event(m->data); - if (e) + JZEvent* pEvent = Dword2Event(m->data); + if (pEvent) { - e->SetClock(PlayLoop->Ext2IntClock(Time2RealTimeClock(m->ref))); - RecdBuffer.Put(e); + pEvent->SetClock(PlayLoop->Ext2IntClock(Time2RealTimeClock(m->ref))); + RecdBuffer.Put(pEvent); } } @@ -811,19 +817,19 @@ if ( !OutOfBandEvents.IsEmpty() ) { tEventIterator Iterator(&OutOfBandEvents); - JZEvent *e = Iterator.Range(0, clock); - while (e) + JZEvent* pEvent = Iterator.Range(0, clock); + while (pEvent) { - switch (e->Stat) + switch (pEvent->GetStat()) { case StatSetTempo: - SetRealTimeTempo( ((tSetTempo *)e)->GetBPM(), clock ); + SetRealTimeTempo( ((tSetTempo *)pEvent)->GetBPM(), clock ); break; default: break; } - e->Kill(); - e = Iterator.Next(); + pEvent->Kill(); + pEvent = Iterator.Next(); } OutOfBandEvents.Cleanup(0); } @@ -863,11 +869,11 @@ } // Event? - JZEvent *e = Dword2Event(m->data); - if (e) + JZEvent* pEvent = Dword2Event(m->data); + if (pEvent) { - e->SetClock(PlayLoop->Ext2IntClock(m->ref)); - RecdBuffer.Put(e); + pEvent->SetClock(PlayLoop->Ext2IntClock(m->ref)); + RecdBuffer.Put(pEvent); } } @@ -908,11 +914,11 @@ } // Event? - JZEvent *e = Dword2Event(m->data); - if (e) + JZEvent* pEvent = Dword2Event(m->data); + if (pEvent) { - e->SetClock(PlayLoop->Ext2IntClock(Time2Clock(m->ref))); - RecdBuffer.Put(e); + pEvent->SetClock(PlayLoop->Ext2IntClock(Time2Clock(m->ref))); + RecdBuffer.Put(pEvent); } } @@ -949,19 +955,19 @@ if ( !OutOfBandEvents.IsEmpty() ) { tEventIterator Iterator(&OutOfBandEvents); - JZEvent *e = Iterator.Range(0, clock); - while (e) + JZEvent* pEvent = Iterator.Range(0, clock); + while (pEvent) { - switch (e->Stat) + switch (pEvent->GetStat()) { case StatSetTempo: - SetRealTimeTempo( ((tSetTempo *)e)->GetBPM(), clock ); + SetRealTimeTempo( ((tSetTempo *)pEvent)->GetBPM(), clock ); break; default: break; } - e->Kill(); - e = Iterator.Next(); + pEvent->Kill(); + pEvent = Iterator.Next(); } OutOfBandEvents.Cleanup(0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |