mockspotify 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +3 -25
- data/.gitmodules +3 -0
- data/Rakefile +2 -1
- data/ext/extconf.rb +5 -0
- data/{src → ext/libmockspotify/src}/Makefile.am +0 -0
- data/{src → ext/libmockspotify/src}/album.c +0 -0
- data/{src → ext/libmockspotify/src}/albumbrowse.c +0 -0
- data/{src → ext/libmockspotify/src}/artist.c +0 -0
- data/{src → ext/libmockspotify/src}/artistbrowse.c +0 -0
- data/{src → ext/libmockspotify/src}/error.c +0 -0
- data/{src → ext/libmockspotify/src}/image.c +0 -0
- data/{src → ext/libmockspotify/src}/libmockspotify.h +0 -0
- data/{src → ext/libmockspotify/src}/libspotify/api.h +130 -38
- data/{src → ext/libmockspotify/src}/link.c +0 -0
- data/{src → ext/libmockspotify/src}/playlist.c +0 -0
- data/{src → ext/libmockspotify/src}/search.c +0 -0
- data/{src → ext/libmockspotify/src}/session.c +10 -1
- data/{src → ext/libmockspotify/src}/track.c +5 -3
- data/{src → ext/libmockspotify/src}/user.c +0 -0
- data/{src → ext/libmockspotify/src}/util.c +7 -0
- data/{src → ext/libmockspotify/src}/util.h +1 -0
- data/lib/mockspotify.rb +5 -3
- data/lib/mockspotify/version.rb +1 -1
- data/mockspotify.gemspec +8 -5
- metadata +27 -31
- data/Makefile.am +0 -3
- data/README.rst +0 -55
- data/autogen.sh +0 -4
- data/configure.ac +0 -10
- data/src/extconf.rb +0 -5
    
        data/.gitignore
    CHANGED
    
    | @@ -1,28 +1,6 @@ | |
| 1 | 
            -
            Makefile
         | 
| 2 | 
            -
            Makefile.in
         | 
| 3 | 
            -
            aclocal.m4
         | 
| 4 | 
            -
            autom4te.cache/
         | 
| 5 | 
            -
            config.guess
         | 
| 6 | 
            -
            config.h
         | 
| 7 | 
            -
            config.h.in
         | 
| 8 | 
            -
            config.log
         | 
| 9 | 
            -
            config.status
         | 
| 10 | 
            -
            config.sub
         | 
| 11 | 
            -
            configure
         | 
| 12 | 
            -
            depcomp
         | 
| 13 | 
            -
            install-sh
         | 
| 14 | 
            -
            libtool
         | 
| 15 | 
            -
            ltmain.sh
         | 
| 16 | 
            -
            m4/
         | 
| 17 | 
            -
            missing
         | 
| 18 | 
            -
            src/.deps/
         | 
| 19 | 
            -
            src/.libs/
         | 
| 20 | 
            -
            src/*.o
         | 
| 21 | 
            -
            src/*.la
         | 
| 22 | 
            -
            src/*.lo
         | 
| 23 | 
            -
            src/Makefile
         | 
| 24 | 
            -
            src/Makefile.in
         | 
| 25 | 
            -
            stamp-h1
         | 
| 26 1 | 
             
            *.bundle
         | 
| 27 2 | 
             
            pkg/
         | 
| 28 3 | 
             
            Gemfile.lock
         | 
| 4 | 
            +
            ext/*
         | 
| 5 | 
            +
            !ext/libmockspotify
         | 
| 6 | 
            +
            !ext/extconf.rb
         | 
    
        data/.gitmodules
    ADDED
    
    
    
        data/Rakefile
    CHANGED
    
    
    
        data/ext/extconf.rb
    ADDED
    
    
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| @@ -97,25 +97,25 @@ typedef enum sp_error { | |
| 97 97 | 
             
            	SP_ERROR_BAD_API_VERSION           = 1,  ///< The library version targeted does not match the one you claim you support
         | 
| 98 98 | 
             
            	SP_ERROR_API_INITIALIZATION_FAILED = 2,  ///< Initialization of library failed - are cache locations etc. valid?
         | 
| 99 99 | 
             
            	SP_ERROR_TRACK_NOT_PLAYABLE        = 3,  ///< The track specified for playing cannot be played
         | 
| 100 | 
            -
            	SP_ERROR_RESOURCE_NOT_LOADED       = 4,  ///< One or several of the supplied resources is not yet loaded
         | 
| 101 100 | 
             
            	SP_ERROR_BAD_APPLICATION_KEY       = 5,  ///< The application key is invalid
         | 
| 102 101 | 
             
            	SP_ERROR_BAD_USERNAME_OR_PASSWORD  = 6,  ///< Login failed because of bad username and/or password
         | 
| 103 102 | 
             
            	SP_ERROR_USER_BANNED               = 7,  ///< The specified username is banned
         | 
| 104 103 | 
             
            	SP_ERROR_UNABLE_TO_CONTACT_SERVER  = 8,  ///< Cannot connect to the Spotify backend system
         | 
| 105 104 | 
             
            	SP_ERROR_CLIENT_TOO_OLD            = 9,  ///< Client is too old, library will need to be updated
         | 
| 106 | 
            -
            	SP_ERROR_OTHER_PERMANENT           = 10, ///< Some other error  | 
| 105 | 
            +
            	SP_ERROR_OTHER_PERMANENT           = 10, ///< Some other error occurred, and it is permanent (e.g. trying to relogin will not help)
         | 
| 107 106 | 
             
            	SP_ERROR_BAD_USER_AGENT            = 11, ///< The user agent string is invalid or too long
         | 
| 108 107 | 
             
            	SP_ERROR_MISSING_CALLBACK          = 12, ///< No valid callback registered to handle events
         | 
| 109 108 | 
             
            	SP_ERROR_INVALID_INDATA            = 13, ///< Input data was either missing or invalid
         | 
| 110 109 | 
             
            	SP_ERROR_INDEX_OUT_OF_RANGE        = 14, ///< Index out of range
         | 
| 111 110 | 
             
            	SP_ERROR_USER_NEEDS_PREMIUM        = 15, ///< The specified user needs a premium account
         | 
| 112 | 
            -
            	SP_ERROR_OTHER_TRANSIENT           = 16, ///< A transient error  | 
| 111 | 
            +
            	SP_ERROR_OTHER_TRANSIENT           = 16, ///< A transient error occurred.
         | 
| 113 112 | 
             
            	SP_ERROR_IS_LOADING                = 17, ///< The resource is currently loading
         | 
| 114 113 | 
             
            	SP_ERROR_NO_STREAM_AVAILABLE       = 18, ///< Could not find any suitable stream to play
         | 
| 115 114 | 
             
            	SP_ERROR_PERMISSION_DENIED         = 19, ///< Requested operation is not allowed
         | 
| 116 115 | 
             
            	SP_ERROR_INBOX_IS_FULL             = 20, ///< Target inbox is full
         | 
| 117 116 | 
             
            	SP_ERROR_NO_CACHE                  = 21, ///< Cache is not enabled
         | 
| 118 117 | 
             
            	SP_ERROR_NO_SUCH_USER              = 22, ///< Requested user does not exist
         | 
| 118 | 
            +
            	SP_ERROR_NO_CREDENTIALS            = 23, ///< No credentials are stored
         | 
| 119 119 | 
             
            } sp_error;
         | 
| 120 120 |  | 
| 121 121 | 
             
            /**
         | 
| @@ -147,7 +147,7 @@ SP_LIBEXPORT(const char*) sp_error_message(sp_error error); | |
| 147 147 | 
             
             * returned from sp_session_create(). Future versions of the library will provide you with some kind of mechanism
         | 
| 148 148 | 
             
             * to request an updated version of the library.
         | 
| 149 149 | 
             
             */
         | 
