api.h File Reference

#include <stddef.h>

Data Structures

struct  sp_audioformat
struct  sp_session_callbacks
struct  sp_session_config
struct  sp_playlist_callbacks
struct  sp_playlistcontainer_callbacks

Defines

#define SPOTIFY_API_VERSION   1

Typedefs

typedef struct sp_session sp_session
 Representation of a session.
typedef struct sp_track sp_track
 A track handle.
typedef struct sp_album sp_album
 An album handle.
typedef struct sp_artist sp_artist
 An artist handle.
typedef struct sp_artistbrowse sp_artistbrowse
 A handle to an artist browse result.
typedef struct sp_albumbrowse sp_albumbrowse
 A handle to an album browse result.
typedef struct sp_search sp_search
 A handle to a search result.
typedef struct sp_link sp_link
 A handle to the libspotify internal representation of a URI.
typedef struct sp_image sp_image
 A handle to an image.
typedef struct sp_user sp_user
 A handle to a user.
typedef struct sp_playlist sp_playlist
 A playlist handle.
typedef struct sp_playlistcontainer sp_playlistcontainer
 A playlist container (playlist containing other playlists) handle.
typedef void albumbrowse_complete_cb (sp_albumbrowse *result, void *userdata)
typedef void artistbrowse_complete_cb (sp_artistbrowse *result, void *userdata)
typedef void image_loaded_cb (sp_image *image, void *userdata)
typedef void search_complete_cb (sp_search *result, void *userdata)

Enumerations

enum  sp_error {
  SP_ERROR_OK = 0,
  SP_ERROR_BAD_API_VERSION = 1,
  SP_ERROR_API_INITIALIZATION_FAILED = 2,
  SP_ERROR_TRACK_NOT_PLAYABLE = 3,
  SP_ERROR_RESOURCE_NOT_LOADED = 4,
  SP_ERROR_BAD_APPLICATION_KEY = 5,
  SP_ERROR_BAD_USERNAME_OR_PASSWORD = 6,
  SP_ERROR_USER_BANNED = 7,
  SP_ERROR_UNABLE_TO_CONTACT_SERVER = 8,
  SP_ERROR_CLIENT_TOO_OLD = 9,
  SP_ERROR_OTHER_PERMAMENT = 10,
  SP_ERROR_BAD_USER_AGENT = 11,
  SP_ERROR_MISSING_CALLBACK = 12,
  SP_ERROR_INVALID_INDATA = 13,
  SP_ERROR_INDEX_OUT_OF_RANGE = 14,
  SP_ERROR_USER_NEEDS_PREMIUM = 15,
  SP_ERROR_OTHER_TRANSIENT = 16,
  SP_ERROR_IS_LOADING = 17
}
enum  sp_connectionstate {
  SP_CONNECTION_STATE_LOGGED_OUT = 0,
  SP_CONNECTION_STATE_LOGGED_IN = 1,
  SP_CONNECTION_STATE_DISCONNECTED = 2,
  SP_CONNECTION_STATE_UNDEFINED = 3
}
enum  sp_sampletype { SP_SAMPLETYPE_INT16_NATIVE_ENDIAN = 0 }
enum  sp_linktype {
  SP_LINKTYPE_INVALID = 0,
  SP_LINKTYPE_TRACK = 1,
  SP_LINKTYPE_ALBUM = 2,
  SP_LINKTYPE_ARTIST = 3,
  SP_LINKTYPE_SEARCH = 4,
  SP_LINKTYPE_PLAYLIST = 5
}
enum  sp_imageformat {
  SP_IMAGE_FORMAT_UNKNOWN = -1,
  SP_IMAGE_FORMAT_RGB = 0,
  SP_IMAGE_FORMAT_BGR = 1,
  SP_IMAGE_FORMAT_RGBA = 2,
  SP_IMAGE_FORMAT_RGBA_PRE = 3,
  SP_IMAGE_FORMAT_BGRA = 4,
  SP_IMAGE_FORMAT_BGRA_PRE = 5
}

Functions

