コード例 #1
0
ファイル: session.c プロジェクト: hauk142/despotify
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);
}
コード例 #2
0
ファイル: session.c プロジェクト: GunioRobot/polspot
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);
  }
}
コード例 #3
0
ファイル: session.c プロジェクト: hauk142/despotify
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);
}
コード例 #4
0
ファイル: session.c プロジェクト: GunioRobot/polspot
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);
}
コード例 #5
0
ファイル: commands.c プロジェクト: GunioRobot/polspot
void cmd_cb_main()
{
  ui_show(UI_SET_BROWSER);
}
コード例 #6
0
ファイル: commands.c プロジェクト: GunioRobot/polspot
void cmd_cb_help()
{
  ui_show(UI_SET_HELP);
}
コード例 #7
0
ファイル: commands.c プロジェクト: GunioRobot/polspot
void cmd_cb_log()
{
  ui_show(UI_SET_LOG);
}