summaryrefslogtreecommitdiff
path: root/src/cpl.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-04-11 00:10:30 +0200
committerCarl Hetherington <cth@carlh.net>2021-04-11 20:50:08 +0200
commit1a284b7c409567b6ecb223adece779487f70ac92 (patch)
treef36367b4444037e09b0224da3ea76dfcb248c241 /src/cpl.cc
parent093525165f6397ba9eaffd19833dc978bcb32d55 (diff)
Extract some parts of ReelEncryptableAsset into ReelFileAsset
Diffstat (limited to 'src/cpl.cc')
-rw-r--r--src/cpl.cc51
1 files changed, 47 insertions, 4 deletions
diff --git a/src/cpl.cc b/src/cpl.cc
index b1819755..8766cf76 100644
--- a/src/cpl.cc
+++ b/src/cpl.cc
@@ -515,23 +515,66 @@ add_file_assets (vector<shared_ptr<T>>& assets, vector<shared_ptr<Reel>> reels)
}
-vector<shared_ptr<ReelEncryptableAsset>>
+vector<shared_ptr<ReelFileAsset>>
CPL::reel_file_assets ()
{
- vector<shared_ptr<ReelEncryptableAsset>> c;
+ vector<shared_ptr<ReelFileAsset>> c;
add_file_assets (c, _reels);
return c;
}
-vector<shared_ptr<const ReelEncryptableAsset>>
+
+vector<shared_ptr<const ReelFileAsset>>
CPL::reel_file_assets () const
{
- vector<shared_ptr<const ReelEncryptableAsset>> c;
+ vector<shared_ptr<const ReelFileAsset>> c;
add_file_assets (c, _reels);
return c;
}
+template <class T>
+void
+add_encryptable_assets (vector<shared_ptr<T>>& assets, vector<shared_ptr<Reel>> reels)
+{
+ for (auto i: reels) {
+ if (i->main_picture ()) {
+ assets.push_back (i->main_picture());
+ }
+ if (i->main_sound ()) {
+ assets.push_back (i->main_sound());
+ }
+ if (i->main_subtitle ()) {
+ assets.push_back (i->main_subtitle());
+ }
+ for (auto j: i->closed_captions()) {
+ assets.push_back (j);
+ }
+ if (i->atmos ()) {
+ assets.push_back (i->atmos());
+ }
+ }
+}
+
+
+vector<shared_ptr<ReelEncryptableAsset>>
+CPL::reel_encryptable_assets ()
+{
+ vector<shared_ptr<ReelEncryptableAsset>> c;
+ add_encryptable_assets (c, _reels);
+ return c;
+}
+
+
+vector<shared_ptr<const ReelEncryptableAsset>>
+CPL::reel_encryptable_assets () const
+{
+ vector<shared_ptr<const ReelEncryptableAsset>> c;
+ add_encryptable_assets (c, _reels);
+ return c;
+}
+
+
bool
CPL::equals (shared_ptr<const Asset> other, EqualityOptions opt, NoteHandler note) const
{