[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / filesystem / BlurayDirectory.h
blobf4b2be65ac0e133a1a8d5c86e86c459585e9f9c9
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 #pragma once
11 #include "IDirectory.h"
12 #include "URL.h"
14 #include <memory>
16 class CFileItem;
17 class CFileItemList;
19 typedef struct bluray BLURAY;
20 typedef struct bd_title_info BLURAY_TITLE_INFO;
22 namespace XFILE
25 class CBlurayDirectory : public IDirectory
27 public:
28 CBlurayDirectory() = default;
29 ~CBlurayDirectory() override;
30 bool GetDirectory(const CURL& url, CFileItemList &items) override;
32 bool InitializeBluray(const std::string &root);
33 std::string GetBlurayTitle();
34 std::string GetBlurayID();
36 private:
37 enum class DiscInfo
39 TITLE,
43 void Dispose();
44 std::string GetDiscInfoString(DiscInfo info);
45 void GetRoot (CFileItemList &items);
46 void GetTitles(bool main, CFileItemList &items);
47 std::vector<BLURAY_TITLE_INFO*> GetUserPlaylists();
48 std::shared_ptr<CFileItem> GetTitle(const BLURAY_TITLE_INFO* title, const std::string& label);
49 CURL GetUnderlyingCURL(const CURL& url);
50 std::string HexToString(const uint8_t * buf, int count);
51 CURL m_url;
52 BLURAY* m_bd = nullptr;
53 bool m_blurayInitialized = false;