static void ol_menu_update_player_control () { ol_log_func (); OlPlayer *player = ol_app_get_player (); if (menu.play) { if (player != NULL) { if (ol_player_get_status (player) == OL_PLAYER_PLAYING) { gtk_widget_hide (menu.play); } else { gtk_widget_show (menu.play); gtk_widget_set_sensitive (menu.play, ol_player_get_caps (player) & OL_PLAYER_PLAY); } } else { gtk_widget_show (menu.play); gtk_widget_set_sensitive (menu.play, FALSE); } } if (menu.pause) { if (player != NULL) { if (ol_player_get_status (player) == OL_PLAYER_PLAYING) gtk_widget_show (menu.pause); else gtk_widget_hide (menu.pause); gtk_widget_set_sensitive (menu.pause, ol_player_get_caps (player) & OL_PLAYER_PAUSE); } else { gtk_widget_hide (menu.pause); } } if (menu.stop) gtk_widget_set_sensitive (menu.stop, player != NULL && (ol_player_get_caps (player) & OL_PLAYER_STOP)); if (menu.prev) gtk_widget_set_sensitive (menu.prev, player != NULL && (ol_player_get_caps (player) & OL_PLAYER_PREV)); if (menu.next) gtk_widget_set_sensitive (menu.next, player != NULL && (ol_player_get_caps (player) & OL_PLAYER_NEXT)); }
static void _update_status (OlOsdToolbar *toolbar) { ol_log_func (); OlOsdToolbarPriv *priv = OL_OSD_TOOLBAR_GET_PRIVATE (toolbar); enum OlPlayerStatus status; if (priv->player) status = ol_player_get_status (priv->player); else status = OL_PLAYER_UNKNOWN; switch (status) { case OL_PLAYER_PLAYING: gtk_widget_show (GTK_WIDGET (toolbar->pause_button)); gtk_widget_hide (GTK_WIDGET (toolbar->play_button)); break; case OL_PLAYER_PAUSED: case OL_PLAYER_STOPPED: gtk_widget_hide (GTK_WIDGET (toolbar->pause_button)); gtk_widget_show (GTK_WIDGET (toolbar->play_button)); break; default: gtk_widget_show (GTK_WIDGET (toolbar->pause_button)); gtk_widget_show (GTK_WIDGET (toolbar->play_button)); break; } gtk_widget_queue_draw (GTK_WIDGET (toolbar)); }
static gint _refresh_player_info (gpointer data) { ol_log_func (); if (player != NULL) { if (ol_player_get_capacity (player) & OL_PLAYER_STATUS) _update_player_status (ol_player_get_status (player)); _check_music_change (); } return TRUE; }