summaryrefslogtreecommitdiff
path: root/src/text_asset.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-11-05 20:55:09 +0100
committerCarl Hetherington <cth@carlh.net>2024-11-05 20:55:09 +0100
commitcf052af049d43068fee2ceb205249b35436f6e26 (patch)
tree2a5de4f2535c85eca7bf3d8d75c1d8be1a56f8b3 /src/text_asset.cc
parent301af6aff4c4005749c3346caa7c087933110242 (diff)
Move the code to merge ParseStats into a constructor.
Diffstat (limited to 'src/text_asset.cc')
-rw-r--r--src/text_asset.cc132
1 files changed, 68 insertions, 64 deletions
diff --git a/src/text_asset.cc b/src/text_asset.cc
index ff662b69..1a58d22f 100644
--- a/src/text_asset.cc
+++ b/src/text_asset.cc
@@ -409,70 +409,7 @@ TextAsset::maybe_add_text(
return;
}
- ParseState ps;
- for (auto const& i: parse_state) {
- if (i.font_id) {
- ps.font_id = i.font_id.get();
- }
- if (i.size) {
- ps.size = i.size.get();
- }
- if (i.aspect_adjust) {
- ps.aspect_adjust = i.aspect_adjust.get();
- }
- if (i.italic) {
- ps.italic = i.italic.get();
- }
- if (i.bold) {
- ps.bold = i.bold.get();
- }
- if (i.underline) {
- ps.underline = i.underline.get();
- }
- if (i.colour) {
- ps.colour = i.colour.get();
- }
- if (i.effect) {
- ps.effect = i.effect.get();
- }
- if (i.effect_colour) {
- ps.effect_colour = i.effect_colour.get();
- }
- if (i.h_position) {
- ps.h_position = i.h_position.get();
- }
- if (i.h_align) {
- ps.h_align = i.h_align.get();
- }
- if (i.v_position) {
- ps.v_position = i.v_position.get();
- }
- if (i.v_align) {
- ps.v_align = i.v_align.get();
- }
- if (i.z_position) {
- ps.z_position = i.z_position.get();
- }
- if (i.direction) {
- ps.direction = i.direction.get();
- }
- if (i.in) {
- ps.in = i.in.get();
- }
- if (i.out) {
- ps.out = i.out.get();
- }
- if (i.fade_up_time) {
- ps.fade_up_time = i.fade_up_time.get();
- }
- if (i.fade_down_time) {
- ps.fade_down_time = i.fade_down_time.get();
- }
- if (i.type) {
- ps.type = i.type.get();
- }
- }
-
+ ParseState ps(parse_state);
if (!ps.in || !ps.out) {
/* We're not in a <Subtitle> node; just ignore this content */
return;
@@ -1003,3 +940,70 @@ TextAsset::ensure_font(string load_id, dcp::ArrayData data)
}
}
+
+dcp::TextAsset::ParseState::ParseState(std::vector<dcp::TextAsset::ParseState> const& ps)
+{
+ for (auto const& i: ps) {
+ if (i.font_id) {
+ font_id = i.font_id.get();
+ }
+ if (i.size) {
+ size = i.size.get();
+ }
+ if (i.aspect_adjust) {
+ aspect_adjust = i.aspect_adjust.get();
+ }
+ if (i.italic) {
+ italic = i.italic.get();
+ }
+ if (i.bold) {
+ bold = i.bold.get();
+ }
+ if (i.underline) {
+ underline = i.underline.get();
+ }
+ if (i.colour) {
+ colour = i.colour.get();
+ }
+ if (i.effect) {
+ effect = i.effect.get();
+ }
+ if (i.effect_colour) {
+ effect_colour = i.effect_colour.get();
+ }
+ if (i.h_position) {
+ h_position = i.h_position.get();
+ }
+ if (i.h_align) {
+ h_align = i.h_align.get();
+ }
+ if (i.v_position) {
+ v_position = i.v_position.get();
+ }
+ if (i.v_align) {
+ v_align = i.v_align.get();
+ }
+ if (i.z_position) {
+ z_position = i.z_position.get();
+ }
+ if (i.direction) {
+ direction = i.direction.get();
+ }
+ if (i.in) {
+ in = i.in.get();
+ }
+ if (i.out) {
+ out = i.out.get();
+ }
+ if (i.fade_up_time) {
+ fade_up_time = i.fade_up_time.get();
+ }
+ if (i.fade_down_time) {
+ fade_down_time = i.fade_down_time.get();
+ }
+ if (i.type) {
+ type = i.type.get();
+ }
+ }
+}
+