*/
#include "condition.h"
+#include "cstrdup.h"
#include "edl.h"
#include "edlsession.h"
#include "language.h"
}
void PluginDialogThread::start_window(Track *track,
- Plugin *plugin,
- const char *title,
- int is_mainmenu,
- int data_type)
+ Plugin *plugin, const char *title, int is_mainmenu, int data_type)
{
if(!BC_DialogThread::is_running())
{
void PluginDialog::create_objects()
{
// int use_default = 1;
- char string[BCTEXTLEN];
mwindow->theme->get_plugindialog_sizes();
-
lock_window("PluginDialog::create_objects");
- if(thread->plugin)
- {
- strcpy(string, thread->plugin->title);
- //use_default = 0;
- }
- else
- {
-// no plugin
- sprintf(string, _("None"));
- }
-
-
-
-
-
// GET A LIST OF ALL THE PLUGINS AVAILABLE
mwindow->search_plugindb(thread->data_type == TRACK_AUDIO,
Track *track = mwindow->edl->tracks->number(plugin_locations.values[i]->module);
char *track_title = track->title;
int number = plugin_locations.values[i]->plugin;
- Plugin *plugin = track->get_current_plugin(mwindow->edl->local_session->get_selectionstart(1),
- number,
- PLAY_FORWARD,
- 1,
- 0);
- char *plugin_title = plugin->title;
+ double start = mwindow->edl->local_session->get_selectionstart(1);
+ Plugin *plugin = track->get_current_plugin(start, number, PLAY_FORWARD, 1, 0);
+ if( !plugin ) continue;
char string[BCTEXTLEN];
-
- snprintf(string, sizeof(string), "%s: %s", track_title, _(plugin_title));
+ const char *plugin_title = _(plugin->title);
+ snprintf(string, sizeof(string), "%s: %s", track_title, plugin_title);
shared_data.append(new BC_ListBoxItem(string));
}
for(int i = 0; i < module_locations.total; i++)
// mwindow->theme->plugindialog_newattach_y));
//
-
-
-
-
-
-
add_subwindow(shared_title = new BC_Title(mwindow->theme->plugindialog_shared_x,
mwindow->theme->plugindialog_shared_y - 20,
_("Shared effects:")));
// mwindow->theme->plugindialog_sharedattach_y));
//
-
-
-
-
-
-
-
add_subwindow(module_title = new BC_Title(mwindow->theme->plugindialog_module_x,
mwindow->theme->plugindialog_module_y - 20,
_("Shared tracks:")));
if(single_standalone)
- single_standalone->reposition_window(mwindow->theme->plugindialog_new_x,
- mwindow->theme->plugindialog_new_y +
- mwindow->theme->plugindialog_new_h +
+ single_standalone->reposition_window(
+ mwindow->theme->plugindialog_new_x + BC_OKButton::calculate_w() + 10,
+ mwindow->theme->plugindialog_new_y + mwindow->theme->plugindialog_new_h +
get_text_height(MEDIUMFONT));
flush();
int PluginDialog::attach_new(int number)
{
- if(number > -1 && number < standalone_data.total)
+ if(number >= 0 && number < plugindb.size())
{
strcpy(thread->plugin_title, plugindb.values[number]->title);
thread->plugin_type = PLUGIN_STANDALONE; // type is plugin
int PluginDialog::attach_shared(int number)
{
- if(number > -1 && number < shared_data.total)
+ if(number >= 0 && number < plugin_locations.size())
{
thread->plugin_type = PLUGIN_SHAREDPLUGIN; // type is shared plugin
thread->shared_location = *(plugin_locations.values[number]); // copy location
int PluginDialog::attach_module(int number)
{
- if(number > -1 && number < module_data.total)
+ if(number >= 0 && number < module_locations.size())
{
// title->update(module_data.values[number]->get_text());
thread->plugin_type = PLUGIN_SHAREDMODULE; // type is module
}
int PluginDialogNew::selection_changed()
{
- dialog->selected_available = get_selection_number(0, 0);
-
-
+ int no = get_selection_number(0, 0);
+ dialog->selected_available = no >= 0 && no < dialog->standalone_data.size() ?
+ ((PluginDialogListItem *)dialog->standalone_data[no])->item_no : -1;
dialog->shared_list->set_all_selected(&dialog->shared_data, 0);
dialog->shared_list->draw_items(1);
+ dialog->selected_shared = -1;
dialog->module_list->set_all_selected(&dialog->module_data, 0);
dialog->module_list->draw_items(1);
- dialog->selected_shared = -1;
dialog->selected_modules = -1;
return 1;
}
const char *text = search_text->get_text();
for( int i=0; i<plugindb.total; ++i ) {
- const char *title = plugindb.values[i]->title;
- if( text && text[0] && !strstr(title, text) ) continue;
- standalone_data.append(new BC_ListBoxItem(title));
+ const char *title = _(plugindb.values[i]->title);
+ if( text && text[0] && !bstrcasestr(title, text) ) continue;
+ standalone_data.append(new PluginDialogListItem(title, i));
}
if( redraw )
: BC_CheckBox(x,
y,
dialog->thread->single_standalone,
- _("Attach single standlone and share others"))
+ _("Attach single standalone and share others"))
{
this->dialog = dialog;
}