Bv2.1 6.2.1: Check that the sound MXF Language tag conforms to RFC 5646.
[libdcp.git] / src / sound_asset.h
index 8e55aef7f88d84479dbf623cd76ec229ffcc4f66..d4b41a1a47f6f41e93091248e84a80d4a00d6d3c 100644 (file)
 #include "sound_frame.h"
 #include "sound_asset_reader.h"
 
+
+namespace dcp {
+       class SoundAsset;
+}
+
+extern std::shared_ptr<dcp::SoundAsset> simple_sound (
+       boost::filesystem::path path, std::string suffix, dcp::MXFMetadata mxf_meta, std::string language
+       );
+
+
 namespace dcp
 {
 
@@ -86,7 +96,7 @@ public:
                return _intrinsic_duration;
        }
 
-       LanguageTag language () const {
+       std::string language () const {
                return _language;
        }
 
@@ -95,6 +105,9 @@ public:
 
 private:
        friend class SoundAssetWriter;
+       friend std::shared_ptr<dcp::SoundAsset> (::simple_sound) (
+               boost::filesystem::path path, std::string suffix, dcp::MXFMetadata mxf_meta, std::string language
+               );
 
        std::string pkl_type (Standard standard) const {
                return static_pkl_type (standard);
@@ -107,7 +120,7 @@ private:
        int64_t _intrinsic_duration;
        int _channels;      ///< number of channels
        int _sampling_rate; ///< sampling rate in Hz
-       LanguageTag _language;
+       std::string _language;
 };
 
 }