X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fproxy.h;h=b11212546b930fd9b8f8448388d9631c8b4cd852;hp=0db833ea2b87599096eb97e8eeb8ba37eca7e7b3;hb=976d56536456148f6d14a2c12630c20e367abbe1;hpb=875ae826327bf25abdaffe1db339aabd622addc8 diff --git a/cinelerra-5.1/cinelerra/proxy.h b/cinelerra-5.1/cinelerra/proxy.h index 0db833ea..b1121254 100644 --- a/cinelerra-5.1/cinelerra/proxy.h +++ b/cinelerra-5.1/cinelerra/proxy.h @@ -24,6 +24,7 @@ // functions for handling proxies #include "arraylist.h" +#include "audiodevice.inc" #include "asset.h" #include "bcdialog.h" #include "cache.inc" @@ -32,11 +33,9 @@ #include "loadbalance.h" #include "mutex.inc" #include "mwindow.inc" +#include "proxy.inc" #include "renderengine.inc" -class ProxyDialog; -class ProxyWindow; - #define MAX_SIZES 16 class ProxyMenuItem : public BC_MenuItem @@ -100,7 +99,7 @@ public: void handle_close_event(int result); void from_proxy(); - void to_proxy(); + int to_proxy(); // calculate possible sizes based on the original size void calculate_sizes(); void scale_to_text(char *string, int scale); @@ -109,11 +108,13 @@ public: ProxyWindow *gui; Asset *asset; ProxyRender *proxy_render; + ProxyBeep *proxy_beep; int new_scale; int orig_scale; int use_scaler; int auto_scale; + int beep; char *size_text[MAX_SIZES]; int size_factors[MAX_SIZES]; int total_sizes; @@ -139,6 +140,16 @@ public: ProxyWindow *pwindow; }; +class ProxyBeepOnDone : public BC_CheckBox +{ +public: + ProxyBeepOnDone(ProxyWindow *pwindow, int x, int y); + void update(); + int handle_event(); + + ProxyWindow *pwindow; +}; + class ProxyFormatTools : public FormatTools { public: @@ -190,6 +201,7 @@ public: ProxyMenu *scale_factor; ProxyUseScaler *use_scaler; ProxyAutoScale *auto_scale; + ProxyBeepOnDone *beep_on_done; }; class ProxyFarm; @@ -233,4 +245,24 @@ public: ArrayList *proxy_assets; }; +class ProxyBeep : public Thread +{ +public: + enum { BEEP_SAMPLE_RATE=48000 }; + typedef int16_t audio_data_t; + ProxyBeep(MWindow *mwindow); + ~ProxyBeep(); + + 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; +}; + #endif