X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.h;h=6eb384cec586e71c38afed90a7e20c0767f1f515;hp=7950659bb646648146850cac42d283d5503f0802;hb=ac8f3979437fb45effb135a1bb6bee871f52d635;hpb=2a56d102d9db53017b306f2a61a2382f29a75783 diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index 7950659b..6eb384ce 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -62,6 +62,7 @@ #include "mainsession.inc" #include "mainundo.inc" #include "maxchannels.h" +#include "mixersalign.inc" #include "mutex.inc" #include "mwindow.inc" #include "mwindowgui.inc" @@ -87,7 +88,6 @@ #include "thread.h" #include "threadloader.inc" #include "timebar.inc" -#include "timebomb.h" #include "tipwindow.inc" #include "track.inc" #include "tracking.inc" @@ -103,8 +103,6 @@ #define FONT_SEARCHPATH "fonts" -// All entry points for commands except for window locking should be here. -// This allows scriptability. class MWindow : public Thread { @@ -116,6 +114,7 @@ public: void create_objects(int want_gui, int want_new, char *config_path); + int uses_opengl(); void show_splash(); void hide_splash(); void start(); @@ -142,8 +141,9 @@ public: 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); @@ -183,12 +183,8 @@ public: 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 doall); + void fit_autos(int all); void change_currentautorange(int autogrouptype, int increment, int changemax); void expand_autos(int changeall, int domin, int domax); void shrink_autos(int changeall, int domin, int domax); @@ -210,11 +206,13 @@ public: void dump_plugindb(FILE *fp); void stop_playback(int wait); void stop_transport(); + void undo_before(const char *description = "", void *creator = 0); + void undo_after(const char *description, uint32_t load_flags, int changes_made = 1); - void queue_mixers(EDL *edl, int command, int wait_tracking, - int use_inout, int update_refresh, int toggle_audio, int loop_play); - ZWindow *create_mixer(Indexable *indexable); - void create_mixers(); + 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, double position); + void create_mixers(double position = 0); void refresh_mixers(int dir=1); void stop_mixers(); void close_mixers(int destroy=1); @@ -226,7 +224,6 @@ public: void start_mixer(); int select_zwindow(ZWindow *zwindow); void tile_mixers(); - int load_filenames(ArrayList *filenames, int load_mode = LOADMODE_REPLACE, // Cause the project filename on the top of the window to be updated. @@ -261,6 +258,8 @@ public: int find_selection(double position, int scroll_display = 0); void toggle_camera_xyz(); void toggle_projector_xyz(); + double get_position(); + void set_position(double position); // seek to labels // shift_down must be passed by the caller because different windows call @@ -286,7 +285,7 @@ public: 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(); @@ -348,7 +347,11 @@ public: 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(); int copy(double start, double end); void cut(); @@ -365,7 +368,6 @@ public: // 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); @@ -405,8 +407,7 @@ public: // Move edit to new position void move_edits(ArrayList *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); @@ -473,16 +474,17 @@ public: void set_automation_mode(int mode); void set_keyframe_type(int mode); - void set_auto_keyframes(int value, int lock_mwindow, int lock_cwindow); + 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); // Update the editing mode - int set_editing_mode(int new_editing_mode, int lock_mwindow, int lock_cwindow); + int set_editing_mode(int new_editing_mode); void toggle_editing_mode(); - void set_inpoint(int is_mwindow); - void set_outpoint(int is_mwindow); - void unset_inoutpoint(int is_mwindow); + void set_inpoint(); + void set_outpoint(); + void unset_inoutpoint(); void toggle_loop_playback(); void trim_selection(); // Synchronize EDL settings with all playback engines depending on current @@ -490,7 +492,7 @@ public: void sync_parameters(int change_type = CHANGE_PARAMS); void save_clip(EDL *new_edl, const char *txt); void to_clip(EDL *edl, const char *txt, int all); - int toggle_label(int is_mwindow); + int toggle_label(); void undo_entry(BC_WindowBase *calling_window_gui); void redo_entry(BC_WindowBase *calling_window_gui); void save_undo_data(); @@ -520,9 +522,8 @@ public: 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 *orig_assets, - ArrayList *proxy_assets); + void add_proxy(ArrayList *orig_assets, + ArrayList *proxy_assets); int render_proxy(ArrayList &new_idxbls); void beep(double freq, double secs, double gain); int enable_proxy(); @@ -551,6 +552,8 @@ public: // Main undo stack MainUndo *undo; + int undo_command; + BC_Hash *defaults; Assets *assets; // CICaches for drawing timeline only @@ -579,7 +582,6 @@ public: ArrayList colormodels; ArrayList interlace_project_modes; ArrayList interlace_asset_modes; - ArrayList interlace_asset_fixmethods; int reset_meters(); void resync_guis(); @@ -629,6 +631,8 @@ public: // Mixer Mutex *zwindows_lock; ArrayList zwindows; + MixersAlign *mixers_align; + // Asset manager AWindow *awindow; // Automation window