annotate widgets/PluginParameterDialog.h @ 1534:bfd8b22fd67c

Fix #1904 Scrolling colour 3d plot does not always work when in View normalisation mode. We shouldn't imagine we've just invalidated the cache if the truth is that we've only just created the renderer
author Chris Cannam
date Wed, 09 Oct 2019 13:45:17 +0100
parents 05d614f6e46d
children 11660e0c896f
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@1407 16 #ifndef SV_PLUGIN_PARAMETER_DIALOG_H
Chris@1407 17 #define SV_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@807 73 void getProcessingParameters(int &blockSize) const;
Chris@807 74 void getProcessingParameters(int &stepSize, int &blockSize,
Chris@145 75 WindowType &windowType) const;
Chris@145 76
Chris@1406 77 int exec() override;
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@807 99 int m_stepSize;
Chris@807 100 int 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