const char * sp_error_message (sp_error error)
sp_error sp_session_init (const sp_session_config *config, sp_session **sess)
sp_error sp_session_login (sp_session *session, const char *username, const char *password)
sp_usersp_session_user (sp_session *session)
sp_error sp_session_logout (sp_session *session)
sp_connectionstate sp_session_connectionstate (sp_session *session)
void * sp_session_userdata (sp_session *session)
void sp_session_process_events (sp_session *session, int *next_timeout)
sp_error sp_session_player_load (sp_session *session, sp_track *track)
sp_error sp_session_player_seek (sp_session *session, int offset)
sp_error sp_session_player_play (sp_session *session, bool play)
void sp_session_player_unload (sp_session *session)
sp_playlistcontainersp_session_playlistcontainer (sp_session *session)
sp_linksp_link_create_from_string (const char *link)
sp_linksp_link_create_from_track (sp_track *track, int offset)
sp_linksp_link_create_from_album (sp_album *album)
sp_linksp_link_create_from_artist (sp_artist *artist)
sp_linksp_link_create_from_search (sp_search *search)
sp_linksp_link_create_from_playlist (sp_playlist *playlist)
int sp_link_as_string (sp_link *link, char *buffer, int buffer_size)
sp_linktype sp_link_type (sp_link *link)
sp_tracksp_link_as_track (sp_link *link)
sp_albumsp_link_as_album (sp_link *link)
sp_artistsp_link_as_artist (sp_link *link)
void sp_link_add_ref (sp_link *link)
void sp_link_release (sp_link *link)
bool sp_track_is_loaded (sp_track *track)
sp_error sp_track_error (sp_track *track)
int sp_track_num_artists (sp_track *track)
sp_artistsp_track_artist (sp_track *track, int index)
sp_albumsp_track_album (sp_track *track)
const char * sp_track_name (sp_track *track)
int sp_track_duration (sp_track *track)
int sp_track_popularity (sp_track *track)
int sp_track_disc (sp_track *track)
int sp_track_index (sp_track *track)
void sp_track_add_ref (sp_track *track)
void sp_track_release (sp_track *track)
bool sp_album_is_loaded (sp_album *album)
sp_artistsp_album_artist (sp_album *album)
const byte * sp_album_cover (sp_album *album)
const char * sp_album_name (sp_album *album)
int sp_album_year (sp_album *album)
void sp_album_add_ref (sp_album *album)
void sp_album_release (sp_album *album)
const char * sp_artist_name (sp_artist *artist)
bool sp_artist_is_loaded (sp_artist *artist)
void sp_artist_add_ref (sp_artist *artist)
void sp_artist_release (sp_artist *artist)
sp_albumbrowsesp_albumbrowse_create (sp_session *session, sp_album *album, albumbrowse_complete_cb *callback, void *userdata)
bool sp_albumbrowse_is_loaded (sp_albumbrowse *alb)
sp_error sp_albumbrowse_error (sp_albumbrowse *alb)
sp_albumsp_albumbrowse_album (sp_albumbrowse *alb)
sp_artistsp_albumbrowse_artist (sp_albumbrowse *alb)
int sp_albumbrowse_num_copyrights (sp_albumbrowse *alb)
const char * sp_albumbrowse_copyright (sp_albumbrowse *alb, int index)
int sp_albumbrowse_num_tracks (sp_albumbrowse *alb)
sp_tracksp_albumbrowse_track (sp_albumbrowse *alb, int index)
const char * sp_albumbrowse_review (sp_albumbrowse *alb)
void sp_albumbrowse_add_ref (sp_albumbrowse *alb)
void sp_albumbrowse_release (sp_albumbrowse *alb)
sp_artistbrowsesp_artistbrowse_create (sp_session *session, sp_artist *artist, artistbrowse_complete_cb *callback, void *userdata)
bool sp_artistbrowse_is_loaded (sp_artistbrowse *arb)
sp_error sp_artistbrowse_error (sp_artistbrowse *arb)
sp_artistsp_artistbrowse_artist (sp_artistbrowse *arb)
int sp_artistbrowse_num_portraits (sp_artistbrowse *arb)
const byte * sp_artistbrowse_portrait (sp_artistbrowse *arb, int index)
int sp_artistbrowse_num_tracks (sp_artistbrowse *arb)
sp_tracksp_artistbrowse_track (sp_artistbrowse *arb, int index)
int sp_artistbrowse_num_similar_artists (sp_artistbrowse *arb)
sp_artistsp_artistbrowse_similar_artist (sp_artistbrowse *arb, int index)
const char * sp_artistbrowse_biography (sp_artistbrowse *arb)
void sp_artistbrowse_add_ref (sp_artistbrowse *arb)
void sp_artistbrowse_release (sp_artistbrowse *arb)
sp_imagesp_image_create (sp_session *session, const byte image_id[20])
void sp_image_add_load_callback (sp_image *image, image_loaded_cb *callback, void *userdata)
void sp_image_remove_load_callback (sp_image *image, image_loaded_cb *callback, void *userdata)
bool sp_image_is_loaded (sp_image *image)
sp_error sp_image_error (sp_image *image)
int sp_image_width (sp_image *image)
int sp_image_height (sp_image *image)
sp_imageformat sp_image_format (sp_image *image)
void * sp_image_lock_pixels (sp_image *image, int *pitch)
void sp_image_unlock_pixels (sp_image *image)
const byte * sp_image_image_id (sp_image *image)
void sp_image_add_ref (sp_image *image)
void sp_image_release (sp_image *image)
sp_searchsp_search_create (sp_session *session, const char *query, int offset, int count, search_complete_cb *callback, void *userdata)
bool sp_search_is_loaded (sp_search *search)
sp_error sp_search_error (sp_search *search)
int sp_search_num_tracks (sp_search *search)
sp_tracksp_search_track (sp_search *search, int index)
int sp_search_num_albums (sp_search *search)
sp_albumsp_search_album (sp_search *search, int index)
int sp_search_num_artists (sp_search *search)
sp_artistsp_search_artist (sp_search *search, int index)
const char * sp_search_query (sp_search *search)
const char * sp_search_did_you_mean (sp_search *search)
int sp_search_total_tracks (sp_search *search)
void sp_search_add_ref (sp_search *search)
void sp_search_release (sp_search *search)
bool sp_playlist_is_loaded (sp_playlist *playlist)
void sp_playlist_add_callbacks (sp_playlist *playlist, sp_playlist_callbacks *callbacks, void *userdata)
void sp_playlist_remove_callbacks (sp_playlist *playlist, sp_playlist_callbacks *callbacks, void *userdata)
int sp_playlist_num_tracks (sp_playlist *playlist)
sp_tracksp_playlist_track (sp_playlist *playlist, int index)
const char * sp_playlist_name (sp_playlist *playlist)
sp_error sp_playlist_rename (sp_playlist *playlist, const char *new_name)
sp_usersp_playlist_owner (sp_playlist *playlist)
bool sp_playlist_is_collaborative (sp_playlist *playlist)
void sp_playlist_set_collaborative (sp_playlist *playlist, bool collaborative)
bool sp_playlist_has_pending_changes (sp_playlist *playlist)
sp_error sp_playlist_add_tracks (sp_playlist *playlist, const sp_track **tracks, int num_tracks, int position)
sp_error sp_playlist_remove_tracks (sp_playlist *playlist, const int *tracks, int num_tracks)
sp_error sp_playlist_reorder_tracks (sp_playlist *playlist, const int *tracks, int num_tracks, int new_position)
void sp_playlistcontainer_add_callbacks (sp_playlistcontainer *pc, sp_playlistcontainer_callbacks *callbacks, void *userdata)
void sp_playlistcontainer_remove_callbacks (sp_playlistcontainer *pc, sp_playlistcontainer_callbacks *callbacks, void *userdata)
int sp_playlistcontainer_num_playlists (sp_playlistcontainer *pc)
sp_playlistsp_playlistcontainer_playlist (sp_playlistcontainer *pc, int index)
sp_playlistsp_playlistcontainer_add_new_playlist (sp_playlistcontainer *pc, const char *name)
sp_playlistsp_playlistcontainer_add_playlist (sp_playlistcontainer *pc, sp_link *link)
sp_error sp_playlistcontainer_remove_playlist (sp_playlistcontainer *pc, int index)
sp_error sp_playlistcontainer_move_playlist (sp_playlistcontainer *pc, int index, int new_position)
const char * sp_user_canonical_name (sp_user *user)
const char * sp_user_display_name (sp_user *user)
bool sp_user_is_loaded (sp_user *user)

Detailed Description

Public API for libspotify

Note:
All input strings are expected to be in UTF-8

All output strings are in UTF-8.

All usernames are valid XMPP nodeprep identifiers: http://tools.ietf.org/html/rfc3920#appendix-A If you need to store user data, we strongly advise you to use the canonical form of the username.


Generated on Tue Apr 7 15:21:55 2009.
Copyright © 2006–2009 Spotify Ltd