proxy/mixer fixes, add proxy beep, igor ru xlat
[goodguy/history.git] / cinelerra-5.1 / cinelerra / proxy.h
index 0db833ea2b87599096eb97e8eeb8ba37eca7e7b3..b11212546b930fd9b8f8448388d9631c8b4cd852 100644 (file)
@@ -24,6 +24,7 @@
 // functions for handling proxies
 
 #include "arraylist.h"
+#include "audiodevice.inc"
 #include "asset.h"
 #include "bcdialog.h"
 #include "cache.inc"
 #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<Asset*> *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