From: <sv...@op...> - 2025-05-30 10:19:37
|
Author: sagamusix Date: Fri May 30 12:19:25 2025 New Revision: 23226 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=23226 Log: [Fix] LFO Plugin Editor: Improve handling of no plugin being selected for output. [Imp] MIDI I/O Plugin Editor: Ask if files that are unlikely to be SysEx dumps should really be loaded. Modified: trunk/OpenMPT/mptrack/plugins/LFOPluginEditor.cpp trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Modified: trunk/OpenMPT/mptrack/plugins/LFOPluginEditor.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/LFOPluginEditor.cpp Fri May 30 11:23:42 2025 (r23225) +++ trunk/OpenMPT/mptrack/plugins/LFOPluginEditor.cpp Fri May 30 12:19:25 2025 (r23226) @@ -123,6 +123,13 @@ m_plugParam.ResetContent(); SetWindowLongPtr(m_plugParam, GWLP_USERDATA, 0); } + const BOOL enableWindow = outPlug ? TRUE : FALSE; + m_midiCC.EnableWindow(enableWindow); + m_midiChnEdit.EnableWindow(enableWindow); + m_midiChnSpin.EnableWindow(enableWindow); + GetDlgItem(IDC_RADIO7)->EnableWindow(enableWindow); + GetDlgItem(IDC_RADIO8)->EnableWindow(enableWindow); + m_plugParam.SetRedraw(TRUE); m_locked = false; } @@ -170,7 +177,7 @@ void LFOPluginEditor::UpdateView(UpdateHint hint) { CAbstractVstEditor::UpdateView(hint); - m_outPlug.Update(PluginComboBox::Config{PluginComboBox::ShowLibraryNames} + m_outPlug.Update(PluginComboBox::Config{PluginComboBox::ShowLibraryNames | PluginComboBox::ShowNoPlugin} .Hint(hint) .CurrentSelection(m_lfoPlugin.m_pMixStruct->GetOutputPlugin()) .FirstPlugin(m_lfoPlugin.GetSlot() + 1), m_lfoPlugin.GetSoundFile()); @@ -333,14 +340,11 @@ return; PLUGINDEX plug = m_outPlug.GetSelection().value_or(PLUGINDEX_INVALID); - if(plug > m_lfoPlugin.GetSlot() && plug < MAX_MIXPLUGINS) - { - m_lfoPlugin.GetSoundFile().m_MixPlugins[m_lfoPlugin.GetSlot()].SetOutputPlugin(plug); - m_lfoPlugin.SetModified(); - UpdateParamDisplays(); - if(CModDoc *modDoc = m_lfoPlugin.GetSoundFile().GetpModDoc(); modDoc != nullptr) - modDoc->UpdateAllViews(nullptr, PluginHint(m_lfoPlugin.GetSlot() + 1).Info(), this); - } + m_lfoPlugin.GetSoundFile().m_MixPlugins[m_lfoPlugin.GetSlot()].SetOutputPlugin(plug); + m_lfoPlugin.SetModified(); + UpdateParamDisplays(); + if(CModDoc *modDoc = m_lfoPlugin.GetSoundFile().GetpModDoc(); modDoc != nullptr) + modDoc->UpdateAllViews(nullptr, PluginHint(m_lfoPlugin.GetSlot() + 1).Info(), this); } Modified: trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp ============================================================================== --- trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Fri May 30 11:23:42 2025 (r23225) +++ trunk/OpenMPT/mptrack/plugins/MidiInOutEditor.cpp Fri May 30 12:19:25 2025 (r23226) @@ -14,6 +14,7 @@ #include "MidiInOut.h" #include "../FileDialog.h" #include "../Mptrack.h" +#include "../Reporting.h" #include "../resource.h" #include "../UpdateHints.h" #include "../../soundlib/MIDIEvents.h" @@ -288,6 +289,11 @@ FileReader file = GetFileReader(f); std::vector<uint8> dump; file.ReadVector(dump, file.GetLength()); + if(!dump.empty() && dump[0] < 0x80) + { + if(Reporting::Confirm("This file is most likely not a valid SysEx dump. Load it anyway?") != cnfYes) + return; + } static_cast<MidiInOut &>(m_VstPlugin).SetInitialMidiDump(std::move(dump)); m_locked = true; UpdateMidiDump(); |