X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.h;h=ab2a52408d22af3bf4b76ed1f769d67fb0cf30ab;hp=79bbb5cd606d7b2b59a7b6397d40e706f161fdbb;hb=2287a1f9b45c690c3604b93a05bff0543ea4fee8;hpb=ee1879b1a1850e1d4e19c034d4a9c5459274bbb6 diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index 79bbb5cd..ab2a5240 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -82,6 +82,7 @@ #include "sharedlocation.inc" #include "sighandler.inc" #include "splashgui.inc" +#include "shuttle.inc" #include "theme.inc" #include "thread.h" #include "threadloader.inc" @@ -102,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 { @@ -182,9 +181,12 @@ public: void update_vwindow(); // Fit selected time to horizontal display range void fit_selection(); - void selected_to_clipboard(); + 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); @@ -206,9 +208,11 @@ 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); + 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(); void refresh_mixers(int dir=1); @@ -257,6 +261,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 @@ -310,7 +316,10 @@ public: void hide_keyframe_guis(); void hide_keyframe_gui(Plugin *plugin); void update_keyframe_guis(); - + int get_hash_color(Edit *edit); + int get_hash_color(int v); + int get_group_color(int v); + int get_title_color(Edit *edit); // ============================= editing commands ======================== @@ -364,17 +373,13 @@ public: int feather_edits(int64_t feather_samples, int audio, int video); int64_t get_feather(int audio, int video); float get_aspect_ratio(); - void insert(double position, - FileXML *file, - int edit_labels, - int edit_plugins, - int edit_autos, - EDL *parent_edl /* = 0 */); + void insert(double position, FileXML *file, + int edit_labels, int edit_plugins, int edit_autos, + EDL *parent_edl, Track *first_track, int overwrite); // TrackCanvas calls this to insert multiple effects from the drag_pluginservers // into pluginset_highlighted. - void insert_effects_canvas(double start, - double length); + void insert_effects_canvas(double start, double length); // CWindow calls this to insert multiple effects from // the drag_pluginservers array. @@ -385,37 +390,31 @@ public: // other tracks void insert_effect(char *title, SharedLocation *shared_location, - int data_type, - int plugin_type, - int single_standalone); + int data_type, int plugin_type, int single_standalone); // This is called multiple times by the above functions. // It can't sync parameters. void insert_effect(char *title, SharedLocation *shared_location, - Track *track, - PluginSet *plugin_set, - double start, - double length, - int plugin_type); + Track *track, PluginSet *plugin_set, + double start, double length, int plugin_type); void match_output_size(Track *track); void delete_edit(Edit *edit, const char *msg, int collapse=0); void delete_edits(ArrayList *edits, const char *msg, int collapse=0); void delete_edits(int collapse=0); - void cut_selected_edits(int collapse=0); + void cut_selected_edits(int collapse, int packed); // Move edit to new position - void move_edits(ArrayList *edits, - Track *track, - double position, - int behaviour); // behaviour: 0 - old style (cut and insert elswhere), 1- new style - (clear and overwrite elsewere) + 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 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); // Move effect to position - void move_effect(Plugin *plugin, - Track *track, - int64_t position); - void move_effect(Plugin *plugin, - PluginSet *plugin_set, - int64_t position); + void move_effect(Plugin *plugin, Track *track, int64_t position); + void move_effect(Plugin *plugin, PluginSet *plugin_set, int64_t position); void move_plugins_up(PluginSet *plugin_set); void move_plugins_down(PluginSet *plugin_set); void move_track_down(Track *track); @@ -427,11 +426,13 @@ public: void delete_folder(char *folder); // For clipboard commands void paste(); + void paste(double start, Track *first_track, int clear_selection, int overwrite); // For splice and overwrite void overwrite(EDL *source, int all); void splice(EDL *source, int all); int paste(double start, double end, FileXML *file, - int edit_labels, int edit_plugins, int edit_autos); + int edit_labels, int edit_plugins, int edit_autos, + Track *first_track, int overwrite); int paste_output(int64_t startproject, int64_t endproject, int64_t startsource_sample, int64_t endsource_sample, int64_t startsource_frame, int64_t endsource_frame, @@ -474,16 +475,16 @@ 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_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 @@ -491,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(); @@ -552,6 +553,8 @@ public: // Main undo stack MainUndo *undo; + int undo_command; + BC_Hash *defaults; Assets *assets; // CICaches for drawing timeline only @@ -708,6 +711,7 @@ public: void init_preferences(); void init_signals(); + void init_shuttle(); void init_theme(); void init_compositor(); void init_levelwindow(); @@ -732,6 +736,7 @@ public: int restart_status; int screens; int in_destructor; + Shuttle *shuttle; }; #endif