use crate::ffi;
use glib::{prelude::*, translate::*};
#[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)
}
}
#[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)
}
}