| 150 | 
            -
            #define SPOTIFY_API_VERSION  | 
| 150 | 
            +
            #define SPOTIFY_API_VERSION 9
         | 
| 151 151 |  | 
| 152 152 | 
             
            /**
         | 
| 153 153 | 
             
             * Describes the current state of the connection
         | 
| @@ -157,6 +157,7 @@ typedef enum sp_connectionstate { | |
| 157 157 | 
             
            	SP_CONNECTION_STATE_LOGGED_IN    = 1, ///< Logged in against a Spotify access point
         | 
| 158 158 | 
             
            	SP_CONNECTION_STATE_DISCONNECTED = 2, ///< Was logged in, but has now been disconnected
         | 
| 159 159 | 
             
            	SP_CONNECTION_STATE_UNDEFINED    = 3, ///< The connection state is undefined
         | 
| 160 | 
            +
            	SP_CONNECTION_STATE_OFFLINE		 = 4  ///< Logged in in offline mode
         | 
| 160 161 | 
             
            } sp_connectionstate;
         | 
| 161 162 |  | 
| 162 163 |  | 
| @@ -195,7 +196,7 @@ typedef enum sp_playlist_type { | |
| 195 196 | 
             
            	SP_PLAYLIST_TYPE_PLACEHOLDER  = 3, ///< Unknown entry.
         | 
| 196 197 | 
             
            } sp_playlist_type;
         | 
| 197 198 |  | 
| 198 | 
            -
             | 
| 199 | 
            +
            /**
         | 
| 199 200 | 
             
             * Playlist offline status
         | 
| 200 201 | 
             
             */
         | 
