/*
* CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2008-2019 Adam Williams <broadcast at earthling dot net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
*/
#ifndef REVERBWINDOW_H
#define REVERBWINDOW_H
-#define TOTAL_LOADS 5
+#define TOTAL_PARAMS 9
-class ReverbThread;
class ReverbWindow;
+class ReverbParam;
+#include "eqcanvas.inc"
#include "guicast.h"
#include "mutex.h"
#include "pluginclient.h"
#include "reverb.inc"
-
class ReverbLevelInit;
class ReverbDelayInit;
class ReverbRefLevel1;
class ReverbRefLevel2;
class ReverbRefTotal;
class ReverbRefLength;
-class ReverbLowPass1;
-class ReverbLowPass2;
-class ReverbMenu;
+class ReverbHigh;
+class ReverbLow;
+class ReverbQ;
+class ReverbSize;
class ReverbWindow : public PluginClientWindow
{
~ReverbWindow();
void create_objects();
+ void update();
+ void update_canvas();
Reverb *reverb;
- ReverbLevelInit *level_init;
- ReverbDelayInit *delay_init;
- ReverbRefLevel1 *ref_level1;
- ReverbRefLevel2 *ref_level2;
- ReverbRefTotal *ref_total;
- ReverbRefLength *ref_length;
- ReverbLowPass1 *lowpass1;
- ReverbLowPass2 *lowpass2;
- ReverbMenu *menu;
-};
-class ReverbLevelInit : public BC_FPot
-{
-public:
- ReverbLevelInit(Reverb *reverb, int x, int y);
- ~ReverbLevelInit();
- int handle_event();
- Reverb *reverb;
-};
+ ReverbParam *params[TOTAL_PARAMS];
-class ReverbDelayInit : public BC_IPot
-{
-public:
- ReverbDelayInit(Reverb *reverb, int x, int y);
- ~ReverbDelayInit();
- int handle_event();
- Reverb *reverb;
+ ReverbParam *level_init;
+ ReverbParam *delay_init;
+ ReverbParam *ref_level1;
+ ReverbParam *ref_level2;
+ ReverbParam *ref_total;
+ ReverbParam *ref_length;
+ ReverbParam *high;
+ ReverbParam *low;
+ ReverbParam *q;
+ EQCanvas *canvas;
+ ReverbSize *size;
};
-class ReverbRefLevel1 : public BC_FPot
+class ReverbSize : public BC_PopupMenu
{
public:
- ReverbRefLevel1(Reverb *reverb, int x, int y);
- ~ReverbRefLevel1();
+ ReverbSize(ReverbWindow *window, Reverb *plugin, int x, int y);
+
int handle_event();
- Reverb *reverb;
+ void create_objects(); // add initial items
+ void update(int size);
+
+ ReverbWindow *window;
+ Reverb *plugin;
};
-class ReverbRefLevel2 : public BC_FPot
+
+class ReverbFPot : public BC_FPot
{
public:
- ReverbRefLevel2(Reverb *reverb, int x, int y);
- ~ReverbRefLevel2();
+ ReverbFPot(ReverbParam *param, int x, int y);
int handle_event();
- Reverb *reverb;
+ ReverbParam *param;
};
-class ReverbRefTotal : public BC_IPot
+class ReverbIPot : public BC_IPot
{
public:
- ReverbRefTotal(Reverb *reverb, int x, int y);
- ~ReverbRefTotal();
+ ReverbIPot(ReverbParam *param, int x, int y);
int handle_event();
- Reverb *reverb;
+ ReverbParam *param;
};
-class ReverbRefLength : public BC_IPot
+class ReverbQPot : public BC_QPot
{
public:
- ReverbRefLength(Reverb *reverb, int x, int y);
- ~ReverbRefLength();
+ ReverbQPot(ReverbParam *param, int x, int y);
int handle_event();
- Reverb *reverb;
+ ReverbParam *param;
};
-class ReverbLowPass1 : public BC_QPot
+class ReverbText : public BC_TextBox
{
public:
- ReverbLowPass1(Reverb *reverb, int x, int y);
- ~ReverbLowPass1();
+ ReverbText(ReverbParam *param, int x, int y, int w, int value);
+ ReverbText(ReverbParam *param, int x, int y, int w, float value);
int handle_event();
- Reverb *reverb;
+ ReverbParam *param;
};
-class ReverbLowPass2 : public BC_QPot
+class ReverbParam
{
public:
- ReverbLowPass2(Reverb *reverb, int x, int y);
- ~ReverbLowPass2();
- int handle_event();
- Reverb *reverb;
-};
+ ReverbParam(Reverb *reverb, ReverbWindow *gui,
+ int x, 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);
+ ~ReverbParam();
+ void initialize();
+ void update(int skip_text, int skip_pot);
-class ReverbLoad;
-class ReverbSave;
-class ReverbSetDefault;
-class ReverbLoadPrev;
-class ReverbLoadPrevThread;
+ float *output_f;
+ ReverbFPot *fpot;
+ int *output_i;
+ ReverbIPot *ipot;
+ int *output_q;
+ ReverbQPot *qpot;
-class ReverbMenu : public BC_MenuBar
-{
-public:
- ReverbMenu(Reverb *reverb, ReverbWindow *window);
- ~ReverbMenu();
-
- void create_objects(BC_Hash *defaults);
- int load_defaults(BC_Hash *defaults);
- int save_defaults(BC_Hash *defaults);
-// most recent loads
- int add_load(char *path);
- ReverbLoadPrevThread *prev_load_thread;
-
- int total_loads;
- BC_Menu *filemenu;
- ReverbWindow *window;
+ char *title;
+ ReverbText *text;
+ ReverbWindow *gui;
Reverb *reverb;
- ReverbLoad *load;
- ReverbSave *save;
- ReverbSetDefault *set_default;
- ReverbLoadPrev *prev_load[TOTAL_LOADS];
+ int x, y;
+ int x2, x3, text_w;
+ float min, max;
};
-class ReverbSaveThread;
-class ReverbLoadThread;
-class ReverbLoad : public BC_MenuItem
+class ReverbLevelInit : public BC_FPot
{
public:
- ReverbLoad(Reverb *reverb, ReverbMenu *menu);
- ~ReverbLoad();
+ ReverbLevelInit(Reverb *reverb, int x, int y);
+ ~ReverbLevelInit();
int handle_event();
Reverb *reverb;
- ReverbLoadThread *thread;
- ReverbMenu *menu;
};
-class ReverbSave : public BC_MenuItem
+class ReverbDelayInit : public BC_IPot
{
public:
- ReverbSave(Reverb *reverb, ReverbMenu *menu);
- ~ReverbSave();
+ ReverbDelayInit(Reverb *reverb, int x, int y);
+ ~ReverbDelayInit();
int handle_event();
Reverb *reverb;
- ReverbSaveThread *thread;
- ReverbMenu *menu;
};
-class ReverbSetDefault : public BC_MenuItem
+class ReverbRefLevel1 : public BC_FPot
{
public:
- ReverbSetDefault();
+ ReverbRefLevel1(Reverb *reverb, int x, int y);
+ ~ReverbRefLevel1();
int handle_event();
+ Reverb *reverb;
};
-class ReverbLoadPrev : public BC_MenuItem
+class ReverbRefLevel2 : public BC_FPot
{
public:
- ReverbLoadPrev(Reverb *reverb, ReverbMenu *menu, char *filename, char *path);
- ReverbLoadPrev(Reverb *reverb, ReverbMenu *menu);
+ ReverbRefLevel2(Reverb *reverb, int x, int y);
+ ~ReverbRefLevel2();
int handle_event();
- int set_path(char *path);
- char path[1024];
Reverb *reverb;
- ReverbMenu *menu;
};
-
-class ReverbLoadPrevThread : public Thread
+class ReverbRefTotal : public BC_IPot
{
public:
- ReverbLoadPrevThread(Reverb *reverb, ReverbMenu *menu);
- ~ReverbLoadPrevThread();
- void run();
- int set_path(char *path);
- char path[1024];
+ ReverbRefTotal(Reverb *reverb, int x, int y);
+ ~ReverbRefTotal();
+ int handle_event();
Reverb *reverb;
- ReverbMenu *menu;
};
-
-
-class ReverbSaveThread : public Thread
+class ReverbRefLength : public BC_IPot
{
public:
- ReverbSaveThread(Reverb *reverb, ReverbMenu *menu);
- ~ReverbSaveThread();
- void run();
+ ReverbRefLength(Reverb *reverb, int x, int y);
+ ~ReverbRefLength();
+ int handle_event();
Reverb *reverb;
- ReverbMenu *menu;
};
-class ReverbSaveDialog : public BC_FileBox
+class ReverbHigh : public BC_QPot
{
public:
- ReverbSaveDialog(Reverb *reverb);
- ~ReverbSaveDialog();
-
- int ok_event();
- int cancel_event();
+ ReverbHigh(Reverb *reverb, int x, int y);
+ ~ReverbHigh();
+ int handle_event();
Reverb *reverb;
};
-
-class ReverbLoadThread : public Thread
+class ReverbLow : public BC_QPot
{
public:
- ReverbLoadThread(Reverb *reverb, ReverbMenu *menu);
- ~ReverbLoadThread();
- void run();
+ ReverbLow(Reverb *reverb, int x, int y);
+ ~ReverbLow();
+ int handle_event();
Reverb *reverb;
- ReverbMenu *menu;
};
-class ReverbLoadDialog : public BC_FileBox
+class ReverbQ: public BC_QPot
{
public:
- ReverbLoadDialog(Reverb *reverb);
- ~ReverbLoadDialog();
-
- int ok_event();
- int cancel_event();
+ ReverbQ(Reverb *reverb, int x, int y);
+ ~ReverbQ();
+ int handle_event();
Reverb *reverb;
};
-
-
-
-
#endif