Use std::make_shared
This commit is contained in:
parent
10fc6b4562
commit
c6da0864f2
|
@ -183,7 +183,7 @@ void Playlist::InsertSongItems(const SongList &songs, const int pos, const bool
|
|||
PlaylistItemList items;
|
||||
items.reserve(songs.count());
|
||||
for (const Song &song : songs) {
|
||||
items << PlaylistItemPtr(new T(song));
|
||||
items << std::make_shared<T>(song);
|
||||
}
|
||||
|
||||
InsertItems(items, pos, play_now, enqueue, enqueue_next);
|
||||
|
@ -1140,10 +1140,10 @@ void Playlist::InsertSongsOrCollectionItems(const SongList &songs, const int pos
|
|||
PlaylistItemList items;
|
||||
for (const Song &song : songs) {
|
||||
if (song.is_collection_song()) {
|
||||
items << PlaylistItemPtr(new CollectionPlaylistItem(song));
|
||||
items << std::make_shared<CollectionPlaylistItem>(song);
|
||||
}
|
||||
else {
|
||||
items << PlaylistItemPtr(new SongPlaylistItem(song));
|
||||
items << std::make_shared<SongPlaylistItem>(song);
|
||||
}
|
||||
}
|
||||
InsertItems(items, pos, play_now, enqueue, enqueue_next);
|
||||
|
@ -1195,12 +1195,12 @@ void Playlist::UpdateItems(SongList songs) {
|
|||
if (item->Metadata().url() == song.url() && (item->Metadata().filetype() == Song::FileType_Unknown || item->Metadata().filetype() == Song::FileType_Stream || item->Metadata().filetype() == Song::FileType_CDDA)) {
|
||||
PlaylistItemPtr new_item;
|
||||
if (song.is_collection_song()) {
|
||||
new_item = PlaylistItemPtr(new CollectionPlaylistItem(song));
|
||||
new_item = std::make_shared<CollectionPlaylistItem>(song);
|
||||
if (collection_items_by_id_.contains(song.id(), item)) collection_items_by_id_.remove(song.id(), item);
|
||||
collection_items_by_id_.insert(song.id(), new_item);
|
||||
}
|
||||
else {
|
||||
new_item = PlaylistItemPtr(new SongPlaylistItem(song));
|
||||
new_item = std::make_shared<SongPlaylistItem>(song);
|
||||
}
|
||||
items_[i] = new_item;
|
||||
emit dataChanged(index(i, 0), index(i, ColumnCount - 1));
|
||||
|
|
|
@ -304,7 +304,7 @@ PlaylistItemPtr PlaylistBackend::RestoreCueData(PlaylistItemPtr item, std::share
|
|||
for (const Song &from_list : song_list) {
|
||||
if (from_list.url().toEncoded() == song.url().toEncoded() && from_list.beginning_nanosec() == song.beginning_nanosec()) {
|
||||
// We found a matching section; replace the input item with a new one containing CUE metadata
|
||||
return PlaylistItemPtr(new SongPlaylistItem(from_list));
|
||||
return std::make_shared<SongPlaylistItem>(from_list);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <QtConcurrentRun>
|
||||
#include <QFuture>
|
||||
#include <QString>
|
||||
|
@ -39,19 +41,19 @@
|
|||
#include "internet/internetplaylistitem.h"
|
||||
#include "radios/radioplaylistitem.h"
|
||||
|
||||
PlaylistItem *PlaylistItem::NewFromSource(const Song::Source source) {
|
||||
PlaylistItemPtr PlaylistItem::NewFromSource(const Song::Source source) {
|
||||
|
||||
switch (source) {
|
||||
case Song::Source_Collection:
|
||||
return new CollectionPlaylistItem();
|
||||
return std::make_shared<CollectionPlaylistItem>();
|
||||
case Song::Source_Subsonic:
|
||||
case Song::Source_Tidal:
|
||||
case Song::Source_Qobuz:
|
||||
return std::make_shared<InternetPlaylistItem>(source);
|
||||
case Song::Source_Stream:
|
||||
return new InternetPlaylistItem(source);
|
||||
case Song::Source_RadioParadise:
|
||||
case Song::Source_SomaFM:
|
||||
return new RadioPlaylistItem(source);
|
||||
return std::make_shared<RadioPlaylistItem>(source);
|
||||
case Song::Source_LocalFile:
|
||||
case Song::Source_CDDA:
|
||||
case Song::Source_Device:
|
||||
|
@ -59,23 +61,23 @@ PlaylistItem *PlaylistItem::NewFromSource(const Song::Source source) {
|
|||
break;
|
||||
}
|
||||
|
||||
return new SongPlaylistItem(source);
|
||||
return std::make_shared<SongPlaylistItem>(source);
|
||||
|
||||
}
|
||||
|
||||
PlaylistItem *PlaylistItem::NewFromSong(const Song &song) {
|
||||
PlaylistItemPtr PlaylistItem::NewFromSong(const Song &song) {
|
||||
|
||||
switch (song.source()) {
|
||||
case Song::Source_Collection:
|
||||
return new CollectionPlaylistItem(song);
|
||||
return std::make_shared<CollectionPlaylistItem>(song);
|
||||
case Song::Source_Subsonic:
|
||||
case Song::Source_Tidal:
|
||||
case Song::Source_Qobuz:
|
||||
return std::make_shared<InternetPlaylistItem>(song);
|
||||
case Song::Source_Stream:
|
||||
return new InternetPlaylistItem(song);
|
||||
case Song::Source_RadioParadise:
|
||||
case Song::Source_SomaFM:
|
||||
return new RadioPlaylistItem(song);
|
||||
return std::make_shared<RadioPlaylistItem>(song);
|
||||
case Song::Source_LocalFile:
|
||||
case Song::Source_CDDA:
|
||||
case Song::Source_Device:
|
||||
|
@ -83,7 +85,7 @@ PlaylistItem *PlaylistItem::NewFromSong(const Song &song) {
|
|||
break;
|
||||
}
|
||||
|
||||
return new SongPlaylistItem(song);
|
||||
return std::make_shared<SongPlaylistItem>(song);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -48,8 +48,8 @@ class PlaylistItem : public std::enable_shared_from_this<PlaylistItem> {
|
|||
explicit PlaylistItem(const Song::Source source) : should_skip_(false), source_(source) {}
|
||||
virtual ~PlaylistItem();
|
||||
|
||||
static PlaylistItem *NewFromSource(const Song::Source source);
|
||||
static PlaylistItem *NewFromSong(const Song &song);
|
||||
static std::shared_ptr<PlaylistItem> NewFromSource(const Song::Source source);
|
||||
static std::shared_ptr<PlaylistItem> NewFromSong(const Song &song);
|
||||
|
||||
enum Option {
|
||||
Default = 0x00,
|
||||
|
|
|
@ -480,7 +480,7 @@ TEST_F(PlaylistTest, CollectionIdMapSingle) {
|
|||
song.Init("title", "artist", "album", 123);
|
||||
song.set_id(1);
|
||||
|
||||
PlaylistItemPtr item(new CollectionPlaylistItem(song));
|
||||
PlaylistItemPtr item(std::make_shared<CollectionPlaylistItem>(song));
|
||||
playlist_.InsertItems(PlaylistItemList() << item);
|
||||
|
||||
EXPECT_EQ(0, playlist_.collection_items_by_id(-1).count());
|
||||
|
@ -501,7 +501,7 @@ TEST_F(PlaylistTest, CollectionIdMapInvalid) {
|
|||
invalid.Init("title", "artist", "album", 123);
|
||||
ASSERT_EQ(-1, invalid.id());
|
||||
|
||||
PlaylistItemPtr item(new CollectionPlaylistItem(invalid));
|
||||
PlaylistItemPtr item(std::make_shared<CollectionPlaylistItem>(invalid));
|
||||
playlist_.InsertItems(PlaylistItemList() << item);
|
||||
|
||||
EXPECT_EQ(0, playlist_.collection_items_by_id(-1).count());
|
||||
|
@ -521,9 +521,9 @@ TEST_F(PlaylistTest, CollectionIdMapMulti) {
|
|||
two.Init("title 2", "artist 2", "album 2", 123);
|
||||
two.set_id(2);
|
||||
|
||||
PlaylistItemPtr item_one(new CollectionPlaylistItem(one));
|
||||
PlaylistItemPtr item_two(new CollectionPlaylistItem(two));
|
||||
PlaylistItemPtr item_three(new CollectionPlaylistItem(one));
|
||||
PlaylistItemPtr item_one(std::make_shared<CollectionPlaylistItem>(one));
|
||||
PlaylistItemPtr item_two(std::make_shared<CollectionPlaylistItem>(two));
|
||||
PlaylistItemPtr item_three(std::make_shared<CollectionPlaylistItem>(one));
|
||||
playlist_.InsertItems(PlaylistItemList() << item_one << item_two << item_three);
|
||||
|
||||
EXPECT_EQ(2, playlist_.collection_items_by_id(1).count());
|
||||
|
|
Loading…
Reference in New Issue