X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fsound_asset.h;h=3189c0674471d08141bbb45d4e301155dc38936f;hb=147cbe31f62fd6087a9a70f0ce2cd4a69b06dbbf;hp=f686e4bd6fbbd5c67c1402665eaa3401f8d83122;hpb=bc09fbc79580f56c93e35de25230af18b30e0e1e;p=libdcp.git diff --git a/src/sound_asset.h b/src/sound_asset.h index f686e4bd..3189c067 100644 --- a/src/sound_asset.h +++ b/src/sound_asset.h @@ -21,20 +21,22 @@ #define LIBDCP_SOUND_ASSET_H /** @file src/sound_asset.h - * @brief An asset made up of WAV files + * @brief An asset made up of PCM audio data files */ -#include "asset.h" +#include "mxf_asset.h" #include "types.h" namespace libdcp { +class SoundFrame; + /** @brief An asset made up of WAV files */ -class SoundAsset : public Asset +class SoundAsset : public MXFAsset { public: - /** Construct a SoundAsset, generating the MXF from the WAV files. + /** Construct a SoundAsset, generating the MXF from some WAV files. * This may take some time; progress is indicated by emission of the Progress signal. * @param files Pathnames of sound files, in the order Left, Right, Centre, Lfe (sub), Left surround, Right surround. * @param directory Directory in which to create MXF file. @@ -47,12 +49,12 @@ public: std::vector const & files, std::string directory, std::string mxf_name, - sigc::signal1* progress, + boost::signals2::signal* progress, int fps, int length ); - /** Construct a SoundAsset, generating the MXF from the WAV files. + /** Construct a SoundAsset, generating the MXF from some WAV files. * This may take some time; progress is indicated by emission of the Progress signal. * @param get_path Functor which returns a WAV file path for a given channel. * @param directory Directory in which to create MXF file. @@ -63,10 +65,10 @@ public: * @param channels Number of audio channels. */ SoundAsset ( - sigc::slot get_path, + boost::function get_path, std::string directory, std::string mxf_name, - sigc::signal1* progress, + boost::signals2::signal* progress, int fps, int length, int channels @@ -76,6 +78,7 @@ public: std::string directory, std::string mxf_name, int fps, + int entry_point, int length ); @@ -84,20 +87,25 @@ public: */ void write_to_cpl (std::ostream& s) const; - std::list equals (boost::shared_ptr other, EqualityOptions opt) const; + bool equals (boost::shared_ptr other, EqualityOptions opt, std::list& notes) const; + boost::shared_ptr get_frame (int n) const; + int channels () const { return _channels; } - int sampling_rate () const; - + int sampling_rate () const { + return _sampling_rate; + } + private: - void construct (sigc::slot get_path); + void construct (boost::function get_path); std::string path_from_channel (Channel channel, std::vector const & files); /** Number of channels in the asset */ int _channels; + int _sampling_rate; }; }