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_multitrack1.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 63 of file jdkmidi_test_multitrack1.cpp.

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

00064 {
00065   
00066   for( int i=0; i<mlt->GetNumTracks(); ++i )
00067   {
00068     if( mlt->GetTrack(i)->GetNumEvents() > 0 )
00069     {
00070       fprintf( stdout, "DUMP OF TRACK #%2d:\n", i );
00071       DumpMIDITrack( mlt->GetTrack(i) );
00072       fprintf( stdout, "\n" );
00073     }
00074     
00075   }
00076   
00077 }

void DumpMIDIMultiTrack MIDIMultiTrack mlt  ) 
 

Definition at line 80 of file jdkmidi_test_multitrack1.cpp.

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

00081 {
00082   MIDIMultiTrackIterator i( mlt );
00083   MIDITimedBigMessage *msg;
00084   
00085   i.GoToTime(0);
00086   
00087   do
00088   {
00089     int trk_num;
00090     
00091     if( i.GetCurEvent(&trk_num, &msg ) )
00092     {
00093       fprintf( stdout, "#%2d - ", trk_num );
00094       DumpMIDITimedBigMessage( msg );
00095     }       
00096   } while( i.GoToNextEvent() );
00097   
00098 }

void DumpMIDITimedBigMessage MIDITimedBigMessage msg  ) 
 

Definition at line 34 of file jdkmidi_test_multitrack1.cpp.

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

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

void DumpMIDITrack MIDITrack t  ) 
 

Definition at line 50 of file jdkmidi_test_multitrack1.cpp.

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

00051 {
00052   MIDITimedBigMessage *msg;
00053   
00054   for( int i=0; i<t->GetNumEvents(); ++i )
00055   {
00056     msg = t->GetEventAddress( i );
00057     DumpMIDITimedBigMessage( msg );   
00058     
00059   }
00060   
00061 }

int main int  argc,
char **  argv
 

Definition at line 102 of file jdkmidi_test_multitrack1.cpp.

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

00103 {
00104   if( argc>1 )
00105   {   
00106     MIDIFileReadStreamFile rs( argv[1] );
00107     MIDIMultiTrack tracks;
00108     MIDIFileReadMultiTrack track_loader( &tracks );
00109     MIDIFileRead reader( &rs, &track_loader );
00110     
00111     reader.Parse();
00112     
00113     DumpMIDIMultiTrack( &tracks );
00114     
00115   }
00116   
00117   return 0;   
00118 }