Shaka Player Embedded
vtt_cue.cc
Go to the documentation of this file.
1 // Copyright 2016 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "src/js/vtt_cue.h"
16 
17 #include <cmath>
18 
19 namespace shaka {
20 namespace js {
21 
22 VTTCue::VTTCue(double start_time, double end_time, const std::string& text)
23  : cue_(new shaka::media::VTTCue(start_time, end_time, text)) {}
24 
25 VTTCue::VTTCue(std::shared_ptr<shaka::media::VTTCue> pub) : cue_(pub) {}
26 
27 VTTCue::~VTTCue() {}
28 
29 std::string VTTCue::id() const {
30  return cue_->id();
31 }
32 
33 void VTTCue::SetId(const std::string& id) {
34  cue_->SetId(id);
35 }
36 
37 double VTTCue::start_time() const {
38  return cue_->start_time();
39 }
40 
41 void VTTCue::SetStartTime(double time) {
42  cue_->SetStartTime(time);
43 }
44 
45 double VTTCue::end_time() const {
46  return cue_->end_time();
47 }
48 
49 void VTTCue::SetEndTime(double time) {
50  cue_->SetEndTime(time);
51 }
52 
53 bool VTTCue::pause_on_exit() const {
54  return cue_->pause_on_exit();
55 }
56 
57 void VTTCue::SetPauseOnExit(bool pause) {
58  cue_->SetPauseOnExit(pause);
59 }
60 
61 
63  return cue_->vertical();
64 }
65 
67  cue_->SetVertical(setting);
68 }
69 
70 bool VTTCue::snap_to_lines() const {
71  return cue_->snap_to_lines();
72 }
73 
74 void VTTCue::SetSnapToLines(bool snap) {
75  cue_->SetSnapToLines(snap);
76 }
77 
79  return cue_->line_align();
80 }
81 
83  cue_->SetLineAlign(align);
84 }
85 
87  const double ret = cue_->line();
88  if (std::isnan(ret))
89  return AutoKeyword::Auto;
90 
91  return ret;
92 }
93 
95  if (holds_alternative<double>(value))
96  cue_->SetLine(get<double>(value));
97  else
98  cue_->SetLine(NAN);
99 }
100 
102  const double ret = cue_->position();
103  if (std::isnan(ret))
104  return AutoKeyword::Auto;
105 
106  return ret;
107 }
108 
110  if (holds_alternative<double>(value))
111  cue_->SetPosition(get<double>(value));
112  else
113  cue_->SetPosition(NAN);
114 }
115 
117  return cue_->position_align();
118 }
119 
121  cue_->SetPositionAlign(align);
122 }
123 
124 double VTTCue::size() const {
125  return cue_->size();
126 }
127 
128 void VTTCue::SetSize(double size) {
129  cue_->SetSize(size);
130 }
131 
133  return cue_->align();
134 }
135 
137  cue_->SetAlign(align);
138 }
139 
140 std::string VTTCue::text() const {
141  return cue_->text();
142 }
143 
144 void VTTCue::SetText(const std::string& text) {
145  cue_->SetText(text);
146 }
147 
148 
150  // TextTrackCue
151  AddGenericProperty("id", &VTTCue::id, &VTTCue::SetId);
152  AddGenericProperty("startTime", &VTTCue::start_time, &VTTCue::SetStartTime);
153  AddGenericProperty("endTime", &VTTCue::end_time, &VTTCue::SetEndTime);
154  AddGenericProperty("pauseOnExit", &VTTCue::pause_on_exit,
156 
157  // VTTCue
158  AddGenericProperty("vertical", &VTTCue::vertical, &VTTCue::SetVertical);
159  AddGenericProperty("snapToLines", &VTTCue::snap_to_lines,
161  AddGenericProperty("line", &VTTCue::line, &VTTCue::SetLine);
162  AddGenericProperty("lineAlign", &VTTCue::line_align, &VTTCue::SetLineAlign);
163  AddGenericProperty("position", &VTTCue::position, &VTTCue::SetPosition);
164  AddGenericProperty("positionAlign", &VTTCue::position_align,
166  AddGenericProperty("size", &VTTCue::size, &VTTCue::SetSize);
167  AddGenericProperty("align", &VTTCue::align, &VTTCue::SetAlign);
168  AddGenericProperty("text", &VTTCue::text, &VTTCue::SetText);
169 }
170 
171 } // namespace js
172 } // namespace shaka
VTTCue(double start_time, double end_time, const std::string &text)
Definition: vtt_cue.cc:22
void SetLine(variant< double, AutoKeyword > value)
Definition: vtt_cue.cc:94
void SetPauseOnExit(bool pause)
Definition: vtt_cue.cc:57
bool snap_to_lines() const
Definition: vtt_cue.cc:70
double start_time() const
Definition: vtt_cue.cc:37
void SetSnapToLines(bool snap)
Definition: vtt_cue.cc:74
void SetPositionAlign(media::PositionAlignSetting align)
Definition: vtt_cue.cc:120
void SetSize(double size)
Definition: vtt_cue.cc:128
bool pause_on_exit() const
Definition: vtt_cue.cc:53
DirectionSetting
Definition: vtt_cue.h:31
LineAlignSetting
Definition: vtt_cue.h:58
void SetId(const std::string &id)
Definition: vtt_cue.cc:33
void SetStartTime(double time)
Definition: vtt_cue.cc:41
std::string text() const
Definition: vtt_cue.cc:140
void SetEndTime(double time)
Definition: vtt_cue.cc:49
double size() const
Definition: vtt_cue.cc:124
std::string id() const
Definition: vtt_cue.cc:29
double end_time() const
Definition: vtt_cue.cc:45
variant< double, AutoKeyword > position() const
Definition: vtt_cue.cc:101
void SetPosition(variant< double, AutoKeyword > value)
Definition: vtt_cue.cc:109
media::PositionAlignSetting position_align() const
Definition: vtt_cue.cc:116
void SetAlign(media::AlignSetting align)
Definition: vtt_cue.cc:136
void SetVertical(media::DirectionSetting setting)
Definition: vtt_cue.cc:66
media::DirectionSetting vertical() const
Definition: vtt_cue.cc:62
variant< double, AutoKeyword > line() const
Definition: vtt_cue.cc:86
void SetLineAlign(media::LineAlignSetting align)
Definition: vtt_cue.cc:82
void SetText(const std::string &text)
Definition: vtt_cue.cc:144
media::AlignSetting align() const
Definition: vtt_cue.cc:132
PositionAlignSetting
Definition: vtt_cue.h:82
media::LineAlignSetting line_align() const
Definition: vtt_cue.cc:78