Skip to content

Conversation

@mccadecortez
Copy link

@mccadecortez mccadecortez commented Jul 9, 2025

Description

Please include a summary of the change and which issue is fixed. Include relevant motivation and context.

Appends 384cda0, implements https://docs.pipewire.org/structpw__core__info.html for getting the pipewire version

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

$ cargo run --example enumerate_pipewire --features pipewire --release
Driver name   : Pipewire
Driver version: 1.2.7
Default device
        Input:  Default
        Output: Default
All devices
        Unknown (DeviceType(0x0))
        Unknown (DeviceType(0x0))
        Unknown (DeviceType(0x0))
        Midi-Bridge (DeviceType(0x0))
        bluez_midi.server (DeviceType(0x0))
        alsa_output.pci-0000_11_00.1.pro-output-3 (DeviceType(OUTPUT))
        alsa_output.pci-0000_11_00.1.pro-output-7 (DeviceType(OUTPUT))
        alsa_output.pci-0000_11_00.1.pro-output-8 (DeviceType(OUTPUT))
        alsa_output.pci-0000_11_00.1.pro-output-9 (DeviceType(OUTPUT))
        kwin_wayland (DeviceType(0x0))
        RustDesk (DeviceType(0x0))
        rustdesk (DeviceType(0x0))

Checklist:

  • My code follows the style guidelines of this project
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Wherever possible, I have added tests that prove my fix is effective or that my feature works. For changes that
    need to be validated manually (i.e. a new audio driver), use examples that can be run to easily validate them.
  • New and existing unit tests pass locally with my changes
  • I have checked my code and corrected any misspellings

Screenshots (if appropriate):

Additional Notes:

Copy link
Owner

@SolarLiner SolarLiner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR and resolving the TODO for me!

Comment on lines +98 to +100
let mainloop = MainLoop::new(None)?;
let context = Context::new(&mainloop)?;
let core = context.connect(None)?;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this behave when the user has already started to manipulate AudioDevices? It feels like pipewire is going to reject creating the loop and contexwt a second time. Maybe it's worth moving these to the driver itself, so that as long as people have a handle to the driver, it all works?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants