diff src/libaudclient/audctrl.c @ 2713:8f7da5257692 trunk

[svn] - rename to libaudclient - enforce libaudclient.so.1
author nenolod
date Wed, 09 May 2007 14:40:01 -0700
parents src/libaudaciousng/audctrl.c@c35913222440
children f4a5f8fa3836
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/libaudclient/audctrl.c	Wed May 09 14:40:01 2007 -0700
@@ -0,0 +1,193 @@
+/*
+ * Audacious: A cross-platform multimedia player
+ * Copyright (c) 2007 Ben Tucker
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#    include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <glib.h>
+#include <dbus/dbus-glib.h>
+#include "audacious/dbus.h"
+#include "audacious/dbus-client-bindings.h"
+#include "audctrl.h"
+
+GError *error = NULL;
+
+void audacious_remote_playlist(DBusGProxy *proxy, gchar **list, gint num,
+                               gboolean enqueue) {
+}
+
+gint audacious_remote_get_version(DBusGProxy *proxy) {
+    return 0;
+}
+
+void audacious_remote_playlist_add(DBusGProxy *proxy, GList *list) {
+}
+
+void audacious_remote_playlist_delete(DBusGProxy *proxy, gint pos) {
+}
+
+void audacious_remote_play(DBusGProxy *proxy) {
+    org_atheme_audacious_playback_play(proxy, &error);
+    g_error_free(error);
+}
+
+void audacious_remote_pause(DBusGProxy *proxy) {
+    org_atheme_audacious_playback_pause(proxy, &error);
+    g_error_free(error);
+}
+
+void audacious_remote_stop(DBusGProxy *proxy) {
+    org_atheme_audacious_playback_stop(proxy, &error);
+    g_error_free(error);
+}
+
+gboolean audacious_remote_is_playing(DBusGProxy *proxy) {
+    gboolean is_playing;
+    org_atheme_audacious_playback_playing(proxy, &is_playing, &error);
+    g_error_free(error);
+    return is_playing;
+}
+
+gboolean audacious_remote_is_paused(DBusGProxy *proxy) {
+    gboolean is_paused;
+    org_atheme_audacious_playback_paused(proxy, &is_paused, &error);
+    g_error_free(error);
+    return is_paused;
+}
+
+gint audacious_remote_get_playlist_pos(DBusGProxy *proxy) {
+    gint pos;
+    org_atheme_audacious_playlist_position(proxy, &pos, &error);
+    g_error_free(error);
+    return pos;
+}
+
+void audacious_remote_set_playlist_pos(DBusGProxy *proxy, gint pos) {
+}
+
+gint audacious_remote_get_playlist_length(DBusGProxy *proxy) {
+    gint len;
+    org_atheme_audacious_playlist_length(proxy, &len, &error);
+    g_error_free(error);
+    return len;
+}
+
+void audacious_remote_playlist_clear(DBusGProxy *proxy) {
+    org_atheme_audacious_playlist_clear(proxy, &error);
+    g_error_free(error);
+}
+
+gint audacious_remote_get_output_time(DBusGProxy *proxy) {
+    gint time;
+    org_atheme_audacious_playback_time(proxy, &time, &error);
+    g_error_free(error);
+    return time;
+}
+
+void audacious_remote_jump_to_time(DBusGProxy *proxy, gint pos) {
+}
+
+/**
+ * audacious_remote_get_volume:
+ * @proxy: DBus proxy for audacious
+ * @vl: Pointer to integer containing the left channel's volume.
+ * @vr: Pointer to integer containing the right channel's volume.
+ *
+ * Queries audacious about the current volume.
+ **/
+void audacious_remote_get_volume(DBusGProxy *proxy, gint * vl, gint * vr) {
+    org_atheme_audacious_playback_volume(proxy, vl, vr, &error);
+    g_error_free(error);
+}
+
+/**
+ * audacious_remote_get_main_volume:
+ * @proxy: DBus proxy for audacious
+ *
+ * Queries audacious about the current volume.
+ *
+ * Return value: The current volume.
+ **/
+gint audacious_remote_get_main_volume(DBusGProxy *proxy) {
+    gint vl, vr;
+
+    audacious_remote_get_volume(proxy, &vl, &vr);
+
+    return (vl > vr) ? vl : vr;
+}
+
+/**
+ * audacious_remote_set_volume:
+ * @proxy: DBus proxy for audacious
+ * @vl: The volume for the left channel.
+ * @vr: The volume for the right channel.
+ *
+ * Sets the volume for the left and right channels in Audacious.
+ **/
+void audacious_remote_set_volume(DBusGProxy *proxy, gint vl, gint vr) {
+    org_atheme_audacious_playback_set_volume(proxy, vl, vr,  &error);
+    g_error_free(error);
+}
+
+
+/**
+ * audacious_remote_set_main_volume:
+ * @proxy: DBus proxy for audacious
+ * @v: The volume to set.
+ *
+ * Sets the volume in Audacious.
+ **/
+void audacious_remote_set_main_volume(DBusGProxy *proxy, gint v) {
+    gint b, vl, vr;
+
+    b = audacious_remote_get_balance(proxy);
+
+    if (b < 0) {
+        vl = v;
+        vr = (v * (100 - abs(b))) / 100;
+    } else if (b > 0) {
+        vl = (v * (100 - b)) / 100;
+        vr = v;
+    } else
+        vl = vr = v;
+    audacious_remote_set_volume(proxy, vl, vr);
+}
+
+/**
+ * audacious_remote_get_balance:
+ * @proxy: DBus proxy for audacious
+ *
+ * Queries audacious about the current balance.
+ *
+ * Return value: The current balance.
+ **/
+gint audacious_remote_get_balance(DBusGProxy *proxy) {
+    gint balance;
+    org_atheme_audacious_playback_balance(proxy, &balance,  &error);
+    g_error_free(error);
+    return balance;
+}
+
+void audacious_remote_playlist_add_url_string(DBusGProxy *proxy,
+                                              gchar *string) {
+    org_atheme_audacious_playlist_add_url(proxy, string, &error);
+    g_error_free(error);
+}