merged hv7 mod
[goodguy/history.git] / cinelerra-5.1 / cinelerra / pluginclient.C
index 6af3a3139a00c8fa67617869c84c553407c8a626..aaec69d86e107e92da749a70a46a63b3a7b6d26e 100644 (file)
@@ -75,7 +75,7 @@ void PluginClientThread::run()
        if(client->window_x < 0) client->window_x = info.get_abs_cursor_x();
        if(client->window_y < 0) client->window_y = info.get_abs_cursor_y();
        if(!window)
-               window = client->new_window();
+               window = (PluginClientWindow*)client->new_window();
 
        if(window) {
                window->lock_window("PluginClientThread::run");
@@ -91,6 +91,7 @@ void PluginClientThread::run()
 //printf("PluginClientThread::run %p %d\n", this, __LINE__);
                window->hide_window(1);
                window->unlock_window();
+               window->done_event(result);
 // Can't save defaults in the destructor because it's not called immediately
 // after closing.
                /* if(client->defaults) */ client->save_defaults_xml();
@@ -336,14 +337,8 @@ int PluginClient::show_gui()
        thread->start();
        thread->init_complete->lock("PluginClient::show_gui");
 // Must wait before sending any hide_gui
-       if(thread->window)
-       {
-               thread->window->init_wait();
-       }
-       else
-       {
-               return 1;
-       }
+       if( !thread->window ) return 1;
+       thread->window->init_wait();
        return 0;
 }
 
@@ -735,39 +730,29 @@ int PluginClient::get_interpolation_type()
 
 float PluginClient::get_red()
 {
-       if(server->mwindow)
-               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;