annotate widgets/PluginParameterDialog.h @ 452:f7de84fd10ec

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