Skip to content

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

Description

@xkr47

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions