-// 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();
-// }
-// int ReverbLoadPrev::set_path(char *path)
-// {
-// strcpy(this->path, path);
-// }
-//
-//
-// 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;
-// }