X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginserver.h;h=2b58f06c5dafcd9628712f08cbfdb67b7fa5a92c;hb=50d265a225993329522ba69db9f3cb275410a326;hp=862e22eb41fe86ab388221c46cdad7428c3bfa12;hpb=9fed7535470aa37781733db836068da3b4c17a0d;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/pluginserver.h b/cinelerra-5.1/cinelerra/pluginserver.h index 862e22eb..2b58f06c 100644 --- a/cinelerra-5.1/cinelerra/pluginserver.h +++ b/cinelerra-5.1/cinelerra/pluginserver.h @@ -74,6 +74,17 @@ public: ~PluginObj() { if( dlobj ) unload(dlobj); } }; +class PluginGUIs : public ArrayList +{ + MWindow *mwindow; +public: + PluginGUIs(MWindow *mwindow); + ~PluginGUIs(); + + void append(PluginServer *server); + PluginServer *gui_server(int gui_id); +}; + class PluginServer { PluginObj *plugin_obj; @@ -158,7 +169,7 @@ public: KeyFrame* get_keyframe(); // Apply new settings from the plugin GUI. Called by PluginClient::send_configure_change // Used in keyframe spanning mode. - void apply_keyframe(KeyFrame *src); + void apply_keyframe(Plugin *plugin, KeyFrame *src); // Create new theme object. Used by theme plugins. Theme* new_theme(); @@ -204,6 +215,7 @@ public: void set_use_opengl(int value, VideoDevice *vdevice); // Plugin must call this before performing OpenGL operations. int get_use_opengl(); + int to_ram(VFrame *vframe); // Called from plugin client // Returns 1 if a GUI is open so OpenGL routines can determine if @@ -258,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); @@ -349,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 @@ -412,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;