[Top][All Lists]
[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