X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginclient.C;h=0a690b2e673868d3e65700da5c323022f90abc91;hb=b2eb290b3f6e5c233393017aa152e67c76243130;hp=03e8c3f1e642f43487950ef60b1f213e29a95262;hpb=8d1431081df60da0719db2c77e4c56830521c7e8;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/pluginclient.C b/cinelerra-5.1/cinelerra/pluginclient.C index 03e8c3f1..0a690b2e 100644 --- a/cinelerra-5.1/cinelerra/pluginclient.C +++ b/cinelerra-5.1/cinelerra/pluginclient.C @@ -141,22 +141,23 @@ PluginClientFrame::~PluginClientFrame() PluginClientWindow::PluginClientWindow(PluginClient *client, - int w, - int h, - int min_w, - int min_h, - int allow_resize) + int w, int h, int min_w, int min_h, int allow_resize) : BC_Window(client->gui_string, client->window_x /* - w / 2 */, client->window_y /* - h / 2 */, - w, h, min_w, min_h, allow_resize, 0, 1) + (int)(w*get_resources()->font_scale+0.5), (int)(h*get_resources()->font_scale+0.5), + (int)(min_w*get_resources()->font_scale+0.5), (int)(min_h*get_resources()->font_scale+0.5), + allow_resize, 0, 1) { this->client = client; } PluginClientWindow::PluginClientWindow(const char *title, int x, int y, int w, int h, int min_w, int min_h, int allow_resize) - : BC_Window(title, x, y, w, h, min_w, min_h, allow_resize, 0, 1) + : BC_Window(title, x, y, + (int)(w*get_resources()->font_scale+0.5), (int)(h*get_resources()->font_scale+0.5), + (int)(min_w*get_resources()->font_scale+0.5), (int)(min_h*get_resources()->font_scale+0.5), + allow_resize, 0, 1) { this->client = 0; } @@ -245,6 +246,7 @@ void PluginClient::hide_gui() //printf("PluginClient::hide_gui %d thread->window=%p\n", __LINE__, thread->window); thread->window->unlock_window(); //printf("PluginClient::delete_thread %d\n", __LINE__); + thread->join(); } } @@ -546,39 +548,33 @@ void PluginClient::load_defaults_xml() //printf("PluginClient::load_defaults_xml %d %s\n", __LINE__, path); KeyFrame temp_keyframe; - FILE *fd = fopen(path, "r"); - if(fd) - { - char *data = temp_keyframe.get_data(); - int data_size = fread(data, 1, MESSAGESIZE-1, fd); + FILE *fp = fopen(path, "r"); + if( fp ) { + struct stat st; int fd = fileno(fp); + int64_t sz = !fstat(fd, &st) ? st.st_size : BCTEXTLEN; + char *data = temp_keyframe.get_data(sz+1); + int data_size = fread(data, 1, sz, fp); if( data_size < 0 ) data_size = 0; - if( data_size > 0 ) - { + if( data_size > 0 ) { // Get window extents int state = 0; - for(int i = 0; i < data_size - 8; i++) - { - if(data[i] == '<') break; - if(isdigit(data[i])) - { - if(state == 0) - { - window_x = atoi(data + i); - state++; - } - else - { - window_y = atoi(data + i); - break; - } - while(i < data_size && isdigit(data[i])) i++; + for( int i=0; i<(data_size-8) && data[i]!='<'; ++i ) { + if( !isdigit(data[i]) ) continue; + if( !state ) { + window_x = atoi(data + i); + state = 1; } + else { + window_y = atoi(data + i); + break; + } + while( imwindow) - return server->mwindow->edl->local_session->red; - else - if(server->edl) - return server->edl->local_session->red; - else - return 0; + EDL *edl = server->mwindow ? server->mwindow->edl : server->edl; + return !edl ? 0 : edl->local_session->use_max ? + edl->local_session->red_max : + edl->local_session->red; } float PluginClient::get_green() { - if(server->mwindow) - return server->mwindow->edl->local_session->green; - else - if(server->edl) - return server->edl->local_session->green; - else - return 0; + EDL *edl = server->mwindow ? server->mwindow->edl : server->edl; + return !edl ? 0 : edl->local_session->use_max ? + edl->local_session->green_max : + edl->local_session->green; } float PluginClient::get_blue() { - if(server->mwindow) - return server->mwindow->edl->local_session->blue; - else - if(server->edl) - return server->edl->local_session->blue; - else - return 0; + EDL *edl = server->mwindow ? server->mwindow->edl : server->edl; + return !edl ? 0 : edl->local_session->use_max ? + edl->local_session->blue_max : + edl->local_session->blue; } - int64_t PluginClient::get_source_position() { return source_position; @@ -834,7 +820,6 @@ int PluginClient::send_configure_change() server->mwindow->undo->update_undo_before(_("tweek"), this); #ifdef USE_KEYFRAME_SPANNING KeyFrame keyframe; - keyframe.copy_from(server->get_keyframe()); save_data(&keyframe); server->apply_keyframe(&keyframe); #else