use crate::{ffi, unsupported, MediaPlayerError};
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct MediaQuery;
impl MediaQuery {
#[must_use]
pub fn is_supported() -> bool {
unsafe { ffi::mp_media_query_is_supported() != 0 }
}
#[must_use]
pub fn unavailable_reason() -> String {
unsafe {
unsupported::take_string(ffi::mp_media_query_copy_unavailable_reason())
.unwrap_or_else(|| "MPMediaQuery is unavailable on macOS".to_string())
}
}
#[must_use]
pub fn unsupported_error() -> MediaPlayerError {
unsupported::not_available("MPMediaQuery", Some(Self::unavailable_reason()))
}
pub fn songs_query() -> Result<Self, MediaPlayerError> {
Err(Self::unsupported_error())
}
}