alsahwdep 0.8.0

API binding for alsahwdep library
Documentation
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use crate::ffi;
use glib::{prelude::*, translate::*};

/// A set of enumerations for code of ALSAHwDep.DeviceCommonError error domain.
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "ALSAHwdepDeviceCommonError")]
pub enum DeviceCommonError {
    #[doc(alias = "ALSAHWDEP_DEVICE_COMMON_ERROR_FAILED")]
    Failed,
    #[doc(alias = "ALSAHWDEP_DEVICE_COMMON_ERROR_IS_OPENED")]
    IsOpened,
    #[doc(alias = "ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_OPENED")]
    IsNotOpened,
    #[doc(alias = "ALSAHWDEP_DEVICE_COMMON_ERROR_IS_USED")]
    IsUsed,
    #[doc(alias = "ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_SUPPORTED")]
    IsNotSupported,
    #[doc(alias = "ALSAHWDEP_DEVICE_COMMON_ERROR_IS_DISCONNECTED")]
    IsDisconnected,
    #[doc(hidden)]
    __Unknown(i32),
}

#[doc(hidden)]
impl IntoGlib for DeviceCommonError {
    type GlibType = ffi::ALSAHwdepDeviceCommonError;

    #[inline]
    fn into_glib(self) -> ffi::ALSAHwdepDeviceCommonError {
        match self {
            Self::Failed => ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_FAILED,
            Self::IsOpened => ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_OPENED,
            Self::IsNotOpened => ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_OPENED,
            Self::IsUsed => ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_USED,
            Self::IsNotSupported => ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_SUPPORTED,
            Self::IsDisconnected => ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_DISCONNECTED,
            Self::__Unknown(value) => value,
        }
    }
}

#[doc(hidden)]
impl FromGlib<ffi::ALSAHwdepDeviceCommonError> for DeviceCommonError {
    #[inline]
    unsafe fn from_glib(value: ffi::ALSAHwdepDeviceCommonError) -> Self {
        match value {
            ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_FAILED => Self::Failed,
            ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_OPENED => Self::IsOpened,
            ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_OPENED => Self::IsNotOpened,
            ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_USED => Self::IsUsed,
            ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_NOT_SUPPORTED => Self::IsNotSupported,
            ffi::ALSAHWDEP_DEVICE_COMMON_ERROR_IS_DISCONNECTED => Self::IsDisconnected,
            value => Self::__Unknown(value),
        }
    }
}

impl glib::error::ErrorDomain for DeviceCommonError {
    #[inline]
    fn domain() -> glib::Quark {
        unsafe { from_glib(ffi::alsahwdep_device_common_error_quark()) }
    }

    #[inline]
    fn code(self) -> i32 {
        self.into_glib()
    }

    #[inline]
    #[allow(clippy::match_single_binding)]
    fn from(code: i32) -> Option<Self> {
        match unsafe { from_glib(code) } {
            Self::__Unknown(_) => Some(Self::Failed),
            value => Some(value),
        }
    }
}

impl StaticType for DeviceCommonError {
    #[inline]
    #[doc(alias = "alsahwdep_device_common_error_get_type")]
    fn static_type() -> glib::Type {
        unsafe { from_glib(ffi::alsahwdep_device_common_error_get_type()) }
    }
}

impl glib::HasParamSpec for DeviceCommonError {
    type ParamSpec = glib::ParamSpecEnum;
    type SetValue = Self;
    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;

    fn param_spec_builder() -> Self::BuilderFn {
        Self::ParamSpec::builder_with_default
    }
}

impl glib::value::ValueType for DeviceCommonError {
    type Type = Self;
}

unsafe impl<'a> glib::value::FromValue<'a> for DeviceCommonError {
    type Checker = glib::value::GenericValueTypeChecker<Self>;

    #[inline]
    unsafe fn from_value(value: &'a glib::Value) -> Self {
        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
    }
}

impl ToValue for DeviceCommonError {
    #[inline]
    fn to_value(&self) -> glib::Value {
        let mut value = glib::Value::for_value_type::<Self>();
        unsafe {
            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
        }
        value
    }

    #[inline]
    fn value_type(&self) -> glib::Type {
        Self::static_type()
    }
}

impl From<DeviceCommonError> for glib::Value {
    #[inline]
    fn from(v: DeviceCommonError) -> Self {
        ToValue::to_value(&v)
    }
}

