Plugin: typedef DescriptorList + more const improvements
Instead of writing QVector<Plugin::Descriptor> everywhere, mit up iterators etc. centrally define Plugin::DescriptorList and use it everywhere. Additionally made pointers to Plugin::Descriptor and Plugin::Descriptor::SubPluginFeatures::Key const in various places so we can use ConstIterator everywhere when iterating through Plugin::DescriptorList.
This commit is contained in:
@@ -55,7 +55,7 @@ protected slots:
|
||||
private:
|
||||
Ui::EffectSelectDialog * ui;
|
||||
|
||||
QVector<Plugin::Descriptor> m_pluginDescriptors;
|
||||
Plugin::DescriptorList m_pluginDescriptors;
|
||||
EffectKeyList m_effectKeys;
|
||||
EffectKey m_currentSelection;
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ typedef struct PortDescription
|
||||
|
||||
|
||||
inline Plugin::Descriptor::SubPluginFeatures::Key ladspaKeyToSubPluginKey(
|
||||
Plugin::Descriptor * _desc,
|
||||
const Plugin::Descriptor * _desc,
|
||||
const QString & _name,
|
||||
const ladspa_key_t & _key )
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Plugin.h - class plugin, the base-class and generic interface for all plugins
|
||||
*
|
||||
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -22,14 +22,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _PLUGIN_H
|
||||
#define _PLUGIN_H
|
||||
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVector>
|
||||
#include <QtCore/QList>
|
||||
#include <QtXml/QDomDocument>
|
||||
|
||||
#include "JournallingObject.h"
|
||||
@@ -96,7 +94,7 @@ public:
|
||||
{
|
||||
typedef QMap<QString, QString> AttributeMap;
|
||||
|
||||
inline Key( Plugin::Descriptor * _desc = NULL,
|
||||
inline Key( const Plugin::Descriptor * _desc = NULL,
|
||||
const QString & _name = QString(),
|
||||
const AttributeMap & _am = AttributeMap() )
|
||||
:
|
||||
@@ -116,7 +114,7 @@ public:
|
||||
name != QString::null;
|
||||
}
|
||||
|
||||
Plugin::Descriptor * desc;
|
||||
const Plugin::Descriptor * desc;
|
||||
QString name;
|
||||
AttributeMap attributes;
|
||||
} ;
|
||||
@@ -151,6 +149,9 @@ public:
|
||||
|
||||
} ;
|
||||
|
||||
// typedef a list so we can easily work with list of plugin descriptors
|
||||
typedef QList<Descriptor> DescriptorList;
|
||||
|
||||
// contructor of a plugin
|
||||
Plugin( const Descriptor * _descriptor, Model * _parent );
|
||||
virtual ~Plugin();
|
||||
@@ -188,9 +189,8 @@ public:
|
||||
static Plugin * instantiate( const QString & _plugin_name,
|
||||
Model * _parent, void * _data );
|
||||
|
||||
// fills given vector with descriptors of all available plugins
|
||||
static void getDescriptorsOfAvailPlugins(
|
||||
QVector<Descriptor> & _plugin_descs );
|
||||
// fills given list with descriptors of all available plugins
|
||||
static void getDescriptorsOfAvailPlugins( DescriptorList & _plugin_descs );
|
||||
|
||||
// create a view for the model
|
||||
PluginView * createView( QWidget * _parent );
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* plugin_browser.h - include file for pluginBrowser
|
||||
*
|
||||
* Copyright (c) 2005-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -22,15 +22,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _PLUGIN_BROWSER_H
|
||||
#define _PLUGIN_BROWSER_H
|
||||
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtCore/QVector>
|
||||
#include <QtGui/QPixmap>
|
||||
|
||||
|
||||
#include "side_bar_widget.h"
|
||||
#include "Plugin.h"
|
||||
|
||||
@@ -47,7 +44,7 @@ public:
|
||||
|
||||
|
||||
private:
|
||||
QVector<Plugin::Descriptor> m_pluginDescriptors;
|
||||
Plugin::DescriptorList m_pluginDescriptors;
|
||||
|
||||
QWidget * m_view;
|
||||
|
||||
|
||||
@@ -1778,10 +1778,10 @@ p->putValue( jt->pos, value, false );
|
||||
|
||||
// process all effects
|
||||
EffectKeyList effKeys;
|
||||
QVector<Plugin::Descriptor> pluginDescs;
|
||||
Plugin::DescriptorList pluginDescs;
|
||||
Plugin::getDescriptorsOfAvailPlugins( pluginDescs );
|
||||
for( QVector<Plugin::Descriptor>::Iterator it = pluginDescs.begin();
|
||||
it != pluginDescs.end(); ++it )
|
||||
for( Plugin::DescriptorList::ConstIterator it = pluginDescs.begin();
|
||||
it != pluginDescs.end(); ++it )
|
||||
{
|
||||
if( it->type != Plugin::Effect )
|
||||
{
|
||||
|
||||
@@ -52,7 +52,7 @@ ImportFilter::~ImportFilter()
|
||||
void ImportFilter::import( const QString & _file_to_import,
|
||||
trackContainer * _tc )
|
||||
{
|
||||
QVector<Descriptor> d;
|
||||
DescriptorList d;
|
||||
Plugin::getDescriptorsOfAvailPlugins( d );
|
||||
|
||||
bool successful = false;
|
||||
@@ -63,8 +63,8 @@ void ImportFilter::import( const QString & _file_to_import,
|
||||
const bool j = engine::projectJournal()->isJournalling();
|
||||
engine::projectJournal()->setJournalling( false );
|
||||
|
||||
for( QVector<Plugin::Descriptor>::Iterator it = d.begin();
|
||||
it != d.end(); ++it )
|
||||
for( Plugin::DescriptorList::ConstIterator it = d.begin();
|
||||
it != d.end(); ++it )
|
||||
{
|
||||
if( it->type == Plugin::ImportFilter )
|
||||
{
|
||||
|
||||
@@ -131,7 +131,7 @@ Plugin * Plugin::instantiate( const QString & _plugin_name, Model * _parent,
|
||||
|
||||
|
||||
|
||||
void Plugin::getDescriptorsOfAvailPlugins( QVector<Descriptor> & _plugin_descs )
|
||||
void Plugin::getDescriptorsOfAvailPlugins( DescriptorList & _plugin_descs )
|
||||
{
|
||||
QDir directory( configManager::inst()->pluginDir() );
|
||||
#ifdef LMMS_BUILD_WIN32
|
||||
|
||||
@@ -119,11 +119,11 @@ case ResourceItem::TypePluginSpecificResource:
|
||||
}
|
||||
|
||||
// iterate through all plugins
|
||||
QVector<Plugin::Descriptor> descriptors;
|
||||
Plugin::DescriptorList descriptors;
|
||||
Plugin::getDescriptorsOfAvailPlugins( descriptors );
|
||||
|
||||
for( QVector<Plugin::Descriptor>::iterator it = descriptors.begin();
|
||||
it != descriptors.end(); ++it )
|
||||
for( Plugin::DescriptorList::ConstIterator it = descriptors.begin();
|
||||
it != descriptors.end(); ++it )
|
||||
{
|
||||
if( it->supportsFileType( ext ) )
|
||||
{
|
||||
|
||||
@@ -213,9 +213,9 @@ void engine::updateFramesPerTick()
|
||||
|
||||
void engine::initPluginFileHandling()
|
||||
{
|
||||
QVector<Plugin::Descriptor> pluginDescriptors;
|
||||
Plugin::DescriptorList pluginDescriptors;
|
||||
Plugin::getDescriptorsOfAvailPlugins( pluginDescriptors );
|
||||
for( QVector<Plugin::Descriptor>::Iterator it = pluginDescriptors.begin();
|
||||
for( Plugin::DescriptorList::ConstIterator it = pluginDescriptors.begin();
|
||||
it != pluginDescriptors.end(); ++it )
|
||||
{
|
||||
if( it->type == Plugin::Instrument )
|
||||
|
||||
@@ -44,7 +44,7 @@ EffectSelectDialog::EffectSelectDialog( QWidget * _parent ) :
|
||||
// query effects
|
||||
Plugin::getDescriptorsOfAvailPlugins( m_pluginDescriptors );
|
||||
|
||||
for( QVector<Plugin::Descriptor>::Iterator it = m_pluginDescriptors.begin();
|
||||
for( Plugin::DescriptorList::ConstIterator it = m_pluginDescriptors.begin();
|
||||
it != m_pluginDescriptors.end(); ++it )
|
||||
{
|
||||
if( it->type != Plugin::Effect )
|
||||
|
||||
@@ -268,9 +268,9 @@ void MainWindow::finalize()
|
||||
|
||||
|
||||
m_toolsMenu = new QMenu( this );
|
||||
QVector<Plugin::Descriptor> pluginDescriptors;
|
||||
Plugin::DescriptorList pluginDescriptors;
|
||||
Plugin::getDescriptorsOfAvailPlugins( pluginDescriptors );
|
||||
for( QVector<Plugin::Descriptor>::iterator it = pluginDescriptors.begin();
|
||||
for( Plugin::DescriptorList::ConstIterator it = pluginDescriptors.begin();
|
||||
it != pluginDescriptors.end(); ++it )
|
||||
{
|
||||
if( it->type == Plugin::Tool )
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* plugin_browser.cpp - implementation of the plugin-browser
|
||||
*
|
||||
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -22,13 +22,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QPainter>
|
||||
#include <QtGui/QCursor>
|
||||
#include <QtGui/QMouseEvent>
|
||||
|
||||
|
||||
#include "plugin_browser.h"
|
||||
#include "embed.h"
|
||||
#include "debug.h"
|
||||
@@ -64,14 +62,12 @@ pluginBrowser::pluginBrowser( QWidget * _parent ) :
|
||||
|
||||
Plugin::getDescriptorsOfAvailPlugins( m_pluginDescriptors );
|
||||
|
||||
for( QVector<Plugin::Descriptor>::iterator it =
|
||||
m_pluginDescriptors.begin();
|
||||
it != m_pluginDescriptors.end(); ++it )
|
||||
for( Plugin::DescriptorList::ConstIterator it = m_pluginDescriptors.begin();
|
||||
it != m_pluginDescriptors.end(); ++it )
|
||||
{
|
||||
if( it->type == Plugin::Instrument )
|
||||
{
|
||||
pluginDescWidget * p = new pluginDescWidget( *it,
|
||||
m_view );
|
||||
pluginDescWidget * p = new pluginDescWidget( *it, m_view );
|
||||
p->show();
|
||||
view_layout->addWidget( p );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user