X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fproxy.h;h=c98f2e04a5cea9168e947c39a2c4815919c4c3e5;hb=c279e21fc2394a7908bbd1ba8c79b116fe9fb14a;hp=8726cb78f0793f4dc44adaa89adb78440d803fa4;hpb=86bd203ac1fc29d93f63d13e2979468f06bdc3a2;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/proxy.h b/cinelerra-5.1/cinelerra/proxy.h index 8726cb78..c98f2e04 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 @@ -68,7 +67,7 @@ public: ProxyRender(MWindow *mwindow, Asset *format_asset); ~ProxyRender(); void to_proxy_path(char *new_path, Indexable *indexable, int scale); - static void from_proxy_path(char *new_path, Asset *asset, int scale); + static int from_proxy_path(char *new_path, Indexable *indexable, int scale); ArrayList orig_idxbls; // originals which match the proxy assets ArrayList orig_proxies; // proxy assets @@ -100,7 +99,6 @@ public: void handle_close_event(int result); void from_proxy(); - void to_proxy(); // calculate possible sizes based on the original size void calculate_sizes(); void scale_to_text(char *string, int scale); @@ -114,6 +112,7 @@ public: 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 +138,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: @@ -187,9 +196,11 @@ public: ProxyDialog *dialog; FormatTools *format_tools; BC_Title *new_dimensions; + BC_Title *active_scale; ProxyMenu *scale_factor; ProxyUseScaler *use_scaler; ProxyAutoScale *auto_scale; + ProxyBeepOnDone *beep_on_done; }; class ProxyFarm; @@ -233,4 +244,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