annotate widgets/PluginParameterBox.h @ 60:4df1a479bf10

* Add plugin parameter box widget
author Chris Cannam
date Mon, 20 Mar 2006 18:18:30 +0000
parents
children 50429a56680f
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@60 7 This file copyright 2006 Chris Cannam.
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@60 16 #ifndef _PLUGIN_PARAMETER_BOX_H_
Chris@60 17 #define _PLUGIN_PARAMETER_BOX_H_
Chris@60 18
Chris@60 19 #include "plugin/PluginInstance.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@60 26 class QGridLayout;
Chris@60 27
Chris@60 28 class PluginParameterBox : public QFrame
Chris@60 29 {
Chris@60 30 Q_OBJECT
Chris@60 31
Chris@60 32 public:
Chris@60 33 PluginParameterBox(PluginInstance *);
Chris@60 34 ~PluginParameterBox();
Chris@60 35
Chris@60 36 PluginInstance *getPlugin() { return m_plugin; }
Chris@60 37
Chris@60 38 protected slots:
Chris@60 39 void dialChanged(int);
Chris@60 40 void spinBoxChanged(double);
Chris@60 41
Chris@60 42 protected:
Chris@60 43 void populate();
Chris@60 44
Chris@60 45 QGridLayout *m_layout;
Chris@60 46 PluginInstance *m_plugin;
Chris@60 47
Chris@60 48 struct ParamRec {
Chris@60 49 AudioDial *dial;
Chris@60 50 QDoubleSpinBox *spin;
Chris@60 51 PluginInstance::ParameterDescriptor param;
Chris@60 52 };
Chris@60 53
Chris@60 54 std::map<QString, ParamRec> m_params;
Chris@60 55 };
Chris@60 56
Chris@60 57 #endif
Chris@60 58