another TLSF vs realloc-pool shootout
[ardour.git] / libs / ardour / ardour / instrument_info.h
index 8691db24e5932676f5f386c46d1c7f5abbbf082f..8e08c8b4b72397203c4ae814074ddaa0c9727f8e 100644 (file)
 
 #include "evoral/Parameter.hpp"
 
+#include "midi++/libmidi_visibility.h"
+#include "ardour/libardour_visibility.h"
+
 namespace MIDI {
-namespace Name {
-class ChannelNameSet;
-class Patch;
-typedef std::list<boost::shared_ptr<Patch> > PatchNameList;
-}
+       namespace Name {
+               class ChannelNameSet;
+               class Patch;
+               typedef std::list<boost::shared_ptr<Patch> > PatchNameList;
+       }
 }
 
 namespace ARDOUR {
 
 class Processor;
 
-class InstrumentInfo {
+class LIBARDOUR_API InstrumentInfo {
   public:
     InstrumentInfo();
     ~InstrumentInfo ();
@@ -49,6 +52,7 @@ class 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;
 
@@ -67,6 +71,7 @@ class 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;
 };