Merge branch 'master' of ssh://carlh.dnsalias.org/home/carl/git/libdcp
[libdcp.git] / src / sound_asset.h
index a0dd0a6e411b2de5771413164dcd31eb09aa8bc4..3189c0674471d08141bbb45d4e301155dc38936f 100644 (file)
 #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
@@ -33,10 +33,10 @@ 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.
@@ -49,12 +49,12 @@ public:
                std::vector<std::string> const & files,
                std::string directory,
                std::string mxf_name,
-               sigc::signal1<void, float>* progress,
+               boost::signals2::signal<void (float)>* 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.
@@ -65,10 +65,10 @@ public:
         *  @param channels Number of audio channels.
         */
        SoundAsset (
-               sigc::slot<std::string, Channel> get_path,
+               boost::function<std::string (Channel)> get_path,
                std::string directory,
                std::string mxf_name,
-               sigc::signal1<void, float>* progress,
+               boost::signals2::signal<void (float)>* progress,
                int fps,
                int length,
                int channels
@@ -78,6 +78,7 @@ public:
                std::string directory,
                std::string mxf_name,
                int fps,
+               int entry_point,
                int length
                );
        
@@ -86,7 +87,7 @@ public:
         */
        void write_to_cpl (std::ostream& s) const;
 
-       std::list<std::string> equals (boost::shared_ptr<const Asset> other, EqualityOptions opt) const;
+       bool equals (boost::shared_ptr<const Asset> other, EqualityOptions opt, std::list<std::string>& notes) const;
 
        boost::shared_ptr<const SoundFrame> get_frame (int n) const;
        
@@ -97,9 +98,9 @@ public:
        int sampling_rate () const {
                return _sampling_rate;
        }
-       
+
 private:
-       void construct (sigc::slot<std::string, Channel> get_path);
+       void construct (boost::function<std::string (Channel)> get_path);
        std::string path_from_channel (Channel channel, std::vector<std::string> const & files);
 
        /** Number of channels in the asset */