| 201 202 | 
             
            typedef enum sp_playlist_offline_status {
         | 
| @@ -217,7 +218,7 @@ typedef struct sp_audio_buffer_stats { | |
| 217 218 | 
             
             * List of subscribers returned by sp_playlist_subscribers()
         | 
| 218 219 | 
             
             */
         | 
| 219 220 | 
             
            typedef struct sp_subscribers {
         | 
| 220 | 
            -
            	unsigned int count;
         | 
| 221 | 
            +
            	unsigned int count;    ///< Number of elements in 'subscribers'
         | 
| 221 222 | 
             
            	char *subscribers[1];  ///< Actual size is 'count'. Array of pointers to canonical usernames
         | 
| 222 223 | 
             
            } sp_subscribers;
         | 
| 223 224 |  | 
| @@ -388,7 +389,7 @@ typedef struct sp_session_callbacks { | |
| 388 389 | 
             
            	 * @param[in]  format     Audio format descriptor sp_audioformat
         | 
| 389 390 | 
             
            	 * @param[in]  frames     Points to raw PCM data as described by \p format
         | 
| 390 391 | 
             
            	 * @param[in]  num_frames Number of available samples in \p frames.
         | 
| 391 | 
            -
            	 *                        If this is 0, a discontinuity has  | 
| 392 | 
            +
            	 *                        If this is 0, a discontinuity has occurred (such as after a seek). The application
         | 
| 392 393 | 
             
            	 *                        should flush its audio fifos, etc.
         | 
| 393 394 | 
             
            	 *
         | 
| 394 395 | 
             
            	 * @return                Number of frames consumed.
         | 
| @@ -503,11 +504,14 @@ typedef struct sp_session_callbacks { | |
| 503 504 | 
             
            typedef struct sp_session_config {
         | 
| 504 505 | 
             
            	int api_version;                       ///< The version of the Spotify API your application is compiled with. Set to #SPOTIFY_API_VERSION
         | 
| 505 506 | 
             
            	const char *cache_location;            /**< The location where Spotify will write cache files.
         | 
| 506 | 
            -
            						*   This cache include tracks, cached browse results and coverarts
         | 
| 507 | 
            +
            						*   This cache include tracks, cached browse results and coverarts.
         | 
| 507 508 | 
             
            	                                        *   Set to empty string ("") to disable cache
         | 
| 508 509 | 
             
            						*/
         | 
| 509 510 | 
             
            	const char *settings_location;         /**< The location where Spotify will write setting files and per-user
         | 
| 510 | 
            -
            						*   cache items. This includes playlists, track metadata, etc
         | 
| 511 | 
            +
            						*   cache items. This includes playlists, track metadata, etc.
         | 
| 512 | 
            +
            						*   'settings_location' may be the same path as 'cache_location'.
         | 
| 513 | 
            +
            						*   'settings_location' folder will not be created (unlike 'cache_location'),
         | 
| 514 | 
            +
            						*   if you don't want to create the folder yourself, you can set 'settings_location' to 'cache_location'.
         | 
| 511 515 | 
             
            						*/
         | 
| 512 516 | 
             
            	const void *application_key;           ///< Your application key
         | 
| 513 517 | 
             
            	size_t application_key_size;           ///< The size of the application key in bytes
         | 
| @@ -525,7 +529,7 @@ typedef struct sp_session_config { | |
| 525 529 |  | 
| 526 530 | 
             
            	/**
         | 
| 527 531 | 
             
            	 * Don't save metadata for local copies of playlists
         | 
| 528 | 
            -
            	 * Reduces disk space usage at the  | 
| 532 | 
            +
            	 * Reduces disk space usage at the expense of needing
         | 
| 529 533 | 
             
            	 * to request metadata from Spotify backend when loading list
         | 
| 530 534 | 
             
            	 */
         | 
| 531 535 | 
             
            	bool dont_save_metadata_for_playlists;
         | 
| @@ -540,6 +544,7 @@ typedef struct sp_session_config { | |
| 540 544 | 
             
            /**
         | 
| 541 545 | 
             
             * Initialize a session. The session returned will be initialized, but you will need
         | 
| 542 546 | 
             
             * to log in before you can perform any other operation
         | 
| 547 | 
            +
             * Currently it is not supported to have multiple active sessions, and it's recommended to only call this once per process.
         | 
| 543 548 | 
             
             *
         | 
| 544 549 | 
             
             * Here is a snippet from \c spshell.c:
         | 
| 545 550 | 
             
             * @dontinclude spshell.c
         | 
| @@ -565,21 +570,65 @@ SP_LIBEXPORT(sp_error) sp_session_create(const sp_session_config *config, sp_ses | |
| 565 570 | 
             
             */
         | 
| 566 571 | 
             
            SP_LIBEXPORT(void) sp_session_release(sp_session *sess);
         | 
| 567 572 |  | 
| 573 | 
            +
             | 
| 568 574 | 
             
            /**
         | 
| 569 | 
            -
             * Logs in the specified username/password combo. This initiates the  | 
| 575 | 
            +
             * Logs in the specified username/password combo. This initiates the login in the background.
         | 
| 570 576 | 
             
             * A callback is called when login is complete
         | 
| 571 577 | 
             
             *
         | 
| 578 | 
            +
             * An application MUST NEVER store the user's password in clear text.
         | 
| 579 | 
            +
             * If automatic relogin is required, use sp_session_relogin()
         | 
| 580 | 
            +
             *
         | 
| 572 581 | 
             
             * Here is a snippet from \c spshell.c:
         | 
| 573 582 | 
             
             * @dontinclude spshell.c
         | 
| 574 583 | 
             
             * @skip sp_session_login
         | 
| 575 584 | 
             
             * @until }
         | 
| 576 585 | 
             
             *
         | 
| 577 | 
            -
             * @param[in]   session | 
| 578 | 
            -
             * @param[in]   username | 
| 579 | 
            -
             * @param[in]   password | 
| 586 | 
            +
             * @param[in]   session      Your session object
         | 
| 587 | 
            +
             * @param[in]   username     The username to log in
         | 
| 588 | 
            +
             * @param[in]   password     The password for the specified username
         | 
| 589 | 
            +
             * @param[in]   remember_me  If set, the username / password will be remembered by libspotify
         | 
| 590 | 
            +
             *
         | 
| 591 | 
            +
             */
         | 
| 592 | 
            +
            SP_LIBEXPORT(void) sp_session_login(sp_session *session, const char *username, const char *password, bool remember_me);
         | 
| 593 | 
            +
             | 
| 594 | 
            +
             | 
| 595 | 
            +
            /**
         | 
| 596 | 
            +
             * Log in the remembered user if last user that logged in logged in with remember_me set.
         | 
| 597 | 
            +
             * If no credentials are stored, this will return SP_ERROR_NO_CREDENTIALS.
         | 
| 598 | 
            +
             *
         | 
| 599 | 
            +
             * @param[in]   session      Your session object
         | 
| 600 | 
            +
             *
         | 
| 601 | 
            +
             * @return                 One of the following errors, from ::sp_error
         | 
| 602 | 
            +
             *                         SP_ERROR_OK
         | 
| 603 | 
            +
             *                         SP_ERROR_NO_CREDENTIALS
         | 
| 604 | 
            +
             */
         | 
| 605 | 
            +
            SP_LIBEXPORT(sp_error) sp_session_relogin(sp_session *session);
         | 
| 606 | 
            +
             | 
| 607 | 
            +
             | 
| 608 | 
            +
            /**
         | 
| 609 | 
            +
             * Get username of the user that will be logged in via sp_session_relogin()
         | 
| 610 | 
            +
             *
         | 
| 611 | 
            +
             * @param[in]   session      Your session object
         | 
| 612 | 
            +
             * @param[out]  buffer       The buffer to hold the username
         | 
| 613 | 
            +
             * @param[in]   buffer_size  The max size of the buffer that will hold the username.
         | 
| 614 | 
            +
             *                           The resulting string is guaranteed to always be null terminated if
         | 
| 615 | 
            +
             *                           buffer_size > 0
         | 
| 580 616 | 
             
             *
         | 
| 617 | 
            +
             * @return                   The number of characters in the username.
         | 
| 618 | 
            +
             *                           If value is greater or equal than \p buffer_size, output was truncated.
         | 
| 619 | 
            +
             *                           If returned value is -1 no credentials are stored in libspotify.
         | 
| 581 620 | 
             
             */
         | 
| 582 | 
            -
            SP_LIBEXPORT( | 
| 621 | 
            +
            SP_LIBEXPORT(int) sp_session_remembered_user(sp_session *session, char *buffer, size_t buffer_size);
         | 
| 622 | 
            +
             | 
| 623 | 
            +
             | 
| 624 | 
            +
            /**
         | 
| 625 | 
            +
             * Remove stored credentials in libspotify. If no credentials are currently stored, nothing will happen.
         | 
| 626 | 
            +
             *
         | 
| 627 | 
            +
             * @param[in]   session      Your session object
         | 
| 628 | 
            +
             *
         | 
| 629 | 
            +
             */
         | 
| 630 | 
            +
            SP_LIBEXPORT(void) sp_session_forget_me(sp_session *session);
         | 
| 631 | 
            +
             | 
| 583 632 |  | 
| 584 633 | 
             
            /**
         | 
| 585 634 | 
             
             * Fetches the currently logged in user
         | 
| @@ -716,7 +765,7 @@ SP_LIBEXPORT(sp_playlistcontainer *) sp_session_playlistcontainer(sp_session *se | |
| 716 765 | 
             
             *
         | 
| 717 766 | 
             
             * @param[in]  session        Session object
         | 
| 718 767 | 
             
             *
         | 
| 719 | 
            -
             * @return     A playlist | 
| 768 | 
            +
             * @return     A playlist or NULL if no user is logged in
         | 
| 720 769 | 
             
             * @note You need to release the playlist when you are done with it.
         | 
| 721 770 | 
             
             * @see sp_playlist_release()
         | 
| 722 771 | 
             
             */
         | 
| @@ -727,7 +776,7 @@ SP_LIBEXPORT(sp_playlist *) sp_session_inbox_create(sp_session *session); | |
| 727 776 | 
             
             *
         | 
| 728 777 | 
             
             * @param[in]  session        Session object
         | 
| 729 778 | 
             
             *
         | 
| 730 | 
            -
             * @return     A playlist | 
| 779 | 
            +
             * @return     A playlist or NULL if no user is logged in
         | 
| 731 780 | 
             
             * @note You need to release the playlist when you are done with it.
         | 
| 732 781 | 
             
             * @see sp_playlist_release()
         | 
| 733 782 | 
             
             */
         | 
| @@ -739,7 +788,7 @@ SP_LIBEXPORT(sp_playlist *) sp_session_starred_create(sp_session *session); | |
| 739 788 | 
             
             * @param[in]  session        Session object
         | 
| 740 789 | 
             
             * @param[in]  canonical_username       Canonical username
         | 
| 741 790 | 
             
             *
         | 
| 742 | 
            -
             * @return     A playlist | 
| 791 | 
            +
             * @return     A playlist or NULL if no user is logged in
         | 
| 743 792 | 
             
             * @note You need to release the playlist when you are done with it.
         | 
| 744 793 | 
             
             * @see sp_playlist_release()
         | 
| 745 794 | 
             
             */
         | 
| @@ -755,7 +804,7 @@ SP_LIBEXPORT(sp_playlist *) sp_session_starred_for_user_create(sp_session *sessi | |
| 755 804 | 
             
             * @param[in]   session    Your session object.
         | 
| 756 805 | 
             
             * @param[in]   canonical_username   The canonical username, or NULL.
         | 
| 757 806 | 
             
             *
         | 
| 758 | 
            -
             * @return Playlist container object, NULL if not logged in | 
| 807 | 
            +
             * @return Playlist container object, NULL if not logged in.
         | 
| 759 808 | 
             
             */
         | 
| 760 809 | 
             
            SP_LIBEXPORT(sp_playlistcontainer *) sp_session_publishedcontainer_for_user_create(sp_session *session, const char *canonical_username);
         | 
| 761 810 |  | 
| @@ -856,8 +905,21 @@ SP_LIBEXPORT(int) sp_offline_num_playlists(sp_session *session); | |
| 856 905 | 
             
             * @param[in]  session        Session object
         | 
| 857 906 | 
             
             * @param[out] status         Status object that will be filled with info
         | 
| 858 907 | 
             
             *
         | 
| 908 | 
            +
             * @return false if no synching is in progress (in which case the contents
         | 
| 909 | 
            +
             *               of status is undefined)
         | 
| 910 | 
            +
             *
         | 
| 911 | 
            +
             */
         | 
| 912 | 
            +
            SP_LIBEXPORT(bool) sp_offline_sync_get_status(sp_session *session, sp_offline_sync_status *status);
         | 
| 913 | 
            +
             | 
| 914 | 
            +
            /**
         | 
| 915 | 
            +
             * Return remaining time (in seconds) until the offline key store expires
         | 
| 916 | 
            +
             * and the user is required to relogin
         | 
| 917 | 
            +
             *
         | 
| 918 | 
            +
             * @param[in]  session        Session object
         | 
| 919 | 
            +
             * @return                    Seconds until expiration
         | 
| 920 | 
            +
             *
         | 
| 859 921 | 
             
             */
         | 
| 860 | 
            -
            SP_LIBEXPORT( | 
| 922 | 
            +
            SP_LIBEXPORT(int) sp_offline_time_left(sp_session *session);
         | 
| 861 923 |  | 
| 862 924 | 
             
            /**
         | 
| 863 925 | 
             
             * Get currently logged in users country
         | 
| @@ -961,6 +1023,20 @@ SP_LIBEXPORT(sp_link *) sp_link_create_from_album_cover(sp_album *album); | |
| 961 1023 | 
             
             */
         | 
| 962 1024 | 
             
            SP_LIBEXPORT(sp_link *) sp_link_create_from_artist(sp_artist *artist);
         | 
| 963 1025 |  | 
| 1026 | 
            +
            /**
         | 
| 1027 | 
            +
             * Creates a link object pointing to an artist portrait
         | 
| 1028 | 
            +
             *
         | 
| 1029 | 
            +
             * @param[in]   artist     Artist browse object
         | 
| 1030 | 
            +
             *
         | 
| 1031 | 
            +
             * @return                 A link object representing an image
         | 
| 1032 | 
            +
             *
         | 
| 1033 | 
            +
             * @note You need to release the link when you are done with it.
         | 
| 1034 | 
            +
             * @see sp_link_release()
         | 
| 1035 | 
            +
             * @see sp_artistbrowse_num_portraits()
         | 
| 1036 | 
            +
             */
         | 
| 1037 | 
            +
            SP_LIBEXPORT(sp_link *) sp_link_create_from_artist_portrait(sp_artist *artist);
         | 
| 1038 | 
            +
             | 
| 1039 | 
            +
             | 
| 964 1040 | 
             
            /**
         | 
| 965 1041 | 
             
             * Creates a link object from an artist portrait
         | 
| 966 1042 | 
             
             *
         | 
| @@ -972,8 +1048,13 @@ SP_LIBEXPORT(sp_link *) sp_link_create_from_artist(sp_artist *artist); | |
| 972 1048 | 
             
             * @note You need to release the link when you are done with it.
         | 
| 973 1049 | 
             
             * @see sp_link_release()
         | 
| 974 1050 | 
             
             * @see sp_artistbrowse_num_portraits()
         | 
| 1051 | 
            +
             *
         | 
| 1052 | 
            +
             * @note The difference from sp_link_create_from_artist_portrait() is
         | 
| 1053 | 
            +
             * that the artist browse object may contain multiple portraits.
         | 
| 1054 | 
            +
             *
         | 
| 975 1055 | 
             
             */
         | 
| 976 | 
            -
            SP_LIBEXPORT(sp_link *)  | 
| 1056 | 
            +
            SP_LIBEXPORT(sp_link *) sp_link_create_from_artistbrowse_portrait(sp_artistbrowse *arb, int index);
         | 
| 1057 | 
            +
             | 
| 977 1058 |  | 
| 978 1059 | 
             
            /**
         | 
| 979 1060 | 
             
             * Generate a link object representing the current search
         | 
| @@ -1065,7 +1146,7 @@ SP_LIBEXPORT(sp_track *) sp_link_as_track(sp_link *link); | |
| 1065 1146 | 
             
             * The track and offset into track representation for the given link
         | 
| 1066 1147 | 
             
             *
         | 
| 1067 1148 | 
             
             * @param[in]   link       The Spotify link whose track you are interested in
         | 
| 1068 | 
            -
             * @param[out]  offset     Pointer to offset into track (in  | 
| 1149 | 
            +
             * @param[out]  offset     Pointer to offset into track (in milliseconds). If the link
         | 
| 1069 1150 | 
             
             *                         does not contain an offset this will be set to 0.
         | 
| 1070 1151 | 
             
             *
         | 
| 1071 1152 | 
             
             * @return                 The track representation of the given track link
         | 
| @@ -1135,7 +1216,7 @@ SP_LIBEXPORT(void) sp_link_release(sp_link *link); | |
| 1135 1216 | 
             
             *
         | 
| 1136 1217 | 
             
             * @return                 True if track is loaded
         | 
| 1137 1218 | 
             
             *
         | 
| 1138 | 
            -
             * @note  This is  | 
| 1219 | 
            +
             * @note  This is equivalent to checking if sp_track_error() not returns SP_ERROR_IS_LOADING.
         | 
| 1139 1220 | 
             
             */
         | 
| 1140 1221 | 
             
            SP_LIBEXPORT(bool) sp_track_is_loaded(sp_track *track);
         | 
| 1141 1222 |  | 
| @@ -1214,7 +1295,7 @@ SP_LIBEXPORT(bool) sp_track_is_starred(sp_session *session, sp_track *track); | |
| 1214 1295 | 
             
             * @note This will fail silently if playlists are disabled.
         | 
| 1215 1296 | 
             
             * @see sp_set_playlists_enabled()
         | 
| 1216 1297 | 
             
             */
         | 
| 1217 | 
            -
            SP_LIBEXPORT(void) sp_track_set_starred(sp_session *session,  | 
| 1298 | 
            +
            SP_LIBEXPORT(void) sp_track_set_starred(sp_session *session, sp_track *const*tracks, int num_tracks, bool star);
         | 
| 1218 1299 |  | 
| 1219 1300 | 
             
            /**
         | 
| 1220 1301 | 
             
             * The number of artists performing on the specified track
         | 
| @@ -1274,7 +1355,7 @@ SP_LIBEXPORT(int) sp_track_duration(sp_track *track); | |
| 1274 1355 | 
             
             *
         | 
| 1275 1356 | 
             
             * @param[in]   track      A track object
         | 
| 1276 1357 | 
             
             *
         | 
| 1277 | 
            -
             * @return                 Popularity in range 0 to 100, 0 if undefined
         | 
| 1358 | 
            +
             * @return                 Popularity in range 0 to 100, 0 if undefined.
         | 
| 1278 1359 | 
             
             *                         If no metadata is available for the track yet, this function returns 0.
         | 
| 1279 1360 | 
             
             */
         | 
| 1280 1361 | 
             
            SP_LIBEXPORT(int) sp_track_popularity(sp_track *track);
         | 
| @@ -1960,7 +2041,7 @@ SP_LIBEXPORT(void) sp_image_release(sp_image *image); | |
| 1960 2041 |  | 
| 1961 2042 |  | 
| 1962 2043 | 
             
            /**
         | 
| 1963 | 
            -
             * @defgroup search Search  | 
| 2044 | 
            +
             * @defgroup search Search subsystem
         | 
| 1964 2045 | 
             
             * @{
         | 
| 1965 2046 | 
             
             */
         | 
| 1966 2047 |  | 
| @@ -2501,7 +2582,7 @@ SP_LIBEXPORT(bool) sp_playlist_is_collaborative(sp_playlist *playlist); | |
| 2501 2582 | 
             
            /**
         | 
| 2502 2583 | 
             
             * Set collaborative status for a playlist.
         | 
| 2503 2584 | 
             
             *
         | 
| 2504 | 
            -
             * A playlist in collaborative state can be  | 
| 2585 | 
            +
             * A playlist in collaborative state can be modified by all users, not only the user owning the list
         | 
| 2505 2586 | 
             
             *
         | 
| 2506 2587 | 
             
             * @param[in]  playlist       Playlist object
         | 
| 2507 2588 | 
             
             * @param[in]  collaborative  True or false
         | 
| @@ -2570,7 +2651,7 @@ SP_LIBEXPORT(bool) sp_playlist_has_pending_changes(sp_playlist *playlist); | |
| 2570 2651 | 
             
             *                        SP_ERROR_INVALID_INDATA - position is > current playlist length
         | 
| 2571 2652 | 
             
             *                        SP_ERROR_PERMISSION_DENIED
         | 
| 2572 2653 | 
             
             */
         | 
| 2573 | 
            -
            SP_LIBEXPORT(sp_error) sp_playlist_add_tracks(sp_playlist *playlist,  | 
| 2654 | 
            +
            SP_LIBEXPORT(sp_error) sp_playlist_add_tracks(sp_playlist *playlist, sp_track *const*tracks, int num_tracks, int position, sp_session *session);
         | 
| 2574 2655 |  | 
| 2575 2656 | 
             
            /**
         | 
| 2576 2657 | 
             
             * Remove tracks from a playlist
         | 
| @@ -2667,7 +2748,7 @@ SP_LIBEXPORT(void) sp_playlist_update_subscribers(sp_session *session, sp_playli | |
| 2667 2748 | 
             
             *             There is one caveat tough: If libspotify has never seen the
         | 
| 2668 2749 | 
             
             *             playlist before this metadata will also be unset.
         | 
| 2669 2750 | 
             
             *             In order for libspotify to get the metadata the playlist
         | 
| 2670 | 
            -
             *             needs to be loaded  | 
| 2751 | 
            +
             *             needs to be loaded at least once.
         | 
| 2671 2752 | 
             
             *             In order words, if libspotify starts with an empty playlist
         | 
| 2672 2753 | 
             
             *             cache and the application has set 'initially_unload_playlists'
         | 
| 2673 2754 | 
             
             *             config parameter to True all playlists will be empty.
         | 
| @@ -2705,7 +2786,8 @@ SP_LIBEXPORT(void) sp_playlist_set_in_ram(sp_session *session, sp_playlist *play | |
| 2705 2786 | 
             
            SP_LIBEXPORT(sp_playlist *) sp_playlist_create(sp_session *session, sp_link *link);
         | 
| 2706 2787 |  | 
| 2707 2788 | 
             
            /**
         | 
| 2708 | 
            -
             * Mark a playlist to be synchronized for offline playback
         | 
| 2789 | 
            +
             * Mark a playlist to be synchronized for offline playback.
         | 
| 2790 | 
            +
             * The playlist must be in the users playlistcontainer
         | 
| 2709 2791 | 
             
             *
         | 
| 2710 2792 | 
             
             * @param[in]  session        Session object
         | 
| 2711 2793 | 
             
             * @param[in]  playlist       Playlist object
         | 
| @@ -2734,6 +2816,7 @@ SP_LIBEXPORT(sp_playlist_offline_status) sp_playlist_get_offline_status(sp_sessi | |
| 2734 2816 | 
             
             * @param[in]  playlist       Playlist object
         | 
| 2735 2817 | 
             
             *
         | 
| 2736 2818 | 
             
             * @return Value from 0 - 100 that indicates amount of playlist that is downloaded
         | 
| 2819 | 
            +
             * or 0 if the playlist is not in the SP_PLAYLIST_OFFLINE_STATUS_DOWNLOADING mode.
         | 
| 2737 2820 | 
             
             *
         | 
| 2738 2821 | 
             
             * @see sp_playlist_offline_status()
         | 
| 2739 2822 | 
             
             */
         | 
| @@ -2812,7 +2895,7 @@ typedef struct sp_playlistcontainer_callbacks { | |
| 2812 2895 | 
             
             * @param[in]  callbacks Callbacks, see sp_playlistcontainer_callbacks
         | 
| 2813 2896 | 
             
             * @param[in]  userdata  Opaque value passed to callbacks.
         | 
| 2814 2897 | 
             
             *
         | 
| 2815 | 
            -
             * @note Every sp_playlistcontainer_add_callbacks() needs to be  | 
| 2898 | 
            +
             * @note Every sp_playlistcontainer_add_callbacks() needs to be paired with a corresponding
         | 
| 2816 2899 | 
             
             *       sp_playlistcontainer_remove_callbacks() that is invoked before releasing the
         | 
| 2817 2900 | 
             
             *       last reference you own for the container. In other words, you must make sure
         | 
| 2818 2901 | 
             
             *       to have removed all the callbacks before the container gets destroyed.
         | 
| @@ -2863,7 +2946,7 @@ SP_LIBEXPORT(bool) sp_playlistcontainer_is_loaded(sp_playlistcontainer *pc); | |
| 2863 2946 | 
             
             * @param[in]  pc        Playlist container
         | 
| 2864 2947 | 
             
             * @param[in]  index     Index in playlist container. Should be in the interval [0, sp_playlistcontainer_num_playlists() - 1]
         | 
| 2865 2948 | 
             
             *
         | 
| 2866 | 
            -
             * @return                | 
| 2949 | 
            +
             * @return               The playlist object
         | 
| 2867 2950 | 
             
             *
         | 
| 2868 2951 | 
             
             * @sa sp_session_playlistcontainer()
         | 
| 2869 2952 | 
             
             */
         | 
| @@ -2885,11 +2968,12 @@ SP_LIBEXPORT(sp_playlist_type) sp_playlistcontainer_playlist_type(sp_playlistcon | |
| 2885 2968 | 
             
             * Return the folder name at @a index
         | 
| 2886 2969 | 
             
             *
         | 
| 2887 2970 | 
             
             * @param[in]  pc           Playlist container
         | 
| 2888 | 
            -
             * @param[in]  index        Index in playlist container. Should be in the interval [0, sp_playlistcontainer_num_playlists() - 1]
         | 
| 2971 | 
            +
             * @param[in]  index        Index in playlist container. Should be in the interval [0, sp_playlistcontainer_num_playlists() - 1].
         | 
| 2972 | 
            +
             *                          Index should point at a start-folder entry, otherwise the empty string is written to buffer.
         | 
| 2889 2973 | 
             
             * @param[in]  buffer       Pointer to char[] where to store folder name
         | 
| 2890 2974 | 
             
             * @param[in]  buffer_size  Size of array
         | 
| 2891 2975 | 
             
             *
         | 
| 2892 | 
            -
             * @return | 
| 2976 | 
            +
             * @return                  One of the following errors, from ::sp_error
         | 
| 2893 2977 | 
             
             *                          SP_ERROR_OK
         | 
| 2894 2978 | 
             
             *                          SP_ERROR_INDEX_OUT_OF_RANGE
         | 
| 2895 2979 | 
             
             *
         | 
| @@ -2903,7 +2987,7 @@ SP_LIBEXPORT(sp_error) sp_playlistcontainer_playlist_folder_name(sp_playlistcont | |
| 2903 2987 | 
             
             * @param[in]  pc        Playlist container
         | 
| 2904 2988 | 
             
             * @param[in]  index     Index in playlist container. Should be in the interval [0, sp_playlistcontainer_num_playlists() - 1]
         | 
| 2905 2989 | 
             
             *
         | 
| 2906 | 
            -
             * @return               The group ID
         | 
| 2990 | 
            +
             * @return               The group ID of the folder. Returns 0 on index out of range, pc being NULL or indexed item not being a folder
         | 
| 2907 2991 | 
             
             *
         | 
| 2908 2992 | 
             
             * @sa sp_session_playlistcontainer()
         | 
| 2909 2993 | 
             
             */
         | 
| @@ -3122,7 +3206,7 @@ typedef enum { | |
| 3122 3206 | 
             
             * country codes (in uppercase) encoded in an integer. There are also some reserved
         | 
| 3123 3207 | 
             
             * codes used to denote non-country regions. See sp_toplistregion
         | 
| 3124 3208 | 
             
             *
         | 
| 3125 | 
            -
             * Example: SP_TOPLIST_REGION('S', 'E')  | 
| 3209 | 
            +
             * Example: SP_TOPLIST_REGION('S', 'E') for Sweden
         | 
| 3126 3210 | 
             
             */
         | 
| 3127 3211 | 
             
            #define SP_TOPLIST_REGION(a, b) ((a) << 8 | (b))
         | 
| 3128 3212 |  | 
| @@ -3270,7 +3354,7 @@ SP_LIBEXPORT(sp_track *) sp_toplistbrowse_track(sp_toplistbrowse *tlb, int index | |
| 3270 3354 | 
             
            /** @} */
         | 
| 3271 3355 |  | 
| 3272 3356 | 
             
            /**
         | 
| 3273 | 
            -
             * @defgroup inbox Inbox  | 
| 3357 | 
            +
             * @defgroup inbox Inbox subsystem
         | 
| 3274 3358 | 
             
             * @{
         | 
| 3275 3359 | 
             
             */
         | 
| 3276 3360 |  | 
| @@ -3291,7 +3375,7 @@ typedef void SP_CALLCONV inboxpost_complete_cb(sp_inbox *result, void *userdata) | |
| 3291 3375 | 
             
             *
         | 
| 3292 3376 | 
             
             * @param[in]  session    Session object
         | 
| 3293 3377 | 
             
             * @param[in]  user       Canonical username of recipient
         | 
| 3294 | 
            -
             * @param[in]  tracks     Array of  | 
| 3378 | 
            +
             * @param[in]  tracks     Array of tracks to post
         | 
| 3295 3379 | 
             
             * @param[in]  num_tracks Number of tracks in \p tracks
         | 
| 3296 3380 | 
             
             * @param[in]  message    Message to attach to tracks. UTF-8
         | 
| 3297 3381 | 
             
             * @param[in]  callback   Callback to be invoked when the request has completed
         | 
| @@ -3334,6 +3418,14 @@ SP_LIBEXPORT(void) sp_inbox_release(sp_inbox *inbox); | |
| 3334 3418 |  | 
| 3335 3419 | 
             
            /** @} */
         | 
| 3336 3420 |  | 
| 3421 | 
            +
            /**
         | 
| 3422 | 
            +
             * Return the libspotify build ID
         | 
| 3423 | 
            +
             *
         | 
| 3424 | 
            +
             * This might be useful to have available for display somewhere in your
         | 
| 3425 | 
            +
             * user interface.
         | 
| 3426 | 
            +
             */
         | 
| 3427 | 
            +
            SP_LIBEXPORT(const char *) sp_build_id(void);
         | 
| 3428 | 
            +
             | 
| 3337 3429 |  | 
| 3338 3430 | 
             
            #ifdef __cplusplus
         | 
| 3339 3431 | 
             
            }
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| @@ -2,6 +2,11 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            /*** Spotify API ***/
         | 
| 4 4 |  | 
| 5 | 
            +
            const char * sp_build_id(void)
         | 
| 6 | 
            +
            {
         | 
| 7 | 
            +
              return "9.1.32.g8edbd53c Release (Core: 0.5.3.425.g18537e22)";
         | 
| 8 | 
            +
            }
         | 
| 9 | 
            +
             | 
| 5 10 | 
             
            sp_error
         | 
| 6 11 | 
             
            sp_session_create(const sp_session_config * config, sp_session ** sess)
         | 
| 7 12 | 
             
            {
         | 
| @@ -52,9 +57,13 @@ sp_session_userdata(sp_session *session) | |
| 52 57 | 
             
            }
         | 
| 53 58 |  | 
| 54 59 | 
             
            void
         | 
| 55 | 
            -
            sp_session_login(sp_session *session, const char *username, const char *password)
         | 
| 60 | 
            +
            sp_session_login(sp_session *session, const char *username, const char *password, bool remember_me)
         | 
| 56 61 | 
             
            {
         | 
| 57 62 | 
             
                session->connectionstate = SP_CONNECTION_STATE_LOGGED_IN;
         | 
| 63 | 
            +
                if (remember_me)
         | 
| 64 | 
            +
                {
         | 
| 65 | 
            +
                  my_strncpy(session->username, username, 1024);
         | 
| 66 | 
            +
                }
         | 
| 58 67 | 
             
            }
         | 
| 59 68 |  | 
| 60 69 | 
             
            void
         | 
| @@ -126,12 +126,14 @@ sp_track_is_starred(sp_session *s, sp_track *t) | |
| 126 126 | 
             
            }
         | 
| 127 127 |  | 
| 128 128 | 
             
            void
         | 
| 129 | 
            -
            sp_track_set_starred(sp_session *s,  | 
| 129 | 
            +
            sp_track_set_starred(sp_session *s, sp_track *const*tracks, int num_tracks, bool starred)
         | 
| 130 130 | 
             
            {
         | 
| 131 131 | 
             
                int i;
         | 
| 132 132 |  | 
| 133 | 
            -
                for (i = 0; i <  | 
| 134 | 
            -
             | 
| 133 | 
            +
                for (i = 0; i < num_tracks; i++)
         | 
| 134 | 
            +
                {
         | 
| 135 | 
            +
                  tracks[i]->starred = starred;
         | 
| 136 | 
            +
                }
         | 
| 135 137 | 
             
            }
         | 
| 136 138 |  | 
| 137 139 | 
             
            void
         | 
| 
            File without changes
         | 
    
        data/lib/mockspotify.rb
    CHANGED
    
    | @@ -6,7 +6,7 @@ module Spotify | |
| 6 6 | 
             
              module Mock
         | 
| 7 7 | 
             
                # @return [String] path to the libmockspotify C extension binary.
         | 
| 8 8 | 
             
                def self.path
         | 
| 9 | 
            -
                  File.expand_path('../../ | 
| 9 | 
            +
                  File.expand_path('../../ext/libmockspotify.', __FILE__) << Config::MAKEFILE_CONFIG['DLEXT']
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 12 | 
             
                # Overridden to always ffi_lib the mock path.
         | 
| @@ -26,7 +26,8 @@ module Spotify | |
| 26 26 | 
             
              extend Mock
         | 
| 27 27 | 
             
              require 'spotify'
         | 
| 28 28 |  | 
| 29 | 
            -
              $VERBOSE = true
         | 
| 29 | 
            +
              old_verbose, $VERBOSE = $VERBOSE, true
         | 
| 30 | 
            +
             | 
| 30 31 | 
             
              attach_function :mock_user, :mocksp_user_create, [:string, :string, :string, :string, :relation_type, :bool], :user
         | 
| 31 32 | 
             
              attach_function :mock_track, :mocksp_track_create, [:string, :int, :array, :pointer, :int, :int, :int, :int, :error, :bool], :track
         | 
| 32 33 | 
             
              attach_function :mock_image, :mocksp_image_create, [:image_id, :imageformat, :size_t, :buffer_in, :error], :image
         | 
| @@ -36,5 +37,6 @@ module Spotify | |
| 36 37 | 
             
              attach_function :mock_artistbrowse, :mocksp_artistbrowse_create, [:artist, :bool], :artistbrowse
         | 
| 37 38 |  | 
| 38 39 | 
             
              attach_function :mock_playlist_event, :mocksp_playlist_event, [:int, :playlist], :void
         | 
| 39 | 
            -
             | 
| 40 | 
            +
             | 
| 41 | 
            +
              $VERBOSE = old_verbose
         | 
| 40 42 | 
             
            end
         | 
    
        data/lib/mockspotify/version.rb
    CHANGED
    
    
    
        data/mockspotify.gemspec
    CHANGED
    
    | @@ -1,17 +1,20 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            -
             | 
| 2 | 
            +
            libpath = File.expand_path('../lib', __FILE__)
         | 
| 3 | 
            +
            $:.unshift libpath unless $:.include?(libpath)
         | 
| 4 | 
            +
            require 'mockspotify/version'
         | 
| 3 5 |  | 
| 4 6 | 
             
            Gem::Specification.new do |gem|
         | 
| 5 7 | 
             
              gem.name     = "mockspotify"
         | 
| 6 | 
            -
              gem.summary  = %Q{ | 
| 7 | 
            -
              gem.homepage = "https://github.com/Burgestrand/ | 
| 8 | 
            +
              gem.summary  = %Q{FFI bindings to the mockspotify C library}
         | 
| 9 | 
            +
              gem.homepage = "https://github.com/Burgestrand/mockspotify"
         | 
| 8 10 | 
             
              gem.authors  = ["Kim Burgestrand"]
         | 
| 9 11 | 
             
              gem.email    = 'kim@burgestrand.se'
         | 
| 10 12 |  | 
| 11 13 | 
             
              gem.files         = `git ls-files`.split("\n")
         | 
| 14 | 
            +
              gem.files        += `cd ext/libmockspotify && git ls-files src/`.split("\n").map { |path| "ext/libmockspotify/#{path}" }
         | 
| 12 15 | 
             
              gem.executables   = []
         | 
| 13 | 
            -
              gem.require_paths = ["lib" | 
| 14 | 
            -
              gem.extensions    << ' | 
| 16 | 
            +
              gem.require_paths = ["lib"]
         | 
| 17 | 
            +
              gem.extensions    << 'ext/extconf.rb'
         | 
| 15 18 |  | 
| 16 19 | 
             
              gem.add_dependency 'spotify'
         | 
| 17 20 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: mockspotify
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 12 | 
            +
            date: 2011-09-02 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: spotify
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &2157780240 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,50 +21,46 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *2157780240
         | 
| 25 25 | 
             
            description: 
         | 
| 26 26 | 
             
            email: kim@burgestrand.se
         | 
| 27 27 | 
             
            executables: []
         | 
| 28 28 | 
             
            extensions:
         | 
| 29 | 
            -
            -  | 
| 29 | 
            +
            - ext/extconf.rb
         | 
| 30 30 | 
             
            extra_rdoc_files: []
         | 
| 31 31 | 
             
            files:
         | 
| 32 32 | 
             
            - .gitignore
         | 
| 33 | 
            +
            - .gitmodules
         | 
| 33 34 | 
             
            - Gemfile
         | 
| 34 | 
            -
            - Makefile.am
         | 
| 35 | 
            -
            - README.rst
         | 
| 36 35 | 
             
            - Rakefile
         | 
| 37 | 
            -
            -  | 
| 38 | 
            -
            - configure.ac
         | 
| 36 | 
            +
            - ext/extconf.rb
         | 
| 39 37 | 
             
            - lib/mockspotify.rb
         | 
| 40 38 | 
             
            - lib/mockspotify/version.rb
         | 
| 41 39 | 
             
            - mockspotify.gemspec
         | 
| 42 | 
            -
            - src/Makefile.am
         | 
| 43 | 
            -
            - src/album.c
         | 
| 44 | 
            -
            - src/albumbrowse.c
         | 
| 45 | 
            -
            - src/artist.c
         | 
| 46 | 
            -
            - src/artistbrowse.c
         | 
| 47 | 
            -
            - src/error.c
         | 
| 48 | 
            -
            - src/extconf.rb
         | 
| 49 | 
            -
            - src/image.c
         | 
| 50 | 
            -
            - src/libmockspotify.h
         | 
| 51 | 
            -
            - src/libspotify/api.h
         | 
| 52 | 
            -
            - src/link.c
         | 
| 53 | 
            -
            - src/playlist.c
         | 
| 54 | 
            -
            - src/search.c
         | 
| 55 | 
            -
            - src/session.c
         | 
| 56 | 
            -
            - src/track.c
         | 
| 57 | 
            -
            - src/user.c
         | 
| 58 | 
            -
            - src/util.c
         | 
| 59 | 
            -
            - src/util.h
         | 
| 60 40 | 
             
            - test/mockspotify_spec.rb
         | 
| 61 | 
            -
             | 
| 41 | 
            +
            - ext/libmockspotify/src/Makefile.am
         | 
| 42 | 
            +
            - ext/libmockspotify/src/album.c
         | 
| 43 | 
            +
            - ext/libmockspotify/src/albumbrowse.c
         | 
| 44 | 
            +
            - ext/libmockspotify/src/artist.c
         | 
| 45 | 
            +
            - ext/libmockspotify/src/artistbrowse.c
         | 
| 46 | 
            +
            - ext/libmockspotify/src/error.c
         | 
| 47 | 
            +
            - ext/libmockspotify/src/image.c
         | 
| 48 | 
            +
            - ext/libmockspotify/src/libmockspotify.h
         | 
| 49 | 
            +
            - ext/libmockspotify/src/libspotify/api.h
         | 
| 50 | 
            +
            - ext/libmockspotify/src/link.c
         | 
| 51 | 
            +
            - ext/libmockspotify/src/playlist.c
         | 
| 52 | 
            +
            - ext/libmockspotify/src/search.c
         | 
| 53 | 
            +
            - ext/libmockspotify/src/session.c
         | 
| 54 | 
            +
            - ext/libmockspotify/src/track.c
         | 
| 55 | 
            +
            - ext/libmockspotify/src/user.c
         | 
| 56 | 
            +
            - ext/libmockspotify/src/util.c
         | 
| 57 | 
            +
            - ext/libmockspotify/src/util.h
         | 
| 58 | 
            +
            homepage: https://github.com/Burgestrand/mockspotify
         | 
| 62 59 | 
             
            licenses: []
         | 
| 63 60 | 
             
            post_install_message: 
         | 
| 64 61 | 
             
            rdoc_options: []
         | 
| 65 62 | 
             
            require_paths:
         | 
| 66 63 | 
             
            - lib
         | 
| 67 | 
            -
            - src
         | 
| 68 64 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 69 65 | 
             
              none: false
         | 
| 70 66 | 
             
              requirements:
         | 
| @@ -79,8 +75,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 79 75 | 
             
                  version: '0'
         | 
| 80 76 | 
             
            requirements: []
         | 
| 81 77 | 
             
            rubyforge_project: 
         | 
| 82 | 
            -
            rubygems_version: 1.8. | 
| 78 | 
            +
            rubygems_version: 1.8.6
         | 
| 83 79 | 
             
            signing_key: 
         | 
| 84 80 | 
             
            specification_version: 3
         | 
| 85 | 
            -
            summary:  | 
| 81 | 
            +
            summary: FFI bindings to the mockspotify C library
         | 
| 86 82 | 
             
            test_files: []
         | 
    
        data/Makefile.am
    DELETED
    
    
    
        data/README.rst
    DELETED
    
    | @@ -1,55 +0,0 @@ | |
| 1 | 
            -
            libmockspotify
         | 
| 2 | 
            -
            ==============
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            A mock of libspotify for use in development of language bindings.
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            This project was started in July 2011 with the goal of splitting out
         | 
| 7 | 
            -
            pyspotify's mock of libspotify, so that it could be reused by the developers of
         | 
| 8 | 
            -
            the Node.js and Ruby bindings for libspotify.
         | 
| 9 | 
            -
             | 
| 10 | 
            -
            Coordination of the development efforts happens on GitHub and #spotify on
         | 
| 11 | 
            -
            Freenode.
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            Note about my fork
         | 
| 14 | 
            -
            ------------------
         | 
| 15 | 
            -
            To ease usage in my own development, I’ve turned this project into a
         | 
| 16 | 
            -
            Ruby gem. This allows you to install it as a gem, and also allows you
         | 
| 17 | 
            -
            to retrieve the path to the compiled binary.
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            Installing it as a gem:
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            ::
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                gem install mockspotify
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            Using its’ API (one method):
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            ::
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                require 'mockspotify'
         | 
| 30 | 
            -
                MockSpotify.lib_path # => path/to/gem/src/libmockspotify.extension
         | 
| 31 | 
            -
             | 
| 32 | 
            -
            You can then use this to bind this library using Ruby FFI:
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            ::
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                require 'ffi'
         | 
| 37 | 
            -
                require 'mockspotify'
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                module Spotify
         | 
| 40 | 
            -
                  extend FFI::Library
         | 
| 41 | 
            -
                  ffi_lib MockSpotify.lib_path
         | 
| 42 | 
            -
             | 
| 43 | 
            -
                  attach_function …, etc
         | 
| 44 | 
            -
                end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
            Manual compilation
         | 
| 47 | 
            -
            ------------------
         | 
| 48 | 
            -
            If you ever want to do it, here you go:
         | 
| 49 | 
            -
             | 
| 50 | 
            -
            ::
         | 
| 51 | 
            -
             | 
| 52 | 
            -
                $ ./autogen.sh
         | 
| 53 | 
            -
                $ ./configure
         | 
| 54 | 
            -
                $ make
         | 
| 55 | 
            -
                # make install
         | 
    
        data/autogen.sh
    DELETED
    
    
    
        data/configure.ac
    DELETED
    
    | @@ -1,10 +0,0 @@ | |
| 1 | 
            -
            AC_INIT([libmockspotify], [0.1], [http://github.com/mopidy/libmockspotify])
         | 
| 2 | 
            -
            AM_INIT_AUTOMAKE([foreign -Wall -Werror])
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            AC_PROG_CC
         | 
| 5 | 
            -
            AC_PROG_LIBTOOL
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            AC_CONFIG_MACRO_DIR([m4])
         | 
| 8 | 
            -
            AC_CONFIG_HEADERS([config.h])
         | 
| 9 | 
            -
            AC_CONFIG_FILES([Makefile src/Makefile])
         | 
| 10 | 
            -
            AC_OUTPUT
         |