#include "channel.inc"
#include "channeldb.inc"
#include "commercials.inc"
+#include "convert.inc"
#include "cwindow.inc"
#include "bchash.inc"
#include "devicedvbinput.inc"
#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();
int overwrite);
// Reset everything for a load
void update_project(int load_mode);
+ void update_preferences(Preferences *prefs);
void update_vwindow();
// Fit selected time to horizontal display range
void fit_selection();
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);
// Not wanted for loading backups.
int update_filename = 1);
-
// Print out plugins which are referenced in the EDL but not loaded.
void test_plugins(EDL *new_edl, char *path);
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();
// Asset removal from caches
void reset_caches();
void remove_asset_from_caches(Asset *asset);
- void remove_assets_from_project(int push_undo /* = 0 */,
- int redraw /* 1 */,
+ void remove_assets_from_project(int push_undo, int redraw, int delete_indexes,
ArrayList<Indexable*> *drag_assets /* mwindow->session->drag_assets */,
ArrayList<EDL*> *drag_clips /* mwindow->session->drag_clips */);
void remove_assets_from_disk();
// Send new EDL to caches
void age_caches();
int optimize_assets(); // delete unused assets from the cache and assets
+// render edl assets to specified format, then replace in edl
+ void start_convert(Asset *format_asset, const char *suffix,
+ float beep, int remove_originals);
+ void finish_convert(int remove_originals);
+ ConvertRender *convert_render;
void select_point(double position);
int set_loop_boundaries(); // toggle loop playback and set boundaries for loop playback
// Main undo stack
MainUndo *undo;
int undo_command;
+// session stack
+ Stack stack;
BC_Hash *defaults;
Assets *assets;
static ArrayList<PluginServer*> *plugindb;
// Currently visible plugins
int64_t plugin_visibility;
- ArrayList<PluginServer*> *plugin_guis;
+ PluginGUIs *plugin_guis;
// GUI Plugins to delete
ArrayList<PluginServer*> *dead_plugins;
// Keyframe editors