8000 GitHub - Curve/rohrkabel: ๐Ÿ”Œ A C++ Pipewire-API Wrapper
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Curve/rohrkabel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ƒ Description

Rohrkabel is a C++23 wrapper around the pipewire-api that embraces RAII and Coroutines.

As of writing this, only a portion of the pipewire-api has been wrapped. However, this library easily allows to access the underlying wrapped objects and also allows to wrap existing pipewire objects without taking over their lifetime.

More portions of the pipewire-api will be wrapped based on user demand or (in-house) downstream (Soundux, venmic) demand.

๐Ÿ“ฆ Installation

  • Using CPM

    CPMFindPackage(
      NAME           rohrkabel
      VERSION        9.0.0
      GIT_REPOSITORY "https://github.com/Curve/rohrkabel"
    )
  • Using FetchContent

    include(FetchContent)
    
    FetchContent_Declare(rohrkabel GIT_REPOSITORY "https://github.com/Curve/rohrkabel" GIT_TAG v9.0.0)
    FetchContent_MakeAvailable(rohrkabel)
    
    target_link_libraries(<target> cr::rohrkabel)

๐Ÿงต Thread-Safety

The pw_main_loop is not thread-safe, but supplies a special loop implementation meant for threaded-usage. However said special loop is cumbersome to deal with, especially from a RAII perspective, thus rohrkabel uses a different, channel-based approach inspired by pipewire-rs.

The channel based approach greatly simplifies working with rohrkabel in multi-threaded environments.

For more information check out this example, or feel free to open a discussion.

๐ŸŒŽ Who's using rohrkabel?

0