midiToSysex.h (920B)
1 #pragma once 2 3 #include <vector> 4 #include <iostream> 5 #include <cstdint> 6 7 namespace synthLib 8 { 9 class MidiToSysex 10 { 11 public: 12 static bool readFile(std::vector<uint8_t>& _sysexMessages, const char* _filename); 13 static void splitMultipleSysex(std::vector<std::vector<uint8_t>>& _dst, const std::vector<uint8_t>& _src, bool _isMidiFileData = false); 14 static bool extractSysexFromFile(std::vector<std::vector<uint8_t>>& _messages, const std::string& _filename); 15 static bool extractSysexFromData(std::vector<std::vector<uint8_t>>& _messages, const std::vector<uint8_t>& _data); 16 private: 17 static bool checkChunk(FILE* hFile, const char* _pCompareChunk); 18 static uint32_t getChunkLength(FILE* hFile); 19 static int32_t readVarLen(FILE* hFile, int* _pNumBytesRead); 20 static void readVarLen(uint32_t& _numBytesRead, uint32_t& _result, const uint8_t* _data, size_t _numBytes); 21 static bool ignoreChunk(FILE* hFile); 22 }; 23 }