#include "playback3d.inc"
#include "playbackengine.inc"
#include "plugin.inc"
+#include "pluginclient.inc"
#include "pluginfclient.inc"
#include "pluginserver.inc"
#include "pluginset.inc"
#define FONT_SEARCHPATH "fonts"
+class StackItem
+{
+public:
+ EDL *edl, *new_edl;
+ MainUndo *undo;
+};
+
+class Stack : public ArrayList<StackItem>
+{
+public:
+};
+
class MWindow : public Thread
{
int get_tracks_height();
// Total horizontal pixels in timeline
int get_tracks_width();
+// session stack
+ void stack_push(EDL *edl);
+ void stack_pop();
+ void forget_nested_edl(EDL *nested);
+ void clip_to_media();
+ void media_to_clip();
// Show windows
void show_vwindow();
void show_awindow();
void create_mixers(double position = 0);
void refresh_mixers(int dir=1);
void stop_mixers();
- void close_mixers(int destroy=1);
+ void close_mixers(int result=1);
void open_mixers();
ZWindow *get_mixer(Mixer *&mixer);
void del_mixer(ZWindow *zwindow);
void split_y();
void crop_video(int mode);
void update_plugins();
+ void get_backup_path(char *path, int len);
// Call after every edit operation
void save_backup();
void load_backup();
// Searches for matching plugin and renders data in it.
void render_plugin_gui(void *data, Plugin *plugin);
void render_plugin_gui(void *data, int size, Plugin *plugin);
+ void reset_plugin_gui_frames(Plugin *plugin);
+ void render_plugin_gui_frames(PluginClientFrames *frames, Plugin *plugin);
+ double get_tracking_position();
+ int get_tracking_direction();
// Called from PluginVClient::process_buffer
// Returns 1 if a GUI for the plugin is open so OpenGL routines can determine if
// they can run.
int plugin_gui_open(Plugin *plugin);
+ void stop_plugin_guis();
void show_keyframe_gui(Plugin *plugin);
void hide_keyframe_guis();
// Main undo stack
MainUndo *undo;
int undo_command;
+// session stack
+ Stack stack;
BC_Hash *defaults;
Assets *assets;