summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-02-02 18:51:32 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-02-02 18:51:32 +0000
commit02ec346c2b8a8872bfb3b7f231556c0f514ff95f (patch)
treebe2df0e173195dcfbade187f0afd49aaf2bad91d
parent2cc255ac0844b6e1fab69c08a524d5a9963bd713 (diff)
add virtual method is_instrument() to PluginInfo (already existed for AUPluginInfo) and use to determine if plugin is an instrument for the purposes of AddRouteDialog, since the rules are plugin-type specific
git-svn-id: svn://localhost/ardour2/branches/3.0@11426 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/add_route_dialog.cc8
-rw-r--r--libs/ardour/ardour/plugin.h1
-rw-r--r--libs/ardour/audioengine.cc2
-rw-r--r--libs/ardour/plugin.cc6
4 files changed, 9 insertions, 8 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index 07d5662a50..a3fc0ba730 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -516,13 +516,7 @@ AddRouteDialog::build_instrument_list ()
if (manager.get_status (*i) == PluginManager::Hidden) continue;
- string category = (*i)->category;
-
- /* XXX more finesse is possible here. VST plugins have a
- a specific "instrument" flag, for example.
- */
-
- if ((*i)->n_inputs.n_midi() != 0 && (*i)->n_outputs.n_audio() > 0) {
+ if ((*i)->is_instrument()) {
row = *(instrument_list->append());
row[instrument_list_columns.name] = (*i)->name;
row[instrument_list_columns.info_ptr] = *i;
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index 0c2bcbdd93..ec185b3a31 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -65,6 +65,7 @@ class PluginInfo {
std::string unique_id;
virtual PluginPtr load (Session& session) = 0;
+ virtual bool is_instrument() const;
protected:
friend class PluginManager;
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 69155f54b3..abf4999e7f 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -316,13 +316,13 @@ AudioEngine::_xrun_callback (void *arg)
void
AudioEngine::_session_callback (jack_session_event_t *event, void *arg)
{
- printf( "helo.... " );
AudioEngine* ae = static_cast<AudioEngine*> (arg);
if (ae->connected()) {
ae->JackSessionEvent ( event ); /* EMIT SIGNAL */
}
}
#endif
+
int
AudioEngine::_graph_order_callback (void *arg)
{
diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc
index bac014df38..cbcf9f7f7c 100644
--- a/libs/ardour/plugin.cc
+++ b/libs/ardour/plugin.cc
@@ -62,6 +62,12 @@ using namespace std;
using namespace ARDOUR;
using namespace PBD;
+bool
+PluginInfo::is_instrument () const
+{
+ return (n_inputs.n_midi() != 0) && (n_outputs.n_audio() > 0);
+}
+
Plugin::Plugin (AudioEngine& e, Session& s)
: _engine (e)
, _session (s)