kodi
IAnnouncer.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 <string>
12 
13 class CVariant;
14 namespace ANNOUNCEMENT
15 {
16  enum AnnouncementFlag
17  {
18  Player = 0x001,
19  Playlist = 0x002,
20  GUI = 0x004,
21  System = 0x008,
22  VideoLibrary = 0x010,
23  AudioLibrary = 0x020,
24  Application = 0x040,
25  Input = 0x080,
26  PVR = 0x100,
27  Other = 0x200,
28  Info = 0x400
29  };
30 
31  const auto ANNOUNCE_ALL = (Player | Playlist | GUI | System | VideoLibrary | AudioLibrary | Application | Input | ANNOUNCEMENT::PVR | Other);
32 
39  inline const char *AnnouncementFlagToString(const AnnouncementFlag &notification)
40  {
41  switch (notification)
42  {
43  case Player:
44  return "Player";
45  case Playlist:
46  return "Playlist";
47  case GUI:
48  return "GUI";
49  case System:
50  return "System";
51  case VideoLibrary:
52  return "VideoLibrary";
53  case AudioLibrary:
54  return "AudioLibrary";
55  case Application:
56  return "Application";
57  case Input:
58  return "Input";
59  case PVR:
60  return "PVR";
61  case Other:
62  return "Other";
63  case Info:
64  return "Info";
65  default:
66  return "Unknown";
67  }
68  }
69 
70  class IAnnouncer
71  {
72  public:
73  IAnnouncer() = default;
74  virtual ~IAnnouncer() = default;
75  virtual void Announce(AnnouncementFlag flag,
76  const std::string& sender,
77  const std::string& message,
78  const CVariant& data) = 0;
79  };
80 }
Definition: ContextMenuManager.h:24
Definition: IAnnouncer.h:70
Definition: Variant.h:31
Definition: Application.h:52