Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request capability to specify additional flags for AudioIn, AudioOut, MidiIn and MidiOut types #187

Open
xkr47 opened this issue Aug 20, 2023 · 1 comment

Comments

@xkr47
Copy link

xkr47 commented Aug 20, 2023

Currently I cannot add the IS_TERMINAL flag to AudioIn — and if I create my own variant and unsafe impl PortSpec for it, I lose all the as_slice() etc helper methods provided.

Could e.g. implement like:

pub struct AudioIn(PortFlags);

impl AudioIn {
    /// # Example
    /// ```
    /// let spec = jack::AudioIn::with_extra_port_flags(jack::PortFlags::IS_TERMINAL);
    /// let audio_out_port = client.register_port("out", spec).unwrap();
    /// ```
    pub fn with_extra_port_flags(flags: PortFlags) -> Self {
        Self(flags)
    }
}

unsafe impl PortSpec for AudioIn {
    fn jack_flags(&self) -> PortFlags {
        PortFlags::IS_INPUT.union(self.0)
    }
}

Since it seemed the examples suggest using AudioIn::default() to construct instances I think this would not be considered API breakage.

@wmedrano
Copy link
Member

Idea

High level, this seems to be fine. Feel free to send over a patch with the version bumped to 0.13.0.

Breaking change

Oof, I removed some uses of AudioIn::default since clippy kept complaining. Probably not that big a deal, the main broken user would be cpal which I can fix quickly https://sourcegraph.com/search?q=context:global+jack::AudioIn&patternType=keyword&sm=0

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

No branches or pull requests

2 participants