use crate::{ffi, ClientInfo, ClientPool, PortInfo, QueueInfo, SystemInfo};
use glib::translate::*;
#[doc(alias = "alsaseq_get_client_id_list")]
#[doc(alias = "get_client_id_list")]
pub fn client_id_list() -> Result<Vec<u8>, glib::Error> {
unsafe {
let mut entries = std::ptr::null_mut();
let mut entry_count = std::mem::MaybeUninit::uninit();
let mut error = std::ptr::null_mut();
let is_ok =
ffi::alsaseq_get_client_id_list(&mut entries, entry_count.as_mut_ptr(), &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(FromGlibContainer::from_glib_full_num(
entries,
entry_count.assume_init() as _,
))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_client_info")]
#[doc(alias = "get_client_info")]
pub fn client_info(client_id: u8) -> Result<ClientInfo, glib::Error> {
unsafe {
let mut client_info = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_client_info(client_id, &mut client_info, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(client_info))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_client_pool")]
#[doc(alias = "get_client_pool")]
pub fn client_pool(client_id: u8) -> Result<ClientPool, glib::Error> {
unsafe {
let mut client_pool = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_client_pool(client_id, &mut client_pool, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(client_pool))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_port_id_list")]
#[doc(alias = "get_port_id_list")]
pub fn port_id_list(client_id: u8) -> Result<Vec<u8>, glib::Error> {
unsafe {
let mut entries = std::ptr::null_mut();
let mut entry_count = std::mem::MaybeUninit::uninit();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_port_id_list(
client_id,
&mut entries,
entry_count.as_mut_ptr(),
&mut error,
);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(FromGlibContainer::from_glib_full_num(
entries,
entry_count.assume_init() as _,
))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_port_info")]
#[doc(alias = "get_port_info")]
pub fn port_info(client_id: u8, port_id: u8) -> Result<PortInfo, glib::Error> {
unsafe {
let mut port_info = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_port_info(client_id, port_id, &mut port_info, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(port_info))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_queue_id_list")]
#[doc(alias = "get_queue_id_list")]
pub fn queue_id_list() -> Result<Vec<u8>, glib::Error> {
unsafe {
let mut entries = std::ptr::null_mut();
let mut entry_count = std::mem::MaybeUninit::uninit();
let mut error = std::ptr::null_mut();
let is_ok =
ffi::alsaseq_get_queue_id_list(&mut entries, entry_count.as_mut_ptr(), &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(FromGlibContainer::from_glib_full_num(
entries,
entry_count.assume_init() as _,
))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_queue_info_by_id")]
#[doc(alias = "get_queue_info_by_id")]
pub fn queue_info_by_id(queue_id: u8) -> Result<QueueInfo, glib::Error> {
unsafe {
let mut queue_info = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_queue_info_by_id(queue_id, &mut queue_info, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(queue_info))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_queue_info_by_name")]
#[doc(alias = "get_queue_info_by_name")]
pub fn queue_info_by_name(name: &str) -> Result<QueueInfo, glib::Error> {
unsafe {
let mut queue_info = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok =
ffi::alsaseq_get_queue_info_by_name(name.to_glib_none().0, &mut queue_info, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(queue_info))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_seq_devnode")]
#[doc(alias = "get_seq_devnode")]
pub fn seq_devnode() -> Result<glib::GString, glib::Error> {
unsafe {
let mut devnode = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_seq_devnode(&mut devnode, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(devnode))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_seq_sysname")]
#[doc(alias = "get_seq_sysname")]
pub fn seq_sysname() -> Result<glib::GString, glib::Error> {
unsafe {
let mut sysname = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_seq_sysname(&mut sysname, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(sysname))
} else {
Err(from_glib_full(error))
}
}
}
#[doc(alias = "alsaseq_get_system_info")]
#[doc(alias = "get_system_info")]
pub fn system_info() -> Result<SystemInfo, glib::Error> {
unsafe {
let mut system_info = std::ptr::null_mut();
let mut error = std::ptr::null_mut();
let is_ok = ffi::alsaseq_get_system_info(&mut system_info, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(from_glib_full(system_info))
} else {
Err(from_glib_full(error))
}
}
}