Request capability to specify additional flags for AudioIn, AudioOut, MidiIn and MidiOut types
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.
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