jdkmidi class library documentation

Copyright © 2004 J.D. Koftinoff Software, Ltd.

Released under the GNU General Public License (GPL)




Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

tests/jdkmidi_test_multitrack.cpp File Reference

#include "jdkmidi/world.h"
#include "jdkmidi/track.h"
#include "jdkmidi/multitrack.h"
#include "jdkmidi/filereadmultitrack.h"
#include "jdkmidi/fileread.h"
#include "jdkmidi/fileshow.h"

Go to the source code of this file.

Functions

void DumpMIDITimedBigMessage (MIDITimedBigMessage *msg)
void DumpMIDITrack (MIDITrack *t)
void DumpAllTracks (MIDIMultiTrack *mlt)
void DumpMIDIMultiTrack (MIDIMultiTrack *mlt)
int main (int argc, char **argv)


Function Documentation

void DumpAllTracks MIDIMultiTrack mlt  ) 
 

Definition at line 67 of file jdkmidi_test_multitrack.cpp.

References DumpMIDITrack(), jdkmidi::MIDIMultiTrack::GetClksPerBeat(), jdkmidi::MIDITrack::GetNumEvents(), jdkmidi::MIDIMultiTrack::GetNumTracks(), and jdkmidi::MIDIMultiTrack::GetTrack().

00068 {
00069   
00070   fprintf( stdout , "Clocks per beat: %d\n\n", mlt->GetClksPerBeat() );
00071   
00072   for( int i=0; i<mlt->GetNumTracks(); ++i )
00073   {
00074     if( mlt->GetTrack(i)->GetNumEvents() > 0 )
00075     {
00076       fprintf( stdout, "DUMP OF TRACK #%2d:\n", i );
00077       DumpMIDITrack( mlt->GetTrack(i) );
00078       fprintf( stdout, "\n" );
00079     }
00080     
00081   }
00082   
00083 }

void DumpMIDIMultiTrack MIDIMultiTrack mlt  ) 
 

Definition at line 86 of file jdkmidi_test_multitrack.cpp.

References DumpMIDITimedBigMessage(), jdkmidi::MIDIMultiTrack::GetClksPerBeat(), jdkmidi::MIDIMultiTrackIterator::GetCurEvent(), jdkmidi::MIDIMultiTrackIterator::GoToNextEvent(), and jdkmidi::MIDIMultiTrackIterator::GoToTime().

00087 {
00088   MIDIMultiTrackIterator i( mlt );
00089   MIDITimedBigMessage *msg;
00090   
00091   fprintf( stdout , "Clocks per beat: %d\n\n", mlt->GetClksPerBeat() );
00092   
00093   i.GoToTime(0);
00094   
00095   do
00096   {
00097     int trk_num;
00098     
00099     if( i.GetCurEvent(&trk_num, &msg ) )
00100     {
00101       fprintf( stdout, "#%2d - ", trk_num );
00102       DumpMIDITimedBigMessage( msg );
00103     }       
00104   } while( i.GoToNextEvent() );
00105   
00106 }

void DumpMIDITimedBigMessage MIDITimedBigMessage msg  ) 
 

Definition at line 38 of file jdkmidi_test_multitrack.cpp.

References jdkmidi::MIDISystemExclusive::GetLength(), jdkmidi::MIDIBigMessage::GetSysEx(), jdkmidi::MIDITimedBigMessage::GetTime(), jdkmidi::MIDIMessage::IsSysEx(), and jdkmidi::MIDIMessage::MsgToText().

00039 {
00040   if( msg )
00041   {
00042     char msgbuf[1024];
00043     
00044     fprintf( stdout, "%8ld : %s\n", msg->GetTime(), msg->MsgToText(msgbuf) );
00045     if( msg->IsSysEx() )
00046     {
00047       fprintf( stdout, "\tSYSEX length: %d\n", msg->GetSysEx()->GetLength() );
00048     }
00049     
00050   } 
00051   
00052 }

void DumpMIDITrack MIDITrack t  ) 
 

Definition at line 54 of file jdkmidi_test_multitrack.cpp.

References DumpMIDITimedBigMessage(), jdkmidi::MIDITrack::GetEventAddress(), and jdkmidi::MIDITrack::GetNumEvents().

00055 {
00056   MIDITimedBigMessage *msg;
00057   
00058   for( int i=0; i<t->GetNumEvents(); ++i )
00059   {
00060     msg = t->GetEventAddress( i );
00061     DumpMIDITimedBigMessage( msg );   
00062     
00063   }
00064   
00065 }

int main int  argc,
char **  argv
 

Definition at line 110 of file jdkmidi_test_multitrack.cpp.

References DumpMIDIMultiTrack(), and jdkmidi::MIDIFileRead::Parse().

00111 {
00112   if( argc>1 )
00113   {   
00114     MIDIFileReadStreamFile rs( argv[1] );
00115     MIDIMultiTrack tracks;
00116     MIDIFileReadMultiTrack track_loader( &tracks );
00117     MIDIFileRead reader( &rs, &track_loader );
00118     
00119     reader.Parse();
00120     
00121     DumpMIDIMultiTrack( &tracks );
00122     
00123   }
00124   
00125   return 0;   
00126 }