37 lines
		
	
	
		
			906 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			906 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef MIDI_H
 | 
						|
#define MIDI_H
 | 
						|
 | 
						|
#include <cstdint>
 | 
						|
 | 
						|
#include "gtmidi.h"
 | 
						|
 | 
						|
 | 
						|
#define MIDI_MAX_BUFFER_SIZE     0x10000
 | 
						|
#define MIDI_MIN_SEGMENT_SIZE    9 // allows for 2 midi commands + segment command
 | 
						|
#define MIDI_CMD_JMP_SEG_SIZE    3
 | 
						|
#define MIDI_MAX_SOUND_CHANNELS  4
 | 
						|
#define MIDI_MASK_SOUND_CHANNELS 0x03
 | 
						|
#define MIDI_MIN_GIGA_NOTE       12
 | 
						|
#define MIDI_MAX_GIGA_NOTE       106
 | 
						|
#define MIDI_PERCUSSION_NOTES    128
 | 
						|
#define MIDI_CMD_STOP_NOTE       0x80
 | 
						|
#define MIDI_CMD_START_NOTE      0x90
 | 
						|
#define MIDI_CMD_JMP_SEG         0xD0
 | 
						|
 | 
						|
 | 
						|
namespace Midi
 | 
						|
{
 | 
						|
    bool loadFile(const std::string& filepath, uint8_t* midiBuffer, int& midiBufferSize, GtMidiHdr* gtMidiHdr=nullptr);
 | 
						|
 | 
						|
#ifndef STAND_ALONE
 | 
						|
    uint8_t* getStream(void);
 | 
						|
 | 
						|
    bool setStream(const std::string* filenamePtr, uint8_t* midiBuffer, uint16_t midiBufferSize);
 | 
						|
 | 
						|
    void stop(void);
 | 
						|
    void play(void);
 | 
						|
    void pause(bool enable);
 | 
						|
#endif
 | 
						|
}
 | 
						|
 | 
						|
#endif |