/// A set of enumerations for the interface of hwdep device.
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "ALSAHwdepIfaceType")]
pub enum IfaceType {
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_OPL2")]
    Opl2,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_OPL3")]
    Opl3,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_OPL4")]
    Opl4,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_SB16CSP")]
    Sb16csp,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_EMU10K1")]
    Emu10k1,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_YSS225")]
    Yss225,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_ICS2115")]
    Ics2115,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_SSCAPE")]
    Sscape,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_VX")]
    Vx,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_MIXART")]
    Mixart,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_USX2Y")]
    Usx2y,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_EMUX_WAVETABLE")]
    EmuxWavetable,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_BLUETOOTH")]
    Bluetooth,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_USX2Y_PCM")]
    Usx2yPcm,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_PCXHR")]
    Pcxhr,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_SB_RC")]
    SbRc,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_HDA")]
    Hda,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_USB_STREAM")]
    UsbStream,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_DICE")]
    FwDice,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_FIREWORKS")]
    FwFireworks,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_BEBOB")]
    FwBebob,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_OXFW")]
    FwOxfw,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_DIGI00X")]
    FwDigi00x,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_TASCAM")]
    FwTascam,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_LINE6")]
    Line6,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_MOTU")]
    FwMotu,
    #[doc(alias = "ALSAHWDEP_IFACE_TYPE_FW_FIREFACE")]
    FwFireface,
    #[doc(hidden)]
    __Unknown(i32),
}

#[doc(hidden)]
impl IntoGlib for IfaceType {
    type GlibType = ffi::ALSAHwdepIfaceType;

    fn into_glib(self) -> ffi::ALSAHwdepIfaceType {
        match self {
            Self::Opl2 => ffi::ALSAHWDEP_IFACE_TYPE_OPL2,
            Self::Opl3 => ffi::ALSAHWDEP_IFACE_TYPE_OPL3,
            Self::Opl4 => ffi::ALSAHWDEP_IFACE_TYPE_OPL4,
            Self::Sb16csp => ffi::ALSAHWDEP_IFACE_TYPE_SB16CSP,
            Self::Emu10k1 => ffi::ALSAHWDEP_IFACE_TYPE_EMU10K1,
            Self::Yss225 => ffi::ALSAHWDEP_IFACE_TYPE_YSS225,
            Self::Ics2115 => ffi::ALSAHWDEP_IFACE_TYPE_ICS2115,
            Self::Sscape => ffi::ALSAHWDEP_IFACE_TYPE_SSCAPE,
            Self::Vx => ffi::ALSAHWDEP_IFACE_TYPE_VX,
            Self::Mixart => ffi::ALSAHWDEP_IFACE_TYPE_MIXART,
            Self::Usx2y => ffi::ALSAHWDEP_IFACE_TYPE_USX2Y,
            Self::EmuxWavetable => ffi::ALSAHWDEP_IFACE_TYPE_EMUX_WAVETABLE,
            Self::Bluetooth => ffi::ALSAHWDEP_IFACE_TYPE_BLUETOOTH,
            Self::Usx2yPcm => ffi::ALSAHWDEP_IFACE_TYPE_USX2Y_PCM,
            Self::Pcxhr => ffi::ALSAHWDEP_IFACE_TYPE_PCXHR,
            Self::SbRc => ffi::ALSAHWDEP_IFACE_TYPE_SB_RC,
            Self::Hda => ffi::ALSAHWDEP_IFACE_TYPE_HDA,
            Self::UsbStream => ffi::ALSAHWDEP_IFACE_TYPE_USB_STREAM,
            Self::FwDice => ffi::ALSAHWDEP_IFACE_TYPE_FW_DICE,
            Self::FwFireworks => ffi::ALSAHWDEP_IFACE_TYPE_FW_FIREWORKS,
            Self::FwBebob => ffi::ALSAHWDEP_IFACE_TYPE_FW_BEBOB,
            Self::FwOxfw => ffi::ALSAHWDEP_IFACE_TYPE_FW_OXFW,
            Self::FwDigi00x => ffi::ALSAHWDEP_IFACE_TYPE_FW_DIGI00X,
            Self::FwTascam => ffi::ALSAHWDEP_IFACE_TYPE_FW_TASCAM,
            Self::Line6 => ffi::ALSAHWDEP_IFACE_TYPE_LINE6,
            Self::FwMotu => ffi::ALSAHWDEP_IFACE_TYPE_FW_MOTU,
            Self::FwFireface => ffi::ALSAHWDEP_IFACE_TYPE_FW_FIREFACE,
            Self::__Unknown(value) => value,
        }
    }
}

