summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-05-22 08:23:35 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:44 -0400
commit027caa4207ad88da99616491372fa4206c8e3d48 (patch)
treeee0960f3654db471ad27dbced939de7b9aaa7266
parent428ed8ae1b9df42b91d932242ed51d30d0255c03 (diff)
add new API to InstrumentInfo to get program names in a very slightly different format
-rw-r--r--libs/ardour/ardour/instrument_info.h2
-rw-r--r--libs/ardour/instrument_info.cc18
2 files changed, 19 insertions, 1 deletions
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<ARDOUR::Processor>);
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<MIDI::Name::ChannelNameSet> plugin_programs_to_channel_name_set (boost::shared_ptr<Processor> p);
std::string get_plugin_patch_name (boost::shared_ptr<ARDOUR::Processor>, 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
@@ -82,6 +82,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<Processor> p = internal_instrument.lock();
if (p) {
return get_plugin_patch_name (p, bank, program, channel);
@@ -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);
+ }
}
}