X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginserver.h;h=296d335b1f403a8b591e22de7f6b8a1c285b4744;hb=fb3e53778e49a406768506de9bf8edfd3d4c36e6;hp=36447603bb0e1c0ad2f595d04e428be035e1a7f2;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/pluginserver.h b/cinelerra-5.1/cinelerra/pluginserver.h index 36447603..296d335b 100644 --- a/cinelerra-5.1/cinelerra/pluginserver.h +++ b/cinelerra-5.1/cinelerra/pluginserver.h @@ -74,6 +74,18 @@ public: ~PluginObj() { if( dlobj ) unload(dlobj); } }; +class PluginGUIs : public ArrayList +{ + int next_id; + MWindow *mwindow; +public: + PluginGUIs(MWindow *mwindow); + ~PluginGUIs(); + + void append(PluginServer *server); + PluginServer *gui_server(int gui_id); +}; + class PluginServer { PluginObj *plugin_obj; @@ -150,6 +162,9 @@ public: int64_t position, int direction); // Get interpolation used by EDL int get_interpolation_type(); +// plugin position or -1 if no plugin + int64_t get_startproject(); + int64_t get_endproject(); // Get or create keyframe for writing, depending on whether auto keyframes // is enabled. Called by PluginClient::send_configure_change KeyFrame* get_keyframe(); @@ -255,9 +270,16 @@ public: // Called by rendering client to cause the GUI to display something with the data. void send_render_gui(void *data); void send_render_gui(void *data, int size); + // Called by MWindow to cause GUI to display void render_gui(void *data); void render_gui(void *data, int size); +// PluginClientFrames queuing to gui client_frames + void send_reset_gui_frames(); + void reset_gui_frames(); + void render_gui_frames(PluginClientFrames *frames); + void reset_plugin_gui_frames(); + void render_plugin_gui_frames(PluginClientFrames *frames); // Send the boundary autos of the next fragment int set_automation(FloatAutos *autos, FloatAuto **start_auto, FloatAuto **end_auto, int reverse); @@ -346,6 +368,7 @@ public: // client origin int plugin_type; + int plugin_id; // buffers int64_t out_buffer_size; // size of a send buffer to the plugin @@ -409,14 +432,12 @@ public: // Pointer to keyframe when plugin is not available KeyFrame *keyframe; AttachmentPoint *attachment; -// Storage of keyframes and GUI status - Plugin *plugin; // Storage of session parameters EDL *edl; Preferences *preferences; MenuEffectPrompt *prompt; - int gui_on; + int gui_on, gui_id; VFrame *temp_frame;