summaryrefslogtreecommitdiffstats
path: root/xbmc/filesystem/PlaylistFileDirectory.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/filesystem/PlaylistFileDirectory.cpp
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/filesystem/PlaylistFileDirectory.cpp')
-rw-r--r--xbmc/filesystem/PlaylistFileDirectory.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/xbmc/filesystem/PlaylistFileDirectory.cpp b/xbmc/filesystem/PlaylistFileDirectory.cpp
new file mode 100644
index 0000000..2bdb243
--- /dev/null
+++ b/xbmc/filesystem/PlaylistFileDirectory.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "PlaylistFileDirectory.h"
+
+#include "FileItem.h"
+#include "URL.h"
+#include "filesystem/File.h"
+#include "playlists/PlayList.h"
+#include "playlists/PlayListFactory.h"
+
+using namespace PLAYLIST;
+
+namespace XFILE
+{
+ CPlaylistFileDirectory::CPlaylistFileDirectory() = default;
+
+ CPlaylistFileDirectory::~CPlaylistFileDirectory() = default;
+
+ bool CPlaylistFileDirectory::GetDirectory(const CURL& url, CFileItemList& items)
+ {
+ const std::string pathToUrl = url.Get();
+ std::unique_ptr<CPlayList> pPlayList (CPlayListFactory::Create(pathToUrl));
+ if (nullptr != pPlayList)
+ {
+ // load it
+ if (!pPlayList->Load(pathToUrl))
+ return false; //hmmm unable to load playlist?
+
+ CPlayList playlist = *pPlayList;
+ // convert playlist items to songs
+ for (int i = 0; i < playlist.size(); ++i)
+ {
+ CFileItemPtr item = playlist[i];
+ item->m_iprogramCount = i; // hack for playlist order
+ items.Add(item);
+ }
+ }
+ return true;
+ }
+
+ bool CPlaylistFileDirectory::ContainsFiles(const CURL& url)
+ {
+ const std::string pathToUrl = url.Get();
+ std::unique_ptr<CPlayList> pPlayList (CPlayListFactory::Create(pathToUrl));
+ if (nullptr != pPlayList)
+ {
+ // load it
+ if (!pPlayList->Load(pathToUrl))
+ return false; //hmmm unable to load playlist?
+
+ return (pPlayList->size() > 1);
+ }
+ return false;
+ }
+
+ bool CPlaylistFileDirectory::Remove(const CURL& url)
+ {
+ return XFILE::CFile::Delete(url);
+ }
+}
+