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

commands.cpp (4287B)


      1 #include "commands.h"
      2 
      3 #include <array>
      4 
      5 #include "baseLib/binarystream.h"
      6 
      7 namespace bridgeLib
      8 {
      9 	std::string commandToString(const Command _command)
     10 	{
     11 		std::array<char, 5> temp;
     12 		commandToBuffer(temp, _command);
     13 		return {temp.data()};
     14 	}
     15 
     16 	void commandToBuffer(std::array<char, 5>& _buffer, Command _command)
     17 	{
     18 		const auto c = static_cast<uint32_t>(_command);
     19 		_buffer[0] = static_cast<char>((c >> 24) & 0xff);
     20 		_buffer[1] = static_cast<char>((c >> 16) & 0xff);
     21 		_buffer[2] = static_cast<char>((c >> 8) & 0xff);
     22 		_buffer[3] = static_cast<char>((c) & 0xff);
     23 		_buffer[4] = 0;
     24 	}
     25 
     26 	baseLib::BinaryStream& Error::write(baseLib::BinaryStream& _s) const
     27 	{
     28 		_s.write<uint32_t>(static_cast<uint32_t>(code));
     29 		_s.write(msg);
     30 		return _s;
     31 	}
     32 
     33 	baseLib::BinaryStream& Error::read(baseLib::BinaryStream& _s)
     34 	{
     35 		code = static_cast<ErrorCode>(_s.read<uint32_t>());
     36 		msg = _s.readString();
     37 		return _s;
     38 	}
     39 
     40 	baseLib::BinaryStream& ServerInfo::write(baseLib::BinaryStream& _s) const
     41 	{
     42 		_s.write(protocolVersion);
     43 		_s.write(portUdp);
     44 		_s.write(portTcp);
     45 		return _s;
     46 	}
     47 
     48 	baseLib::BinaryStream& ServerInfo::read(baseLib::BinaryStream& _s)
     49 	{
     50 		_s.read(protocolVersion);
     51 		_s.read(portUdp);
     52 		_s.read(portTcp);
     53 		return _s;
     54 	}
     55 
     56 	baseLib::BinaryStream& PluginDesc::write(baseLib::BinaryStream& _s) const
     57 	{
     58 		_s.write(protocolVersion);
     59 		_s.write(pluginName);
     60 		_s.write(pluginVersion);
     61 		_s.write(plugin4CC);
     62 		_s.write(sessionId);
     63 		return _s;
     64 	}
     65 
     66 	baseLib::BinaryStream& PluginDesc::read(baseLib::BinaryStream& _s)
     67 	{
     68 		_s.read(protocolVersion);
     69 		pluginName = _s.readString();
     70 		_s.read(pluginVersion);
     71 		plugin4CC = _s.readString();
     72 		_s.read(sessionId);
     73 		return _s;
     74 	}
     75 
     76 	baseLib::BinaryStream& DeviceCreateParams::read(baseLib::BinaryStream& _s)
     77 	{
     78 		_s.read(params.preferredSamplerate);
     79 		_s.read(params.hostSamplerate);
     80 		params.romName = _s.readString();
     81 		_s.read(params.romData);
     82 		_s.read(params.romHash);
     83 		_s.read(params.customData);
     84 		return _s;
     85 	}
     86 
     87 	baseLib::BinaryStream& DeviceCreateParams::write(baseLib::BinaryStream& _s) const
     88 	{
     89 		_s.write(params.preferredSamplerate);
     90 		_s.write(params.hostSamplerate);
     91 		_s.write(params.romName);
     92 		_s.write(params.romData);
     93 		_s.write(params.romHash);
     94 		_s.write(params.customData);
     95 		return _s;
     96 	}
     97 
     98 	baseLib::BinaryStream& DeviceDesc::write(baseLib::BinaryStream& _s) const
     99 	{
    100 		_s.write(samplerate);
    101 		_s.write(outChannels);
    102 		_s.write(inChannels);
    103 		_s.write(dspClockPercent);
    104 		_s.write(dspClockHz);
    105 		_s.write(latencyInToOut);
    106 		_s.write(latencyMidiToOut);
    107 		_s.write(preferredSamplerates);
    108 		_s.write(supportedSamplerates);
    109 		return _s;
    110 	}
    111 
    112 	baseLib::BinaryStream& DeviceDesc::read(baseLib::BinaryStream& _s)
    113 	{
    114 		_s.read(samplerate);
    115 		_s.read(outChannels);
    116 		_s.read(inChannels);
    117 		_s.read(dspClockPercent);
    118 		_s.read(dspClockHz);
    119 		_s.read(latencyInToOut);
    120 		_s.read(latencyMidiToOut);
    121 		_s.read(preferredSamplerates);
    122 		_s.read(supportedSamplerates);
    123 		return _s;
    124 	}
    125 
    126 	baseLib::BinaryStream& RequestDeviceState::write(baseLib::BinaryStream& _s) const
    127 	{
    128 		_s.write(static_cast<uint32_t>(type));
    129 		return _s;
    130 	}
    131 
    132 	baseLib::BinaryStream& RequestDeviceState::read(baseLib::BinaryStream& _s)
    133 	{
    134 		type = static_cast<synthLib::StateType>(_s.read<uint32_t>());
    135 		return _s;
    136 	}
    137 
    138 	baseLib::BinaryStream& DeviceState::write(baseLib::BinaryStream& _s) const
    139 	{
    140 		_s.write(static_cast<uint32_t>(type));
    141 		_s.write(state);
    142 		return _s;
    143 	}
    144 
    145 	baseLib::BinaryStream& DeviceState::read(baseLib::BinaryStream& _s)
    146 	{
    147 		type = static_cast<synthLib::StateType>(_s.read<uint32_t>());
    148 		_s.read(state);
    149 		return _s;
    150 	}
    151 
    152 	baseLib::BinaryStream& SetSamplerate::write(baseLib::BinaryStream& _s) const
    153 	{
    154 		_s.write(samplerate);
    155 		return _s;
    156 	}
    157 
    158 	baseLib::BinaryStream& SetSamplerate::read(baseLib::BinaryStream& _s)
    159 	{
    160 		_s.read(samplerate);
    161 		return _s;
    162 	}
    163 
    164 	baseLib::BinaryStream& SetUnknownCustomData::write(baseLib::BinaryStream& _s) const
    165 	{
    166 		_s.write(data);
    167 		return _s;
    168 	}
    169 
    170 	baseLib::BinaryStream& SetUnknownCustomData::read(baseLib::BinaryStream& _s)
    171 	{
    172 		_s.read(data);
    173 		return _s;
    174 	}
    175 
    176 	baseLib::BinaryStream& SetDspClockPercent::write(baseLib::BinaryStream& _s) const
    177 	{
    178 		_s.write(percent);
    179 		return _s;
    180 	}
    181 
    182 	baseLib::BinaryStream& SetDspClockPercent::read(baseLib::BinaryStream& _s)
    183 	{
    184 		_s.read(percent);
    185 		return _s;
    186 	}
    187 }