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