// 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
ProxyRender(MWindow *mwindow, Asset *format_asset);
~ProxyRender();
void to_proxy_path(char *new_path, Indexable *indexable, int scale);
- void from_proxy_path(char *new_path, Asset *asset, int scale);
+ static int from_proxy_path(char *new_path, Indexable *indexable, int scale);
ArrayList<Indexable *> orig_idxbls; // originals which match the proxy assets
ArrayList<Indexable *> orig_proxies; // proxy assets
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);
int orig_scale;
int use_scaler;
int auto_scale;
+ int beep;
char *size_text[MAX_SIZES];
int size_factors[MAX_SIZES];
int total_sizes;
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:
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;
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