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;
}
Example #2
0
      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;
      }