xbmc
GUIInfo.h
1 /*
2  * Copyright (C) 2005-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 <stdint.h>
12 #include <string>
13 
14 namespace KODI
15 {
16 namespace GUILIB
17 {
18 namespace GUIINFO
19 {
20 
21 // class to hold multiple integer data
22 // for storage referenced from a single integer
23 class CGUIInfo
24 {
25 public:
26  CGUIInfo(int info, uint32_t data1, int data2, uint32_t flag, const std::string& data3, int data4)
27  : m_info(info),
28  m_data1(data1),
29  m_data2(data2),
30  m_data3(data3),
31  m_data4(data4)
32  {
33  if (flag)
34  SetInfoFlag(flag);
35  }
36 
37  explicit CGUIInfo(int info, uint32_t data1 = 0, int data2 = 0, uint32_t flag = 0)
38  : m_info(info),
39  m_data1(data1),
40  m_data2(data2),
41  m_data4(0)
42  {
43  if (flag)
44  SetInfoFlag(flag);
45  }
46 
47  CGUIInfo(int info, uint32_t data1, int data2, const std::string& data3)
48  : m_info(info), m_data1(data1), m_data2(data2), m_data3(data3), m_data4(0)
49  {
50  }
51 
52  CGUIInfo(int info, uint32_t data1, const std::string& data3)
53  : m_info(info),
54  m_data1(data1),
55  m_data2(0),
56  m_data3(data3),
57  m_data4(0)
58  {
59  }
60 
61  CGUIInfo(int info, const std::string& data3)
62  : m_info(info),
63  m_data1(0),
64  m_data2(0),
65  m_data3(data3),
66  m_data4(0)
67  {
68  }
69 
70  CGUIInfo(int info, const std::string& data3, int data2)
71  : m_info(info),
72  m_data1(0),
73  m_data2(data2),
74  m_data3(data3),
75  m_data4(0)
76  {
77  }
78 
79  CGUIInfo(int info, const std::string& data3, const std::string& data5)
80  : m_info(info), m_data1(0), m_data3(data3), m_data4(0), m_data5(data5)
81  {
82  }
83 
84  bool operator ==(const CGUIInfo &right) const
85  {
86  return (m_info == right.m_info && m_data1 == right.m_data1 && m_data2 == right.m_data2 &&
87  m_data3 == right.m_data3 && m_data4 == right.m_data4 && m_data5 == right.m_data5);
88  }
89 
90  uint32_t GetInfoFlag() const;
91  uint32_t GetData1() const;
92  int GetData2() const { return m_data2; }
93  const std::string& GetData3() const { return m_data3; }
94  int GetData4() const { return m_data4; }
95  const std::string& GetData5() const { return m_data5; }
96 
97  int m_info;
98 private:
99  void SetInfoFlag(uint32_t flag);
100 
101  uint32_t m_data1;
102  int m_data2;
103  std::string m_data3;
104  int m_data4;
105  std::string m_data5;
106 };
107 
108 } // namespace GUIINFO
109 } // namespace GUILIB
110 } // namespace KODI
Controller configuration window.
Definition: AudioDecoder.h:18
Definition: GUIInfo.h:23