ReelAtmosAsset (std::shared_ptr<AtmosAsset> asset, int64_t entry_point);
explicit ReelAtmosAsset (std::shared_ptr<const cxml::Node>);
- std::shared_ptr<AtmosAsset> asset () const {
- return asset_of_type<AtmosAsset> ();
+ std::shared_ptr<const AtmosAsset> asset () const {
+ return asset_of_type<const AtmosAsset>();
+ }
+
+ std::shared_ptr<AtmosAsset> asset () {
+ return asset_of_type<AtmosAsset>();
}
xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
boost::optional<std::string> key_type () const override {
return std::string("MDEK");
}
+
std::string cpl_node_name (Standard standard) const override;
std::pair<std::string, std::string> cpl_node_namespace () const override;
};
ReelClosedCaptionAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t instrinsic_duration, int64_t entry_point);
explicit ReelClosedCaptionAsset (std::shared_ptr<const cxml::Node>);
- bool equals (std::shared_ptr<const ReelClosedCaptionAsset>, EqualityOptions, NoteHandler) const;
+ std::shared_ptr<const SubtitleAsset> asset () const {
+ return asset_of_type<const SubtitleAsset>();
+ }
- std::shared_ptr<SubtitleAsset> asset () const {
- return std::dynamic_pointer_cast<SubtitleAsset>(_asset_ref.asset());
+ std::shared_ptr<SubtitleAsset> asset () {
+ return asset_of_type<SubtitleAsset>();
}
+ bool equals (std::shared_ptr<const ReelClosedCaptionAsset>, EqualityOptions, NoteHandler) const;
+
void set_language (dcp::LanguageTag l) {
_language = l.to_string();
}
ReelInteropClosedCaptionAsset (std::shared_ptr<InteropSubtitleAsset> asset, Fraction edit_rate, int64_t instrinsic_duration, int64_t entry_point);
explicit ReelInteropClosedCaptionAsset (std::shared_ptr<const cxml::Node>);
- xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
+ std::shared_ptr<const InteropSubtitleAsset> interop_asset () const {
+ return asset_of_type<const InteropSubtitleAsset>();
+ }
- std::shared_ptr<InteropSubtitleAsset> interop_asset () const {
- return std::dynamic_pointer_cast<InteropSubtitleAsset>(asset());
+ std::shared_ptr<InteropSubtitleAsset> interop_asset () {
+ return asset_of_type<InteropSubtitleAsset>();
}
+ xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
+
private:
std::string cpl_node_name (Standard) const;
std::pair<std::string, std::string> cpl_node_namespace () const override;
ReelInteropSubtitleAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
explicit ReelInteropSubtitleAsset (std::shared_ptr<const cxml::Node>);
- std::shared_ptr<InteropSubtitleAsset> interop_asset () const {
- return std::dynamic_pointer_cast<InteropSubtitleAsset>(asset());
+ std::shared_ptr<const InteropSubtitleAsset> interop_asset () const {
+ return asset_of_type<const InteropSubtitleAsset>();
+ }
+
+ std::shared_ptr<InteropSubtitleAsset> interop_asset () {
+ return asset_of_type<InteropSubtitleAsset>();
}
};
/** @return the MonoPictureAsset that this object refers to */
std::shared_ptr<const MonoPictureAsset> mono_asset () const {
- return asset_of_type<const MonoPictureAsset> ();
+ return asset_of_type<const MonoPictureAsset>();
}
/** @return the MonoPictureAsset that this object refers to */
std::shared_ptr<MonoPictureAsset> mono_asset () {
- return asset_of_type<MonoPictureAsset> ();
+ return asset_of_type<MonoPictureAsset>();
}
private:
ReelPictureAsset (std::shared_ptr<PictureAsset> asset, int64_t entry_point);
explicit ReelPictureAsset (std::shared_ptr<const cxml::Node>);
- virtual xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const;
- bool equals (std::shared_ptr<const ReelPictureAsset>, EqualityOptions, NoteHandler) const;
-
/** @return the PictureAsset that this object refers to */
std::shared_ptr<const PictureAsset> asset () const {
- return asset_of_type<const PictureAsset> ();
+ return asset_of_type<const PictureAsset>();
}
/** @return the PictureAsset that this object refers to */
std::shared_ptr<PictureAsset> asset () {
- return asset_of_type<PictureAsset> ();
+ return asset_of_type<PictureAsset>();
}
+ virtual xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
+ bool equals (std::shared_ptr<const ReelPictureAsset>, EqualityOptions, NoteHandler) const;
+
/** @return picture frame rate */
Fraction frame_rate () const {
return _frame_rate;
ReelSMPTEClosedCaptionAsset (std::shared_ptr<SMPTESubtitleAsset> asset, Fraction edit_rate, int64_t instrinsic_duration, int64_t entry_point);
explicit ReelSMPTEClosedCaptionAsset (std::shared_ptr<const cxml::Node>);
- xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
+ std::shared_ptr<SMPTESubtitleAsset> smpte_asset () {
+ return asset_of_type<SMPTESubtitleAsset>();
+ }
- std::shared_ptr<SMPTESubtitleAsset> smpte_asset () const {
- return std::dynamic_pointer_cast<SMPTESubtitleAsset>(asset());
+ std::shared_ptr<const SMPTESubtitleAsset> smpte_asset () const {
+ return asset_of_type<const SMPTESubtitleAsset>();
}
+ xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
+
+
private:
boost::optional<std::string> key_type () const override {
return std::string("MDSK");
ReelSMPTESubtitleAsset (std::shared_ptr<SMPTESubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
explicit ReelSMPTESubtitleAsset (std::shared_ptr<const cxml::Node>);
- std::shared_ptr<SMPTESubtitleAsset> smpte_asset () const {
- return std::dynamic_pointer_cast<SMPTESubtitleAsset>(asset());
+ std::shared_ptr<const SMPTESubtitleAsset> smpte_asset () const {
+ return asset_of_type<const SMPTESubtitleAsset>();
+ }
+
+ std::shared_ptr<SMPTESubtitleAsset> smpte_asset () {
+ return asset_of_type<SMPTESubtitleAsset>();
}
private:
ReelSoundAsset (std::shared_ptr<dcp::SoundAsset> content, int64_t entry_point);
explicit ReelSoundAsset (std::shared_ptr<const cxml::Node>);
- bool equals (std::shared_ptr<const ReelSoundAsset>, EqualityOptions, NoteHandler) const;
+ /** @return the SoundAsset that this object refers to */
+ std::shared_ptr<const SoundAsset> asset () const {
+ return asset_of_type<const SoundAsset>();
+ }
/** @return the SoundAsset that this object refers to */
std::shared_ptr<SoundAsset> asset () {
return asset_of_type<SoundAsset>();
}
- /** @return the SoundAsset that this object refers to */
- std::shared_ptr<const SoundAsset> asset () const {
- return asset_of_type<const SoundAsset>();
- }
+ bool equals (std::shared_ptr<const ReelSoundAsset>, EqualityOptions, NoteHandler) const;
private:
boost::optional<std::string> key_type () const;
/** @return the StereoPictureAsset that this object refers to */
std::shared_ptr<const StereoPictureAsset> stereo_asset () const {
- return asset_of_type<const StereoPictureAsset> ();
+ return asset_of_type<const StereoPictureAsset>();
}
/** @return the StereoPictureAsset that this object refers to */
std::shared_ptr<StereoPictureAsset> stereo_asset () {
- return asset_of_type<StereoPictureAsset> ();
+ return asset_of_type<StereoPictureAsset>();
}
private:
ReelSubtitleAsset (std::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
explicit ReelSubtitleAsset (std::shared_ptr<const cxml::Node>);
- xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const;
-
- bool equals (std::shared_ptr<const ReelSubtitleAsset>, EqualityOptions, NoteHandler) const;
+ std::shared_ptr<const SubtitleAsset> asset () const {
+ return asset_of_type<const SubtitleAsset>();
+ }
- std::shared_ptr<SubtitleAsset> asset () const {
- return std::dynamic_pointer_cast<SubtitleAsset>(_asset_ref.asset());
+ std::shared_ptr<SubtitleAsset> asset () {
+ return asset_of_type<SubtitleAsset>();
}
+ xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;
+
+ bool equals (std::shared_ptr<const ReelSubtitleAsset>, EqualityOptions, NoteHandler) const;
+
void set_language (dcp::LanguageTag language);
boost::optional<std::string> language () const {
private:
friend struct ::verify_invalid_language1;
- std::string cpl_node_name (Standard standard) const;
+ std::string cpl_node_name (Standard standard) const override;
};