clipboard.h (1218B)
1 #pragma once 2 3 #include <cstdint> 4 #include <map> 5 #include <string> 6 #include <vector> 7 8 #include "types.h" 9 10 namespace pluginLib 11 { 12 class Processor; 13 14 class Clipboard 15 { 16 public: 17 struct Data 18 { 19 using ParameterValues = std::map<std::string, ParamValue>; 20 21 std::string pluginName; 22 std::string pluginVersionString; 23 uint32_t pluginVersionNumber; 24 uint32_t formatVersion; 25 26 std::string parameterRegion; 27 28 ParameterValues parameterValues; 29 std::map<std::string,ParameterValues> parameterValuesByRegion; 30 31 std::vector<uint8_t> sysex; 32 33 bool empty() const 34 { 35 return sysex.empty() && parameterValues.empty(); 36 } 37 }; 38 39 static std::string midiDataToString(const std::vector<uint8_t>& _data, uint32_t _bytesPerLine = 32); 40 static std::vector<uint8_t> getSysexFromString(const std::string& _text); 41 static std::string parametersToString(Processor& _processor, const std::vector<std::string>& _parameters, const std::string& _regionId); 42 static std::string createJsonString(Processor& _processor, const std::vector<std::string>& _parameters, const std::string& _regionId, const std::vector<uint8_t>& _sysex); 43 static Data getDataFromString(Processor& _processor, const std::string& _text); 44 }; 45 }