X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fpluginlv2client.C;h=289eed4ea98541b06a3df7198e537a0a787628ea;hb=b2eb290b3f6e5c233393017aa152e67c76243130;hp=6163f2dfd9867e1c7e16550d465acc15e51c785a;hpb=02595181cff2bce97eb19634bc3855778cb8c3b6;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/pluginlv2client.C b/cinelerra-5.1/cinelerra/pluginlv2client.C index 6163f2df..289eed4e 100644 --- a/cinelerra-5.1/cinelerra/pluginlv2client.C +++ b/cinelerra-5.1/cinelerra/pluginlv2client.C @@ -23,7 +23,10 @@ #include "bchash.h" #include "clip.h" #include "cstrdup.h" +#include "edl.h" +#include "edlsession.h" #include "file.h" +#include "filesystem.h" #include "filexml.h" #include "language.h" #include "mainerror.h" @@ -164,8 +167,15 @@ NEW_WINDOW_MACRO(PluginLV2Client, PluginLV2ClientWindow) int PluginLV2Client::init_lv2() { + int bfrsz = block_length; + EDL *edl = server->edl; + if( edl ) { + PlaybackConfig *playback_config = edl->session->playback_config; + bfrsz = playback_config->aconfig->fragment_size; + } int sample_rate = get_project_samplerate(); - return PluginLV2::init_lv2(config, sample_rate); + if( sample_rate < 64 ) sample_rate = samplerate; + return PluginLV2::init_lv2(config, sample_rate, bfrsz); } int PluginLV2Client::load_configuration() @@ -219,7 +229,7 @@ char* PluginLV2Client::to_string(char *string, const char *input) void PluginLV2Client::save_data(KeyFrame *keyframe) { FileXML output; - output.set_shared_output(keyframe->get_data(), MESSAGESIZE); + output.set_shared_output(keyframe->xbuf); char name[BCTEXTLEN]; to_string(name, plugin_title()); output.tag.set_title(name); for( int i=0; iget_data(), strlen(keyframe->get_data())); + input.set_shared_input(keyframe->xbuf); char name[BCTEXTLEN]; to_string(name, plugin_title()); while( !input.read_tag() ) { @@ -332,8 +342,9 @@ PluginLV2BlackList::~PluginLV2BlackList() int PluginLV2BlackList::is_badboy(const char *uri) { + FileSystem fs; for( int i=size(); --i>=0; ) - if( !strcmp(uri, get(i)) ) return 1; + if( !fs.test_filter(uri, get(i)) ) return 1; return 0; } @@ -390,7 +401,7 @@ PluginLV2ParentUI::PluginLV2ParentUI(Plugin *plugin) output_bfr = new Condition(0, "PluginLV2ParentUI::output_bfr", 1); client = 0; gui = 0; - hidden = 1; + hidden = -1; } PluginLV2ParentUI::~PluginLV2ParentUI() @@ -407,6 +418,8 @@ void PluginLV2ParentUI::start_parent(PluginLV2Client *client) char bfr[len]; memset(bfr, 0, len); open_bfr_t *open_bfr = (open_bfr_t *)bfr; open_bfr->sample_rate = client->get_project_samplerate(); + PlaybackConfig *playback_config = client->server->edl->session->playback_config; + open_bfr->bfrsz = playback_config->aconfig->fragment_size; strcpy(open_bfr->path, path); send_child(LV2_OPEN, open_bfr, len); PluginLV2ClientConfig &conf = client->config; @@ -426,6 +439,8 @@ int PluginLV2ParentUI::handle_parent() hidden = 1; break; } case LV2_SHOW: { + if( hidden < 0 ) + gui->lv2_ui_enable(); hidden = 0; break; } case LV2_SHMID: {