annotate widgets/PluginParameterDialog.h @ 607:5b72899d692b

Give a dedicated key to toggling the centre line, and move it out of the overlay level setting -- reducing number of overlay levels to 3. Introduce two distinct vertical scale types (so that we can hide the spectrogram colour scale part easily)
author Chris Cannam
date Mon, 30 Jan 2012 16:01:59 +0000
parents 035d62c4cddf
children e4773943c9c1
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@456 77 int exec();
Chris@456 78
Chris@64 79 signals:
Chris@64 80 void pluginConfigurationChanged(QString);
Chris@164 81 void inputModelChanged(QString);
Chris@64 82
Chris@69 83 protected slots:
Chris@69 84 void channelComboChanged(int);
Chris@155 85 void blockSizeComboChanged(const QString &);
Chris@155 86 void incrementComboChanged(const QString &);
Chris@145 87 void windowTypeChanged(WindowType type);
Chris@143 88 void advancedToggled();
Chris@440 89 void moreInfo();
Chris@163 90 void setAdvancedVisible(bool);
Chris@294 91 void inputModelComboChanged(int);
Chris@302 92 void selectionOnlyChanged(int);
Chris@294 93 void dialogAccepted();
Chris@69 94
Chris@62 95 protected:
Chris@71 96 Vamp::PluginBase *m_plugin;
Chris@163 97
Chris@69 98 int m_channel;
Chris@145 99 size_t m_stepSize;
Chris@145 100 size_t m_blockSize;
Chris@163 101
Chris@145 102 WindowType m_windowType;
Chris@62 103 PluginParameterBox *m_parameterBox;
Chris@163 104
Chris@163 105 QLabel *m_outputLabel;
Chris@163 106 QLabel *m_outputValue;
Chris@208 107 QLabel *m_outputDescription;
Chris@208 108 QLabel *m_outputSpacer;
Chris@164 109
Chris@440 110 QPushButton *m_moreInfo;
Chris@440 111 QString m_moreInfoUrl;
Chris@440 112
Chris@163 113 QGroupBox *m_channelBox;
Chris@163 114 bool m_haveChannelBoxData;
Chris@164 115
Chris@163 116 QGroupBox *m_windowBox;
Chris@163 117 bool m_haveWindowBoxData;
Chris@163 118
Chris@164 119 QGroupBox *m_inputModelBox;
Chris@164 120 QComboBox *m_inputModels;
Chris@302 121 QCheckBox *m_selectionOnly;
Chris@294 122 QStringList m_inputModelList;
Chris@296 123 QString m_currentInputModel;
Chris@302 124 bool m_currentSelectionOnly;
Chris@164 125
Chris@143 126 QPushButton *m_advancedButton;
Chris@143 127 QWidget *m_advanced;
Chris@163 128 bool m_advancedVisible;
Chris@62 129 };
Chris@62 130
Chris@62 131 #endif
Chris@62 132