#include "channel.inc"
#include "channeldb.inc"
#include "commercials.inc"
+#include "convert.inc"
#include "cwindow.inc"
#include "bchash.inc"
#include "devicedvbinput.inc"
#include "mainsession.inc"
#include "mainundo.inc"
#include "maxchannels.h"
+#include "mixersalign.inc"
#include "mutex.inc"
#include "mwindow.inc"
#include "mwindowgui.inc"
#include "playback3d.inc"
#include "playbackengine.inc"
#include "plugin.inc"
+#include "pluginclient.inc"
#include "pluginfclient.inc"
#include "pluginserver.inc"
#include "pluginset.inc"
#include "thread.h"
#include "threadloader.inc"
#include "timebar.inc"
-#include "timebomb.h"
#include "tipwindow.inc"
#include "track.inc"
#include "tracking.inc"
void create_objects(int want_gui,
int want_new,
char *config_path);
+ int uses_opengl();
void show_splash();
void hide_splash();
void start();
void show_gwindow();
void hide_gwindow();
void restore_windows();
- void save_layout(int no);
- void load_layout(int no);
+ void load_layout(const char *layout);
+ void save_layout(const char *layout);
+ void delete_layout(const char *layout);
int tile_windows(int window_config);
char *get_cwindow_display();
void set_screens(int value);
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();
- EDL *selected_edits_to_clip(int packed,
- double *start_position, Track **start_track,
- int edit_labels, int edit_autos, int edit_plugins);
- void selected_edits_to_clipboard(int packed);
// Fit selected autos to the vertical display range
void fit_autos(int all);
void change_currentautorange(int autogrouptype, int increment, int changemax);
void handle_mixers(EDL *edl, int command, int wait_tracking,
int use_inout, int toggle_audio, int loop_play, float speed);
- ZWindow *create_mixer(Indexable *indexable);
- void create_mixers();
+ ZWindow *create_mixer(Indexable *indexable, double position);
+ void create_mixers(double position = 0);
void refresh_mixers(int dir=1);
void stop_mixers();
void close_mixers(int destroy=1);
void start_mixer();
int select_zwindow(ZWindow *zwindow);
void tile_mixers();
-
int load_filenames(ArrayList<char*> *filenames,
int load_mode = LOADMODE_REPLACE,
// Cause the project filename on the top of the window to be updated.
// 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);
int zoom_in_t();
void split_x();
void split_y();
- void crop_video();
+ void crop_video(int mode);
void update_plugins();
// Call after every edit operation
void save_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();
void clear(int clear_handle);
void clear_labels();
int clear_labels(double start, double end);
+ void clear_hard_edges();
+ int clear_hard_edges(double start, double end);
+ void clear_select();
void concatenate_tracks();
int copy_flags(int copy_flags=COPY_CLIPBOARD);
void copy();
// Calculate defaults path
static void create_defaults_path(char *string, const char *config_file);
- void delete_track();
void delete_track(Track *track);
void delete_tracks();
int feather_edits(int64_t feather_samples, int audio, int video);
// Move edit to new position
void move_edits(ArrayList<Edit*> *edits, Track *track, double position,
int mode); // mode: 0 - mute and overwrite, 1 - cut and paste
- void paste_edits(EDL *clip, Track *first_track, double position, int overwrite,
- int edit_edits, int edit_labels, int edit_autos, int edit_plugins);
+ void selected_edits_to_clipboard(int packed);
void paste_clipboard(Track *first_track, double position, int overwrite,
int edit_edits, int edit_labels, int edit_autos, int edit_plugins);
void move_group(EDL *group, Track *first_track, double position, int overwrite);
// 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();
void set_automation_mode(int mode);
void set_keyframe_type(int mode);
void set_auto_keyframes(int value);
+ void set_span_keyframes(int value);
void set_auto_visibility(Autos *autos, int value);
void set_labels_follow_edits(int value);
int modify_pluginhandles();
void finish_modify_handles();
void rescale_proxy(EDL *clip, int orig_scale, int new_scale);
- void add_proxy(int use_scaler,
- ArrayList<Indexable*> *orig_assets,
- ArrayList<Indexable*> *proxy_assets);
+ void add_proxy(ArrayList<Indexable*> *orig_assets,
+ ArrayList<Indexable*> *proxy_assets);
int render_proxy(ArrayList<Indexable *> &new_idxbls);
void beep(double freq, double secs, double gain);
int enable_proxy();
// 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
ArrayList<ColormodelItem*> colormodels;
ArrayList<InterlacemodeItem*> interlace_project_modes;
ArrayList<InterlacemodeItem*> interlace_asset_modes;
- ArrayList<InterlacefixmethodItem*> interlace_asset_fixmethods;
int reset_meters();
void resync_guis();
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
// Mixer
Mutex *zwindows_lock;
ArrayList<ZWindow*> zwindows;
+ MixersAlign *mixers_align;
+
// Asset manager
AWindow *awindow;
// Automation window