annotate widgets/PluginParameterDialog.h @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents fc9323a41f5a
children
rev   line source
lbajardsilogic@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 2
lbajardsilogic@0 3 /*
lbajardsilogic@0 4 Sonic Visualiser
lbajardsilogic@0 5 An audio file viewer and annotation editor.
lbajardsilogic@0 6 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 7 This file copyright 2006 Chris Cannam and QMUL.
lbajardsilogic@0 8
lbajardsilogic@0 9 This program is free software; you can redistribute it and/or
lbajardsilogic@0 10 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 11 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 12 License, or (at your option) any later version. See the file
lbajardsilogic@0 13 COPYING included with this distribution for more information.
lbajardsilogic@0 14 */
lbajardsilogic@0 15
lbajardsilogic@0 16 #ifndef _PLUGIN_PARAMETER_DIALOG_H_
lbajardsilogic@0 17 #define _PLUGIN_PARAMETER_DIALOG_H_
lbajardsilogic@0 18
lbajardsilogic@0 19 #include <QDialog>
lbajardsilogic@0 20
lbajardsilogic@0 21 #include "base/Window.h"
lbajardsilogic@0 22
lbajardsilogic@0 23 namespace Vamp { class PluginBase; }
lbajardsilogic@0 24 class PluginParameterBox;
lbajardsilogic@0 25 class QWidget;
lbajardsilogic@0 26 class QPushButton;
lbajardsilogic@0 27 class QLabel;
lbajardsilogic@0 28 class QGroupBox;
lbajardsilogic@0 29 class QComboBox;
lbajardsilogic@0 30
lbajardsilogic@0 31 /**
lbajardsilogic@0 32 * A dialog for editing the parameters of a given plugin, using a
lbajardsilogic@0 33 * PluginParameterBox. This dialog does not contain any mechanism for
lbajardsilogic@0 34 * selecting the plugin in the first place. Note that the dialog
lbajardsilogic@0 35 * directly modifies the parameters of the plugin, so they will remain
lbajardsilogic@0 36 * modified even if the dialog is then cancelled.
lbajardsilogic@0 37 */
lbajardsilogic@0 38
lbajardsilogic@0 39 class PluginParameterDialog : public QDialog
lbajardsilogic@0 40 {
lbajardsilogic@0 41 Q_OBJECT
lbajardsilogic@0 42
lbajardsilogic@0 43 public:
lbajardsilogic@0 44 PluginParameterDialog(Vamp::PluginBase *, QWidget *parent = 0);
lbajardsilogic@0 45 ~PluginParameterDialog();
lbajardsilogic@0 46
lbajardsilogic@0 47 void setChannelArrangement(int sourceChannels,
lbajardsilogic@0 48 int targetChannels,
lbajardsilogic@0 49 int defaultChannel);
lbajardsilogic@0 50
lbajardsilogic@0 51 void setOutputLabel(QString output, QString description);
lbajardsilogic@0 52
lbajardsilogic@0 53 void setShowProcessingOptions(bool showWindowSize,
lbajardsilogic@0 54 bool showFrequencyDomainOptions);
lbajardsilogic@0 55
lbajardsilogic@0 56 void setCandidateInputModels(const QStringList &names);
lbajardsilogic@0 57
lbajardsilogic@0 58 Vamp::PluginBase *getPlugin() { return m_plugin; }
lbajardsilogic@0 59
lbajardsilogic@0 60 int getChannel() const { return m_channel; }
lbajardsilogic@0 61
lbajardsilogic@0 62 QString getInputModel() const;
lbajardsilogic@0 63
lbajardsilogic@0 64 //!!! merge with PluginTransform::ExecutionContext
lbajardsilogic@0 65
lbajardsilogic@0 66 void getProcessingParameters(size_t &blockSize) const;
lbajardsilogic@0 67 void getProcessingParameters(size_t &stepSize, size_t &blockSize,
lbajardsilogic@0 68 WindowType &windowType) const;
lbajardsilogic@0 69
lbajardsilogic@0 70 signals:
lbajardsilogic@0 71 void pluginConfigurationChanged(QString);
lbajardsilogic@0 72 void inputModelChanged(QString);
lbajardsilogic@0 73
lbajardsilogic@0 74 protected slots:
lbajardsilogic@0 75 void channelComboChanged(int);
lbajardsilogic@0 76 void blockSizeComboChanged(const QString &);
lbajardsilogic@0 77 void incrementComboChanged(const QString &);
lbajardsilogic@0 78 void windowTypeChanged(WindowType type);
lbajardsilogic@0 79 void advancedToggled();
lbajardsilogic@0 80 void setAdvancedVisible(bool);
lbajardsilogic@0 81
lbajardsilogic@0 82 protected:
lbajardsilogic@0 83 Vamp::PluginBase *m_plugin;
lbajardsilogic@0 84
lbajardsilogic@0 85 int m_channel;
lbajardsilogic@0 86 size_t m_stepSize;
lbajardsilogic@0 87 size_t m_blockSize;
lbajardsilogic@0 88
lbajardsilogic@0 89 WindowType m_windowType;
lbajardsilogic@0 90 PluginParameterBox *m_parameterBox;
lbajardsilogic@0 91
lbajardsilogic@0 92 QLabel *m_outputLabel;
lbajardsilogic@0 93 QLabel *m_outputValue;
lbajardsilogic@0 94 QLabel *m_outputDescription;
lbajardsilogic@0 95 QLabel *m_outputSpacer;
lbajardsilogic@0 96
lbajardsilogic@0 97 QGroupBox *m_channelBox;
lbajardsilogic@0 98 bool m_haveChannelBoxData;
lbajardsilogic@0 99
lbajardsilogic@0 100 QGroupBox *m_windowBox;
lbajardsilogic@0 101 bool m_haveWindowBoxData;
lbajardsilogic@0 102
lbajardsilogic@0 103 QGroupBox *m_inputModelBox;
lbajardsilogic@0 104 QComboBox *m_inputModels;
lbajardsilogic@0 105
lbajardsilogic@0 106 QPushButton *m_advancedButton;
lbajardsilogic@0 107 QWidget *m_advanced;
lbajardsilogic@0 108 bool m_advancedVisible;
lbajardsilogic@0 109 };
lbajardsilogic@0 110
lbajardsilogic@0 111 #endif
lbajardsilogic@0 112