X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.h;h=46e96643ae1930f562dad77a34471025011a89cc;hp=59f816c658ccfd5f2c4917ac590aca75cd54d7cb;hb=b9fa786adcb3624582d1a63bd52b9179e9a8dadb;hpb=1529091cdf16df199a901aabe6e8fa1813a933af diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index 59f816c6..46e96643 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -23,6 +23,7 @@ #include #include +#include #include "apatchgui.h" #include "arraylist.h" @@ -146,6 +147,29 @@ public: }; +class DrawTrackMovement : public Thread +{ +public: + DrawTrackMovement(MWindow *mwindow); + ~DrawTrackMovement(); + void run(); + + MWindow *mwindow; +}; + +class ConfirmRefWindow : public BC_Window +{ +public: + ConfirmRefWindow(MWindow *mwindow, char *path, + int px, int py, int cw, int ch); + ~ConfirmRefWindow(); + void create_objects(); + + MWindow *mwindow; + const char *path; +}; + + class MWindow : public Thread { public: @@ -177,7 +201,7 @@ public: // Total horizontal pixels in timeline int get_tracks_width(); // session stack - void stack_push(EDL *edl, Indexable *idxbl, Edit *edit=0); + void stack_push(EDL *edl, Indexable *idxbl); void stack_pop(); int save(EDL *edl, char *filename, int stat); int save(int save_as); @@ -186,10 +210,14 @@ public: void media_to_clip(); int create_ref(Asset *asset, EDL *ref); // Show windows - void show_vwindow(); + void show_vwindow(int raise); + void hide_vwindow(int raise); void show_awindow(); - void show_lwindow(); + void hide_awindow(); void show_cwindow(); + void hide_cwindow(); + void show_lwindow(); + void hide_lwindow(); void show_gwindow(); void hide_gwindow(); void restore_windows(); @@ -242,6 +270,7 @@ public: // Fit selected autos to the vertical display range void fit_autos(int all); void change_currentautorange(int autogrouptype, int increment, int changemax); + void update_autorange(int type, int increment, int use_max); void expand_autos(int changeall, int domin, int domax); void shrink_autos(int changeall, int domin, int domax); // move the window to include the cursor @@ -274,12 +303,17 @@ public: void close_mixers(int result=1); void open_mixers(); ZWindow *get_mixer(Mixer *&mixer); - void del_mixer(ZWindow *zwindow); + ZWindow *get_mixer(int idx); + void close_mixer(ZWindow *zwindow); int mixer_track_active(Track *track); void update_mixer_tracks(); void start_mixer(); int select_zwindow(ZWindow *zwindow); void tile_mixers(); + void tile_mixers(int x1, int x2, int y1, int y2); + int masters_to_mixers(); + void mix_masters(); + void set_gang_tracks(int v); int load_filenames(ArrayList *filenames, int load_mode = LOADMODE_REPLACE, int edl_mode = LOADMODE_EDL_CLIP, @@ -293,6 +327,8 @@ public: int interrupt_indexes(); // Stop index building int redraw_time_dependancies(); // after reconfiguring the time format, sample rate, frame rate + void draw_trackmovement(); // after reconfiguring tracks/patchbay guis + DrawTrackMovement *redraw_tracks; // =========================================== movement @@ -317,6 +353,9 @@ public: void toggle_projector_xyz(); double get_position(); void set_position(double position); + double get_timecode_offset(); + void set_timecode_offset(double offset); + void align_timecodes(); // seek to labels // shift_down must be passed by the caller because different windows call @@ -346,6 +385,7 @@ public: void crop_video(int mode); void update_plugins(); void get_backup_path(char *path, int len); + void create_timestamped_copy_from_previous_backup(char *previouspath); // Call after every edit operation void save_backup(); void load_backup(); @@ -393,13 +433,13 @@ public: AUDIO_5_1_TO_2, AUDIO_1_TO_1 }; - void add_audio_track_entry(int above, Track *dst); - int add_audio_track(int above, Track *dst); void add_clip_to_edl(EDL *edl); - void add_video_track_entry(Track *dst = 0); - int add_video_track(int above, Track *dst); - void add_subttl_track_entry(Track *dst = 0); - int add_subttl_track(int above, Track *dst); + void add_audio_track_entry(int above, Track *dst); + Track *add_audio_track(int above, Track *dst); + void add_video_track_entry(int above, Track *dst); + Track *add_video_track(int above, Track *dst); + void add_subttl_track_entry(int above, Track *dst); + Track *add_subttl_track(int above, Track *dst); void asset_to_all(); void asset_to_size(); @@ -415,6 +455,7 @@ public: void clear_hard_edges(); int clear_hard_edges(double start, double end); void clear_select(); + void select_edits(int v); void concatenate_tracks(); int copy_flags(int copy_flags=COPY_CLIPBOARD); void copy(); @@ -444,7 +485,7 @@ public: // 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(Track *dest_track, double start, double length); // CWindow calls this to insert multiple effects from // the drag_pluginservers array. @@ -481,6 +522,10 @@ public: 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 roll_track_down(Track *track); + void roll_tracks_down(); + void roll_track_up(Track *track); + void roll_tracks_up(); void move_track_down(Track *track); void move_tracks_down(); void move_track_up(Track *track); @@ -528,7 +573,7 @@ public: void remove_indexfile(Indexable *indexable); void rebuild_indices(); // Asset removal from caches - void reset_caches(); + void reset_caches(int locked); void remove_from_caches(Indexable *idxbl); void remove_assets_from_project(int push_undo, int redraw, int delete_indexes, ArrayList *drag_assets /* mwindow->session->drag_assets */, @@ -577,6 +622,7 @@ public: // in the clipboard. int paste_default_keyframe(); int clear_default_keyframe(); + void create_keyframes(int mask, int mode); FloatAuto* get_float_auto(PatchGUI *patch,int idx); IntAuto* get_int_auto(PatchGUI *patch,int idx); @@ -585,6 +631,7 @@ public: int modify_edithandles(); int modify_pluginhandles(); + int modify_transnhandles(); void finish_modify_handles(); void rescale_proxy(EDL *clip, int orig_scale, int new_scale); void add_proxy(ArrayList *orig_assets, @@ -770,13 +817,11 @@ public: const char *plug_dir, const char *plug_path); static void init_plugin_index(MWindow *mwindow, Preferences *preferences, FILE *fp, const char *plugin_dir); - static int init_ladspa_index(MWindow *mwindow, Preferences *preferences, - FILE *fp, const char *plugin_dir); static void scan_plugin_index(MWindow *mwindow, Preferences *preferences, FILE *fp, const char *plug_dir, const char *plug_path, int &idx); static void init_ffmpeg(); static void init_ffmpeg_index(MWindow *mwindow, Preferences *preferences, FILE *fp); - static int load_plugin_index(MWindow *mwindow, FILE *fp, const char *plugin_dir); + static int load_plugin_index(MWindow *mwindow, FILE *fp, const char *plugin_dir, const char *index_id); static PluginServer *new_ffmpeg_server(MWindow *mwindow, const char *name); static int init_lv2_index(MWindow *mwindow, Preferences *preferences, FILE *fp); static PluginServer *new_lv2_server(MWindow *mwindow, const char *name); @@ -802,16 +847,18 @@ public: static void add_plugins(ArrayList &plugins); static void delete_plugins(); void speed_before(); - int speed_after(int done); - int normalize_speed(EDL *old_edl, EDL *new_edl); + int speed_after(int done, int edit_speed); + int normalize_speed(EDL *old_edl, EDL *new_edl, int edit_speed); int get_cpus(int out_w, int out_h); int get_cpus(); // void clean_indexes(); + void clean_backups(); // TimeBomb timebomb; SigHandler *sighandler; int restart_status; int screens; + const char *appimageDir; int in_destructor; Shuttle *shuttle; WinTV *wintv;