#[doc(hidden)]
impl FromGlib<ffi::ALSAHwdepIfaceType> for IfaceType {
    unsafe fn from_glib(value: ffi::ALSAHwdepIfaceType) -> Self {
        match value {
            ffi::ALSAHWDEP_IFACE_TYPE_OPL2 => Self::Opl2,
            ffi::ALSAHWDEP_IFACE_TYPE_OPL3 => Self::Opl3,
            ffi::ALSAHWDEP_IFACE_TYPE_OPL4 => Self::Opl4,
            ffi::ALSAHWDEP_IFACE_TYPE_SB16CSP => Self::Sb16csp,
            ffi::ALSAHWDEP_IFACE_TYPE_EMU10K1 => Self::Emu10k1,
            ffi::ALSAHWDEP_IFACE_TYPE_YSS225 => Self::Yss225,
            ffi::ALSAHWDEP_IFACE_TYPE_ICS2115 => Self::Ics2115,
            ffi::ALSAHWDEP_IFACE_TYPE_SSCAPE => Self::Sscape,
            ffi::ALSAHWDEP_IFACE_TYPE_VX => Self::Vx,
            ffi::ALSAHWDEP_IFACE_TYPE_MIXART => Self::Mixart,
            ffi::ALSAHWDEP_IFACE_TYPE_USX2Y => Self::Usx2y,
            ffi::ALSAHWDEP_IFACE_TYPE_EMUX_WAVETABLE => Self::EmuxWavetable,
            ffi::ALSAHWDEP_IFACE_TYPE_BLUETOOTH => Self::Bluetooth,
            ffi::ALSAHWDEP_IFACE_TYPE_USX2Y_PCM => Self::Usx2yPcm,
            ffi::ALSAHWDEP_IFACE_TYPE_PCXHR => Self::Pcxhr,
            ffi::ALSAHWDEP_IFACE_TYPE_SB_RC => Self::SbRc,
            ffi::ALSAHWDEP_IFACE_TYPE_HDA => Self::Hda,
            ffi::ALSAHWDEP_IFACE_TYPE_USB_STREAM => Self::UsbStream,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_DICE => Self::FwDice,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_FIREWORKS => Self::FwFireworks,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_BEBOB => Self::FwBebob,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_OXFW => Self::FwOxfw,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_DIGI00X => Self::FwDigi00x,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_TASCAM => Self::FwTascam,
            ffi::ALSAHWDEP_IFACE_TYPE_LINE6 => Self::Line6,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_MOTU => Self::FwMotu,
            ffi::ALSAHWDEP_IFACE_TYPE_FW_FIREFACE => Self::FwFireface,
            value => Self::__Unknown(value),
        }
    }
}

impl StaticType for IfaceType {
    #[inline]
    #[doc(alias = "alsahwdep_iface_type_get_type")]
    fn static_type() -> glib::Type {
        unsafe { from_glib(ffi::alsahwdep_iface_type_get_type()) }
    }
}

impl glib::HasParamSpec for IfaceType {
    type ParamSpec = glib::ParamSpecEnum;
    type SetValue = Self;
    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;

    fn param_spec_builder() -> Self::BuilderFn {
        Self::ParamSpec::builder_with_default
    }
}

impl glib::value::ValueType for IfaceType {
    type Type = Self;
}

unsafe impl<'a> glib::value::FromValue<'a> for IfaceType {
    type Checker = glib::value::GenericValueTypeChecker<Self>;

    #[inline]
    unsafe fn from_value(value: &'a glib::Value) -> Self {
        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
    }
}

impl ToValue for IfaceType {
    #[inline]
    fn to_value(&self) -> glib::Value {
        let mut value = glib::Value::for_value_type::<Self>();
        unsafe {
            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
        }
        value
    }

    #[inline]
    fn value_type(&self) -> glib::Type {
        Self::static_type()
    }
}

impl From<IfaceType> for glib::Value {
    #[inline]
    fn from(v: IfaceType) -> Self {
        ToValue::to_value(&v)
    }
}