annotate widgets/PluginParameterDialog.h @ 333:e74b56f07c73

* Some work on correct alignment when moving panes during playback * Overhaul alignment for playback frame values (view manager now always refers to reference-timeline values, only the play source deals in playback model timeline values) * When making a selection, ensure the selection regions shown in other panes (and used for playback constraints if appropriate) are aligned correctly. This may be the coolest feature ever implemented in any program ever.
author Chris Cannam
date Thu, 22 Nov 2007 14:17:19 +0000
parents e9549ea3f825
children 4a542ba875c2
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@71 23 namespace Vamp { class PluginBase; }
Chris@62 24 class PluginParameterBox;
Chris@143 25 class QWidget;
Chris@143 26 class QPushButton;
Chris@163 27 class QLabel;
Chris@163 28 class QGroupBox;
Chris@164 29 class QComboBox;
Chris@302 30 class QCheckBox;
Chris@62 31
Chris@62 32 /**
Chris@62 33 * A dialog for editing the parameters of a given plugin, using a
Chris@62 34 * PluginParameterBox. This dialog does not contain any mechanism for
Chris@62 35 * selecting the plugin in the first place. Note that the dialog
Chris@62 36 * directly modifies the parameters of the plugin, so they will remain
Chris@62 37 * modified even if the dialog is then cancelled.
Chris@62 38 */
Chris@62 39
Chris@62 40 class PluginParameterDialog : public QDialog
Chris@62 41 {
Chris@62 42 Q_OBJECT
Chris@62 43
Chris@62 44 public:
Chris@163 45 PluginParameterDialog(Vamp::PluginBase *, QWidget *parent = 0);
Chris@62 46 ~PluginParameterDialog();
Chris@62 47
Chris@163 48 void setChannelArrangement(int sourceChannels,
Chris@163 49 int targetChannels,
Chris@163 50 int defaultChannel);
Chris@163 51
Chris@208 52 void setOutputLabel(QString output, QString description);
Chris@163 53
Chris@163 54 void setShowProcessingOptions(bool showWindowSize,
Chris@163 55 bool showFrequencyDomainOptions);
Chris@163 56
Chris@164 57 void setCandidateInputModels(const QStringList &names);
Chris@302 58 void setShowSelectionOnlyOption(bool show);
Chris@164 59
Chris@71 60 Vamp::PluginBase *getPlugin() { return m_plugin; }
Chris@62 61
Chris@69 62 int getChannel() const { return m_channel; }
Chris@69 63
Chris@164 64 QString getInputModel() const;
Chris@302 65 bool getSelectionOnly() const;
Chris@164 66
Chris@146 67 //!!! merge with PluginTransform::ExecutionContext
Chris@146 68
Chris@145 69 void getProcessingParameters(size_t &blockSize) const;
Chris@145 70 void getProcessingParameters(size_t &stepSize, size_t &blockSize,
Chris@145 71 WindowType &windowType) const;
Chris@145 72
Chris@64 73 signals:
Chris@64 74 void pluginConfigurationChanged(QString);
Chris@164 75 void inputModelChanged(QString);
Chris@64 76
Chris@69 77 protected slots:
Chris@69 78 void channelComboChanged(int);
Chris@155 79 void blockSizeComboChanged(const QString &);
Chris@155 80 void incrementComboChanged(const QString &);
Chris@145 81 void windowTypeChanged(WindowType type);
Chris@143 82 void advancedToggled();
Chris@163 83 void setAdvancedVisible(bool);
Chris@294 84 void inputModelComboChanged(int);
Chris@302 85 void selectionOnlyChanged(int);
Chris@294 86 void dialogAccepted();
Chris@69 87
Chris@62 88 protected:
Chris@71 89 Vamp::PluginBase *m_plugin;
Chris@163 90
Chris@69 91 int m_channel;
Chris@145 92 size_t m_stepSize;
Chris@145 93 size_t m_blockSize;
Chris@163 94
Chris@145 95 WindowType m_windowType;
Chris@62 96 PluginParameterBox *m_parameterBox;
Chris@163 97
Chris@163 98 QLabel *m_outputLabel;
Chris@163 99 QLabel *m_outputValue;
Chris@208 100 QLabel *m_outputDescription;
Chris@208 101 QLabel *m_outputSpacer;
Chris@164 102
Chris@163 103 QGroupBox *m_channelBox;
Chris@163 104 bool m_haveChannelBoxData;
Chris@164 105
Chris@163 106 QGroupBox *m_windowBox;
Chris@163 107 bool m_haveWindowBoxData;
Chris@163 108
Chris@164 109 QGroupBox *m_inputModelBox;
Chris@164 110 QComboBox *m_inputModels;
Chris@302 111 QCheckBox *m_selectionOnly;
Chris@294 112 QStringList m_inputModelList;
Chris@296 113 QString m_currentInputModel;
Chris@302 114 bool m_currentSelectionOnly;
Chris@164 115
Chris@143 116 QPushButton *m_advancedButton;
Chris@143 117 QWidget *m_advanced;
Chris@163 118 bool m_advancedVisible;
Chris@62 119 };
Chris@62 120
Chris@62 121 #endif
Chris@62 122