kodi
Pipewire.h
1 /*
2  * Copyright (C) 2010-2021 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 <memory>
12 
13 namespace KODI
14 {
15 namespace PIPEWIRE
16 {
17 
18 class CPipewireThreadLoop;
19 class CPipewireContext;
20 class CPipewireCore;
21 class CPipewireRegistry;
22 
23 class CPipewire
24 {
25 public:
26  static std::unique_ptr<CPipewire> Create();
27 
28  ~CPipewire();
29 
30  bool Start();
31 
32  CPipewireThreadLoop& GetThreadLoop() { return *m_loop; }
33  CPipewireContext& GetContext() { return *m_context; }
34  CPipewireCore& GetCore() { return *m_core; }
35  CPipewireRegistry& GetRegistry() { return *m_registry; }
36 
37 private:
38  CPipewire();
39 
40  std::unique_ptr<CPipewireThreadLoop> m_loop;
41  std::unique_ptr<CPipewireContext> m_context;
42  std::unique_ptr<CPipewireCore> m_core;
43  std::unique_ptr<CPipewireRegistry> m_registry;
44 };
45 
46 } // namespace PIPEWIRE
47 } // namespace KODI
Definition: PipewireCore.h:22
Definition: PipewireRegistry.h:25
Definition: PipewireContext.h:22
Definition: Pipewire.h:23
Definition: AudioDecoder.h:18
Definition: PipewireThreadLoop.h:21