traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src plugins/LV2/LV2Plugin.cpp plugins/...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src plugins/LV2/LV2Plugin.cpp plugins/...
Date: Fri, 08 Jun 2007 22:44:30 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/06/08 22:44:30

Modified files:
        src/plugins/LV2: LV2Plugin.cpp LV2Plugin.h 
        src/plugins    : Plugin.h 
        src/traverso   : PluginSelectorDialog.cpp 

Log message:
        only query plugin data one time

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/LV2/LV2Plugin.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/LV2/LV2Plugin.h?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/plugins/Plugin.h?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/PluginSelectorDialog.cpp?cvsroot=traverso&r1=1.12&r2=1.13

Patches:
Index: plugins/LV2/LV2Plugin.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/LV2/LV2Plugin.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- plugins/LV2/LV2Plugin.cpp   8 Jun 2007 09:32:53 -0000       1.11
+++ plugins/LV2/LV2Plugin.cpp   8 Jun 2007 22:44:29 -0000       1.12
@@ -392,16 +392,14 @@
        return  0;
 }
 
-PluginInfo LV2Plugin::get_plugin_info(const QString& uri)
+PluginInfo LV2Plugin::get_plugin_info(SLV2Plugin plugin)
 {
-       SLV2Plugin plugin = 
slv2_plugins_get_by_uri(PluginManager::instance()->get_slv2_plugin_list(), 
QS_C(uri));
+       PluginInfo info;
+       info.name = slv2_plugin_get_name(plugin);
+       info.uri = slv2_plugin_get_uri(plugin);
        
-       // TODO WHY THE HACK DO I NEED TO CALL THIS TO BE ABLE TO QUERY PLUGIN 
RDF DATA ????
-       char* name = slv2_plugin_get_name(plugin);
-       Q_UNUSED(name);
        
        int portcount  = slv2_plugin_get_num_ports(plugin);
-       PluginInfo info;
 
        for (int i=0; i < portcount; ++i) {
                SLV2Port slvport = slv2_plugin_get_port_by_index(plugin, i);
@@ -421,6 +419,15 @@
                }
        }
        
+       SLV2Values values =  slv2_plugin_get_value(plugin, SLV2_QNAME, "a");
+       for (unsigned i=0; i < slv2_values_size(values); ++i) {
+               QString type =  slv2_value_as_string(slv2_values_get_at(values, 
i));
+               if (type.contains("http://lv2plug.in/ontology#";)) {
+                       info.type = type.remove("http://lv2plug.in/ontology#";);
+                       break;
+               }
+       }
+       
        return info;
 }
 

Index: plugins/LV2/LV2Plugin.h
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/LV2/LV2Plugin.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- plugins/LV2/LV2Plugin.h     7 Jun 2007 11:33:42 -0000       1.9
+++ plugins/LV2/LV2Plugin.h     8 Jun 2007 22:44:29 -0000       1.10
@@ -58,7 +58,7 @@
        int init();
        int set_state(const QDomNode & node );
        
-       static PluginInfo get_plugin_info(const QString& uri);
+       static PluginInfo get_plugin_info(SLV2Plugin plugin);
        static QString plugin_type(const QString& uri);
 
 private:

Index: plugins/Plugin.h
===================================================================
RCS file: /sources/traverso/traverso/src/plugins/Plugin.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- plugins/Plugin.h    7 Jun 2007 11:33:42 -0000       1.8
+++ plugins/Plugin.h    8 Jun 2007 22:44:30 -0000       1.9
@@ -44,6 +44,9 @@
        }
        int audioPortInCount;
        int audioPortOutCount;
+       QString type;
+       QString name;
+       QString uri;
 };
 
 class Plugin : public ContextItem

Index: traverso/PluginSelectorDialog.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/PluginSelectorDialog.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- traverso/PluginSelectorDialog.cpp   7 Jun 2007 11:33:43 -0000       1.12
+++ traverso/PluginSelectorDialog.cpp   8 Jun 2007 22:44:30 -0000       1.13
@@ -53,32 +53,27 @@
 #if defined (LV2_SUPPORT)
        SLV2Plugins pluginList = 
PluginManager::instance()->get_slv2_plugin_list();
 
-       QMap<QString, SLV2Plugin> plugins;
+       QMap<QString, PluginInfo> plugins;
        
        for (uint i=0; i < slv2_plugins_size(pluginList); ++i) {
                const SLV2Plugin plugin = slv2_plugins_get_at(pluginList, i);
-               const char* uri = slv2_plugin_get_uri(plugin);
-               QString type = LV2Plugin::plugin_type(uri);
-               plugins.insertMulti(type, plugin);
+               PluginInfo pinfo = LV2Plugin::get_plugin_info(plugin);
+               plugins.insertMulti(pinfo.type, pinfo);
        }
        
-       foreach(SLV2Plugin plugin, plugins) {
-               const char* uri = slv2_plugin_get_uri(plugin);
-               PluginInfo pinfo = LV2Plugin::get_plugin_info(uri);
+       foreach(PluginInfo pinfo, plugins) {
                
                if ( (pinfo.audioPortInCount == 1 && pinfo.audioPortOutCount == 
 1) ||
                     (pinfo.audioPortInCount == 2 && pinfo.audioPortOutCount == 
 2) ) {
                        
                        QString inoutcount = pinfo.audioPortInCount == 1 ? 
"Mono" : "Stereo";
-                       QString name = QString( (char*) 
slv2_plugin_get_name(plugin));
-                       QString type = 
LV2Plugin::plugin_type(uri).remove("Plugin");
                        
                        QTreeWidgetItem* item = new 
QTreeWidgetItem(pluginTreeWidget);
-                       item->setText(0, name);
-                       item->setText(1, type);
+                       item->setText(0, pinfo.name);
+                       item->setText(1, pinfo.type);
                        item->setText(2, inoutcount);
-                       item->setData(0, Qt::UserRole, QString(uri));
-                       item->setToolTip(0, name);
+                       item->setData(0, Qt::UserRole, QString(pinfo.uri));
+                       item->setToolTip(0, pinfo.name);
                }
        }
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]