kodi
PipewireContext.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 #include <pipewire/context.h>
14 
15 namespace KODI
16 {
17 namespace PIPEWIRE
18 {
19 
20 class CPipewireThreadLoop;
21 
23 {
24 public:
25  explicit CPipewireContext(CPipewireThreadLoop& loop);
26  CPipewireContext() = delete;
27  ~CPipewireContext() = default;
28 
29  pw_context* Get() const { return m_context.get(); }
30 
31  CPipewireThreadLoop& GetThreadLoop() const { return m_threadLoop; }
32 
33 private:
34  CPipewireThreadLoop& m_threadLoop;
35 
36  struct PipewireContextDeleter
37  {
38  void operator()(pw_context* p) { pw_context_destroy(p); }
39  };
40 
41  std::unique_ptr<pw_context, PipewireContextDeleter> m_context;
42 };
43 
44 } // namespace PIPEWIRE
45 } // namespace KODI
Definition: PipewireContext.h:22
Definition: AudioDecoder.h:18
Definition: PipewireThreadLoop.h:21