Beispiel #1
0
void session_seek(guint pos) {
    sp_session_player_seek(g_session, pos);
    g_audio_time = pos;
    g_audio_samples = 0;

    cb_notify_main_thread(NULL);
}
Beispiel #2
0
void session_play(gboolean play) {
    sp_session_player_play(g_session, play);

    if (!play)
        /* Force pause in the audio plugin */
        g_audio_delivery_func(NULL, NULL, 0);

    cb_notify_main_thread(NULL);
}
Beispiel #3
0
void session_unload() {
    session_callback_data scbd;

    g_debug("Unloading track.");

    /* First call callbacks */
    scbd.type = SPOP_SESSION_UNLOAD;
    scbd.data = NULL;
    g_list_foreach(g_session_callbacks, session_call_callback, &scbd);

    /* Then really unload */
    sp_session_player_play(g_session, FALSE);
    g_audio_delivery_func(NULL, NULL, 0);
    sp_session_player_unload(g_session);
    cb_notify_main_thread(NULL);
    g_audio_samples = 0;
    g_audio_time = 0;
}
Beispiel #4
0
/**********************
 * Session management *
 **********************/
void session_load(sp_track* track) {
    sp_error error;
    session_callback_data scbd;

    g_debug("Loading track.");

    error = sp_session_player_load(g_session, track);
    if (error != SP_ERROR_OK)
        g_error("Failed to load track: %s", sp_error_message(error));

    /* Queue some events management */
    cb_notify_main_thread(NULL);

    /* Then call callbacks */
    scbd.type = SPOP_SESSION_LOAD;
    scbd.data = track;
    g_list_foreach(g_session_callbacks, session_call_callback, &scbd);
}