kodi
GUIDialogPeripherals.h
1 /*
2  * Copyright (C) 2017-2024 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 
24 {
25 public:
27  ~CGUIDialogPeripherals() override;
28 
29  void RegisterPeripheralManager(CPeripherals& manager);
30  void UnregisterPeripheralManager();
31 
32  CFileItemPtr GetItem(unsigned int pos) const;
33 
34  static void Show(CPeripherals& manager);
35 
36  // implementation of CGUIControl via CGUIDialogSelect
37  bool OnMessage(CGUIMessage& message) override;
38 
39  // implementation of Observer
40  void Notify(const Observable& obs, const ObservableMessage msg) override;
41 
42 private:
43  // implementation of CGUIWindow via CGUIDialogSelect
44  void OnInitWindow() override;
45 
46  void UpdatePeripheralsAsync();
47  void UpdatePeripheralsSync();
48 
49  CPeripherals* m_manager = nullptr;
50  CFileItemList m_peripherals;
51  mutable CCriticalSection m_peripheralsMutex;
52 };
53 } // 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:702
Definition: GUIDialogPeripherals.h:23
Definition: GUIDialogSelect.h:20
Definition: Observer.h:31
Definition: LibInputPointer.h:13
Definition: GUIMessage.h:365
Definition: Observer.h:44
Definition: Peripherals.h:56