+class PluginIPot : public BC_IPot
+{
+public:
+ PluginIPot(PluginParam *param, int x, int y);
+ int handle_event();
+ PluginParam *param;
+};
+
+class PluginQPot : public BC_QPot
+{
+public:
+ PluginQPot(PluginParam *param, int x, int y);
+ int handle_event();
+ PluginParam *param;
+};
+
+class PluginText : public BC_TextBox
+{
+public:
+ PluginText(PluginParam *param, int x, int y, int value);
+ PluginText(PluginParam *param, int x, int y, float value);
+ int handle_event();
+ PluginParam *param;
+};
+
+class PluginParam
+{
+public:
+ PluginParam(PluginClient *plugin, PluginClientWindow *gui,
+ int x1, int x2, int x3, int y, int text_w,
+ int *output_i, float *output_f, // floating point output
+ int *output_q, // frequency output
+ const char *title, float min, float max);
+ ~PluginParam();
+
+ void initialize();
+ void update(int skip_text, int skip_pot);
+// set the number of fractional digits
+ void set_precision(int digits);
+
+// possible outputs
+ float *output_f;
+ PluginFPot *fpot;
+ int *output_i;
+ PluginIPot *ipot;
+ int *output_q;
+ PluginQPot *qpot;
+
+ char *title;
+ PluginText *text;
+ PluginClientWindow *gui;
+ PluginClient *plugin;
+ int x1, x2, x3;
+ int y, text_w;
+ float min, max;
+ int precision;
+};