kodi
PVRRecordingsPath.h
1 /*
2  * Copyright (C) 2012-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include <string>
12 
13 class CDateTime;
14 
15 namespace PVR
16 {
18 {
19 public:
20  static const std::string PATH_RECORDINGS;
21  static const std::string PATH_ACTIVE_TV_RECORDINGS;
22  static const std::string PATH_ACTIVE_RADIO_RECORDINGS;
23  static const std::string PATH_DELETED_TV_RECORDINGS;
24  static const std::string PATH_DELETED_RADIO_RECORDINGS;
25 
26  explicit CPVRRecordingsPath(const std::string& strPath);
27  CPVRRecordingsPath(bool bDeleted, bool bRadio);
28  CPVRRecordingsPath(bool bDeleted,
29  bool bRadio,
30  const std::string& strDirectory,
31  const std::string& strTitle,
32  int iSeason,
33  int iEpisode,
34  int iYear,
35  const std::string& strSubtitle,
36  const std::string& strChannelName,
37  const CDateTime& recordingTime,
38  const std::string& strId);
39 
40  operator std::string() const { return m_path; }
41 
42  bool IsValid() const { return m_bValid; }
43 
44  const std::string& GetPath() const { return m_path; }
45  bool IsRecordingsRoot() const { return m_bRoot; }
46  bool IsActive() const { return m_bActive; }
47  bool IsDeleted() const { return !IsActive(); }
48  bool IsRadio() const { return m_bRadio; }
49  bool IsTV() const { return !IsRadio(); }
50  std::string GetUnescapedDirectoryPath() const;
51  std::string GetUnescapedSubDirectoryPath(const std::string& strPath) const;
52 
53  const std::string GetTitle() const;
54  void AppendSegment(const std::string& strSegment);
55 
56 private:
57  static std::string TrimSlashes(const std::string& strString);
58  size_t GetDirectoryPathPosition() const;
59 
60  bool m_bValid;
61  bool m_bRoot;
62  bool m_bActive;
63  bool m_bRadio;
64  std::string m_directoryPath;
65  std::string m_params;
66  std::string m_path;
67 };
68 } // namespace PVR
Definition: ContextMenuManager.h:24
Definition: PVRRecordingsPath.h:17
DateTime class, which uses FileTime as it&#39;s base.
Definition: XBDateTime.h:63