[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / filesystem / PlaylistFileDirectory.cpp
blob2bdb2436809003213acad0ea6d80bd9ecca1f977
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "PlaylistFileDirectory.h"
11 #include "FileItem.h"
12 #include "URL.h"
13 #include "filesystem/File.h"
14 #include "playlists/PlayList.h"
15 #include "playlists/PlayListFactory.h"
17 using namespace PLAYLIST;
19 namespace XFILE
21 CPlaylistFileDirectory::CPlaylistFileDirectory() = default;
23 CPlaylistFileDirectory::~CPlaylistFileDirectory() = default;
25 bool CPlaylistFileDirectory::GetDirectory(const CURL& url, CFileItemList& items)
27 const std::string pathToUrl = url.Get();
28 std::unique_ptr<CPlayList> pPlayList (CPlayListFactory::Create(pathToUrl));
29 if (nullptr != pPlayList)
31 // load it
32 if (!pPlayList->Load(pathToUrl))
33 return false; //hmmm unable to load playlist?
35 CPlayList playlist = *pPlayList;
36 // convert playlist items to songs
37 for (int i = 0; i < playlist.size(); ++i)
39 CFileItemPtr item = playlist[i];
40 item->m_iprogramCount = i; // hack for playlist order
41 items.Add(item);
44 return true;
47 bool CPlaylistFileDirectory::ContainsFiles(const CURL& url)
49 const std::string pathToUrl = url.Get();
50 std::unique_ptr<CPlayList> pPlayList (CPlayListFactory::Create(pathToUrl));
51 if (nullptr != pPlayList)
53 // load it
54 if (!pPlayList->Load(pathToUrl))
55 return false; //hmmm unable to load playlist?
57 return (pPlayList->size() > 1);
59 return false;
62 bool CPlaylistFileDirectory::Remove(const CURL& url)
64 return XFILE::CFile::Delete(url);