X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fplugins%2Freverb%2Freverbwindow.C;fp=cinelerra-5.0%2Fplugins%2Freverb%2Freverbwindow.C;h=0000000000000000000000000000000000000000;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=e9622011a9f56b91a62d99dadc0bce8ee348c4cd;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/plugins/reverb/reverbwindow.C b/cinelerra-5.0/plugins/reverb/reverbwindow.C deleted file mode 100644 index e9622011..00000000 --- a/cinelerra-5.0/plugins/reverb/reverbwindow.C +++ /dev/null @@ -1,533 +0,0 @@ - -/* - * CINELERRA - * Copyright (C) 2008 Adam Williams - * - * 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 - - - -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; -} -