X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsndfile_content.h;h=0623aa6f054748f9f56cada8573b736a7ce30e79;hb=21ce34c2cd04a2e7e133ff693b84c054182f4f91;hp=b696b57a54b9c98be0605e8fd004bd33e994d6df;hpb=1bff0990433ab0ce588acaef7c589fa623bd998b;p=dcpomatic.git diff --git a/src/lib/sndfile_content.h b/src/lib/sndfile_content.h index b696b57a5..0623aa6f0 100644 --- a/src/lib/sndfile_content.h +++ b/src/lib/sndfile_content.h @@ -17,6 +17,9 @@ */ +extern "C" { +#include +} #include "audio_content.h" namespace cxml { @@ -33,15 +36,35 @@ public: return boost::dynamic_pointer_cast (Content::shared_from_this ()); } + void examine (boost::shared_ptr, boost::shared_ptr, bool); std::string summary () const; std::string information () const; + void as_xml (xmlpp::Node *) const; boost::shared_ptr clone () const; + Time length (boost::shared_ptr) const; /* AudioContent */ - int audio_channels () const; - ContentAudioFrame audio_length () const; - int audio_frame_rate () const; - int64_t audio_channel_layout () const; + int audio_channels () const { + boost::mutex::scoped_lock lm (_mutex); + return _audio_channels; + } + + ContentAudioFrame audio_length () const { + boost::mutex::scoped_lock lm (_mutex); + return _audio_length; + } + + int content_audio_frame_rate () const { + boost::mutex::scoped_lock lm (_mutex); + return _audio_frame_rate; + } + int output_audio_frame_rate (boost::shared_ptr) const; + static bool valid_file (boost::filesystem::path); + +private: + int _audio_channels; + ContentAudioFrame _audio_length; + int _audio_frame_rate; };