use fmod_sys::*;
use std::ffi::c_int;
use crate::{Channel, Sound};
use crate::{FmodResultExt, Result};
impl Channel {
pub fn is_virtual(&self) -> Result<bool> {
let mut is_virtual = FMOD_BOOL::FALSE;
unsafe {
FMOD_Channel_IsVirtual(self.inner.as_ptr(), &raw mut is_virtual).to_result()?;
}
Ok(is_virtual.into())
}
pub fn get_current_sound(&self) -> Result<Option<Sound>> {
let mut sound = std::ptr::null_mut();
unsafe {
FMOD_Channel_GetCurrentSound(self.inner.as_ptr(), &raw mut sound).to_result()?;
}
Ok(if sound.is_null() {
None
} else {
Some(unsafe { Sound::from_ffi(sound) })
})
}
pub fn get_index(&self) -> Result<c_int> {
let mut index = 0;
unsafe {
FMOD_Channel_GetIndex(self.inner.as_ptr(), &raw mut index).to_result()?;
}
Ok(index)
}
}