fred (fwd render enb displ) play pref. info text tweak
[goodguy/history.git] / cinelerra-5.1 / cinelerra / pluginclient.C
index 2f5d0e377f93b3873c7657161a2070ef47942906..bc6ca8eb9e191841b4ecb4952e1edf96fb3370d8 100644 (file)
 #include "bcsignals.h"
 #include "clip.h"
 #include "condition.h"
+#include "edits.h"
+#include "edit.h"
 #include "edl.h"
 #include "edlsession.h"
 #include "file.h"
 #include "filesystem.h"
+#include "indexable.h"
 #include "language.h"
 #include "localsession.h"
 #include "mainundo.h"
 #include "mwindow.h"
+#include "plugin.h"
 #include "pluginclient.h"
 #include "pluginserver.h"
 #include "preferences.h"
+#include "track.h"
 #include "transportque.inc"
 
 
@@ -70,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");
@@ -86,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();
@@ -683,6 +689,14 @@ double PluginClient::get_project_framerate()
        return server->get_project_framerate();
 }
 
+const char *PluginClient::get_source_path()
+{
+       int64_t source_position = server->plugin->startproject;
+       Edit *edit = server->plugin->track->edits->editof(source_position,PLAY_FORWARD,0);
+       Indexable *indexable = edit ? edit->get_source() : 0;
+       return indexable ? indexable->path : 0;
+}
+
 
 void PluginClient::update_display_title()
 {