Advertisement
NeoLegends

libspotify Bindings

May 9th, 2016
728
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 62.06 KB | None | 0 0
  1. //! This module contains generated bindings. It is not
  2. //! meant to be used directly.
  3.  
  4. /* automatically generated by rust-bindgen */
  5. #![allow(dead_code, non_camel_case_types, non_snake_case, private_in_public)]
  6.  
  7. pub type uintptr_t = ::std::os::raw::c_ulonglong;
  8. pub type va_list = *mut ::std::os::raw::c_char;
  9. pub type size_t = ::std::os::raw::c_ulonglong;
  10. pub type ptrdiff_t = ::std::os::raw::c_longlong;
  11. pub type intptr_t = ::std::os::raw::c_longlong;
  12. pub type wchar_t = ::std::os::raw::c_ushort;
  13. pub type __crt_bool = u8;
  14. pub type errno_t = ::std::os::raw::c_int;
  15. pub type wint_t = ::std::os::raw::c_ushort;
  16. pub type wctype_t = ::std::os::raw::c_ushort;
  17. pub type __time32_t = ::std::os::raw::c_long;
  18. pub type __time64_t = ::std::os::raw::c_longlong;
  19.  
  20. pub type time_t = __time64_t;
  21. pub type rsize_t = size_t;
  22. pub type sp_uint64 = ::std::os::raw::c_ulonglong;
  23. pub type _bool = ::std::os::raw::c_uchar;
  24. pub type byte = ::std::os::raw::c_uchar;
  25. pub enum Struct_sp_session { }
  26. pub type sp_session = Struct_sp_session;
  27. pub enum Struct_sp_track { }
  28. pub type sp_track = Struct_sp_track;
  29. pub enum Struct_sp_album { }
  30. pub type sp_album = Struct_sp_album;
  31. pub enum Struct_sp_artist { }
  32. pub type sp_artist = Struct_sp_artist;
  33. pub enum Struct_sp_artistbrowse { }
  34. pub type sp_artistbrowse = Struct_sp_artistbrowse;
  35. pub enum Struct_sp_albumbrowse { }
  36. pub type sp_albumbrowse = Struct_sp_albumbrowse;
  37. pub enum Struct_sp_toplistbrowse { }
  38. pub type sp_toplistbrowse = Struct_sp_toplistbrowse;
  39. pub enum Struct_sp_search { }
  40. pub type sp_search = Struct_sp_search;
  41. pub enum Struct_sp_link { }
  42. pub type sp_link = Struct_sp_link;
  43. pub enum Struct_sp_image { }
  44. pub type sp_image = Struct_sp_image;
  45. pub enum Struct_sp_user { }
  46. pub type sp_user = Struct_sp_user;
  47. pub enum Struct_sp_playlist { }
  48. pub type sp_playlist = Struct_sp_playlist;
  49. pub enum Struct_sp_playlistcontainer { }
  50. pub type sp_playlistcontainer = Struct_sp_playlistcontainer;
  51. pub enum Struct_sp_inbox { }
  52. pub type sp_inbox = Struct_sp_inbox;
  53. #[derive(Clone, Copy, Debug)]
  54. #[repr(i32)]
  55. pub enum Enum_sp_error {
  56.     SP_ERROR_OK = 0,
  57.     SP_ERROR_BAD_API_VERSION = 1,
  58.     SP_ERROR_API_INITIALIZATION_FAILED = 2,
  59.     SP_ERROR_TRACK_NOT_PLAYABLE = 3,
  60.     SP_ERROR_BAD_APPLICATION_KEY = 5,
  61.     SP_ERROR_BAD_USERNAME_OR_PASSWORD = 6,
  62.     SP_ERROR_USER_BANNED = 7,
  63.     SP_ERROR_UNABLE_TO_CONTACT_SERVER = 8,
  64.     SP_ERROR_CLIENT_TOO_OLD = 9,
  65.     SP_ERROR_OTHER_PERMANENT = 10,
  66.     SP_ERROR_BAD_USER_AGENT = 11,
  67.     SP_ERROR_MISSING_CALLBACK = 12,
  68.     SP_ERROR_INVALID_INDATA = 13,
  69.     SP_ERROR_INDEX_OUT_OF_RANGE = 14,
  70.     SP_ERROR_USER_NEEDS_PREMIUM = 15,
  71.     SP_ERROR_OTHER_TRANSIENT = 16,
  72.     SP_ERROR_IS_LOADING = 17,
  73.     SP_ERROR_NO_STREAM_AVAILABLE = 18,
  74.     SP_ERROR_PERMISSION_DENIED = 19,
  75.     SP_ERROR_INBOX_IS_FULL = 20,
  76.     SP_ERROR_NO_CACHE = 21,
  77.     SP_ERROR_NO_SUCH_USER = 22,
  78.     SP_ERROR_NO_CREDENTIALS = 23,
  79.     SP_ERROR_NETWORK_DISABLED = 24,
  80.     SP_ERROR_INVALID_DEVICE_ID = 25,
  81.     SP_ERROR_CANT_OPEN_TRACE_FILE = 26,
  82.     SP_ERROR_APPLICATION_BANNED = 27,
  83.     SP_ERROR_OFFLINE_TOO_MANY_TRACKS = 31,
  84.     SP_ERROR_OFFLINE_DISK_CACHE = 32,
  85.     SP_ERROR_OFFLINE_EXPIRED = 33,
  86.     SP_ERROR_OFFLINE_NOT_ALLOWED = 34,
  87.     SP_ERROR_OFFLINE_LICENSE_LOST = 35,
  88.     SP_ERROR_OFFLINE_LICENSE_ERROR = 36,
  89.     SP_ERROR_LASTFM_AUTH_ERROR = 39,
  90.     SP_ERROR_INVALID_ARGUMENT = 40,
  91.     SP_ERROR_SYSTEM_FAILURE = 41,
  92. }
  93. pub type sp_error = Enum_sp_error;
  94. #[derive(Clone, Copy, Debug)]
  95. #[repr(i32)]
  96. pub enum Enum_sp_connectionstate {
  97.     SP_CONNECTION_STATE_LOGGED_OUT = 0,
  98.     SP_CONNECTION_STATE_LOGGED_IN = 1,
  99.     SP_CONNECTION_STATE_DISCONNECTED = 2,
  100.     SP_CONNECTION_STATE_UNDEFINED = 3,
  101.     SP_CONNECTION_STATE_OFFLINE = 4,
  102. }
  103. pub type sp_connectionstate = Enum_sp_connectionstate;
  104. #[derive(Clone, Copy, Debug)]
  105. #[repr(i32)]
  106. pub enum Enum_sp_sampletype { SP_SAMPLETYPE_INT16_NATIVE_ENDIAN = 0, }
  107. pub type sp_sampletype = Enum_sp_sampletype;
  108. #[repr(C)]
  109. #[derive(Copy, Debug)]
  110. pub struct Struct_sp_audioformat {
  111.     pub sample_type: sp_sampletype,
  112.     pub sample_rate: ::std::os::raw::c_int,
  113.     pub channels: ::std::os::raw::c_int,
  114. }
  115. impl ::std::clone::Clone for Struct_sp_audioformat {
  116.     fn clone(&self) -> Self { *self }
  117. }
  118. impl ::std::default::Default for Struct_sp_audioformat {
  119.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  120. }
  121. pub type sp_audioformat = Struct_sp_audioformat;
  122. #[derive(Clone, Copy, Debug)]
  123. #[repr(i32)]
  124. pub enum Enum_sp_bitrate {
  125.     SP_BITRATE_160k = 0,
  126.     SP_BITRATE_320k = 1,
  127.     SP_BITRATE_96k = 2,
  128. }
  129. pub type sp_bitrate = Enum_sp_bitrate;
  130. #[derive(Clone, Copy, Debug)]
  131. #[repr(i32)]
  132. pub enum Enum_sp_playlist_type {
  133.     SP_PLAYLIST_TYPE_PLAYLIST = 0,
  134.     SP_PLAYLIST_TYPE_START_FOLDER = 1,
  135.     SP_PLAYLIST_TYPE_END_FOLDER = 2,
  136.     SP_PLAYLIST_TYPE_PLACEHOLDER = 3,
  137. }
  138. pub type sp_playlist_type = Enum_sp_playlist_type;
  139. #[derive(Clone, Copy, Debug)]
  140. #[repr(i32)]
  141. pub enum Enum_sp_search_type {
  142.     SP_SEARCH_STANDARD = 0,
  143.     SP_SEARCH_SUGGEST = 1,
  144. }
  145. pub type sp_search_type = Enum_sp_search_type;
  146. #[derive(Clone, Copy, Debug)]
  147. #[repr(i32)]
  148. pub enum Enum_sp_playlist_offline_status {
  149.     SP_PLAYLIST_OFFLINE_STATUS_NO = 0,
  150.     SP_PLAYLIST_OFFLINE_STATUS_YES = 1,
  151.     SP_PLAYLIST_OFFLINE_STATUS_DOWNLOADING = 2,
  152.     SP_PLAYLIST_OFFLINE_STATUS_WAITING = 3,
  153. }
  154. pub type sp_playlist_offline_status = Enum_sp_playlist_offline_status;
  155. #[derive(Clone, Copy, Debug)]
  156. #[repr(i32)]
  157. pub enum Enum_sp_availability {
  158.     SP_TRACK_AVAILABILITY_UNAVAILABLE = 0,
  159.     SP_TRACK_AVAILABILITY_AVAILABLE = 1,
  160.     SP_TRACK_AVAILABILITY_NOT_STREAMABLE = 2,
  161.     SP_TRACK_AVAILABILITY_BANNED_BY_ARTIST = 3,
  162. }
  163. pub type sp_track_availability = Enum_sp_availability;
  164. #[derive(Clone, Copy, Debug)]
  165. #[repr(i32)]
  166. pub enum Enum_sp_track_offline_status {
  167.     SP_TRACK_OFFLINE_NO = 0,
  168.     SP_TRACK_OFFLINE_WAITING = 1,
  169.     SP_TRACK_OFFLINE_DOWNLOADING = 2,
  170.     SP_TRACK_OFFLINE_DONE = 3,
  171.     SP_TRACK_OFFLINE_ERROR = 4,
  172.     SP_TRACK_OFFLINE_DONE_EXPIRED = 5,
  173.     SP_TRACK_OFFLINE_LIMIT_EXCEEDED = 6,
  174.     SP_TRACK_OFFLINE_DONE_RESYNC = 7,
  175. }
  176. pub type sp_track_offline_status = Enum_sp_track_offline_status;
  177. #[derive(Clone, Copy, Debug)]
  178. #[repr(i32)]
  179. pub enum Enum_sp_image_size {
  180.     SP_IMAGE_SIZE_NORMAL = 0,
  181.     SP_IMAGE_SIZE_SMALL = 1,
  182.     SP_IMAGE_SIZE_LARGE = 2,
  183. }
  184. pub type sp_image_size = Enum_sp_image_size;
  185. #[repr(C)]
  186. #[derive(Copy, Debug)]
  187. pub struct Struct_sp_audio_buffer_stats {
  188.     pub samples: ::std::os::raw::c_int,
  189.     pub stutter: ::std::os::raw::c_int,
  190. }
  191. impl ::std::clone::Clone for Struct_sp_audio_buffer_stats {
  192.     fn clone(&self) -> Self { *self }
  193. }
  194. impl ::std::default::Default for Struct_sp_audio_buffer_stats {
  195.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  196. }
  197. pub type sp_audio_buffer_stats = Struct_sp_audio_buffer_stats;
  198. #[repr(C)]
  199. #[derive(Copy, Debug)]
  200. pub struct Struct_sp_subscribers {
  201.     pub count: ::std::os::raw::c_uint,
  202.     pub subscribers: [*mut ::std::os::raw::c_char; 1usize],
  203. }
  204. impl ::std::clone::Clone for Struct_sp_subscribers {
  205.     fn clone(&self) -> Self { *self }
  206. }
  207. impl ::std::default::Default for Struct_sp_subscribers {
  208.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  209. }
  210. pub type sp_subscribers = Struct_sp_subscribers;
  211. #[derive(Clone, Copy, Debug)]
  212. #[repr(i32)]
  213. pub enum Enum_sp_connection_type {
  214.     SP_CONNECTION_TYPE_UNKNOWN = 0,
  215.     SP_CONNECTION_TYPE_NONE = 1,
  216.     SP_CONNECTION_TYPE_MOBILE = 2,
  217.     SP_CONNECTION_TYPE_MOBILE_ROAMING = 3,
  218.     SP_CONNECTION_TYPE_WIFI = 4,
  219.     SP_CONNECTION_TYPE_WIRED = 5,
  220. }
  221. pub type sp_connection_type = Enum_sp_connection_type;
  222. #[derive(Clone, Copy, Debug)]
  223. #[repr(i32)]
  224. pub enum Enum_sp_connection_rules {
  225.     SP_CONNECTION_RULE_NETWORK = 1,
  226.     SP_CONNECTION_RULE_NETWORK_IF_ROAMING = 2,
  227.     SP_CONNECTION_RULE_ALLOW_SYNC_OVER_MOBILE = 4,
  228.     SP_CONNECTION_RULE_ALLOW_SYNC_OVER_WIFI = 8,
  229. }
  230. pub type sp_connection_rules = Enum_sp_connection_rules;
  231. #[derive(Clone, Copy, Debug)]
  232. #[repr(i32)]
  233. pub enum Enum_sp_artistbrowse_type {
  234.     SP_ARTISTBROWSE_FULL = 0,
  235.     SP_ARTISTBROWSE_NO_TRACKS = 1,
  236.     SP_ARTISTBROWSE_NO_ALBUMS = 2,
  237. }
  238. pub type sp_artistbrowse_type = Enum_sp_artistbrowse_type;
  239. #[derive(Clone, Copy, Debug)]
  240. #[repr(i32)]
  241. pub enum Enum_sp_social_provider {
  242.     SP_SOCIAL_PROVIDER_SPOTIFY = 0,
  243.     SP_SOCIAL_PROVIDER_FACEBOOK = 1,
  244.     SP_SOCIAL_PROVIDER_LASTFM = 2,
  245. }
  246. pub type sp_social_provider = Enum_sp_social_provider;
  247. #[derive(Clone, Copy, Debug)]
  248. #[repr(i32)]
  249. pub enum Enum_sp_scrobbling_state {
  250.     SP_SCROBBLING_STATE_USE_GLOBAL_SETTING = 0,
  251.     SP_SCROBBLING_STATE_LOCAL_ENABLED = 1,
  252.     SP_SCROBBLING_STATE_LOCAL_DISABLED = 2,
  253.     SP_SCROBBLING_STATE_GLOBAL_ENABLED = 3,
  254.     SP_SCROBBLING_STATE_GLOBAL_DISABLED = 4,
  255. }
  256. pub type sp_scrobbling_state = Enum_sp_scrobbling_state;
  257. #[repr(C)]
  258. #[derive(Copy, Debug)]
  259. pub struct Struct_sp_offline_sync_status {
  260.     pub queued_tracks: ::std::os::raw::c_int,
  261.     pub queued_bytes: sp_uint64,
  262.     pub done_tracks: ::std::os::raw::c_int,
  263.     pub done_bytes: sp_uint64,
  264.     pub copied_tracks: ::std::os::raw::c_int,
  265.     pub copied_bytes: sp_uint64,
  266.     pub willnotcopy_tracks: ::std::os::raw::c_int,
  267.     pub error_tracks: ::std::os::raw::c_int,
  268.     pub syncing: _bool,
  269. }
  270. impl ::std::clone::Clone for Struct_sp_offline_sync_status {
  271.     fn clone(&self) -> Self { *self }
  272. }
  273. impl ::std::default::Default for Struct_sp_offline_sync_status {
  274.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  275. }
  276. pub type sp_offline_sync_status = Struct_sp_offline_sync_status;
  277. #[repr(C)]
  278. #[derive(Copy)]
  279. pub struct Struct_sp_session_callbacks {
  280.     pub logged_in: ::std::option::Option<unsafe extern "system" fn(session:
  281.                                                                   *mut sp_session,
  282.                                                               error:
  283.                                                                   sp_error)>,
  284.     pub logged_out: ::std::option::Option<unsafe extern "system" fn(session:
  285.                                                                    *mut sp_session)>,
  286.     pub metadata_updated: ::std::option::Option<unsafe extern "system" fn(session:
  287.                                                                          *mut sp_session)>,
  288.     pub connection_error: ::std::option::Option<unsafe extern "system" fn(session:
  289.                                                                          *mut sp_session,
  290.                                                                      error:
  291.                                                                          sp_error)>,
  292.     pub message_to_user: ::std::option::Option<unsafe extern "system" fn(session:
  293.                                                                         *mut sp_session,
  294.                                                                     message:
  295.                                                                         *const ::std::os::raw::c_char)>,
  296.     pub notify_main_thread: ::std::option::Option<unsafe extern "system" fn(session:
  297.                                                                            *mut sp_session)>,
  298.     pub music_delivery: ::std::option::Option<unsafe extern "system" fn(session:
  299.                                                                        *mut sp_session,
  300.                                                                    format:
  301.                                                                        *const sp_audioformat,
  302.                                                                    frames:
  303.                                                                        *const ::std::os::raw::c_void,
  304.                                                                    num_frames:
  305.                                                                        ::std::os::raw::c_int)
  306.                                                   -> ::std::os::raw::c_int>,
  307.     pub play_token_lost: ::std::option::Option<unsafe extern "system" fn(session:
  308.                                                                         *mut sp_session)>,
  309.     pub log_message: ::std::option::Option<unsafe extern "system" fn(session:
  310.                                                                     *mut sp_session,
  311.                                                                 data:
  312.                                                                     *const ::std::os::raw::c_char)>,
  313.     pub end_of_track: ::std::option::Option<unsafe extern "system" fn(session:
  314.                                                                      *mut sp_session)>,
  315.     pub streaming_error: ::std::option::Option<unsafe extern "system" fn(session:
  316.                                                                         *mut sp_session,
  317.                                                                     error:
  318.                                                                         sp_error)>,
  319.     pub userinfo_updated: ::std::option::Option<unsafe extern "system" fn(session:
  320.                                                                          *mut sp_session)>,
  321.     pub start_playback: ::std::option::Option<unsafe extern "system" fn(session:
  322.                                                                        *mut sp_session)>,
  323.     pub stop_playback: ::std::option::Option<unsafe extern "system" fn(session:
  324.                                                                       *mut sp_session)>,
  325.     pub get_audio_buffer_stats: ::std::option::Option<unsafe extern "system" fn(session:
  326.                                                                                *mut sp_session,
  327.                                                                            stats:
  328.                                                                                *mut sp_audio_buffer_stats)>,
  329.     pub offline_status_updated: ::std::option::Option<unsafe extern "system" fn(session:
  330.                                                                                *mut sp_session)>,
  331.     pub offline_error: ::std::option::Option<unsafe extern "system" fn(session:
  332.                                                                       *mut sp_session,
  333.                                                                   error:
  334.                                                                       sp_error)>,
  335.     pub credentials_blob_updated: ::std::option::Option<unsafe extern "system" fn(session:
  336.                                                                                  *mut sp_session,
  337.                                                                              blob:
  338.                                                                                  *const ::std::os::raw::c_char)>,
  339.     pub connectionstate_updated: ::std::option::Option<unsafe extern "system" fn(session:
  340.                                                                                 *mut sp_session)>,
  341.     pub scrobble_error: ::std::option::Option<unsafe extern "system" fn(session:
  342.                                                                        *mut sp_session,
  343.                                                                    error:
  344.                                                                        sp_error)>,
  345.     pub private_session_mode_changed: ::std::option::Option<unsafe extern "system" fn(session:
  346.                                                                                      *mut sp_session,
  347.                                                                                  is_private:
  348.                                                                                      _bool)>,
  349. }
  350. impl ::std::clone::Clone for Struct_sp_session_callbacks {
  351.     fn clone(&self) -> Self { *self }
  352. }
  353. impl ::std::default::Default for Struct_sp_session_callbacks {
  354.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  355. }
  356. pub type sp_session_callbacks = Struct_sp_session_callbacks;
  357. #[repr(C)]
  358. #[derive(Copy, Debug)]
  359. pub struct Struct_sp_session_config {
  360.     pub api_version: ::std::os::raw::c_int,
  361.     pub cache_location: *const ::std::os::raw::c_char,
  362.     pub settings_location: *const ::std::os::raw::c_char,
  363.     pub application_key: *const ::std::os::raw::c_void,
  364.     pub application_key_size: size_t,
  365.     pub user_agent: *const ::std::os::raw::c_char,
  366.     pub callbacks: *const sp_session_callbacks,
  367.     pub userdata: *mut ::std::os::raw::c_void,
  368.     pub compress_playlists: _bool,
  369.     pub dont_save_metadata_for_playlists: _bool,
  370.     pub initially_unload_playlists: _bool,
  371.     pub device_id: *const ::std::os::raw::c_char,
  372.     pub proxy: *const ::std::os::raw::c_char,
  373.     pub proxy_username: *const ::std::os::raw::c_char,
  374.     pub proxy_password: *const ::std::os::raw::c_char,
  375.     pub tracefile: *const ::std::os::raw::c_char,
  376. }
  377. impl ::std::clone::Clone for Struct_sp_session_config {
  378.     fn clone(&self) -> Self { *self }
  379. }
  380. impl ::std::default::Default for Struct_sp_session_config {
  381.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  382. }
  383. pub type sp_session_config = Struct_sp_session_config;
  384. #[derive(Clone, Copy)]
  385. #[repr(i32)]
  386. pub enum Enum_Unnamed1 {
  387.     SP_LINKTYPE_INVALID = 0,
  388.     SP_LINKTYPE_TRACK = 1,
  389.     SP_LINKTYPE_ALBUM = 2,
  390.     SP_LINKTYPE_ARTIST = 3,
  391.     SP_LINKTYPE_SEARCH = 4,
  392.     SP_LINKTYPE_PLAYLIST = 5,
  393.     SP_LINKTYPE_PROFILE = 6,
  394.     SP_LINKTYPE_STARRED = 7,
  395.     SP_LINKTYPE_LOCALTRACK = 8,
  396.     SP_LINKTYPE_IMAGE = 9,
  397. }
  398. pub type sp_linktype = Enum_Unnamed1;
  399. #[derive(Clone, Copy)]
  400. #[repr(i32)]
  401. enum Enum_Unnamed2 {
  402.     SP_ALBUMTYPE_ALBUM = 0,
  403.     SP_ALBUMTYPE_SINGLE = 1,
  404.     SP_ALBUMTYPE_COMPILATION = 2,
  405.     SP_ALBUMTYPE_UNKNOWN = 3,
  406. }
  407. pub type sp_albumtype = Enum_Unnamed2;
  408. pub type albumbrowse_complete_cb =
  409.     unsafe extern "system" fn(result: *mut sp_albumbrowse,
  410.                          userdata: *mut ::std::os::raw::c_void);
  411. pub type artistbrowse_complete_cb =
  412.     unsafe extern "system" fn(result: *mut sp_artistbrowse,
  413.                          userdata: *mut ::std::os::raw::c_void);
  414. #[derive(Clone, Copy)]
  415. #[repr(i32)]
  416. pub enum Enum_Unnamed3 {
  417.     SP_IMAGE_FORMAT_UNKNOWN = -1,
  418.     SP_IMAGE_FORMAT_JPEG = 0,
  419. }
  420. pub type sp_imageformat = Enum_Unnamed3;
  421. pub type image_loaded_cb =
  422.     unsafe extern "system" fn(image: *mut sp_image,
  423.                          userdata: *mut ::std::os::raw::c_void);
  424. pub type search_complete_cb =
  425.     unsafe extern "system" fn(result: *mut sp_search,
  426.                          userdata: *mut ::std::os::raw::c_void);
  427. #[repr(C)]
  428. #[derive(Copy)]
  429. pub struct Struct_sp_playlist_callbacks {
  430.     pub tracks_added: ::std::option::Option<unsafe extern "system" fn(pl:
  431.                                                                      *mut sp_playlist,
  432.                                                                  tracks:
  433.                                                                      *const *mut sp_track,
  434.                                                                  num_tracks:
  435.                                                                      ::std::os::raw::c_int,
  436.                                                                  position:
  437.                                                                      ::std::os::raw::c_int,
  438.                                                                  userdata:
  439.                                                                      *mut ::std::os::raw::c_void)>,
  440.     pub tracks_removed: ::std::option::Option<unsafe extern "system" fn(pl:
  441.                                                                        *mut sp_playlist,
  442.                                                                    tracks:
  443.                                                                        *const ::std::os::raw::c_int,
  444.                                                                    num_tracks:
  445.                                                                        ::std::os::raw::c_int,
  446.                                                                    userdata:
  447.                                                                        *mut ::std::os::raw::c_void)>,
  448.     pub tracks_moved: ::std::option::Option<unsafe extern "system" fn(pl:
  449.                                                                      *mut sp_playlist,
  450.                                                                  tracks:
  451.                                                                      *const ::std::os::raw::c_int,
  452.                                                                  num_tracks:
  453.                                                                      ::std::os::raw::c_int,
  454.                                                                  new_position:
  455.                                                                      ::std::os::raw::c_int,
  456.                                                                  userdata:
  457.                                                                      *mut ::std::os::raw::c_void)>,
  458.     pub playlist_renamed: ::std::option::Option<unsafe extern "system" fn(pl:
  459.                                                                          *mut sp_playlist,
  460.                                                                      userdata:
  461.                                                                          *mut ::std::os::raw::c_void)>,
  462.     pub playlist_state_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  463.                                                                                *mut sp_playlist,
  464.                                                                            userdata:
  465.                                                                                *mut ::std::os::raw::c_void)>,
  466.     pub playlist_update_in_progress: ::std::option::Option<unsafe extern "system" fn(pl:
  467.                                                                                     *mut sp_playlist,
  468.                                                                                 done:
  469.                                                                                     _bool,
  470.                                                                                 userdata:
  471.                                                                                     *mut ::std::os::raw::c_void)>,
  472.     pub playlist_metadata_updated: ::std::option::Option<unsafe extern "system" fn(pl:
  473.                                                                                   *mut sp_playlist,
  474.                                                                               userdata:
  475.                                                                                   *mut ::std::os::raw::c_void)>,
  476.     pub track_created_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  477.                                                                               *mut sp_playlist,
  478.                                                                           position:
  479.                                                                               ::std::os::raw::c_int,
  480.                                                                           user:
  481.                                                                               *mut sp_user,
  482.                                                                           when:
  483.                                                                               ::std::os::raw::c_int,
  484.                                                                           userdata:
  485.                                                                               *mut ::std::os::raw::c_void)>,
  486.     pub track_seen_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  487.                                                                            *mut sp_playlist,
  488.                                                                        position:
  489.                                                                            ::std::os::raw::c_int,
  490.                                                                        seen:
  491.                                                                            _bool,
  492.                                                                        userdata:
  493.                                                                            *mut ::std::os::raw::c_void)>,
  494.     pub description_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  495.                                                                             *mut sp_playlist,
  496.                                                                         desc:
  497.                                                                             *const ::std::os::raw::c_char,
  498.                                                                         userdata:
  499.                                                                             *mut ::std::os::raw::c_void)>,
  500.     pub image_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  501.                                                                       *mut sp_playlist,
  502.                                                                   image:
  503.                                                                       *const byte,
  504.                                                                   userdata:
  505.                                                                       *mut ::std::os::raw::c_void)>,
  506.     pub track_message_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  507.                                                                               *mut sp_playlist,
  508.                                                                           position:
  509.                                                                               ::std::os::raw::c_int,
  510.                                                                           message:
  511.                                                                               *const ::std::os::raw::c_char,
  512.                                                                           userdata:
  513.                                                                               *mut ::std::os::raw::c_void)>,
  514.     pub subscribers_changed: ::std::option::Option<unsafe extern "system" fn(pl:
  515.                                                                             *mut sp_playlist,
  516.                                                                         userdata:
  517.                                                                             *mut ::std::os::raw::c_void)>,
  518. }
  519. impl ::std::clone::Clone for Struct_sp_playlist_callbacks {
  520.     fn clone(&self) -> Self { *self }
  521. }
  522. impl ::std::default::Default for Struct_sp_playlist_callbacks {
  523.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  524. }
  525. pub type sp_playlist_callbacks = Struct_sp_playlist_callbacks;
  526. #[repr(C)]
  527. #[derive(Copy)]
  528. pub struct Struct_sp_playlistcontainer_callbacks {
  529.     pub playlist_added: ::std::option::Option<unsafe extern "system" fn(pc:
  530.                                                                        *mut sp_playlistcontainer,
  531.                                                                    playlist:
  532.                                                                        *mut sp_playlist,
  533.                                                                    position:
  534.                                                                        ::std::os::raw::c_int,
  535.                                                                    userdata:
  536.                                                                        *mut ::std::os::raw::c_void)>,
  537.     pub playlist_removed: ::std::option::Option<unsafe extern "system" fn(pc:
  538.                                                                          *mut sp_playlistcontainer,
  539.                                                                      playlist:
  540.                                                                          *mut sp_playlist,
  541.                                                                      position:
  542.                                                                          ::std::os::raw::c_int,
  543.                                                                      userdata:
  544.                                                                          *mut ::std::os::raw::c_void)>,
  545.     pub playlist_moved: ::std::option::Option<unsafe extern "system" fn(pc:
  546.                                                                        *mut sp_playlistcontainer,
  547.                                                                    playlist:
  548.                                                                        *mut sp_playlist,
  549.                                                                    position:
  550.                                                                        ::std::os::raw::c_int,
  551.                                                                    new_position:
  552.                                                                        ::std::os::raw::c_int,
  553.                                                                    userdata:
  554.                                                                        *mut ::std::os::raw::c_void)>,
  555.     pub container_loaded: ::std::option::Option<unsafe extern "system" fn(pc:
  556.                                                                          *mut sp_playlistcontainer,
  557.                                                                      userdata:
  558.                                                                          *mut ::std::os::raw::c_void)>,
  559. }
  560. impl ::std::clone::Clone for Struct_sp_playlistcontainer_callbacks {
  561.     fn clone(&self) -> Self { *self }
  562. }
  563. impl ::std::default::Default for Struct_sp_playlistcontainer_callbacks {
  564.     fn default() -> Self { unsafe { ::std::mem::zeroed() } }
  565. }
  566. pub type sp_playlistcontainer_callbacks =
  567.     Struct_sp_playlistcontainer_callbacks;
  568. #[derive(Clone, Copy)]
  569. #[repr(i32)]
  570. pub enum Enum_sp_relation_type {
  571.     SP_RELATION_TYPE_UNKNOWN = 0,
  572.     SP_RELATION_TYPE_NONE = 1,
  573.     SP_RELATION_TYPE_UNIDIRECTIONAL = 2,
  574.     SP_RELATION_TYPE_BIDIRECTIONAL = 3,
  575. }
  576. pub type sp_relation_type = Enum_sp_relation_type;
  577. #[derive(Clone, Copy)]
  578. #[repr(i32)]
  579. pub enum Enum_Unnamed4 {
  580.     SP_TOPLIST_TYPE_ARTISTS = 0,
  581.     SP_TOPLIST_TYPE_ALBUMS = 1,
  582.     SP_TOPLIST_TYPE_TRACKS = 2,
  583. }
  584. pub type sp_toplisttype = Enum_Unnamed4;
  585. #[derive(Clone, Copy)]
  586. #[repr(i32)]
  587. pub enum Enum_Unnamed5 {
  588.     SP_TOPLIST_REGION_EVERYWHERE = 0,
  589.     SP_TOPLIST_REGION_USER = 1,
  590. }
  591. pub type sp_toplistregion = Enum_Unnamed5;
  592. pub type toplistbrowse_complete_cb =
  593.     unsafe extern "system" fn(result: *mut sp_toplistbrowse,
  594.                          userdata: *mut ::std::os::raw::c_void);
  595. pub type inboxpost_complete_cb =
  596.     unsafe extern "system" fn(result: *mut sp_inbox,
  597.                          userdata: *mut ::std::os::raw::c_void);
  598. #[link(name = "libspotify")]
  599. extern "system" {
  600.     pub fn sp_error_message(error: sp_error) -> *const ::std::os::raw::c_char;
  601.     pub fn sp_session_create(config: *const sp_session_config,
  602.                              sess: *mut *mut sp_session) -> sp_error;
  603.     pub fn sp_session_release(sess: *mut sp_session) -> sp_error;
  604.     pub fn sp_session_login(session: *mut sp_session,
  605.                             username: *const ::std::os::raw::c_char,
  606.                             password: *const ::std::os::raw::c_char,
  607.                             remember_me: _bool,
  608.                             blob: *const ::std::os::raw::c_char) -> sp_error;
  609.     pub fn sp_session_relogin(session: *mut sp_session) -> sp_error;
  610.     pub fn sp_session_remembered_user(session: *mut sp_session,
  611.                                       buffer: *mut ::std::os::raw::c_char,
  612.                                       buffer_size: size_t)
  613.      -> ::std::os::raw::c_int;
  614.     pub fn sp_session_user_name(session: *mut sp_session)
  615.      -> *const ::std::os::raw::c_char;
  616.     pub fn sp_session_forget_me(session: *mut sp_session) -> sp_error;
  617.     pub fn sp_session_user(session: *mut sp_session) -> *mut sp_user;
  618.     pub fn sp_session_logout(session: *mut sp_session) -> sp_error;
  619.     pub fn sp_session_flush_caches(session: *mut sp_session) -> sp_error;
  620.     pub fn sp_session_connectionstate(session: *mut sp_session)
  621.      -> sp_connectionstate;
  622.     pub fn sp_session_userdata(session: *mut sp_session)
  623.      -> *mut ::std::os::raw::c_void;
  624.     pub fn sp_session_set_cache_size(session: *mut sp_session, size: size_t)
  625.      -> sp_error;
  626.     pub fn sp_session_process_events(session: *mut sp_session,
  627.                                      next_timeout: *mut ::std::os::raw::c_int)
  628.      -> sp_error;
  629.     pub fn sp_session_player_load(session: *mut sp_session,
  630.                                   track: *mut sp_track) -> sp_error;
  631.     pub fn sp_session_player_seek(session: *mut sp_session,
  632.                                   offset: ::std::os::raw::c_int) -> sp_error;
  633.     pub fn sp_session_player_play(session: *mut sp_session, play: _bool)
  634.      -> sp_error;
  635.     pub fn sp_session_player_unload(session: *mut sp_session) -> sp_error;
  636.     pub fn sp_session_player_prefetch(session: *mut sp_session,
  637.                                       track: *mut sp_track) -> sp_error;
  638.     pub fn sp_session_playlistcontainer(session: *mut sp_session)
  639.      -> *mut sp_playlistcontainer;
  640.     pub fn sp_session_inbox_create(session: *mut sp_session)
  641.      -> *mut sp_playlist;
  642.     pub fn sp_session_starred_create(session: *mut sp_session)
  643.      -> *mut sp_playlist;
  644.     pub fn sp_session_starred_for_user_create(session: *mut sp_session,
  645.                                               canonical_username:
  646.                                                   *const ::std::os::raw::c_char)
  647.      -> *mut sp_playlist;
  648.     pub fn sp_session_publishedcontainer_for_user_create(session:
  649.                                                              *mut sp_session,
  650.                                                          canonical_username:
  651.                                                              *const ::std::os::raw::c_char)
  652.      -> *mut sp_playlistcontainer;
  653.     pub fn sp_session_preferred_bitrate(session: *mut sp_session,
  654.                                         bitrate: sp_bitrate) -> sp_error;
  655.     pub fn sp_session_preferred_offline_bitrate(session: *mut sp_session,
  656.                                                 bitrate: sp_bitrate,
  657.                                                 allow_resync: _bool)
  658.      -> sp_error;
  659.     pub fn sp_session_get_volume_normalization(session: *mut sp_session)
  660.      -> _bool;
  661.     pub fn sp_session_set_volume_normalization(session: *mut sp_session,
  662.                                                on: _bool) -> sp_error;
  663.     pub fn sp_session_set_private_session(session: *mut sp_session,
  664.                                           enabled: _bool) -> sp_error;
  665.     pub fn sp_session_is_private_session(session: *mut sp_session) -> _bool;
  666.     pub fn sp_session_set_scrobbling(session: *mut sp_session,
  667.                                      provider: sp_social_provider,
  668.                                      state: sp_scrobbling_state) -> sp_error;
  669.     pub fn sp_session_is_scrobbling(session: *mut sp_session,
  670.                                     provider: sp_social_provider,
  671.                                     state: *mut sp_scrobbling_state)
  672.      -> sp_error;
  673.     pub fn sp_session_is_scrobbling_possible(session: *mut sp_session,
  674.                                              provider: sp_social_provider,
  675.                                              out: *mut _bool) -> sp_error;
  676.     pub fn sp_session_set_social_credentials(session: *mut sp_session,
  677.                                              provider: sp_social_provider,
  678.                                              username:
  679.                                                  *const ::std::os::raw::c_char,
  680.                                              password:
  681.                                                  *const ::std::os::raw::c_char)
  682.      -> sp_error;
  683.     pub fn sp_session_set_connection_type(session: *mut sp_session,
  684.                                           _type: sp_connection_type)
  685.      -> sp_error;
  686.     pub fn sp_session_set_connection_rules(session: *mut sp_session,
  687.                                            rules: sp_connection_rules)
  688.      -> sp_error;
  689.     pub fn sp_offline_tracks_to_sync(session: *mut sp_session)
  690.      -> ::std::os::raw::c_int;
  691.     pub fn sp_offline_num_playlists(session: *mut sp_session)
  692.      -> ::std::os::raw::c_int;
  693.     pub fn sp_offline_sync_get_status(session: *mut sp_session,
  694.                                       status: *mut sp_offline_sync_status)
  695.      -> _bool;
  696.     pub fn sp_offline_time_left(session: *mut sp_session)
  697.      -> ::std::os::raw::c_int;
  698.     pub fn sp_session_user_country(session: *mut sp_session)
  699.      -> ::std::os::raw::c_int;
  700.     pub fn sp_link_create_from_string(link: *const ::std::os::raw::c_char)
  701.      -> *mut sp_link;
  702.     pub fn sp_link_create_from_track(track: *mut sp_track,
  703.                                      offset: ::std::os::raw::c_int)
  704.      -> *mut sp_link;
  705.     pub fn sp_link_create_from_album(album: *mut sp_album) -> *mut sp_link;
  706.     pub fn sp_link_create_from_album_cover(album: *mut sp_album,
  707.                                            size: sp_image_size)
  708.      -> *mut sp_link;
  709.     pub fn sp_link_create_from_artist(artist: *mut sp_artist) -> *mut sp_link;
  710.     pub fn sp_link_create_from_artist_portrait(artist: *mut sp_artist,
  711.                                                size: sp_image_size)
  712.      -> *mut sp_link;
  713.     pub fn sp_link_create_from_artistbrowse_portrait(arb:
  714.                                                          *mut sp_artistbrowse,
  715.                                                      index:
  716.                                                          ::std::os::raw::c_int)
  717.      -> *mut sp_link;
  718.     pub fn sp_link_create_from_search(search: *mut sp_search) -> *mut sp_link;
  719.     pub fn sp_link_create_from_playlist(playlist: *mut sp_playlist)
  720.      -> *mut sp_link;
  721.     pub fn sp_link_create_from_user(user: *mut sp_user) -> *mut sp_link;
  722.     pub fn sp_link_create_from_image(image: *mut sp_image) -> *mut sp_link;
  723.     pub fn sp_link_as_string(link: *mut sp_link,
  724.                              buffer: *mut ::std::os::raw::c_char,
  725.                              buffer_size: ::std::os::raw::c_int)
  726.      -> ::std::os::raw::c_int;
  727.     pub fn sp_link_type(link: *mut sp_link) -> sp_linktype;
  728.     pub fn sp_link_as_track(link: *mut sp_link) -> *mut sp_track;
  729.     pub fn sp_link_as_track_and_offset(link: *mut sp_link,
  730.                                        offset: *mut ::std::os::raw::c_int)
  731.      -> *mut sp_track;
  732.     pub fn sp_link_as_album(link: *mut sp_link) -> *mut sp_album;
  733.     pub fn sp_link_as_artist(link: *mut sp_link) -> *mut sp_artist;
  734.     pub fn sp_link_as_user(link: *mut sp_link) -> *mut sp_user;
  735.     pub fn sp_link_add_ref(link: *mut sp_link) -> sp_error;
  736.     pub fn sp_link_release(link: *mut sp_link) -> sp_error;
  737.     pub fn sp_track_is_loaded(track: *mut sp_track) -> _bool;
  738.     pub fn sp_track_error(track: *mut sp_track) -> sp_error;
  739.     pub fn sp_track_offline_get_status(track: *mut sp_track)
  740.      -> sp_track_offline_status;
  741.     pub fn sp_track_get_availability(session: *mut sp_session,
  742.                                      track: *mut sp_track)
  743.      -> sp_track_availability;
  744.     pub fn sp_track_is_local(session: *mut sp_session, track: *mut sp_track)
  745.      -> _bool;
  746.     pub fn sp_track_is_autolinked(session: *mut sp_session,
  747.                                   track: *mut sp_track) -> _bool;
  748.     pub fn sp_track_get_playable(session: *mut sp_session,
  749.                                  track: *mut sp_track) -> *mut sp_track;
  750.     pub fn sp_track_is_placeholder(track: *mut sp_track) -> _bool;
  751.     pub fn sp_track_is_starred(session: *mut sp_session, track: *mut sp_track)
  752.      -> _bool;
  753.     pub fn sp_track_set_starred(session: *mut sp_session,
  754.                                 tracks: *const *mut sp_track,
  755.                                 num_tracks: ::std::os::raw::c_int,
  756.                                 star: _bool) -> sp_error;
  757.     pub fn sp_track_num_artists(track: *mut sp_track)
  758.      -> ::std::os::raw::c_int;
  759.     pub fn sp_track_artist(track: *mut sp_track, index: ::std::os::raw::c_int)
  760.      -> *mut sp_artist;
  761.     pub fn sp_track_album(track: *mut sp_track) -> *mut sp_album;
  762.     pub fn sp_track_name(track: *mut sp_track)
  763.      -> *const ::std::os::raw::c_char;
  764.     pub fn sp_track_duration(track: *mut sp_track) -> ::std::os::raw::c_int;
  765.     pub fn sp_track_popularity(track: *mut sp_track) -> ::std::os::raw::c_int;
  766.     pub fn sp_track_disc(track: *mut sp_track) -> ::std::os::raw::c_int;
  767.     pub fn sp_track_index(track: *mut sp_track) -> ::std::os::raw::c_int;
  768.     pub fn sp_localtrack_create(artist: *const ::std::os::raw::c_char,
  769.                                 title: *const ::std::os::raw::c_char,
  770.                                 album: *const ::std::os::raw::c_char,
  771.                                 length: ::std::os::raw::c_int)
  772.      -> *mut sp_track;
  773.     pub fn sp_track_add_ref(track: *mut sp_track) -> sp_error;
  774.     pub fn sp_track_release(track: *mut sp_track) -> sp_error;
  775.     pub fn sp_album_is_loaded(album: *mut sp_album) -> _bool;
  776.     pub fn sp_album_is_available(album: *mut sp_album) -> _bool;
  777.     pub fn sp_album_artist(album: *mut sp_album) -> *mut sp_artist;
  778.     pub fn sp_album_cover(album: *mut sp_album, size: sp_image_size)
  779.      -> *const byte;
  780.     pub fn sp_album_name(album: *mut sp_album)
  781.      -> *const ::std::os::raw::c_char;
  782.     pub fn sp_album_year(album: *mut sp_album) -> ::std::os::raw::c_int;
  783.     pub fn sp_album_type(album: *mut sp_album) -> sp_albumtype;
  784.     pub fn sp_album_add_ref(album: *mut sp_album) -> sp_error;
  785.     pub fn sp_album_release(album: *mut sp_album) -> sp_error;
  786.     pub fn sp_artist_name(artist: *mut sp_artist)
  787.      -> *const ::std::os::raw::c_char;
  788.     pub fn sp_artist_is_loaded(artist: *mut sp_artist) -> _bool;
  789.     pub fn sp_artist_portrait(artist: *mut sp_artist, size: sp_image_size)
  790.      -> *const byte;
  791.     pub fn sp_artist_add_ref(artist: *mut sp_artist) -> sp_error;
  792.     pub fn sp_artist_release(artist: *mut sp_artist) -> sp_error;
  793.     pub fn sp_albumbrowse_create(session: *mut sp_session,
  794.                                  album: *mut sp_album,
  795.                                  callback:
  796.                                      ::std::option::Option<extern "system" fn()>,
  797.                                  userdata: *mut ::std::os::raw::c_void)
  798.      -> *mut sp_albumbrowse;
  799.     pub fn sp_albumbrowse_is_loaded(alb: *mut sp_albumbrowse) -> _bool;
  800.     pub fn sp_albumbrowse_error(alb: *mut sp_albumbrowse) -> sp_error;
  801.     pub fn sp_albumbrowse_album(alb: *mut sp_albumbrowse) -> *mut sp_album;
  802.     pub fn sp_albumbrowse_artist(alb: *mut sp_albumbrowse) -> *mut sp_artist;
  803.     pub fn sp_albumbrowse_num_copyrights(alb: *mut sp_albumbrowse)
  804.      -> ::std::os::raw::c_int;
  805.     pub fn sp_albumbrowse_copyright(alb: *mut sp_albumbrowse,
  806.                                     index: ::std::os::raw::c_int)
  807.      -> *const ::std::os::raw::c_char;
  808.     pub fn sp_albumbrowse_num_tracks(alb: *mut sp_albumbrowse)
  809.      -> ::std::os::raw::c_int;
  810.     pub fn sp_albumbrowse_track(alb: *mut sp_albumbrowse,
  811.                                 index: ::std::os::raw::c_int)
  812.      -> *mut sp_track;
  813.     pub fn sp_albumbrowse_review(alb: *mut sp_albumbrowse)
  814.      -> *const ::std::os::raw::c_char;
  815.     pub fn sp_albumbrowse_backend_request_duration(alb: *mut sp_albumbrowse)
  816.      -> ::std::os::raw::c_int;
  817.     pub fn sp_albumbrowse_add_ref(alb: *mut sp_albumbrowse) -> sp_error;
  818.     pub fn sp_albumbrowse_release(alb: *mut sp_albumbrowse) -> sp_error;
  819.     pub fn sp_artistbrowse_create(session: *mut sp_session,
  820.                                   artist: *mut sp_artist,
  821.                                   _type: sp_artistbrowse_type,
  822.                                   callback:
  823.                                       ::std::option::Option<extern "system" fn()>,
  824.                                   userdata: *mut ::std::os::raw::c_void)
  825.      -> *mut sp_artistbrowse;
  826.     pub fn sp_artistbrowse_is_loaded(arb: *mut sp_artistbrowse) -> _bool;
  827.     pub fn sp_artistbrowse_error(arb: *mut sp_artistbrowse) -> sp_error;
  828.     pub fn sp_artistbrowse_artist(arb: *mut sp_artistbrowse)
  829.      -> *mut sp_artist;
  830.     pub fn sp_artistbrowse_num_portraits(arb: *mut sp_artistbrowse)
  831.      -> ::std::os::raw::c_int;
  832.     pub fn sp_artistbrowse_portrait(arb: *mut sp_artistbrowse,
  833.                                     index: ::std::os::raw::c_int)
  834.      -> *const byte;
  835.     pub fn sp_artistbrowse_num_tracks(arb: *mut sp_artistbrowse)
  836.      -> ::std::os::raw::c_int;
  837.     pub fn sp_artistbrowse_track(arb: *mut sp_artistbrowse,
  838.                                  index: ::std::os::raw::c_int)
  839.      -> *mut sp_track;
  840.     pub fn sp_artistbrowse_num_tophit_tracks(arb: *mut sp_artistbrowse)
  841.      -> ::std::os::raw::c_int;
  842.     pub fn sp_artistbrowse_tophit_track(arb: *mut sp_artistbrowse,
  843.                                         index: ::std::os::raw::c_int)
  844.      -> *mut sp_track;
  845.     pub fn sp_artistbrowse_num_albums(arb: *mut sp_artistbrowse)
  846.      -> ::std::os::raw::c_int;
  847.     pub fn sp_artistbrowse_album(arb: *mut sp_artistbrowse,
  848.                                  index: ::std::os::raw::c_int)
  849.      -> *mut sp_album;
  850.     pub fn sp_artistbrowse_num_similar_artists(arb: *mut sp_artistbrowse)
  851.      -> ::std::os::raw::c_int;
  852.     pub fn sp_artistbrowse_similar_artist(arb: *mut sp_artistbrowse,
  853.                                           index: ::std::os::raw::c_int)
  854.      -> *mut sp_artist;
  855.     pub fn sp_artistbrowse_biography(arb: *mut sp_artistbrowse)
  856.      -> *const ::std::os::raw::c_char;
  857.     pub fn sp_artistbrowse_backend_request_duration(arb: *mut sp_artistbrowse)
  858.      -> ::std::os::raw::c_int;
  859.     pub fn sp_artistbrowse_add_ref(arb: *mut sp_artistbrowse) -> sp_error;
  860.     pub fn sp_artistbrowse_release(arb: *mut sp_artistbrowse) -> sp_error;
  861.     pub fn sp_image_create(session: *mut sp_session, image_id: *mut byte)
  862.      -> *mut sp_image;
  863.     pub fn sp_image_create_from_link(session: *mut sp_session,
  864.                                      l: *mut sp_link) -> *mut sp_image;
  865.     pub fn sp_image_add_load_callback(image: *mut sp_image,
  866.                                       callback:
  867.                                           ::std::option::Option<extern "system" fn()>,
  868.                                       userdata: *mut ::std::os::raw::c_void)
  869.      -> sp_error;
  870.     pub fn sp_image_remove_load_callback(image: *mut sp_image,
  871.                                          callback:
  872.                                              ::std::option::Option<extern "system" fn()>,
  873.                                          userdata:
  874.                                              *mut ::std::os::raw::c_void)
  875.      -> sp_error;
  876.     pub fn sp_image_is_loaded(image: *mut sp_image) -> _bool;
  877.     pub fn sp_image_error(image: *mut sp_image) -> sp_error;
  878.     pub fn sp_image_format(image: *mut sp_image) -> sp_imageformat;
  879.     pub fn sp_image_data(image: *mut sp_image, data_size: *mut size_t)
  880.      -> *const ::std::os::raw::c_void;
  881.     pub fn sp_image_image_id(image: *mut sp_image) -> *const byte;
  882.     pub fn sp_image_add_ref(image: *mut sp_image) -> sp_error;
  883.     pub fn sp_image_release(image: *mut sp_image) -> sp_error;
  884.     pub fn sp_search_create(session: *mut sp_session,
  885.                             query: *const ::std::os::raw::c_char,
  886.                             track_offset: ::std::os::raw::c_int,
  887.                             track_count: ::std::os::raw::c_int,
  888.                             album_offset: ::std::os::raw::c_int,
  889.                             album_count: ::std::os::raw::c_int,
  890.                             artist_offset: ::std::os::raw::c_int,
  891.                             artist_count: ::std::os::raw::c_int,
  892.                             playlist_offset: ::std::os::raw::c_int,
  893.                             playlist_count: ::std::os::raw::c_int,
  894.                             search_type: sp_search_type,
  895.                             callback: ::std::option::Option<extern "system" fn()>,
  896.                             userdata: *mut ::std::os::raw::c_void)
  897.      -> *mut sp_search;
  898.     pub fn sp_search_is_loaded(search: *mut sp_search) -> _bool;
  899.     pub fn sp_search_error(search: *mut sp_search) -> sp_error;
  900.     pub fn sp_search_num_tracks(search: *mut sp_search)
  901.      -> ::std::os::raw::c_int;
  902.     pub fn sp_search_track(search: *mut sp_search,
  903.                            index: ::std::os::raw::c_int) -> *mut sp_track;
  904.     pub fn sp_search_num_albums(search: *mut sp_search)
  905.      -> ::std::os::raw::c_int;
  906.     pub fn sp_search_album(search: *mut sp_search,
  907.                            index: ::std::os::raw::c_int) -> *mut sp_album;
  908.     pub fn sp_search_num_playlists(search: *mut sp_search)
  909.      -> ::std::os::raw::c_int;
  910.     pub fn sp_search_playlist(search: *mut sp_search,
  911.                               index: ::std::os::raw::c_int)
  912.      -> *mut sp_playlist;
  913.     pub fn sp_search_playlist_name(search: *mut sp_search,
  914.                                    index: ::std::os::raw::c_int)
  915.      -> *const ::std::os::raw::c_char;
  916.     pub fn sp_search_playlist_uri(search: *mut sp_search,
  917.                                   index: ::std::os::raw::c_int)
  918.      -> *const ::std::os::raw::c_char;
  919.     pub fn sp_search_playlist_image_uri(search: *mut sp_search,
  920.                                         index: ::std::os::raw::c_int)
  921.      -> *const ::std::os::raw::c_char;
  922.     pub fn sp_search_num_artists(search: *mut sp_search)
  923.      -> ::std::os::raw::c_int;
  924.     pub fn sp_search_artist(search: *mut sp_search,
  925.                             index: ::std::os::raw::c_int) -> *mut sp_artist;
  926.     pub fn sp_search_query(search: *mut sp_search)
  927.      -> *const ::std::os::raw::c_char;
  928.     pub fn sp_search_did_you_mean(search: *mut sp_search)
  929.      -> *const ::std::os::raw::c_char;
  930.     pub fn sp_search_total_tracks(search: *mut sp_search)
  931.      -> ::std::os::raw::c_int;
  932.     pub fn sp_search_total_albums(search: *mut sp_search)
  933.      -> ::std::os::raw::c_int;
  934.     pub fn sp_search_total_artists(search: *mut sp_search)
  935.      -> ::std::os::raw::c_int;
  936.     pub fn sp_search_total_playlists(search: *mut sp_search)
  937.      -> ::std::os::raw::c_int;
  938.     pub fn sp_search_add_ref(search: *mut sp_search) -> sp_error;
  939.     pub fn sp_search_release(search: *mut sp_search) -> sp_error;
  940.     pub fn sp_playlist_is_loaded(playlist: *mut sp_playlist) -> _bool;
  941.     pub fn sp_playlist_add_callbacks(playlist: *mut sp_playlist,
  942.                                      callbacks: *mut sp_playlist_callbacks,
  943.                                      userdata: *mut ::std::os::raw::c_void)
  944.      -> sp_error;
  945.     pub fn sp_playlist_remove_callbacks(playlist: *mut sp_playlist,
  946.                                         callbacks: *mut sp_playlist_callbacks,
  947.                                         userdata: *mut ::std::os::raw::c_void)
  948.      -> sp_error;
  949.     pub fn sp_playlist_num_tracks(playlist: *mut sp_playlist)
  950.      -> ::std::os::raw::c_int;
  951.     pub fn sp_playlist_track(playlist: *mut sp_playlist,
  952.                              index: ::std::os::raw::c_int) -> *mut sp_track;
  953.     pub fn sp_playlist_track_create_time(playlist: *mut sp_playlist,
  954.                                          index: ::std::os::raw::c_int)
  955.      -> ::std::os::raw::c_int;
  956.     pub fn sp_playlist_track_creator(playlist: *mut sp_playlist,
  957.                                      index: ::std::os::raw::c_int)
  958.      -> *mut sp_user;
  959.     pub fn sp_playlist_track_seen(playlist: *mut sp_playlist,
  960.                                   index: ::std::os::raw::c_int) -> _bool;
  961.     pub fn sp_playlist_track_set_seen(playlist: *mut sp_playlist,
  962.                                       index: ::std::os::raw::c_int,
  963.                                       seen: _bool) -> sp_error;
  964.     pub fn sp_playlist_track_message(playlist: *mut sp_playlist,
  965.                                      index: ::std::os::raw::c_int)
  966.      -> *const ::std::os::raw::c_char;
  967.     pub fn sp_playlist_name(playlist: *mut sp_playlist)
  968.      -> *const ::std::os::raw::c_char;
  969.     pub fn sp_playlist_rename(playlist: *mut sp_playlist,
  970.                               new_name: *const ::std::os::raw::c_char)
  971.      -> sp_error;
  972.     pub fn sp_playlist_owner(playlist: *mut sp_playlist) -> *mut sp_user;
  973.     pub fn sp_playlist_is_collaborative(playlist: *mut sp_playlist) -> _bool;
  974.     pub fn sp_playlist_set_collaborative(playlist: *mut sp_playlist,
  975.                                          collaborative: _bool) -> sp_error;
  976.     pub fn sp_playlist_set_autolink_tracks(playlist: *mut sp_playlist,
  977.                                            link: _bool) -> sp_error;
  978.     pub fn sp_playlist_get_description(playlist: *mut sp_playlist)
  979.      -> *const ::std::os::raw::c_char;
  980.     pub fn sp_playlist_get_image(playlist: *mut sp_playlist, image: *mut byte)
  981.      -> _bool;
  982.     pub fn sp_playlist_has_pending_changes(playlist: *mut sp_playlist)
  983.      -> _bool;
  984.     pub fn sp_playlist_add_tracks(playlist: *mut sp_playlist,
  985.                                   tracks: *const *mut sp_track,
  986.                                   num_tracks: ::std::os::raw::c_int,
  987.                                   position: ::std::os::raw::c_int,
  988.                                   session: *mut sp_session) -> sp_error;
  989.     pub fn sp_playlist_remove_tracks(playlist: *mut sp_playlist,
  990.                                      tracks: *const ::std::os::raw::c_int,
  991.                                      num_tracks: ::std::os::raw::c_int)
  992.      -> sp_error;
  993.     pub fn sp_playlist_reorder_tracks(playlist: *mut sp_playlist,
  994.                                       tracks: *const ::std::os::raw::c_int,
  995.                                       num_tracks: ::std::os::raw::c_int,
  996.                                       new_position: ::std::os::raw::c_int)
  997.      -> sp_error;
  998.     pub fn sp_playlist_num_subscribers(playlist: *mut sp_playlist)
  999.      -> ::std::os::raw::c_uint;
  1000.     pub fn sp_playlist_subscribers(playlist: *mut sp_playlist)
  1001.      -> *mut sp_subscribers;
  1002.     pub fn sp_playlist_subscribers_free(subscribers: *mut sp_subscribers)
  1003.      -> sp_error;
  1004.     pub fn sp_playlist_update_subscribers(session: *mut sp_session,
  1005.                                           playlist: *mut sp_playlist)
  1006.      -> sp_error;
  1007.     pub fn sp_playlist_is_in_ram(session: *mut sp_session,
  1008.                                  playlist: *mut sp_playlist) -> _bool;
  1009.     pub fn sp_playlist_set_in_ram(session: *mut sp_session,
  1010.                                   playlist: *mut sp_playlist, in_ram: _bool)
  1011.      -> sp_error;
  1012.     pub fn sp_playlist_create(session: *mut sp_session, link: *mut sp_link)
  1013.      -> *mut sp_playlist;
  1014.     pub fn sp_playlist_set_offline_mode(session: *mut sp_session,
  1015.                                         playlist: *mut sp_playlist,
  1016.                                         offline: _bool) -> sp_error;
  1017.     pub fn sp_playlist_get_offline_status(session: *mut sp_session,
  1018.                                           playlist: *mut sp_playlist)
  1019.      -> sp_playlist_offline_status;
  1020.     pub fn sp_playlist_get_offline_download_completed(session:
  1021.                                                           *mut sp_session,
  1022.                                                       playlist:
  1023.                                                           *mut sp_playlist)
  1024.      -> ::std::os::raw::c_int;
  1025.     pub fn sp_playlist_add_ref(playlist: *mut sp_playlist) -> sp_error;
  1026.     pub fn sp_playlist_release(playlist: *mut sp_playlist) -> sp_error;
  1027.     pub fn sp_playlistcontainer_add_callbacks(pc: *mut sp_playlistcontainer,
  1028.                                               callbacks:
  1029.                                                   *mut sp_playlistcontainer_callbacks,
  1030.                                               userdata:
  1031.                                                   *mut ::std::os::raw::c_void)
  1032.      -> sp_error;
  1033.     pub fn sp_playlistcontainer_remove_callbacks(pc:
  1034.                                                      *mut sp_playlistcontainer,
  1035.                                                  callbacks:
  1036.                                                      *mut sp_playlistcontainer_callbacks,
  1037.                                                  userdata:
  1038.                                                      *mut ::std::os::raw::c_void)
  1039.      -> sp_error;
  1040.     pub fn sp_playlistcontainer_num_playlists(pc: *mut sp_playlistcontainer)
  1041.      -> ::std::os::raw::c_int;
  1042.     pub fn sp_playlistcontainer_is_loaded(pc: *mut sp_playlistcontainer)
  1043.      -> _bool;
  1044.     pub fn sp_playlistcontainer_playlist(pc: *mut sp_playlistcontainer,
  1045.                                          index: ::std::os::raw::c_int)
  1046.      -> *mut sp_playlist;
  1047.     pub fn sp_playlistcontainer_playlist_type(pc: *mut sp_playlistcontainer,
  1048.                                               index: ::std::os::raw::c_int)
  1049.      -> sp_playlist_type;
  1050.     pub fn sp_playlistcontainer_playlist_folder_name(pc:
  1051.                                                          *mut sp_playlistcontainer,
  1052.                                                      index:
  1053.                                                          ::std::os::raw::c_int,
  1054.                                                      buffer:
  1055.                                                          *mut ::std::os::raw::c_char,
  1056.                                                      buffer_size:
  1057.                                                          ::std::os::raw::c_int)
  1058.      -> sp_error;
  1059.     pub fn sp_playlistcontainer_playlist_folder_id(pc:
  1060.                                                        *mut sp_playlistcontainer,
  1061.                                                    index:
  1062.                                                        ::std::os::raw::c_int)
  1063.      -> sp_uint64;
  1064.     pub fn sp_playlistcontainer_add_new_playlist(pc:
  1065.                                                      *mut sp_playlistcontainer,
  1066.                                                  name:
  1067.                                                      *const ::std::os::raw::c_char)
  1068.      -> *mut sp_playlist;
  1069.     pub fn sp_playlistcontainer_add_playlist(pc: *mut sp_playlistcontainer,
  1070.                                              link: *mut sp_link)
  1071.      -> *mut sp_playlist;
  1072.     pub fn sp_playlistcontainer_remove_playlist(pc: *mut sp_playlistcontainer,
  1073.                                                 index: ::std::os::raw::c_int)
  1074.      -> sp_error;
  1075.     pub fn sp_playlistcontainer_move_playlist(pc: *mut sp_playlistcontainer,
  1076.                                               index: ::std::os::raw::c_int,
  1077.                                               new_position:
  1078.                                                   ::std::os::raw::c_int,
  1079.                                               dry_run: _bool) -> sp_error;
  1080.     pub fn sp_playlistcontainer_add_folder(pc: *mut sp_playlistcontainer,
  1081.                                            index: ::std::os::raw::c_int,
  1082.                                            name:
  1083.                                                *const ::std::os::raw::c_char)
  1084.      -> sp_error;
  1085.     pub fn sp_playlistcontainer_owner(pc: *mut sp_playlistcontainer)
  1086.      -> *mut sp_user;
  1087.     pub fn sp_playlistcontainer_add_ref(pc: *mut sp_playlistcontainer)
  1088.      -> sp_error;
  1089.     pub fn sp_playlistcontainer_release(pc: *mut sp_playlistcontainer)
  1090.      -> sp_error;
  1091.     pub fn sp_playlistcontainer_get_unseen_tracks(pc:
  1092.                                                       *mut sp_playlistcontainer,
  1093.                                                   playlist: *mut sp_playlist,
  1094.                                                   tracks: *mut *mut sp_track,
  1095.                                                   num_tracks:
  1096.                                                       ::std::os::raw::c_int)
  1097.      -> ::std::os::raw::c_int;
  1098.     pub fn sp_playlistcontainer_clear_unseen_tracks(pc:
  1099.                                                         *mut sp_playlistcontainer,
  1100.                                                     playlist:
  1101.                                                         *mut sp_playlist)
  1102.      -> ::std::os::raw::c_int;
  1103.     pub fn sp_user_canonical_name(user: *mut sp_user)
  1104.      -> *const ::std::os::raw::c_char;
  1105.     pub fn sp_user_display_name(user: *mut sp_user)
  1106.      -> *const ::std::os::raw::c_char;
  1107.     pub fn sp_user_is_loaded(user: *mut sp_user) -> _bool;
  1108.     pub fn sp_user_add_ref(user: *mut sp_user) -> sp_error;
  1109.     pub fn sp_user_release(user: *mut sp_user) -> sp_error;
  1110.     pub fn sp_toplistbrowse_create(session: *mut sp_session,
  1111.                                    _type: sp_toplisttype,
  1112.                                    region: sp_toplistregion,
  1113.                                    username: *const ::std::os::raw::c_char,
  1114.                                    callback:
  1115.                                        ::std::option::Option<extern "system" fn()>,
  1116.                                    userdata: *mut ::std::os::raw::c_void)
  1117.      -> *mut sp_toplistbrowse;
  1118.     pub fn sp_toplistbrowse_is_loaded(tlb: *mut sp_toplistbrowse) -> _bool;
  1119.     pub fn sp_toplistbrowse_error(tlb: *mut sp_toplistbrowse) -> sp_error;
  1120.     pub fn sp_toplistbrowse_add_ref(tlb: *mut sp_toplistbrowse) -> sp_error;
  1121.     pub fn sp_toplistbrowse_release(tlb: *mut sp_toplistbrowse) -> sp_error;
  1122.     pub fn sp_toplistbrowse_num_artists(tlb: *mut sp_toplistbrowse)
  1123.      -> ::std::os::raw::c_int;
  1124.     pub fn sp_toplistbrowse_artist(tlb: *mut sp_toplistbrowse,
  1125.                                    index: ::std::os::raw::c_int)
  1126.      -> *mut sp_artist;
  1127.     pub fn sp_toplistbrowse_num_albums(tlb: *mut sp_toplistbrowse)
  1128.      -> ::std::os::raw::c_int;
  1129.     pub fn sp_toplistbrowse_album(tlb: *mut sp_toplistbrowse,
  1130.                                   index: ::std::os::raw::c_int)
  1131.      -> *mut sp_album;
  1132.     pub fn sp_toplistbrowse_num_tracks(tlb: *mut sp_toplistbrowse)
  1133.      -> ::std::os::raw::c_int;
  1134.     pub fn sp_toplistbrowse_track(tlb: *mut sp_toplistbrowse,
  1135.                                   index: ::std::os::raw::c_int)
  1136.      -> *mut sp_track;
  1137.     pub fn sp_toplistbrowse_backend_request_duration(tlb:
  1138.                                                          *mut sp_toplistbrowse)
  1139.      -> ::std::os::raw::c_int;
  1140.     pub fn sp_inbox_post_tracks(session: *mut sp_session,
  1141.                                 user: *const ::std::os::raw::c_char,
  1142.                                 tracks: *const *mut sp_track,
  1143.                                 num_tracks: ::std::os::raw::c_int,
  1144.                                 message: *const ::std::os::raw::c_char,
  1145.                                 callback:
  1146.                                     ::std::option::Option<extern "system" fn()>,
  1147.                                 userdata: *mut ::std::os::raw::c_void)
  1148.      -> *mut sp_inbox;
  1149.     pub fn sp_inbox_error(inbox: *mut sp_inbox) -> sp_error;
  1150.     pub fn sp_inbox_add_ref(inbox: *mut sp_inbox) -> sp_error;
  1151.     pub fn sp_inbox_release(inbox: *mut sp_inbox) -> sp_error;
  1152.     pub fn sp_build_id() -> *const ::std::os::raw::c_char;
  1153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement