static gboolean soundmenu_lastfm_connect_idle (gpointer data) { SoundmenuLastfm *lastfm = data; if (g_str_empty0(lastfm->lastfm_user) || g_str_empty0(lastfm->lastfm_pass)) return FALSE; lastfm->session_id = LASTFM_init(LASTFM_API_KEY, LASTFM_SECRET); if (lastfm->session_id != NULL) { lastfm->status = LASTFM_login (lastfm->session_id, lastfm->lastfm_user, lastfm->lastfm_pass); if (lastfm->status != LASTFM_STATUS_OK) { LASTFM_dinit(lastfm->session_id); lastfm->session_id = NULL; } } soundmenu_update_lastfm_menu (lastfm); return FALSE; }
void cSession::Login(const string_t& sUserName, const string_t& sPassword) { bIsLoggedIn = false; const std::string sUserNameUTF8 = spitfire::string::ToUTF8(sUserName); const std::string sPasswordUTF8 = spitfire::string::ToUTF8(sPassword); int iResult = LASTFM_login(pSession, sUserNameUTF8.c_str(), sPasswordUTF8.c_str()); if (iResult != 0) { const char* szStatus = nullptr; const int* iErrorCode = nullptr; const char* szErrorText = nullptr; LASTFM_status(pSession, &szStatus, &iErrorCode, &szErrorText); std::cerr<<"cSession::Scrobble LASTFM_login FAILED status="<<szStatus<<", error="<<iErrorCode<<", "<<szErrorText<<std::endl; } else bIsLoggedIn = true; }