commit 8e71149a128be41bbd7a143970ac227f8dbb868f
parent 4e4b47c5c398121fafec3bd008582354be49269d
Author: Tal Aviram <me@talaviram.com>
Date: Mon, 26 Jul 2021 21:06:00 +0300
controller - parseAsciiText from dumps.
Diffstat:
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/source/jucePlugin/VirusController.cpp b/source/jucePlugin/VirusController.cpp
@@ -68,6 +68,9 @@ namespace Virus
{
uint8_t bankNum, progNum, data256, checksum;
assert(msg.size() - kHeaderWithMsgCodeLen > 0);
+ constexpr auto startPos = kHeaderWithMsgCodeLen + 4;
+ auto progName = parseAsciiText(msg, startPos + 1);
+ DBG(progName);
}
void Controller::parseData(const SysEx &msg, const size_t startPos)
@@ -79,6 +82,20 @@ namespace Virus
const auto dataSize = msg.size() - startPos - 1;
const auto hasChecksum = dataSize == expectedDataSize + checkSumSize;
assert(hasChecksum || dataSize == expectedDataSize);
+
+ const auto namePos = 128 + 112;
+ assert(startPos + namePos < msg.size());
+ auto progName = parseAsciiText(msg, startPos + namePos);
+ DBG(progName);
+ }
+
+ juce::String Controller::parseAsciiText(const SysEx &msg, const int start)
+ {
+ char text[kNameLength + 1];
+ text[kNameLength] = 0; // termination
+ for (auto pos = 0; pos < kNameLength; ++pos)
+ text[pos] = msg[start + pos];
+ return juce::String(text);
}
void Controller::printMessage(const SysEx &msg) const
diff --git a/source/jucePlugin/VirusController.h b/source/jucePlugin/VirusController.h
@@ -10,6 +10,8 @@ namespace Virus
class Controller
{
public:
+ static constexpr auto kNameLength = 10;
+
Controller(AudioPluginAudioProcessor &, unsigned char deviceId = 0x00);
// this is called by the plug-in on audio thread!
@@ -18,6 +20,7 @@ namespace Virus
void printMessage(const SysEx &) const;
private:
+ juce::String parseAsciiText(const SysEx &, int startPos);
void parseMessage(const SysEx &);
void parseSingle(const SysEx &);
void parseMulti(const SysEx &);