Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / plugins / reverb / reverbwindow.C
diff --git a/cinelerra-5.0/plugins/reverb/reverbwindow.C b/cinelerra-5.0/plugins/reverb/reverbwindow.C
deleted file mode 100644 (file)
index e962201..0000000
+++ /dev/null
@@ -1,533 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2008 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * 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
- * 
- */
-
-#include "bcdisplayinfo.h"
-#include "bchash.h"
-#include "bcsignals.h"
-#include "filesystem.h"
-#include "language.h"
-#include "reverb.h"
-#include "reverbwindow.h"
-
-#include <string.h>
-
-
-
-ReverbWindow::ReverbWindow(Reverb *reverb)
- : PluginClientWindow(reverb, 
-       250, 
-       230, 
-       250, 
-       230, 
-       0)
-{ 
-       this->reverb = reverb; 
-}
-
-ReverbWindow::~ReverbWindow()
-{
-}
-
-void ReverbWindow::create_objects()
-{
-       int x = 170, y = 10;
-       add_tool(new BC_Title(5, y + 10, _("Initial signal level:")));
-       add_tool(level_init = new ReverbLevelInit(reverb, x, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("ms before reflections:")));
-       add_tool(delay_init = new ReverbDelayInit(reverb, x + 35, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("First reflection level:")));
-       add_tool(ref_level1 = new ReverbRefLevel1(reverb, x, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("Last reflection level:")));
-       add_tool(ref_level2 = new ReverbRefLevel2(reverb, x + 35, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("Number of reflections:")));
-       add_tool(ref_total = new ReverbRefTotal(reverb, x, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("ms of reflections:")));
-       add_tool(ref_length = new ReverbRefLength(reverb, x + 35, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("Start band for lowpass:")));
-       add_tool(lowpass1 = new ReverbLowPass1(reverb, x, y)); y += 25;
-       add_tool(new BC_Title(5, y + 10, _("End band for lowpass:")));
-       add_tool(lowpass2 = new ReverbLowPass2(reverb, x + 35, y)); y += 40;
-       show_window();
-       flush();
-}
-
-
-
-
-
-
-ReverbLevelInit::ReverbLevelInit(Reverb *reverb, int x, int y)
- : BC_FPot(x, 
-       y, 
-       reverb->config.level_init, 
-       INFINITYGAIN, 
-       0)
-{
-       this->reverb = reverb;
-}
-ReverbLevelInit::~ReverbLevelInit() 
-{
-}
-int ReverbLevelInit::handle_event()
-{
-//printf("ReverbLevelInit::handle_event 1 %p\n", reverb);
-       reverb->config.level_init = get_value();
-//printf("ReverbLevelInit::handle_event 1\n");
-       reverb->send_configure_change();
-//printf("ReverbLevelInit::handle_event 2\n");
-       return 1;
-}
-
-ReverbDelayInit::ReverbDelayInit(Reverb *reverb, int x, int y)
- : BC_IPot(x, 
-       y, 
-       reverb->config.delay_init, 
-       0, 
-       MAX_DELAY_INIT)
-{
-       this->reverb = reverb;
-}
-ReverbDelayInit::~ReverbDelayInit() 
-{
-}
-int ReverbDelayInit::handle_event()
-{
-       reverb->config.delay_init = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-ReverbRefLevel1::ReverbRefLevel1(Reverb *reverb, int x, int y)
- : BC_FPot(x, 
-       y, 
-       reverb->config.ref_level1, 
-       INFINITYGAIN, 
-       0)
-{
-       this->reverb = reverb;
-}
-ReverbRefLevel1::~ReverbRefLevel1() {}
-int ReverbRefLevel1::handle_event()
-{
-       reverb->config.ref_level1 = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-
-ReverbRefLevel2::ReverbRefLevel2(Reverb *reverb, int x, int y)
- : BC_FPot(x, 
-       y, 
-       reverb->config.ref_level2, 
-       INFINITYGAIN, 
-       0)
-{
-       this->reverb = reverb;
-}
-ReverbRefLevel2::~ReverbRefLevel2() {}
-int ReverbRefLevel2::handle_event()
-{
-       reverb->config.ref_level2 = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-ReverbRefTotal::ReverbRefTotal(Reverb *reverb, int x, int y)
- : BC_IPot(x, 
-       y, 
-       reverb->config.ref_total, 
-       MIN_REFLECTIONS, 
-       MAX_REFLECTIONS)
-{
-       this->reverb = reverb;
-}
-ReverbRefTotal::~ReverbRefTotal() {}
-int ReverbRefTotal::handle_event()
-{
-       reverb->config.ref_total = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-
-ReverbRefLength::ReverbRefLength(Reverb *reverb, int x, int y)
- : BC_IPot(x, 
-       y, 
-       reverb->config.ref_length, 
-       0, 
-       MAX_REFLENGTH)
-{
-       this->reverb = reverb;
-}
-ReverbRefLength::~ReverbRefLength() {}
-int ReverbRefLength::handle_event()
-{
-       reverb->config.ref_length = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-ReverbLowPass1::ReverbLowPass1(Reverb *reverb, int x, int y)
- : BC_QPot(x, 
-       y, 
-       reverb->config.lowpass1)
-{
-       this->reverb = reverb;
-}
-ReverbLowPass1::~ReverbLowPass1() {}
-int ReverbLowPass1::handle_event()
-{
-       reverb->config.lowpass1 = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-ReverbLowPass2::ReverbLowPass2(Reverb *reverb, int x, int y)
- : BC_QPot(x, 
-       y, 
-       reverb->config.lowpass2)
-{
-       this->reverb = reverb;
-}
-ReverbLowPass2::~ReverbLowPass2() {}
-int ReverbLowPass2::handle_event()
-{
-       reverb->config.lowpass2 = get_value();
-       reverb->send_configure_change();
-       return 1;
-}
-
-ReverbMenu::ReverbMenu(Reverb *reverb, ReverbWindow *window)
- : BC_MenuBar(0, 0, window->get_w())
-{
-       this->window = window;
-       this->reverb = reverb;
-}
-
-ReverbMenu::~ReverbMenu()
-{
-       delete load;
-       delete save;
-       //delete set_default;
-       for(int i = 0; i < total_loads; i++)
-       {
-               delete prev_load[i];
-       }
-       delete prev_load_thread;
-}
-
-void ReverbMenu::create_objects(BC_Hash *defaults)
-{
-       add_menu(filemenu = new BC_Menu(_("File")));
-       filemenu->add_item(load = new ReverbLoad(reverb, this));
-       filemenu->add_item(save = new ReverbSave(reverb, this));
-       //filemenu->add_item(set_default = new ReverbSetDefault);
-       load_defaults(defaults);
-       prev_load_thread = new ReverbLoadPrevThread(reverb, this);
-}
-
-int ReverbMenu::load_defaults(BC_Hash *defaults)
-{
-       FileSystem fs;
-       total_loads = defaults->get("TOTAL_LOADS", 0);
-       if(total_loads > 0)
-       {
-               filemenu->add_item(new BC_MenuItem("-"));
-               char string[1024], path[1024], filename[1024];
-       
-               for(int i = 0; i < total_loads; i++)
-               {
-                       sprintf(string, "LOADPREVIOUS%d", i);
-                       defaults->get(string, path);
-                       fs.extract_name(filename, path);
-//printf("ReverbMenu::load_defaults %s\n", path);
-                       filemenu->add_item(prev_load[i] = new ReverbLoadPrev(reverb, this, filename, path));
-               }
-       }
-       return 0;
-}
-
-int ReverbMenu::save_defaults(BC_Hash *defaults)
-{
-       if(total_loads > 0)
-       {
-               defaults->update("TOTAL_LOADS",  total_loads);
-               char string[1024];
-               
-               for(int i = 0; i < total_loads; i++)
-               {
-                       sprintf(string, "LOADPREVIOUS%d", i);
-                       defaults->update(string, prev_load[i]->path);
-               }
-       }
-       return 0;
-}
-
-int ReverbMenu::add_load(char *path)
-{
-       if(total_loads == 0)
-       {
-               filemenu->add_item(new BC_MenuItem("-"));
-       }
-       
-// test for existing copy
-       FileSystem fs;
-       char text[1024], new_path[1024];      // get text and path
-       fs.extract_name(text, path);
-       strcpy(new_path, path);
-       
-       for(int i = 0; i < total_loads; i++)
-       {
-               if(!strcmp(prev_load[i]->get_text(), text))     // already exists
-               {                                // swap for top load
-                       for(int j = i; j > 0; j--)   // move preceeding loads down
-                       {
-                               prev_load[j]->set_text(prev_load[j - 1]->get_text());
-                               prev_load[j]->set_path(prev_load[j - 1]->path);
-                       }
-                       prev_load[0]->set_text(text);
-                       prev_load[0]->set_path(new_path);
-                       return 1;
-               }
-       }
-       
-// add another load
-       if(total_loads < TOTAL_LOADS)
-       {
-               filemenu->add_item(prev_load[total_loads] = new ReverbLoadPrev(reverb, this));
-               total_loads++;
-       }
-       
-// cycle loads down
-       for(int i = total_loads - 1; i > 0; i--)
-       {         
-       // set menu item text
-               prev_load[i]->set_text(prev_load[i - 1]->get_text());
-       // set filename
-               prev_load[i]->set_path(prev_load[i - 1]->path);
-       }
-
-// set up the new load
-       prev_load[0]->set_text(text);
-       prev_load[0]->set_path(new_path);
-       return 0;
-}
-
-ReverbLoad::ReverbLoad(Reverb *reverb, ReverbMenu *menu)
- : BC_MenuItem(_("Load..."))
-{
-       this->reverb = reverb;
-       this->menu = menu;
-       thread = new ReverbLoadThread(reverb, menu);
-}
-ReverbLoad::~ReverbLoad()
-{
-       delete thread;
-}
-int ReverbLoad::handle_event()
-{
-       thread->start();
-       return 0;
-}
-
-ReverbSave::ReverbSave(Reverb *reverb, ReverbMenu *menu)
- : BC_MenuItem(_("Save..."))
-{
-       this->reverb = reverb;
-       this->menu = menu;
-       thread = new ReverbSaveThread(reverb, menu);
-}
-ReverbSave::~ReverbSave()
-{
-       delete thread;
-}
-int ReverbSave::handle_event()
-{
-       thread->start();
-       return 0;
-}
-
-ReverbSetDefault::ReverbSetDefault()
- : BC_MenuItem(_("Set default"))
-{
-}
-int ReverbSetDefault::handle_event()
-{
-       return 0;
-}
-
-ReverbLoadPrev::ReverbLoadPrev(Reverb *reverb, ReverbMenu *menu, char *filename, char *path)
- : BC_MenuItem(filename)
-{
-       this->reverb = reverb;
-       this->menu = menu;
-       strcpy(this->path, path);
-}
-ReverbLoadPrev::ReverbLoadPrev(Reverb *reverb, ReverbMenu *menu)
- : BC_MenuItem("")
-{
-       this->reverb = reverb;
-       this->menu = menu;
-}
-int ReverbLoadPrev::handle_event()
-{
-       menu->prev_load_thread->set_path(path);
-       menu->prev_load_thread->start();
-       return 0;
-}
-int ReverbLoadPrev::set_path(char *path)
-{
-       strcpy(this->path, path);
-       return 0;
-}
-
-
-ReverbSaveThread::ReverbSaveThread(Reverb *reverb, ReverbMenu *menu)
- : Thread()
-{
-       this->reverb = reverb;
-       this->menu = menu;
-}
-ReverbSaveThread::~ReverbSaveThread()
-{
-}
-void ReverbSaveThread::run()
-{
-       int result = 0;
-       {
-               ReverbSaveDialog dialog(reverb);
-               dialog.create_objects();
-               result = dialog.run_window();
-//             if(!result) strcpy(reverb->config_directory, dialog.get_path());
-       }
-       if(!result) 
-       {
-               result = reverb->save_to_file(reverb->config_directory);
-               menu->add_load(reverb->config_directory);
-       }
-}
-
-ReverbSaveDialog::ReverbSaveDialog(Reverb *reverb)
- : BC_FileBox(0,
-                       0, 
-                       reverb->config_directory, 
-                       _("Save reverb"), 
-                       _("Select the reverb file to save as"), 0, 0)
-{
-       this->reverb = reverb;
-}
-ReverbSaveDialog::~ReverbSaveDialog()
-{
-}
-int ReverbSaveDialog::ok_event()
-{
-       set_done(0);
-       return 0;
-}
-int ReverbSaveDialog::cancel_event()
-{
-       set_done(1);
-       return 0;
-}
-
-
-
-ReverbLoadThread::ReverbLoadThread(Reverb *reverb, ReverbMenu *menu)
- : Thread()
-{
-       this->reverb = reverb;
-       this->menu = menu;
-}
-ReverbLoadThread::~ReverbLoadThread()
-{
-}
-void ReverbLoadThread::run()
-{
-       int result = 0;
-       {
-               ReverbLoadDialog dialog(reverb);
-               dialog.create_objects();
-               result = dialog.run_window();
-//             if(!result) strcpy(reverb->config_directory, dialog.get_path());
-       }
-       if(!result) 
-       {
-               result = reverb->load_from_file(reverb->config_directory);
-               if(!result)
-               {
-                       menu->add_load(reverb->config_directory);
-                       reverb->send_configure_change();
-               }
-       }
-}
-
-ReverbLoadPrevThread::ReverbLoadPrevThread(Reverb *reverb, ReverbMenu *menu) : Thread()
-{
-       this->reverb = reverb;
-       this->menu = menu;
-}
-ReverbLoadPrevThread::~ReverbLoadPrevThread()
-{
-}
-void ReverbLoadPrevThread::run()
-{
-       int result = 0;
-       strcpy(reverb->config_directory, path);
-       result = reverb->load_from_file(path);
-       if(!result)
-       {
-               menu->add_load(path);
-               reverb->send_configure_change();
-       }
-}
-int ReverbLoadPrevThread::set_path(char *path)
-{
-       strcpy(this->path, path);
-       return 0;
-}
-
-
-
-
-
-ReverbLoadDialog::ReverbLoadDialog(Reverb *reverb)
- : BC_FileBox(0,
-                       0, 
-                       reverb->config_directory, 
-                       _("Load reverb"), 
-                       _("Select the reverb file to load from"), 0, 0)
-{
-       this->reverb = reverb;
-}
-ReverbLoadDialog::~ReverbLoadDialog()
-{
-}
-int ReverbLoadDialog::ok_event()
-{
-       set_done(0);
-       return 0;
-}
-int ReverbLoadDialog::cancel_event()
-{
-       set_done(1);
-       return 0;
-}
-