merge hv v6, rework trace methods
[goodguy/history.git] / cinelerra-5.1 / cinelerra / pluginclient.C
index cccdcde077d8bc6bfefe9c021b2b1b9f99a4dc02..731d94e39f1b815a31d983c5a18f3ce4d8e87431 100644 (file)
@@ -26,6 +26,7 @@
 #include "condition.h"
 #include "edl.h"
 #include "edlsession.h"
+#include "file.h"
 #include "filesystem.h"
 #include "language.h"
 #include "localsession.h"
@@ -55,8 +56,9 @@ PluginClientThread::PluginClientThread(PluginClient *client)
 
 PluginClientThread::~PluginClientThread()
 {
-//printf("PluginClientThread::~PluginClientThread %p %d\n", this, __LINE__);
        join();
+//printf("PluginClientThread::~PluginClientThread %p %d\n", this, __LINE__);
+       delete window;  window = 0;
 //printf("PluginClientThread::~PluginClientThread %p %d\n", this, __LINE__);
        delete init_complete;
 }
@@ -67,10 +69,10 @@ void PluginClientThread::run()
        int result = 0;
        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();
-       window = client->new_window();
+       if(!window)
+               window = client->new_window();
 
-       if(window)
-       {
+       if(window) {
                window->lock_window("PluginClientThread::run");
                window->create_objects();
                window->unlock_window();
@@ -84,7 +86,6 @@ void PluginClientThread::run()
 //printf("PluginClientThread::run %p %d\n", this, __LINE__);
                window->hide_window(1);
                window->unlock_window();
-               delete window;  window = 0;
 // Can't save defaults in the destructor because it's not called immediately
 // after closing.
                /* if(client->defaults) */ client->save_defaults_xml();
@@ -185,7 +186,7 @@ PluginClient::PluginClient(PluginServer *server)
 {
        reset();
        this->server = server;
-       smp = server->preferences->processors;
+       smp = server->preferences->project_smp;
        defaults = 0;
        update_timer = new Timer;
 // Virtual functions don't work here.
@@ -658,12 +659,6 @@ int PluginClient::get_gui_status()
        return server->get_gui_status();
 }
 
-int PluginClient::start_plugin()
-{
-       printf(_("No processing defined for this plugin.\n"));
-       return 0;
-}
-
 // close event from client side
 void PluginClient::client_side_close()
 {
@@ -814,7 +809,7 @@ int PluginClient::get_project_smp()
 
 const char* PluginClient::get_defaultdir()
 {
-       return BCASTDIR;
+       return File::get_plugin_path();
 }