diff --git a/libs/ardour/ardour/instrument_info.h b/libs/ardour/ardour/instrument_info.h index 745e4803c0..8e08c8b4b7 100644 --- a/libs/ardour/ardour/instrument_info.h +++ b/libs/ardour/ardour/instrument_info.h @@ -52,6 +52,7 @@ class LIBARDOUR_API InstrumentInfo { void set_internal_instrument (boost::shared_ptr); std::string get_patch_name (uint16_t bank, uint8_t program, uint8_t channel) const; + std::string get_patch_name_without (uint16_t bank, uint8_t program, uint8_t channel) const; std::string get_controller_name (Evoral::Parameter param) const; std::string get_instrument_name () const; @@ -70,6 +71,7 @@ class LIBARDOUR_API InstrumentInfo { boost::shared_ptr plugin_programs_to_channel_name_set (boost::shared_ptr p); std::string get_plugin_patch_name (boost::shared_ptr, uint16_t bank, uint8_t program, uint8_t channel) const; + std::string get_patch_name (uint16_t bank, uint8_t program, uint8_t channel, bool with_extra) const; static MIDI::Name::PatchNameList _gm_patches; }; diff --git a/libs/ardour/instrument_info.cc b/libs/ardour/instrument_info.cc index c30994befc..a3b48ee790 100644 --- a/libs/ardour/instrument_info.cc +++ b/libs/ardour/instrument_info.cc @@ -81,6 +81,18 @@ InstrumentInfo::get_instrument_name () const string InstrumentInfo::get_patch_name (uint16_t bank, uint8_t program, uint8_t channel) const +{ + return get_patch_name (bank, program, channel, true); +} + +string +InstrumentInfo::get_patch_name_without (uint16_t bank, uint8_t program, uint8_t channel) const +{ + return get_patch_name (bank, program, channel, false); +} + +string +InstrumentInfo::get_patch_name (uint16_t bank, uint8_t program, uint8_t channel, bool with_extra) const { boost::shared_ptr p = internal_instrument.lock(); if (p) { @@ -100,7 +112,11 @@ InstrumentInfo::get_patch_name (uint16_t bank, uint8_t program, uint8_t channel) #define MIDI_BP_ZERO ((Config->get_first_midi_bank_is_zero())?0:1) - return string_compose ("prg %1 bnk %2",program + MIDI_BP_ZERO , bank + MIDI_BP_ZERO); + if (with_extra) { + return string_compose ("prg %1 bnk %2",program + MIDI_BP_ZERO , bank + MIDI_BP_ZERO); + } else { + return string_compose ("%1", program + MIDI_BP_ZERO); + } } }