summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-07-05 15:22:00 +0200
committerCarl Hetherington <cth@carlh.net>2021-07-05 15:22:56 +0200
commit76e543bd7c85054ff857781707fa570f2b159360 (patch)
treeb3c18dd69a992f80375b29a1c4019b8445ffb8e7
parentbe436f229587905e89ac768b3c57b0e983cfe7fa (diff)
Use unique_ptr.
-rw-r--r--src/lib/player.cc11
-rw-r--r--src/lib/player.h4
-rw-r--r--src/lib/shuffler.h11
-rw-r--r--src/lib/string_text_file.cc14
4 files changed, 19 insertions, 21 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 3a098c38e..5de089ba9 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -134,12 +134,6 @@ Player::construct ()
}
-Player::~Player ()
-{
- delete _shuffler;
-}
-
-
void
Player::setup_pieces ()
{
@@ -170,8 +164,7 @@ Player::setup_pieces_unlocked ()
auto old_pieces = _pieces;
_pieces.clear ();
- delete _shuffler;
- _shuffler = new Shuffler();
+ _shuffler.reset (new Shuffler());
_shuffler->Video.connect(bind(&Player::video, this, _1, _2));
for (auto i: playlist()->content()) {
@@ -226,7 +219,7 @@ Player::setup_pieces_unlocked ()
if (decoder->video) {
if (i->video->frame_type() == VideoFrameType::THREE_D_LEFT || i->video->frame_type() == VideoFrameType::THREE_D_RIGHT) {
/* We need a Shuffler to cope with 3D L/R video data arriving out of sequence */
- decoder->video->Data.connect (bind(&Shuffler::video, _shuffler, weak_ptr<Piece>(piece), _1));
+ decoder->video->Data.connect (bind(&Shuffler::video, _shuffler.get(), weak_ptr<Piece>(piece), _1));
} else {
decoder->video->Data.connect (bind(&Player::video, this, weak_ptr<Piece>(piece), _1));
}
diff --git a/src/lib/player.h b/src/lib/player.h
index daade1d7b..6cefbe232 100644
--- a/src/lib/player.h
+++ b/src/lib/player.h
@@ -78,7 +78,6 @@ class Player : public std::enable_shared_from_this<Player>
public:
Player (std::shared_ptr<const Film>);
Player (std::shared_ptr<const Film>, std::shared_ptr<const Playlist> playlist);
- ~Player ();
Player (Player const& Player) = delete;
Player& operator= (Player const& Player) = delete;
@@ -208,7 +207,7 @@ private:
LastVideoMap _last_video;
AudioMerger _audio_merger;
- Shuffler* _shuffler = nullptr;
+ std::unique_ptr<Shuffler> _shuffler;
std::list<std::pair<std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> > _delay;
class StreamState
@@ -239,4 +238,5 @@ private:
boost::signals2::scoped_connection _playlist_content_change_connection;
};
+
#endif
diff --git a/src/lib/shuffler.h b/src/lib/shuffler.h
index 2b37b70a1..476f571b4 100644
--- a/src/lib/shuffler.h
+++ b/src/lib/shuffler.h
@@ -19,14 +19,17 @@
*/
-#include "types.h"
+#ifndef DCPOMATIC_SHUFFLER_H
+#define DCPOMATIC_SHUFFLER_H
+
+
#include "content_video.h"
+#include "types.h"
#include <boost/signals2.hpp>
struct shuffler_test5;
-
class Piece;
@@ -48,3 +51,7 @@ private:
boost::optional<ContentVideo> _last;
static int const _max_size;
};
+
+
+#endif
+
diff --git a/src/lib/string_text_file.cc b/src/lib/string_text_file.cc
index 78c119df6..8c2c56518 100644
--- a/src/lib/string_text_file.cc
+++ b/src/lib/string_text_file.cc
@@ -46,15 +46,15 @@ StringTextFile::StringTextFile (shared_ptr<const StringTextFileContent> content)
string ext = content->path(0).extension().string();
transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
- sub::Reader* reader = 0;
+ std::unique_ptr<sub::Reader> reader;
if (ext == ".stl") {
- FILE* f = fopen_boost (content->path(0), "rb");
+ auto f = fopen_boost (content->path(0), "rb");
if (!f) {
throw OpenFileError (content->path(0), errno, OpenFileError::READ);
}
try {
- reader = new sub::STLBinaryReader (f);
+ reader.reset(new sub::STLBinaryReader(f));
} catch (...) {
fclose (f);
throw;
@@ -100,17 +100,15 @@ StringTextFile::StringTextFile (shared_ptr<const StringTextFileContent> content)
ucnv_close (to_utf8);
if (ext == ".srt") {
- reader = new sub::SubripReader (utf8.get());
+ reader.reset(new sub::SubripReader(utf8.get()));
} else if (ext == ".ssa" || ext == ".ass") {
- reader = new sub::SSAReader (utf8.get());
+ reader.reset(new sub::SSAReader(utf8.get()));
}
}
if (reader) {
- _subtitles = sub::collect<vector<sub::Subtitle> > (reader->subtitles ());
+ _subtitles = sub::collect<vector<sub::Subtitle>>(reader->subtitles());
}
-
- delete reader;
}
/** @return time of first subtitle, if there is one */