Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / proxy.h
index c98f2e04a5cea9168e947c39a2c4815919c4c3e5..71b91fa5a2289c934dece498df2e0554f86f83a7 100644 (file)
@@ -29,7 +29,7 @@
 #include "bcdialog.h"
 #include "cache.inc"
 #include "file.inc"
-#include "formattools.inc"
+#include "formattools.h"
 #include "loadbalance.h"
 #include "mutex.inc"
 #include "mwindow.inc"
@@ -64,10 +64,10 @@ public:
 class ProxyRender
 {
 public:
-       ProxyRender(MWindow *mwindow, Asset *format_asset);
+       ProxyRender(MWindow *mwindow, Asset *format_asset, int asset_scale);
        ~ProxyRender();
        void to_proxy_path(char *new_path, Indexable *indexable, int scale);
-       static int from_proxy_path(char *new_path, Indexable *indexable, int scale);
+       static int from_proxy_path(char *new_path, Asset *asset, int scale);
 
        ArrayList<Indexable *> orig_idxbls;   // originals which match the proxy assets
        ArrayList<Indexable *> orig_proxies;  // proxy assets
@@ -88,6 +88,7 @@ public:
        Mutex *counter_lock;
        int total_rendered;
        int failed, canceled;
+       int asset_scale;
 };
 
 class ProxyDialog : public BC_DialogThread
@@ -108,11 +109,11 @@ public:
        Asset *asset;
        ProxyRender *proxy_render;
 
-       int new_scale;
-       int orig_scale;
-       int use_scaler;
-       int auto_scale;
-       int beep;
+       int orig_scale, new_scale;
+       int use_scaler, auto_scale;
+       int orig_w, orig_h;
+       int beeper_on;
+       float beeper_volume;
        char *size_text[MAX_SIZES];
        int size_factors[MAX_SIZES];
        int total_sizes;
@@ -142,7 +143,15 @@ class ProxyBeepOnDone : public BC_CheckBox
 {
 public:
        ProxyBeepOnDone(ProxyWindow *pwindow, int x, int y);
-       void update();
+       int handle_event();
+
+       ProxyWindow *pwindow;
+};
+
+class ProxyBeepVolume : public BC_FSlider
+{
+public:
+       ProxyBeepVolume(ProxyWindow *pwindow, int x, int y);
        int handle_event();
 
        ProxyWindow *pwindow;
@@ -194,13 +203,16 @@ public:
 
        MWindow *mwindow;
        ProxyDialog *dialog;
+       BC_TitleBar *title_bar1, *title_bar2;
        FormatTools *format_tools;
        BC_Title *new_dimensions;
        BC_Title *active_scale;
+       BC_Title *active_state;
        ProxyMenu *scale_factor;
        ProxyUseScaler *use_scaler;
        ProxyAutoScale *auto_scale;
        ProxyBeepOnDone *beep_on_done;
+       ProxyBeepVolume *beep_volume;
 };
 
 class ProxyFarm;
@@ -244,24 +256,4 @@ 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