X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Futil.h;h=eb2af8381908648e092e7b97909f555af4a3defe;hb=abd57c6c2e8526eac93e9d0c9bd0b6080de1e6fa;hp=da7e73f2049a6c532d0d3d91831f808129f576fc;hpb=7ef2ba523ca2ddc0470f5837bc88ad9c597361e2;p=dcpomatic.git diff --git a/src/lib/util.h b/src/lib/util.h index da7e73f20..eb2af8381 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -36,7 +36,7 @@ extern "C" { #include "compose.hpp" #ifdef DVDOMATIC_DEBUG -#define TIMING(...) _log->microsecond_log (String::compose (__VA_ARGS__), Log::TIMING); +#define TIMING(...) _film->log()->microsecond_log (String::compose (__VA_ARGS__), Log::TIMING); #else #define TIMING(...) #endif @@ -46,14 +46,13 @@ class Scaler; extern std::string seconds_to_hms (int); extern std::string seconds_to_approximate_hms (int); extern void stacktrace (std::ostream &, int); -extern std::string audio_sample_format_to_string (AVSampleFormat); -extern AVSampleFormat audio_sample_format_from_string (std::string); extern std::string dependency_version_summary (); extern double seconds (struct timeval); extern void dvdomatic_setup (); extern std::vector split_at_spaces_considering_quotes (std::string); extern std::string md5_digest (std::string); extern std::string md5_digest (void const *, int); +extern void ensure_ui_thread (); enum ContentType { STILL, @@ -122,16 +121,16 @@ struct Position }; /** A rectangle */ -struct Rectangle +struct Rect { - Rectangle () + Rect () : x (0) , y (0) , width (0) , height (0) {} - Rectangle (int x_, int y_, int w_, int h_) + Rect (int x_, int y_, int w_, int h_) : x (x_) , y (y_) , width (w_) @@ -151,7 +150,7 @@ struct Rectangle return Size (width, height); } - Rectangle intersection (Rectangle const & other) const; + Rect intersection (Rect const & other) const; }; extern std::string crop_string (Position, Size); @@ -205,5 +204,34 @@ private: int _buffer_data; }; +class AudioBuffers +{ +public: + AudioBuffers (int channels, int frames); + ~AudioBuffers (); + + float** data () const { + return _data; + } + + float* data (int) const; + + int frames () const { + return _frames; + } + + void set_frames (int f); + + void make_silent (); + +private: + /* no copy construction */ + AudioBuffers (AudioBuffers const &); + + int _channels; + int _frames; + float** _data; +}; + #endif