#![allow(missing_docs, non_camel_case_types)]
use core::ffi::{c_char, c_double, c_int, c_void};
pub type MpCommandCallback = unsafe extern "C" fn(
refcon: *mut c_void,
command_id: c_int,
timestamp: c_double,
extra: c_double,
seek_type: c_int,
) -> c_int;
extern "C" {
pub fn mp_string_free(s: *mut c_char);
pub fn mp_now_playing_set_info(
title: *const c_char,
artist: *const c_char,
album_title: *const c_char,
playback_duration: c_double,
elapsed_playback_time: c_double,
playback_rate: c_double,
media_type: c_int,
content_id: *const c_char,
asset_url: *const c_char,
artwork: *mut c_void,
);
pub fn mp_now_playing_clear();
pub fn mp_now_playing_set_playback_state(state: c_int);
pub fn mp_now_playing_get_playback_state() -> c_int;
pub fn mp_remote_command_add_handler(
command_id: c_int,
callback: Option<MpCommandCallback>,
refcon: *mut c_void,
) -> *mut c_void;
pub fn mp_remote_command_remove_handler(token: *mut c_void);
pub fn mp_command_token_release(token: *mut c_void);
pub fn mp_artwork_new_from_path(path: *const c_char) -> *mut c_void;
pub fn mp_artwork_new_from_path_with_size(
path: *const c_char,
width: c_double,
height: c_double,
) -> *mut c_void;
pub fn mp_artwork_release(artwork: *mut c_void);
}