From e6032a7c519b38648bb69e81abd45761bcfd7500 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sat, 30 Apr 2011 18:22:14 +0000 Subject: [PATCH] Use __stdcall for libspotify callbacks on windows, call the right executable --- spotifyblob/blob/CMakeLists.txt | 5 +++++ spotifyblob/blob/spotifyclient.h | 30 +++++++++++++++--------------- src/radio/spotifyservice.cpp | 4 ++-- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/spotifyblob/blob/CMakeLists.txt b/spotifyblob/blob/CMakeLists.txt index 18ae71c22..7ae047c08 100644 --- a/spotifyblob/blob/CMakeLists.txt +++ b/spotifyblob/blob/CMakeLists.txt @@ -22,9 +22,14 @@ set(HEADERS qt4_wrap_cpp(MOC ${HEADERS}) +if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT ENABLE_WIN32_CONSOLE) + set(win32_build_flag WIN32) +endif (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT ENABLE_WIN32_CONSOLE) + add_executable(clementine-spotifyblob ${SOURCES} ${MOC} + ${win32_build_flag} ) target_link_libraries(clementine-spotifyblob diff --git a/spotifyblob/blob/spotifyclient.h b/spotifyblob/blob/spotifyclient.h index eff7e65f2..ad80d63c8 100644 --- a/spotifyblob/blob/spotifyclient.h +++ b/spotifyblob/blob/spotifyclient.h @@ -56,39 +56,39 @@ private: void SendPlaybackError(const QString& error); // Spotify session callbacks. - static void LoggedInCallback(sp_session* session, sp_error error); - static void NotifyMainThreadCallback(sp_session* session); - static void LogMessageCallback(sp_session* session, const char* data); - static void SearchCompleteCallback(sp_search* result, void* userdata); - static void MetadataUpdatedCallback(sp_session* session); - static int MusicDeliveryCallback( + static void SP_CALLCONV LoggedInCallback(sp_session* session, sp_error error); + static void SP_CALLCONV NotifyMainThreadCallback(sp_session* session); + static void SP_CALLCONV LogMessageCallback(sp_session* session, const char* data); + static void SP_CALLCONV SearchCompleteCallback(sp_search* result, void* userdata); + static void SP_CALLCONV MetadataUpdatedCallback(sp_session* session); + static int SP_CALLCONV MusicDeliveryCallback( sp_session* session, const sp_audioformat* format, const void* frames, int num_frames); - static void EndOfTrackCallback(sp_session* session); - static void StreamingErrorCallback(sp_session* session, sp_error error); + static void SP_CALLCONV EndOfTrackCallback(sp_session* session); + static void SP_CALLCONV StreamingErrorCallback(sp_session* session, sp_error error); // Spotify playlist container callbacks. - static void PlaylistAddedCallback( + static void SP_CALLCONV PlaylistAddedCallback( sp_playlistcontainer* pc, sp_playlist* playlist, int position, void* userdata); - static void PlaylistRemovedCallback( + static void SP_CALLCONV PlaylistRemovedCallback( sp_playlistcontainer* pc, sp_playlist* playlist, int position, void* userdata); - static void PlaylistMovedCallback( + static void SP_CALLCONV PlaylistMovedCallback( sp_playlistcontainer* pc, sp_playlist* playlist, int position, int new_position, void* userdata); - static void PlaylistContainerLoadedCallback( + static void SP_CALLCONV PlaylistContainerLoadedCallback( sp_playlistcontainer* pc, void* userdata); // Spotify playlist callbacks - when loading the list of playlists // initially - static void PlaylistStateChangedForGetPlaylists(sp_playlist* pl, void* userdata); + static void SP_CALLCONV PlaylistStateChangedForGetPlaylists(sp_playlist* pl, void* userdata); // Spotify playlist callbacks - when loading a playlist - static void PlaylistStateChangedForLoadPlaylist(sp_playlist* pl, void* userdata); + static void SP_CALLCONV PlaylistStateChangedForLoadPlaylist(sp_playlist* pl, void* userdata); // Spotify image callbacks. - static void ImageLoaded(sp_image* image, void* userdata); + static void SP_CALLCONV ImageLoaded(sp_image* image, void* userdata); // Request handlers. void Login(const QString& username, const QString& password); diff --git a/src/radio/spotifyservice.cpp b/src/radio/spotifyservice.cpp index b7ac91adb..3231f6b8c 100644 --- a/src/radio/spotifyservice.cpp +++ b/src/radio/spotifyservice.cpp @@ -51,8 +51,8 @@ SpotifyService::SpotifyService(RadioModel* parent) system_blob_path_ = QCoreApplication::applicationDirPath() + "/../PlugIns/clementine-spotifyblob"; #else - system_blob_path_ = QCoreApplication::applicationFilePath() + - "-spotifyblob" CMAKE_EXECUTABLE_SUFFIX; + system_blob_path_ = QCoreApplication::applicationDirPath() + + "/clementine-spotifyblob" CMAKE_EXECUTABLE_SUFFIX; #endif local_blob_version_ = QString("version%1-%2bit").arg(SPOTIFY_BLOB_VERSION).arg(sizeof(void*) * 8);