diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-07-05 15:22:00 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-07-05 15:22:56 +0200 |
| commit | 76e543bd7c85054ff857781707fa570f2b159360 (patch) | |
| tree | b3c18dd69a992f80375b29a1c4019b8445ffb8e7 | |
| parent | be436f229587905e89ac768b3c57b0e983cfe7fa (diff) | |
Use unique_ptr.
| -rw-r--r-- | src/lib/player.cc | 11 | ||||
| -rw-r--r-- | src/lib/player.h | 4 | ||||
| -rw-r--r-- | src/lib/shuffler.h | 11 | ||||
| -rw-r--r-- | src/lib/string_text_file.cc | 14 |
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 */ |
