X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.h;h=afbf356471ead585b07cc91929f5391c918d7792;hp=e938b743c8fb7beaa4566bc1e7c16ee1e9a4cdca;hb=32a609a6bd1181993569399ab51f314dc7cb4fba;hpb=5d8a7826b0f80f00622e46baf75453995a76e343 diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index e938b743..afbf3564 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -102,6 +102,8 @@ #include "zwindow.inc" #include "wwindow.inc" #include "wavecache.inc" +#include "wintv.inc" +#include "x10tv.inc" #define FONT_SEARCHPATH "fonts" @@ -109,7 +111,9 @@ class StackItem { public: EDL *edl, *new_edl; + Indexable *idxbl; MainUndo *undo; + int64_t mtime; }; class Stack : public ArrayList @@ -118,6 +122,28 @@ 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 { public: @@ -148,11 +174,11 @@ public: // Total horizontal pixels in timeline int get_tracks_width(); // session stack - void stack_push(EDL *edl); + void stack_push(EDL *edl, Indexable *idxbl); void stack_pop(); - void forget_nested_edl(EDL *nested); void clip_to_media(); void media_to_clip(); + int create_ref(Asset *asset, EDL *ref); // Show windows void show_vwindow(); void show_awindow(); @@ -247,12 +273,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 @@ -490,7 +517,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 */); @@ -554,7 +581,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); @@ -744,6 +771,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(); @@ -769,6 +798,8 @@ public: int screens; int in_destructor; Shuttle *shuttle; + WinTV *wintv; + X10TV *x10tv; }; #endif