diff options
author | dec05eba <dec05eba@protonmail.com> | 2024-12-06 12:53:44 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2024-12-06 12:53:44 +0100 |
commit | 175ed79b06ecb5615eff1df26e932cf644d78300 (patch) | |
tree | 8767a0394cf6965a77d6e6817270e710aa6f8d3d /include | |
parent | 1b409478847dd825683b8ac1f1cae613b3155bd9 (diff) |
Fix virtual sink not destroyed if gsr is forcefully killed (use pipewire to create the virtual sink instead of pulseaudio)
Diffstat (limited to 'include')
-rw-r--r-- | include/pipewire_audio.h | 6 | ||||
-rw-r--r-- | include/sound.hpp | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/include/pipewire_audio.h b/include/pipewire_audio.h index 33fc9eb..e2ffd49 100644 --- a/include/pipewire_audio.h +++ b/include/pipewire_audio.h @@ -11,6 +11,7 @@ #define GSR_PIPEWIRE_AUDIO_MAX_STREAM_NODES 128 #define GSR_PIPEWIRE_AUDIO_MAX_PORTS 256 #define GSR_PIPEWIRE_AUDIO_MAX_REQUESTED_LINKS 32 +#define GSR_PIPEWIRE_AUDIO_MAX_VIRTUAL_SINKS 32 typedef enum { GSR_PIPEWIRE_AUDIO_NODE_TYPE_STREAM_OUTPUT, /* Application audio */ @@ -67,11 +68,16 @@ typedef struct { gsr_pipewire_audio_requested_link requested_links[GSR_PIPEWIRE_AUDIO_MAX_REQUESTED_LINKS]; int num_requested_links; + + struct pw_proxy *virtual_sink_proxies[GSR_PIPEWIRE_AUDIO_MAX_VIRTUAL_SINKS]; + int num_virtual_sink_proxies; } gsr_pipewire_audio; bool gsr_pipewire_audio_init(gsr_pipewire_audio *self); void gsr_pipewire_audio_deinit(gsr_pipewire_audio *self); +bool gsr_pipewire_audio_create_virtual_sink(gsr_pipewire_audio *self, const char *name); + /* This function links audio source outputs from applications that match the name |app_names| to the input that matches the name |stream_name_input|. diff --git a/include/sound.hpp b/include/sound.hpp index 21bf0bf..215e167 100644 --- a/include/sound.hpp +++ b/include/sound.hpp @@ -64,11 +64,6 @@ typedef enum { Returns 0 on success, or a negative value on failure. */ int sound_device_get_by_name(SoundDevice *device, const char *device_name, const char *description, unsigned int num_channels, unsigned int period_frame_size, AudioFormat audio_format); -/* - Creates a module-combine-sink and connects to it for recording, returning the device into the |device| parameter. - Returns 0 on success, or a negative value on failure. -*/ -int sound_device_create_combined_sink_connect(SoundDevice *device, const char *combined_sink_name, unsigned int num_channels, unsigned int period_frame_size, AudioFormat audio_format); void sound_device_close(SoundDevice *device); |