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