UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
pipewire_init_guard Class Reference

#include <pipewire_common.hpp>

Collaboration diagram for pipewire_init_guard:
Collaboration graph

Public Member Functions

 pipewire_init_guard ()=default
 
 pipewire_init_guard (pipewire_init_guard &&o)
 
 pipewire_init_guard (pipewire_init_guard &)=delete
 
 ~pipewire_init_guard ()
 
void init ()
 
pipewire_init_guard & operator= (pipewire_init_guard &&o)
 
pipewire_init_guard & operator= (pipewire_init_guard &)=delete
 

Private Attributes

bool initialized = false
 
std::mutex mut
 

Static Private Attributes

static int init_count = 0
 

Detailed Description

Definition at line 64 of file pipewire_common.hpp.

Constructor & Destructor Documentation

◆ pipewire_init_guard() [1/3]

pipewire_init_guard::pipewire_init_guard ( )
default

◆ pipewire_init_guard() [2/3]

pipewire_init_guard::pipewire_init_guard ( pipewire_init_guard & )
delete

◆ pipewire_init_guard() [3/3]

pipewire_init_guard::pipewire_init_guard ( pipewire_init_guard && o)
inline

Definition at line 69 of file pipewire_common.hpp.

69{ std::swap(initialized, o.initialized);}

References initialized.

◆ ~pipewire_init_guard()

pipewire_init_guard::~pipewire_init_guard ( )
inline

Definition at line 75 of file pipewire_common.hpp.

75 {
76#if !PW_CHECK_VERSION(0, 3, 49)
77 std::lock_guard<std::mutex> l(mut);
78 if(initialized){
79 init_count--;
80 if(init_count > 0)
81 return;
82 }
83#endif
84 if(initialized)
85 pw_deinit();
86 }

References init_count, initialized, and mut.

Member Function Documentation

◆ init()

void pipewire_init_guard::init ( )
inline

Definition at line 88 of file pipewire_common.hpp.

88 {
89#if !PW_CHECK_VERSION(0, 3, 49)
90 std::lock_guard<std::mutex> l(mut);
91 init_count++;
92#endif
93 pw_init(nullptr, nullptr);
94 initialized = true;
95 }

References init_count, initialized, and mut.

Referenced by initialize_pw_common().

◆ operator=() [1/2]

pipewire_init_guard & pipewire_init_guard::operator= ( pipewire_init_guard && o)
inline

Definition at line 70 of file pipewire_common.hpp.

70 {
71 std::swap(initialized, o.initialized);
72 return *this;
73 }

References initialized.

◆ operator=() [2/2]

pipewire_init_guard & pipewire_init_guard::operator= ( pipewire_init_guard & )
delete

Member Data Documentation

◆ init_count

int pipewire_init_guard::init_count = 0
inlinestaticprivate

Definition at line 103 of file pipewire_common.hpp.

Referenced by ~pipewire_init_guard(), and init().

◆ initialized

bool pipewire_init_guard::initialized = false
private

Definition at line 98 of file pipewire_common.hpp.

Referenced by pipewire_init_guard(), ~pipewire_init_guard(), init(), and operator=().

◆ mut

std::mutex pipewire_init_guard::mut
private

Definition at line 104 of file pipewire_common.hpp.

Referenced by ~pipewire_init_guard(), and init().


The documentation for this class was generated from the following file: