#ifndef __BMPlayer_h__ #define __BMPlayer_h__ #include "MIDIPlayer.h" #include typedef struct sflist_presets sflist_presets; class BMPlayer : public MIDIPlayer { public: // zero variables BMPlayer(); // close, unload virtual ~BMPlayer(); // configuration void setSoundFont(const char* in); void setFileSoundFont(const char* in); void setSincInterpolation(bool enable = true); private: virtual void send_event(uint32_t b); virtual void send_sysex(const uint8_t* data, size_t size, size_t port); virtual void render(float* out, unsigned long count); virtual void shutdown(); virtual bool startup(); void compound_presets(std::vector& out, std::vector& in, std::vector& channels); void reset_parameters(); std::vector _soundFonts; sflist_presets* _presetList; std::string sSoundFontName; std::string sFileSoundFontName; HSTREAM _stream[3]; bool bSincInterpolation; bool bank_lsb_overridden; uint8_t bank_lsb_override[48]; }; #endif