Mercurial > audlegacy
diff src/audacious/dbus.c @ 3867:e48f2f4c116d
- many remained audacious remote functions have been implemented.
- audtool improvement in progress.
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Mon, 29 Oct 2007 22:21:42 +0900 |
parents | fd86a88426f4 |
children | f3341c2d6b9e |
line wrap: on
line diff
--- a/src/audacious/dbus.c Sun Oct 28 21:37:05 2007 +0100 +++ b/src/audacious/dbus.c Mon Oct 29 22:21:42 2007 +0900 @@ -41,6 +41,8 @@ #include "tuple.h" #include "ui_jumptotrack.h" #include "strings.h" +#include "ui_credits.h" +#include "skin.h" static DBusGConnection *dbus_conn = NULL; static guint signals[LAST_SIG] = { 0 }; @@ -792,6 +794,128 @@ return TRUE; } +/* New on Oct 5 */ +gboolean audacious_rc_show_prefs_box(RemoteObject *obj, GError **error) { + if (has_x11_connection) + show_prefs_window(); + return TRUE; +} +gboolean audacious_rc_show_about_box(RemoteObject *obj, GError **error) { + if (has_x11_connection) + show_about_window(); + return TRUE; +} + +gboolean audacious_rc_show_jtf_box(RemoteObject *obj, GError **error) { + if (has_x11_connection) + ui_jump_to_track(); + return TRUE; +} + +gboolean audacious_rc_play_pause(RemoteObject *obj, GError **error) { + if (playback_get_playing()) + playback_pause(); + else + playback_initiate(); + return TRUE; +} + +gboolean audacious_rc_activate(RemoteObject *obj, GError **error) { + gtk_window_present(GTK_WINDOW(mainwin)); + return TRUE; +} + +gboolean audacious_rc_get_skin(RemoteObject *obj, gchar **skin, GError **error) { + *skin = g_strdup(bmp_active_skin->path); + return TRUE; +} + +gboolean audacious_rc_set_skin(RemoteObject *obj, gchar *skin, GError **error) { + if (has_x11_connection == TRUE) + bmp_active_skin_load(skin); + return TRUE; +} + +gboolean audacious_rc_get_info(RemoteObject *obj, gint *rate, gint *freq, gint *nch, GError **error) { + playback_get_sample_params(rate, freq, nch); + return TRUE; +} + +gboolean audacious_rc_toggle_aot(RemoteObject *obj, gboolean ontop, GError **error) { + if (has_x11_connection) { + mainwin_set_always_on_top(ontop); + } + return TRUE; +} + +/* New on Oct9: Queue */ +gboolean audacious_rc_playqueue_add(RemoteObject *obj, gint pos, GError **error) { + if (pos < (guint)playlist_get_length(playlist_get_active())) + playlist_queue_position(playlist_get_active(), pos); + return TRUE; +} + +gboolean audacious_rc_playqueue_remove(RemoteObject *obj, gint pos, GError **error) { + if (pos < (guint)playlist_get_length(playlist_get_active())) + playlist_queue_remove(playlist_get_active(), pos); + return TRUE; +} + +gboolean audacious_rc_playqueue_clear(RemoteObject *obj, GError **error) { + playlist_clear_queue(playlist_get_active()); + return TRUE; +} + +gboolean audacious_rc_get_playqueue_length(RemoteObject *obj, gint *length, GError **error) { + *length = playlist_queue_get_length(playlist_get_active()); + return TRUE; +} + +gboolean audacious_rc_queue_get_list_pos(RemoteObject *obj, gint qpos, gint *pos, GError **error) { + if (playback_get_playing()) + *pos = playlist_get_queue_qposition_number(playlist_get_active(), qpos); + + return TRUE; +} + +gboolean audacious_rc_queue_get_queue_pos(RemoteObject *obj, gint pos, gint *qpos, GError **error) { + if (playback_get_playing()) + *qpos = playlist_get_queue_position_number(playlist_get_active(), pos); + + return TRUE; +} + +gboolean audacious_rc_playqueue_is_queued(RemoteObject *obj, gint pos, gboolean *is_queued, GError **error) { + *is_queued = playlist_is_position_queued(playlist_get_active(), pos); + return TRUE; +} + + + +/* In Progress */ +static void call_add_url(GList *list, gpointer *data) { + playlist_add_url(playlist_get_active(), list->data); +} + +gboolean audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error) { + g_list_foreach((GList *)list, (GFunc)call_add_url, NULL); + return TRUE; +} + +gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, char *list, gint num, gboolean enqueue, GError **error) { + return TRUE; +} + +gboolean audacious_rc_playlist_ins_url_string(RemoteObject *obj, gchar *url, gint *pos, GError **error) { + if (url && strlen(url)) { + playlist_ins_url(playlist_get_active(), url, *pos); + } + return TRUE; +} + + +/********************************************************************************/ + DBusGProxy *audacious_get_dbus_proxy(void) { DBusGConnection *connection = NULL;