annotate widgets/PluginParameterBox.h @ 1595:8b78b3c330fb

Use our base column type
author Chris Cannam
date Thu, 09 Apr 2020 11:23:40 +0100
parents 11660e0c896f
children 7eb595837eaa
rev   line source
Chris@60 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@60 2
Chris@60 3 /*
Chris@60 4 Sonic Visualiser
Chris@60 5 An audio file viewer and annotation editor.
Chris@60 6 Centre for Digital Music, Queen Mary, University of London.
Chris@182 7 This file copyright 2006 Chris Cannam and QMUL.
Chris@60 8
Chris@60 9 This program is free software; you can redistribute it and/or
Chris@60 10 modify it under the terms of the GNU General Public License as
Chris@60 11 published by the Free Software Foundation; either version 2 of the
Chris@60 12 License, or (at your option) any later version. See the file
Chris@60 13 COPYING included with this distribution for more information.
Chris@60 14 */
Chris@60 15
Chris@1407 16 #ifndef SV_PLUGIN_PARAMETER_BOX_H
Chris@1407 17 #define SV_PLUGIN_PARAMETER_BOX_H
Chris@60 18
Chris@442 19 #include <vamp-hostsdk/PluginBase.h>
Chris@60 20
Chris@60 21 #include <QFrame>
Chris@60 22 #include <map>
Chris@60 23
Chris@60 24 class AudioDial;
Chris@60 25 class QDoubleSpinBox;
Chris@63 26 class QCheckBox;
Chris@60 27 class QGridLayout;
Chris@74 28 class QComboBox;
Chris@60 29
Chris@60 30 class PluginParameterBox : public QFrame
Chris@60 31 {
Chris@60 32 Q_OBJECT
Chris@60 33
Chris@60 34 public:
Chris@1581 35 PluginParameterBox(std::shared_ptr<Vamp::PluginBase>,
Chris@1581 36 QWidget *parent = 0);
Chris@60 37 ~PluginParameterBox();
Chris@60 38
Chris@1581 39 std::shared_ptr<Vamp::PluginBase> getPlugin() { return m_plugin; }
Chris@60 40
Chris@64 41 signals:
Chris@64 42 void pluginConfigurationChanged(QString);
Chris@64 43
Chris@60 44 protected slots:
Chris@60 45 void dialChanged(int);
Chris@60 46 void spinBoxChanged(double);
Chris@63 47 void checkBoxChanged(int);
Chris@63 48 void programComboChanged(const QString &);
Chris@60 49
Chris@60 50 protected:
Chris@60 51 void populate();
Chris@293 52 void updateProgramCombo();
Chris@60 53
Chris@60 54 QGridLayout *m_layout;
Chris@1581 55 std::shared_ptr<Vamp::PluginBase> m_plugin;
Chris@60 56
Chris@60 57 struct ParamRec {
Chris@60 58 AudioDial *dial;
Chris@60 59 QDoubleSpinBox *spin;
Chris@63 60 QCheckBox *check;
Chris@74 61 QComboBox *combo;
Chris@71 62 Vamp::PluginBase::ParameterDescriptor param;
Chris@60 63 };
Chris@60 64
Chris@293 65 QComboBox *m_programCombo;
Chris@293 66
Chris@60 67 std::map<QString, ParamRec> m_params;
Chris@207 68 std::map<QString, QString> m_nameMap;
Chris@293 69 Vamp::PluginBase::ProgramList m_programs;
Chris@60 70 };
Chris@60 71
Chris@60 72 #endif
Chris@60 73