Mercurial > hg > svgui
view widgets/PluginParameterDialog.h @ 163:dd6dd983e8ef
* Tidy up plugin parameter dialog by switching it to a simple constructor
with separate methods for passing in the additional options if necessary
* Fix sizing problem on advanced pane toggle in plugin parameter dialog
* Make a start on passing in list of candidate input models for transform
author | Chris Cannam |
---|---|
date | Wed, 11 Oct 2006 16:18:51 +0000 |
parents | 8c730f49b9b3 |
children | 11949d0b2739 |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ /* Sonic Visualiser An audio file viewer and annotation editor. Centre for Digital Music, Queen Mary, University of London. This file copyright 2006 Chris Cannam. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information. */ #ifndef _PLUGIN_PARAMETER_DIALOG_H_ #define _PLUGIN_PARAMETER_DIALOG_H_ #include <QDialog> #include "base/Window.h" namespace Vamp { class PluginBase; } class PluginParameterBox; class QWidget; class QPushButton; class QLabel; class QGroupBox; /** * A dialog for editing the parameters of a given plugin, using a * PluginParameterBox. This dialog does not contain any mechanism for * selecting the plugin in the first place. Note that the dialog * directly modifies the parameters of the plugin, so they will remain * modified even if the dialog is then cancelled. */ class PluginParameterDialog : public QDialog { Q_OBJECT public: PluginParameterDialog(Vamp::PluginBase *, QWidget *parent = 0); ~PluginParameterDialog(); void setChannelArrangement(int sourceChannels, int targetChannels, int defaultChannel); void setOutputLabel(QString output); void setShowProcessingOptions(bool showWindowSize, bool showFrequencyDomainOptions); Vamp::PluginBase *getPlugin() { return m_plugin; } int getChannel() const { return m_channel; } //!!! merge with PluginTransform::ExecutionContext void getProcessingParameters(size_t &blockSize) const; void getProcessingParameters(size_t &stepSize, size_t &blockSize, WindowType &windowType) const; signals: void pluginConfigurationChanged(QString); protected slots: void channelComboChanged(int); void blockSizeComboChanged(const QString &); void incrementComboChanged(const QString &); void windowTypeChanged(WindowType type); void advancedToggled(); void setAdvancedVisible(bool); protected: Vamp::PluginBase *m_plugin; int m_channel; size_t m_stepSize; size_t m_blockSize; WindowType m_windowType; PluginParameterBox *m_parameterBox; QLabel *m_outputLabel; QLabel *m_outputValue; QGroupBox *m_channelBox; bool m_haveChannelBoxData; QGroupBox *m_windowBox; bool m_haveWindowBoxData; QPushButton *m_advancedButton; QWidget *m_advanced; bool m_advancedVisible; }; #endif