void sess_connect() { assert(g_session.username && g_session.password); sess_disconnect(); if (!(g_session.dsfy = despotify_init_client(sess_callback, NULL, true, true))) panic("despotify_init_client(...) failed"); play_state = PAUSE; pthread_create(&thread, NULL, &thread_loop, g_session.dsfy); // Login with credentials set by sess_username/sess_password. if (!despotify_authenticate(g_session.dsfy, g_session.username, g_session.password)) { g_session.state = SESS_ERROR; log_append(despotify_get_error(g_session.dsfy)); despotify_exit(g_session.dsfy); // Switch to log view. ui_show(UI_SET_LOG); } else { g_session.state = SESS_ONLINE; log_append("Logged in as %s@%s:%d (%s)", g_session.dsfy->user_info->username, g_session.dsfy->user_info->server_host, g_session.dsfy->user_info->server_port, g_session.dsfy->user_info->country); // Switch to browser view. ui_show(UI_SET_BROWSER); } // Redraw status info. ui_dirty(UI_FOOTER); }
static void sess_cb_logged_in(sp_session *sess, sp_error err) { if (err == SP_ERROR_OK) { g_session.state = SESS_ONLINE; log_append("Logged in as \"%s\"", sp_user_display_name(sp_session_user(sess))); ui_dirty(UI_FOOTER); ui_show(UI_SET_BROWSER); } else { g_session.state = SESS_ERROR; log_append(sp_error_message(err)); ui_dirty(UI_FOOTER); ui_show(UI_SET_LOG); } }
void sess_disconnect() { if (thread) thread_exit(); if (g_session.state == SESS_ONLINE) { sess_stop(); despotify_exit(g_session.dsfy); log_append("Disconnected"); // Return to splash screen. ui_show(UI_SET_SPLASH); } g_session.state = SESS_OFFLINE; // Redraw status info. ui_dirty(UI_FOOTER); }
void sess_disconnect() { if (g_session.state == SESS_ONLINE) { sess_stop(); sp_error err = sp_session_logout(g_session.spotify); if (err != SP_ERROR_OK) panic("sp_session_logout() failed: %s", sp_error_message(err)); log_append("Disconnecting..."); g_session.state = SESS_DISCONNECTING; // Return to splash screen. ui_show(UI_SET_SPLASH); } // Redraw status info. ui_dirty(UI_FOOTER); ui_update_post(0); }
void cmd_cb_main() { ui_show(UI_SET_BROWSER); }
void cmd_cb_help() { ui_show(UI_SET_HELP); }
void cmd_cb_log() { ui_show(UI_SET_LOG); }