X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.h;h=eccc0a3bb8d5ba02aad953f6fea3b720f281b239;hb=9b18af02dc4ccbf052ef9d70180a3d16c0f9848b;hp=66b43626f63c52f9e0fb56720a89aaa7eb5a73ad;hpb=033efab12586e8086014c814a5360f211d228ac3;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index 66b43626..eccc0a3b 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -102,9 +102,47 @@ #include "zwindow.inc" #include "wwindow.inc" #include "wavecache.inc" +#include "wintv.inc" +#include "x10tv.inc" #define FONT_SEARCHPATH "fonts" +class StackItem +{ +public: + EDL *edl, *new_edl; + Indexable *idxbl; + MainUndo *undo; + int64_t mtime; +}; + +class Stack : public ArrayList +{ +public: +}; + + +#define BEEP_SAMPLE_RATE 48000 + +class Beeper : public Thread +{ +public: + typedef int16_t audio_data_t; + Beeper(MWindow *mwindow); + ~Beeper(); + + void run(); + void start(); + void stop(int wait); + void tone(double freq, double secs, double gain); + + MWindow *mwindow; + double freq, secs, gain; + AudioDevice *audio; + int playing_audio, interrupted; + int audio_pos; +}; + class MWindow : public Thread { @@ -131,10 +169,20 @@ public: int load_defaults(); int save_defaults(); int set_filename(const char *filename); + int set_titlebar(const char *filename); // Total vertical pixels in timeline int get_tracks_height(); // Total horizontal pixels in timeline int get_tracks_width(); +// session stack + void stack_push(EDL *edl, Indexable *idxbl); + void stack_pop(); + int save(EDL *edl, char *filename, int stat); + int save(int save_as); + void show_plugins(); + void clip_to_media(); + void media_to_clip(); + int create_ref(Asset *asset, EDL *ref); // Show windows void show_vwindow(); void show_awindow(); @@ -218,7 +266,7 @@ public: void create_mixers(double position = 0); void refresh_mixers(int dir=1); void stop_mixers(); - void close_mixers(int destroy=1); + void close_mixers(int result=1); void open_mixers(); ZWindow *get_mixer(Mixer *&mixer); void del_mixer(ZWindow *zwindow); @@ -229,12 +277,13 @@ public: void tile_mixers(); int load_filenames(ArrayList *filenames, int load_mode = LOADMODE_REPLACE, + int edl_mode = LOADMODE_EDL_CLIP, // 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); + void test_plugins(EDL *new_edl, const char *path); int interrupt_indexes(); // Stop index building @@ -273,6 +322,7 @@ public: int prev_edit_handle(int shift_down); // seek to keyframes int nearest_plugin_keyframe(int shift_down, int dir); + int nearest_auto_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 @@ -289,11 +339,13 @@ public: void split_y(); void crop_video(int mode); void update_plugins(); + void get_backup_path(char *path, int len); // Call after every edit operation void save_backup(); void load_backup(); void show_plugin(Plugin *plugin); void hide_plugin(Plugin *plugin, int lock); + void hide_plugin(int plugin_id, int lock); void hide_plugins(); void delete_plugin(PluginServer *plugin); // Update plugins with configuration changes. @@ -471,7 +523,7 @@ public: void rebuild_indices(); // Asset removal from caches void reset_caches(); - void remove_asset_from_caches(Asset *asset); + 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 */, ArrayList *drag_clips /* mwindow->session->drag_clips */); @@ -503,6 +555,7 @@ public: void redo_entry(BC_WindowBase *calling_window_gui); void save_undo_data(); void load_undo_data(); + void remove_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); @@ -535,7 +588,7 @@ public: int enable_proxy(); int disable_proxy(); int to_proxy(Asset *asset, int new_scale, int new_use_scaler); - ProxyBeep *proxy_beep; + Beeper *beeper; void dump_plugins(FILE *fp=stdout); void dump_edl(FILE *fp=stdout); @@ -550,7 +603,7 @@ public: 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); + float beep, int to_proxy, int remove_originals); void finish_convert(int remove_originals); ConvertRender *convert_render; @@ -564,6 +617,8 @@ public: // Main undo stack MainUndo *undo; int undo_command; +// session stack + Stack stack; BC_Hash *defaults; Assets *assets; @@ -723,6 +778,8 @@ public: void init_preferences(); void init_signals(); void init_shuttle(); + void init_wintv(); + void init_x10tv(); void init_theme(); void init_compositor(); void init_levelwindow(); @@ -748,6 +805,8 @@ public: int screens; int in_destructor; Shuttle *shuttle; + WinTV *wintv; + X10TV *x10tv; }; #endif