add MIDI debug

issue #1701
This commit is contained in:
tildearrow 2024-01-25 15:29:37 -05:00
parent 4deb0041f5
commit 91bddb8df6
4 changed files with 23 additions and 0 deletions

View file

@ -3412,6 +3412,10 @@ void DivEngine::setMidiCallback(std::function<int(const TAMidiMessage&)> what) {
midiCallback=what;
}
void DivEngine::setMidiDebug(bool enable) {
midiDebug=enable;
}
bool DivEngine::sendMidiMessage(TAMidiMessage& msg) {
if (output==NULL) {
logW("output is NULL!");

View file

@ -497,6 +497,7 @@ class DivEngine {
short effectSlotMap[4096];
int midiBaseChan;
bool midiPoly;
bool midiDebug;
size_t midiAgeCounter;
blip_buffer_t* samp_bb;
@ -1208,6 +1209,9 @@ class DivEngine {
// send MIDI message
bool sendMidiMessage(TAMidiMessage& msg);
// enable MIDI debug
void setMidiDebug(bool enable);
// perform secure/sync operation
void synchronized(const std::function<void()>& what);
@ -1329,6 +1333,7 @@ class DivEngine {
cmdStreamInt(NULL),
midiBaseChan(0),
midiPoly(true),
midiDebug(false),
midiAgeCounter(0),
samp_bb(NULL),
samp_bbInLen(0),

View file

@ -1841,6 +1841,13 @@ void DivEngine::nextBuf(float** in, float** out, int inChans, int outChans, unsi
// process MIDI events (TODO: everything)
if (output) if (output->midiIn) while (!output->midiIn->queue.empty()) {
TAMidiMessage& msg=output->midiIn->queue.front();
if (midiDebug) {
if (msg.type==TA_MIDI_SYSEX) {
logD("MIDI debug: %.2X SysEx",msg.type);
} else {
logD("MIDI debug: %.2X %.2X %.2X",msg.type,msg.data[0],msg.data[1]);
}
}
int ins=-1;
if ((ins=midiCallback(msg))!=-2) {
int chan=msg.type&15;

View file

@ -432,6 +432,13 @@ void FurnaceGUI::drawDebug() {
ImGui::TreePop();
}
if (ImGui::TreeNode("MIDI Debug")) {
if (ImGui::Button("Enable Debug (go to log viewer")) {
e->setMidiDebug(true);
nextWindow=GUI_WINDOW_LOG;
}
ImGui::TreePop();
}
if (ImGui::TreeNode("Visualizer Debug")) {
if (ImGui::BeginTable("visX",3,ImGuiTableFlags_Borders)) {
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);