xbmc
GUIDialogPeripherals.h
1 /*
2  * Copyright (C) 2017-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 "FileItem.h"
12 #include "dialogs/GUIDialogSelect.h"
13 #include "threads/CriticalSection.h"
14 #include "utils/Observer.h"
15 
16 namespace PERIPHERALS
17 {
18 class CPeripherals;
19 
21 {
22 public:
24  ~CGUIDialogPeripherals() override;
25 
26  void RegisterPeripheralManager(CPeripherals& manager);
27  void UnregisterPeripheralManager();
28 
29  CFileItemPtr GetItem(unsigned int pos) const;
30 
31  static void Show(CPeripherals& manager);
32 
33  // implementation of CGUIControl via CGUIDialogSelect
34  bool OnMessage(CGUIMessage& message) override;
35 
36  // implementation of Observer
37  void Notify(const Observable& obs, const ObservableMessage msg) override;
38 
39 private:
40  // implementation of CGUIWindow via CGUIDialogSelect
41  void OnInitWindow() override;
42 
43  void UpdatePeripheralsAsync();
44  void UpdatePeripheralsSync();
45 
46  CPeripherals* m_manager = nullptr;
47  CFileItemList m_peripherals;
48  mutable CCriticalSection m_peripheralsMutex;
49 };
50 } // namespace PERIPHERALS
void Notify(const Observable &obs, const ObservableMessage msg) override
Process a message from an observable.
Definition: GUIDialogPeripherals.cpp:146
Definition: RetroPlayerInput.h:15
Represents a list of files.
Definition: FileItem.h:721
Definition: GUIDialogPeripherals.h:20
Definition: GUIDialogSelect.h:20
Definition: Observer.h:31
Definition: LibInputPointer.h:13
Definition: GUIMessage.h:365
Definition: Observer.h:44
Definition: Peripherals.h:53