add proxy quick switch, folder lock, shortcuts update, bsd GL tweak
[goodguy/history.git] / cinelerra-5.1 / cinelerra / proxy.h
index 0db833ea2b87599096eb97e8eeb8ba37eca7e7b3..c98f2e04a5cea9168e947c39a2c4815919c4c3e5 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,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<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