#include <file.h>
Inheritance diagram for jdkmidi::MIDIFile:

Public Types | |
| enum | { MF_SEQUENCE_NUMBER = 0, MF_TEXT_EVENT = 1, MF_COPYRIGHT = 2, MF_TRACK_NAME = 3, MF_INSTRUMENT_NAME = 4, MF_LYRIC = 5, MF_MARKER = 6, MF_CUE_POINT = 7, MF_GENERIC_TEXT_8 = 8, MF_GENERIC_TEXT_9 = 9, MF_GENERIC_TEXT_A = 0xA, MF_GENERIC_TEXT_B = 0xB, MF_GENERIC_TEXT_C = 0xC, MF_GENERIC_TEXT_D = 0xD, MF_GENERIC_TEXT_E = 0xE, MF_GENERIC_TEXT_F = 0xF, MF_OUTPUT_CABLE = 0x21, MF_TRACK_LOOP = 0x2E, MF_END_OF_TRACK = 0x2F, MF_TEMPO = 0x51, MF_SMPTE = 0x54, MF_TIMESIG = 0x58, MF_KEYSIG = 0x59, MF_SEQUENCER_SPECIFIC = 0x7F } |
Public Member Functions | |
| MIDIFile () | |
| virtual | ~MIDIFile () |
Static Public Member Functions | |
| unsigned long | ConvertTempoToFreq (short division, MIDITempo &tempo) |
| unsigned long | To32Bit (unsigned char a, unsigned char b, unsigned char c, unsigned char d) |
| unsigned short | To16Bit (unsigned char a, unsigned char b) |
| unsigned long | ReadVariableLengthNumber (unsigned char **in) |
| unsigned char * | WriteVariableLengthNumber (unsigned long num, unsigned char *out) |
|
|
Definition at line 80 of file file.h.
00081 {
00082 MF_SEQUENCE_NUMBER =0,
00083 MF_TEXT_EVENT =1,
00084 MF_COPYRIGHT =2,
00085 MF_TRACK_NAME =3,
00086 MF_INSTRUMENT_NAME =4,
00087 MF_LYRIC =5,
00088 MF_MARKER =6,
00089 MF_CUE_POINT =7,
00090 MF_GENERIC_TEXT_8 =8,
00091 MF_GENERIC_TEXT_9 =9,
00092 MF_GENERIC_TEXT_A =0xA,
00093 MF_GENERIC_TEXT_B =0xB,
00094 MF_GENERIC_TEXT_C =0xC,
00095 MF_GENERIC_TEXT_D =0xD,
00096 MF_GENERIC_TEXT_E =0xE,
00097 MF_GENERIC_TEXT_F =0xF,
00098
00099 MF_OUTPUT_CABLE =0x21,
00100 MF_TRACK_LOOP =0x2E,
00101 MF_END_OF_TRACK =0x2F,
00102 MF_TEMPO =0x51,
00103 MF_SMPTE =0x54,
00104 MF_TIMESIG =0x58,
00105 MF_KEYSIG =0x59,
00106 MF_SEQUENCER_SPECIFIC =0x7F
00107 };
|
|
|
Definition at line 47 of file jdkmidi_file.cpp.
00048 {
00049 }
|
|
|
Definition at line 51 of file jdkmidi_file.cpp.
00052 {
00053 }
|
|
||||||||||||
|
Definition at line 55 of file jdkmidi_file.cpp. References jdkmidi::MIDITempo::GetMIDIFileTempo().
00059 {
00060 if( division>0 )
00061 {
00062 long clocks_per_beat = (long)division*1000;
00063 long micro_sec_per_beat = tempo.GetMIDIFileTempo()/1000;
00064
00065 return (unsigned long) clocks_per_beat/micro_sec_per_beat;
00066 }
00067 else
00068 {
00069 // TO DO: handle smpte frame rate references
00070 return 120;
00071 }
00072 }
|
|
|
Definition at line 75 of file jdkmidi_file.cpp.
00076 {
00077 unsigned long num=0;
00078 unsigned char *t=*in;
00079
00080 do
00081 {
00082 num <<= 7;
00083 num |= (*t);
00084 } while( (*t++)&0x80 );
00085
00086 *in=t;
00087 return num;
00088 }
|
|
||||||||||||
|
Definition at line 137 of file file.h.
00138 {
00139 return (unsigned short)(((unsigned short)a << 8)
00140 + ((unsigned short)b << 0));
00141 }
|
|
||||||||||||||||||||
|
Definition at line 124 of file file.h.
00125 {
00126 return ((unsigned long)a << 24)
00127 + ((unsigned long)b << 16)
00128 + ((unsigned long)c << 8 )
00129 + ((unsigned long)d << 0 );
00130 }
|
|
||||||||||||
|
Definition at line 90 of file jdkmidi_file.cpp.
00091 {
00092 register unsigned long buffer;
00093
00094 buffer = num & 0x7f;
00095 while( (num >>=7 )>0 )
00096 {
00097 buffer <<= 8;
00098 buffer |=0x80;
00099 buffer += (num & 0x7f);
00100 }
00101
00102 do
00103 {
00104 *out++ = (unsigned char)buffer;
00105 if( buffer & 0x80 )
00106 buffer >>=8;
00107 else
00108 break;
00109 } while( true );
00110
00111 return out;
00112 }
|