void drct_play (void) { if (playback_get_playing ()) { if (playback_get_paused ()) playback_pause (); else playback_seek (0); } else { playlist_set_playing (playlist_get_active ()); playback_play (0, FALSE); } }
static gboolean get_status_cb(void *data) { struct StatusRequest *request = data; g_mutex_lock(info_mutex); memset (request, 0, sizeof (* request)); request->playing = playback_get_playing(); if (request->playing) { request->paused = playback_get_paused (); request->time = playback_get_time (); request->length = playback_get_length (); playback_get_info (& request->bitrate, & request->samplerate, & request->channels); } g_cond_signal(info_cond); g_mutex_unlock(info_mutex); return FALSE; }
void drct_play_playlist (int playlist) { bool_t same_playlist = (playlist_get_playing () == playlist); if (! same_playlist) playlist_set_playing (playlist); if (playback_get_playing ()) { if (playback_get_paused ()) playback_pause (); else if (same_playlist) playback_seek (0); } else { if (playlist_get_position (playlist) < 0) playlist_next_song (playlist, TRUE); playback_play (0, FALSE); } }
static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, bool_t enable) { if (ep->preserves_format) { pthread_mutex_lock (& mutex); if (enable) effect_insert (plugin, ep); else effect_remove (plugin); pthread_mutex_unlock (& mutex); } else { AUDDBG ("Reset to add/remove %s.\n", plugin_get_name (plugin)); int time = playback_get_time (); bool_t paused = playback_get_paused (); playback_stop (); playback_play (time, paused); } }
gboolean drct_get_paused (void) { return playback_get_paused (); }