Exemple #1
0
// Start playback.
void sess_play(sp_track *t)
{
  if (g_session.state != SESS_ONLINE) {
    log_append("Not connected");
    return;
  }

  if (!t || !sp_track_is_available(t) || !sp_track_is_loaded(t)) {
    log_append("Track not available");
    return;
  }

  sess_stop();

  g_session.current_track = t;

  log_append("Playing \"%s\"...", sp_track_name(t));

  sp_error err = sp_session_player_load(g_session.spotify, t);
  if (err != SP_ERROR_OK)
    panic("sp_session_player_load() failed: %s", sp_error_message(err));

  err = sp_session_player_play(g_session.spotify, true);
  if (err != SP_ERROR_OK)
    panic("sp_session_player_play() failed: %s", sp_error_message(err));

  g_session.playing = true;

  // Redraw track info and progress.
  ui_dirty(UI_TRACKINFO);
  ui_dirty(UI_TRACKPROGRESS);
  ui_update_post(0);
}
Exemple #2
0
static void sess_stop_cb(evutil_socket_t sock, short event, void *arg)
{
  (void)sock;
  (void)event;
  (void)arg;

  sess_stop();
}
Exemple #3
0
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);
}
Exemple #4
0
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);
}
Exemple #5
0
void cmd_cb_stop()
{
  sess_stop();
}