gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 }