X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.h;h=e0f0d4f8c19eab038534474199c58c7490503e79;hp=7628632ea92e409c6661bddf037a8bd3b386ecb2;hb=2e48b660e37eb5c661264d601211e16cb6cd6e89;hpb=6fd57106820e676e368399d16b925bdc78d34621 diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index 7628632e..e0f0d4f8 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -24,6 +24,7 @@ #include #include +#include "apatchgui.h" #include "arraylist.h" #include "asset.inc" #include "assets.inc" @@ -74,6 +75,7 @@ #include "pluginset.inc" #include "preferences.inc" #include "preferencesthread.inc" +#include "proxy.inc" #include "record.inc" #include "recordlabel.inc" #include "render.inc" @@ -92,7 +94,9 @@ #include "transition.inc" #include "transportque.inc" #include "videowindow.inc" +#include "vpatchgui.h" #include "vwindow.inc" +#include "zwindow.inc" #include "wwindow.inc" #include "wavecache.inc" @@ -119,7 +123,7 @@ public: int run_script(FileXML *script); int new_project(); int delete_project(int flash = 1); - void quit(int unlock); + void quit(); int restart() { return restart_status; } int load_defaults(); @@ -135,17 +139,13 @@ public: void show_lwindow(); void show_cwindow(); void show_gwindow(); + void hide_gwindow(); int tile_windows(int window_config); char *get_cwindow_display(); -// void set_titles(int value); void set_screens(int value); int asset_to_edl(EDL *new_edl, Asset *new_asset, RecordLabels *labels = 0); -// Convert nested_edl to a nested EDL in new_edl -// suitable for pasting in paste_edls - int edl_to_nested(EDL *new_edl, - EDL *nested_edl); // Entry point to insert assets and insert edls. Called by TrackCanvas // and AssetPopup when assets are dragged in from AWindow. @@ -176,6 +176,7 @@ public: int overwrite); // Reset everything for a load void update_project(int load_mode); + void update_vwindow(); // Fit selected time to horizontal display range void fit_selection(); // Fit selected autos to the vertical display range @@ -195,13 +196,28 @@ public: // Find the plugin whose title matches title and return it static PluginServer* scan_plugindb(char *title, int data_type); + static void fix_plugin_title(char *title); static int plugin_exists(const char *plugin_path, ArrayList &plugins); static int plugin_exists(char *plugin_path); void dump_plugindb(FILE *fp); - void stop_playback(int wait=0); - - - + void stop_playback(int wait); + void stop_transport(); + + 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 refresh_mixers(int dir=1); + void stop_mixers(); + void close_mixers(int destroy=1); + void open_mixers(); + ZWindow *get_mixer(Mixer *&mixer); + void del_mixer(ZWindow *zwindow); + int mixer_track_active(Track *track); + void update_mixer_tracks(); + void start_mixer(); + int select_zwindow(ZWindow *zwindow); + void tile_mixers(); int load_filenames(ArrayList *filenames, int load_mode = LOADMODE_REPLACE, @@ -234,6 +250,9 @@ public: int move_right(int64_t distance = 0); void move_up(int64_t distance = 0); void move_down(int64_t distance = 0); + int find_selection(double position, int scroll_display = 0); + void toggle_camera_xyz(); + void toggle_projector_xyz(); // seek to labels // shift_down must be passed by the caller because different windows call @@ -243,6 +262,8 @@ public: // seek to edit handles int next_edit_handle(int shift_down); int prev_edit_handle(int shift_down); +// seek to keyframes + int nearest_plugin_keyframe(int shift_down, int dir); // offset is pixels to add to track_start void trackmovement(int offset, int pane_number); // view_start is pixels @@ -320,16 +341,19 @@ public: void copy(); int copy(double start, double end); void cut(); + void blade(double position); + void cut(double start, double end, double new_position=-1); +// cut edit from current position to handle/label + void cut_left_edit(); + void cut_right_edit(); + void cut_left_label(); + void cut_right_label(); // Calculate aspect ratio from pixel counts static int create_aspect_ratio(float &w, float &h, int width, int height); // Calculate defaults path static void create_defaults_path(char *string, const char *config_file); - void delete_folder(char *folder); - void delete_inpoint(); - void delete_outpoint(); - void delete_track(); void delete_track(Track *track); void delete_tracks(); @@ -391,25 +415,19 @@ public: void move_track_up(Track *track); void move_tracks_up(); void mute_selection(); - void new_folder(const char *new_folder); - void overwrite(EDL *source); + void new_folder(const char *new_folder, int is_clips); + void delete_folder(char *folder); // For clipboard commands void paste(); // For splice and overwrite - int paste(double start, - double end, - FileXML *file, - int edit_labels, - int edit_plugins, - int edit_autos); - 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, - Asset *asset, - RecordLabels *new_labels); + 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 paste_output(int64_t startproject, int64_t endproject, + int64_t startsource_sample, int64_t endsource_sample, + int64_t startsource_frame, int64_t endsource_frame, + Asset *asset, RecordLabels *new_labels); void paste_silence(); // Detach single transition @@ -457,17 +475,22 @@ public: void toggle_editing_mode(); void set_inpoint(int is_mwindow); void set_outpoint(int is_mwindow); - void splice(EDL *source); + void unset_inoutpoint(int is_mwindow); void toggle_loop_playback(); void trim_selection(); // Synchronize EDL settings with all playback engines depending on current // operation. Doesn't redraw anything. void sync_parameters(int change_type = CHANGE_PARAMS); - void to_clip(); + 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); void undo_entry(BC_WindowBase *calling_window_gui); void redo_entry(BC_WindowBase *calling_window_gui); - + void save_undo_data(); + void load_undo_data(); + int copy_target(const char *path, const char *target); + int link_target(const char *real_path, const char *link_path, int relative); + void save_project(const char *dir, int save_mode, int overwrite, int reload); int cut_automation(); int copy_automation(); @@ -481,9 +504,24 @@ public: int paste_default_keyframe(); int clear_default_keyframe(); + FloatAuto* get_float_auto(PatchGUI *patch,int idx); + IntAuto* get_int_auto(PatchGUI *patch,int idx); + PanAuto* get_pan_auto(PatchGUI *patch); + PatchGUI *get_patchgui(Track *track); + int modify_edithandles(); 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); + int render_proxy(ArrayList &new_idxbls); + void beep(double freq, double secs, double gain); + int enable_proxy(); + int disable_proxy(); + int to_proxy(Asset *asset, int new_scale, int new_use_scaler); + ProxyBeep *proxy_beep; void dump_plugins(FILE *fp=stdout); void dump_edl(FILE *fp=stdout); @@ -521,10 +559,14 @@ public: MainIndexes *mainindexes; MainProgress *mainprogress; BRender *brender; + char cin_lang[4]; + int brender_active; const char *default_standard; static Commercials *commercials; int commercial_active; int has_commercials(); +// copy of edl created in speed_before, used in speed_after to normalize_speed + EDL *speed_edl; // Menu items ArrayList colormodels; @@ -577,6 +619,9 @@ public: // Viewer Mutex *vwindows_lock; ArrayList vwindows; +// Mixer + Mutex *zwindows_lock; + ArrayList zwindows; // Asset manager AWindow *awindow; // Automation window @@ -589,16 +634,15 @@ public: int wait_warning(); // Levels LevelWindow *lwindow; + Mutex *run_lock; // Lock during creation and destruction of GUI Mutex *plugin_gui_lock; Mutex *dead_plugin_lock; Mutex *keyframe_gui_lock; // Lock during creation and destruction of brender so playback doesn't use it. Mutex *brender_lock; - // Initialize shared memory - void init_shm(); - + void init_shm(const char *pfn, int64_t min); // Initialize channel DB's for playback void init_channeldb(); void init_render(); @@ -613,17 +657,19 @@ public: // This one happens asynchronously of the others. Used by playback to // see what frame is background rendered. int brender_available(int position); - void set_brender_start(); + void set_brender_active(int v, int update=1); int put_commercial(); void activate_commercial() { commercial_active = 1; } void commit_commercial(); void undo_commercial(); void cut_commercials(); + void update_gui(int changed_edl); int paste_subtitle_text(char *text, double start, double end); void init_error(); void finit_error(); static void init_defaults(BC_Hash* &defaults, char *config_path); + void check_language(); const char *default_std(); void fill_preset_defaults(const char *preset, EDLSession *session); const char *get_preset_name(int index); @@ -635,19 +681,23 @@ public: static void get_plugin_path(char *path, const char *plug_dir, const char *fs_path); static int init_plugins(MWindow *mwindow, Preferences *preferences); static int init_ladspa_plugins(MWindow *mwindow, Preferences *preferences); + static void init_plugin_tips(ArrayList &plugins, const char *lang); static int check_plugin_index(ArrayList &plugins, 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, - const char *index_path, const char *plugin_dir); + 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, const char *index_path, - const char *plugin_dir); - static PluginServer* new_ffmpeg_server(MWindow *mwindow, const char *name); + static int load_plugin_index(MWindow *mwindow, FILE *fp, const char *plugin_dir); + 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); + static void remove_plugin_index(); + void init_preferences(); void init_signals(); void init_theme(); @@ -664,7 +714,10 @@ public: void init_commercials(); 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); +// void clean_indexes(); // TimeBomb timebomb; SigHandler *sighandler;