annotate widgets/PluginParameterDialog.h @ 454:e2a40fdadd8c

Various fixes: * Fix handling of HTTP redirects (avoiding crashes... I hope) * Fix failure to delete FFT models when a feature extraction model transformer was abandoned (also a cause of crashes in the past) * Fix deadlock when said transform was abandoned before its source model was ready because the session was being cleared (and so the source model would never be ready)
author Chris Cannam
date Fri, 28 Nov 2008 13:36:13 +0000
parents f7de84fd10ec
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