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_drv.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"
#include "jdkmidi/sequencer.h"
#include "jdkmidi/manager.h"
#include "jdkmidi/driverdump.h"

Go to the source code of this file.

Functions

void DumpTrackNames (MIDISequencer *seq)
void PlayDumpManager (MIDIManager *mgr)
int main (int argc, char **argv)


Function Documentation

void DumpTrackNames MIDISequencer seq  ) 
 

Definition at line 37 of file jdkmidi_test_drv.cpp.

References jdkmidi::MIDISequencer::GetNumTracks(), jdkmidi::MIDISequencer::GetTrackState(), jdkmidi::MIDISequencerTrackState::tempobpm, and jdkmidi::MIDISequencerTrackState::track_name.

00038 {
00039   fprintf( stdout, "TEMPO = %f\n",
00040            seq->GetTrackState(0)->tempobpm
00041     );
00042   
00043   for( int i=0; i<seq->GetNumTracks(); ++i )
00044   {
00045     fprintf( stdout, "TRK #%2d : NAME = '%s'\n", 
00046              i,
00047              seq->GetTrackState(i)->track_name
00048       );
00049   } 
00050 } 

int main int  argc,
char **  argv
 

Definition at line 75 of file jdkmidi_test_drv.cpp.

References DumpTrackNames(), jdkmidi::MIDISequencer::GoToZero(), jdkmidi::MIDIFileRead::Parse(), PlayDumpManager(), and jdkmidi::MIDIManager::SetSeq().

00076 {
00077   if( argc>1 )
00078   {
00079     MIDIFileReadStreamFile rs( argv[1] );
00080     MIDIMultiTrack tracks(64);
00081     MIDIFileReadMultiTrack track_loader( &tracks );
00082     MIDIFileRead reader( &rs, &track_loader );
00083     MIDISequencerGUIEventNotifierText gui( stdout );
00084     MIDISequencer seq( &tracks, &gui );
00085     MIDIDriverDump driver(128,stdout);
00086     MIDIManager mgr( &driver, &gui );
00087     
00088     reader.Parse();
00089     
00090     seq.GoToZero();
00091     mgr.SetSeq( &seq );
00092     
00093     DumpTrackNames( &seq );
00094     
00095     PlayDumpManager( &mgr );
00096   }
00097   
00098   return 0;
00099 }

void PlayDumpManager MIDIManager mgr  ) 
 

Definition at line 53 of file jdkmidi_test_drv.cpp.

References jdkmidi::MIDIDriver::AllNotesOff(), jdkmidi::MIDIManager::GetDriver(), jdkmidi::MIDIManager::GetSeq(), jdkmidi::MIDISequencer::GoToTime(), jdkmidi::MIDIManager::SeqPlay(), jdkmidi::MIDIManager::SeqStop(), and jdkmidi::MIDIDriver::TimeTick().

00054 { 
00055   MIDISequencer *seq = mgr->GetSeq();
00056   double pretend_clock_time = 0.0;
00057   
00058   seq->GoToTime( (unsigned long)pretend_clock_time );
00059   
00060   mgr->SeqPlay();
00061   
00062   // simulate a clock going forward with 10ms resolution for 1 minute
00063   
00064   for( pretend_clock_time=0.0; pretend_clock_time<60.0*1000.0; pretend_clock_time+=100 )
00065   {
00066     mgr->GetDriver()->TimeTick( (unsigned long)pretend_clock_time );  
00067   }
00068   
00069   mgr->SeqStop();
00070   mgr->GetDriver()->AllNotesOff();
00071   
00072 }