[Goodies-commits] r3950 - xfmpc/trunk/src
Mike Massonnet
mmassonnet at xfce.org
Fri Feb 15 03:35:35 CET 2008
Author: mmassonnet
Date: 2008-02-15 02:35:35 +0000 (Fri, 15 Feb 2008)
New Revision: 3950
Modified:
xfmpc/trunk/src/mpdclient.c
xfmpc/trunk/src/mpdclient.h
xfmpc/trunk/src/playlist.c
Log:
Use row-activated signal to change the song in the playlist
* src/mpdclient.c,
src/mpdclient.h:
- New function xfmpc_mpdclient_set_id to set the current song
* src/playlist.c:
- Connect signal row-activated to new callback cb_row_activated
Modified: xfmpc/trunk/src/mpdclient.c
===================================================================
--- xfmpc/trunk/src/mpdclient.c 2008-02-15 02:35:28 UTC (rev 3949)
+++ xfmpc/trunk/src/mpdclient.c 2008-02-15 02:35:35 UTC (rev 3950)
@@ -348,6 +348,15 @@
}
gboolean
+xfmpc_mpdclient_set_id (XfmpcMpdclient *mpdclient,
+ gint id)
+{
+ XfmpcMpdclientPrivate *priv = XFMPC_MPDCLIENT_GET_PRIVATE (mpdclient);
+
+ return mpd_player_play_id (priv->mi, id) == MPD_OK ? TRUE : FALSE;
+}
+
+gboolean
xfmpc_mpdclient_set_volume (XfmpcMpdclient *mpdclient,
guint8 volume)
{
Modified: xfmpc/trunk/src/mpdclient.h
===================================================================
--- xfmpc/trunk/src/mpdclient.h 2008-02-15 02:35:28 UTC (rev 3949)
+++ xfmpc/trunk/src/mpdclient.h 2008-02-15 02:35:35 UTC (rev 3950)
@@ -57,6 +57,8 @@
gboolean xfmpc_mpdclient_next (XfmpcMpdclient *mpdclient);
+gboolean xfmpc_mpdclient_set_id (XfmpcMpdclient *mpdclient,
+ gint id);
gboolean xfmpc_mpdclient_set_volume (XfmpcMpdclient *mpdclient,
guint8 volume);
gboolean xfmpc_mpdclient_set_song_time (XfmpcMpdclient *mpdclient,
Modified: xfmpc/trunk/src/playlist.c
===================================================================
--- xfmpc/trunk/src/playlist.c 2008-02-15 02:35:28 UTC (rev 3949)
+++ xfmpc/trunk/src/playlist.c 2008-02-15 02:35:35 UTC (rev 3950)
@@ -40,13 +40,16 @@
static void cb_playlist_changed (XfmpcPlaylist *playlist);
+static void cb_row_activated (XfmpcPlaylist *playlist,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column);
/* List store identifiers */
enum
{
- COLUMN_POS,
+ COLUMN_ID,
COLUMN_SONG,
COLUMN_LENGTH,
COLUMN_IS_CURRENT,
@@ -180,6 +183,8 @@
gtk_box_pack_start (GTK_BOX (playlist), scrolled, TRUE, TRUE, 0);
/* Signals */
+ g_signal_connect_swapped (priv->treeview, "row-activated",
+ G_CALLBACK (cb_row_activated), playlist);
g_signal_connect_swapped (playlist->mpdclient, "song-changed",
G_CALLBACK (cb_playlist_changed), playlist);
g_signal_connect_swapped (playlist->mpdclient, "playlist-changed",
@@ -220,7 +225,7 @@
gtk_list_store_append (priv->store, &iter);
gtk_list_store_set (priv->store, &iter,
- COLUMN_POS, id,
+ COLUMN_ID, id,
COLUMN_SONG, song,
COLUMN_LENGTH, length,
COLUMN_IS_CURRENT, is_current ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL,
@@ -254,3 +259,21 @@
}
}
+static void
+cb_row_activated (XfmpcPlaylist *playlist,
+ GtkTreePath *path,
+ GtkTreeViewColumn *column)
+{
+ XfmpcPlaylistPrivate *priv = XFMPC_PLAYLIST_GET_PRIVATE (playlist);
+ GtkTreeIter iter;
+ gint id;
+
+ if (!gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->store), &iter, path))
+ return;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (priv->store), &iter,
+ COLUMN_ID, &id,
+ -1);
+ xfmpc_mpdclient_set_id (playlist->mpdclient, id);
+}
+
More information about the Goodies-commits
mailing list