changeset 2709:47ea8eedd428 trunk

[svn] - drop controlsocket code. this probably does not compile yet.
author nenolod
date Wed, 09 May 2007 14:03:11 -0700
parents b66e6a928a6e
children 982a825992e1
files ChangeLog src/audacious/Makefile src/audacious/build_stamp.c src/audacious/controlsocket.c src/audacious/controlsocket.h src/audacious/genevent.c src/audacious/main.c src/audacious/pluginenum.c src/audacious/ui_jumptotrack.c src/audacious/ui_main.c
diffstat 10 files changed, 12 insertions(+), 961 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue May 08 23:24:26 2007 -0700
+++ b/ChangeLog	Wed May 09 14:03:11 2007 -0700
@@ -1,3 +1,11 @@
+2007-05-09 06:24:26 +0000  Yoshiki Yazawa <yaz@cc.rim.or.jp>
+  revision [4442]
+  - add dependency for dbus bindings.
+  
+  trunk/src/audacious/Makefile |   10 +++++++++-
+  1 file changed, 9 insertions(+), 1 deletion(-)
+
+
 2007-05-08 19:30:53 +0000  William Pitcock <nenolod@sacredspiral.co.uk>
   revision [4440]
   - remove unused function 'extname'
--- a/src/audacious/Makefile	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/Makefile	Wed May 09 14:03:11 2007 -0700
@@ -57,7 +57,6 @@
 
 SOURCES = \
 	build_stamp.c \
-	controlsocket.c \
 	$(DBUS_C) \
 	dnd.c \
 	dock.c \
--- a/src/audacious/build_stamp.c	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/build_stamp.c	Wed May 09 14:03:11 2007 -0700
@@ -1,2 +1,2 @@
 #include <glib.h>
-const gchar *svn_stamp = "20070508-4440";
+const gchar *svn_stamp = "20070509-4442";
--- a/src/audacious/controlsocket.c	Tue May 08 23:24:26 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,852 +0,0 @@
-/*  Audacious
- *  Copyright (C) 2005-2007  Audacious development team.
- *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team.
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
- *
- *  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.
- */
-
-#include "controlsocket.h"
-
-#include <glib.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <unistd.h>
-#include <errno.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <grp.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-#include <sys/resource.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <arpa/inet.h>
-
-#include "main.h"
-#include "ui_equalizer.h"
-#include "ui_main.h"
-#include "input.h"
-#include "playback.h"
-#include "playlist.h"
-#include "ui_playlist.h"
-#include "ui_preferences.h"
-#include "libaudacious/beepctrl.h"
-#include "memorypool.h"
-#include "titlestring.h"
-#include "ui_jumptotrack.h"
-
-#define CTRLSOCKET_BACKLOG        100
-#define CTRLSOCKET_TIMEOUT        100000
-
-
-static gint session_id = 0;
-
-static gint ctrl_fd = 0;
-static gchar *socket_name = NULL;
-
-static gpointer ctrlsocket_func(gpointer);
-static GThread *ctrlsocket_thread;
-
-static GList *packet_list = NULL;
-static GMutex *packet_list_mutex = NULL;
-
-static gboolean started = FALSE;
-static gboolean going = TRUE;
-static GCond *start_cond = NULL;
-static GMutex *status_mutex = NULL;
-static MemoryPool *cs_pool = NULL;
-
-static void
-ctrlsocket_start_thread(void)
-{
-    start_cond = g_cond_new();
-    status_mutex = g_mutex_new();
-    packet_list_mutex = g_mutex_new();
-
-    ctrlsocket_thread = g_thread_create(ctrlsocket_func, NULL, TRUE, NULL);
-}
-
-gboolean
-ctrlsocket_setup(void)
-{
-    cs_pool = memory_pool_new();
-
-    if (strcmp(cfg.session_uri_base, ""))
-        audacious_set_session_uri(cfg.session_uri_base);
-    else
-        return ctrlsocket_setup_unix();
-
-    if (!g_strncasecmp(cfg.session_uri_base, "tcp://", 6))
-	return ctrlsocket_setup_tcp();
-
-    return ctrlsocket_setup_unix();
-}
-
-gboolean
-ctrlsocket_setup_unix(void)
-{
-    struct sockaddr_un saddr;
-    gint i;
-    gint fd;
-
-    audacious_set_session_type(AUDACIOUS_TYPE_UNIX);
-
-    if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
-        g_critical("ctrlsocket_setup(): Failed to open socket: %s",
-                   strerror(errno));
-        return FALSE;
-    }
-
-    for (i = 0;; i++) {
-        saddr.sun_family = AF_UNIX;
-        g_snprintf(saddr.sun_path, sizeof(saddr.sun_path),
-                   "%s/%s_%s.%d", g_get_tmp_dir(),
-                   CTRLSOCKET_NAME, g_get_user_name(), i);
-
-        if (xmms_remote_is_running(i)) {
-            if (cfg.allow_multiple_instances)
-                continue;
-            break;
-        }
-
-        if ((unlink(saddr.sun_path) == -1) && errno != ENOENT) {
-            g_critical
-                ("ctrlsocket_setup(): Failed to unlink %s (Error: %s)",
-                 saddr.sun_path, strerror(errno));
-            break;
-        }
-
-        if (bind(fd, (struct sockaddr *) &saddr, sizeof(saddr)) == -1) {
-            g_critical
-                ("ctrlsocket_setup(): Failed to assign %s to a socket (Error: %s)",
-                 saddr.sun_path, strerror(errno));
-            break;
-        }
-
-        listen(fd, CTRLSOCKET_BACKLOG);
-
-        socket_name = memory_pool_strdup(cs_pool, saddr.sun_path);
-        ctrl_fd = fd;
-        session_id = i;
-        going = TRUE;
-
-        ctrlsocket_start_thread();
-
-        return TRUE;
-    }
-
-    close(fd);
-
-    return FALSE;
-}
-
-gboolean
-ctrlsocket_setup_tcp(void)
-{
-    struct sockaddr_in saddr;
-    gint i;
-    gint fd;
-
-    audacious_set_session_type(AUDACIOUS_TYPE_TCP);
-
-    if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
-        g_critical("ctrlsocket_setup(): Failed to open socket: %s",
-                   strerror(errno));
-        return FALSE;
-    }
-
-    for (i = 0;; i++) {
-	memset(&saddr, '\0', sizeof(saddr));
-        saddr.sin_family = AF_INET;
-	saddr.sin_port = htons(37370 + i);
-
-        if (xmms_remote_is_running(i)) {
-            if (cfg.allow_multiple_instances)
-                continue;
-            break;
-        }
-
-        if (bind(fd, (struct sockaddr *) &saddr, sizeof(saddr)) == -1) {
-            g_critical
-                ("ctrlsocket_setup(): Failed to bind the socket (Error: %s)",
-                 strerror(errno));
-            break;
-        }
-
-        listen(fd, CTRLSOCKET_BACKLOG);
-
-        ctrl_fd = fd;
-        session_id = i;
-        going = TRUE;
-
-        ctrlsocket_start_thread();
-
-        return TRUE;
-    }
-
-    close(fd);
-
-    return FALSE;
-}
-
-gint
-ctrlsocket_get_session_id(void)
-{
-    return session_id;
-}
-
-void
-ctrlsocket_cleanup(void)
-{
-    if (ctrl_fd)
-    {
-        g_mutex_lock(status_mutex);
-        going = FALSE;
-        g_cond_signal(start_cond);
-        g_mutex_unlock(status_mutex);
-
-        /* wait for ctrlsocket_thread to terminate */
-        g_thread_join(ctrlsocket_thread);
-
-        /* close and remove socket */
-        close(ctrl_fd);
-        ctrl_fd = 0;
-
-        if (socket_name != NULL)
-	{
-            unlink(socket_name);
-            memory_pool_release(cs_pool, socket_name);
-	}
-
-        g_cond_free(start_cond);
-        g_mutex_free(status_mutex);
-        g_mutex_free(packet_list_mutex);
-    }
-
-    memory_pool_destroy(cs_pool);
-}
-
-void
-ctrlsocket_start(void)
-{
-    /* tell control socket thread to go 'live' i.e. start handling
-     * packets  */
-    g_mutex_lock(status_mutex);
-    started = TRUE;
-    g_cond_signal(start_cond);
-    g_mutex_unlock(status_mutex);
-}
-
-static void
-ctrl_write_packet(gint fd, gpointer data, gint length)
-{
-    ServerPktHeader pkthdr;
-
-    memset(&pkthdr, '\0', sizeof(ServerPktHeader));
-
-    pkthdr.version = XMMS_PROTOCOL_VERSION;
-    pkthdr.data_length = length;
-    if ((size_t)write(fd, &pkthdr, sizeof(ServerPktHeader)) < sizeof(pkthdr))
-    {
-        g_warning("ctrl_write_packet: failed to write packet header");
-        return;
-    }
-    if (data && length > 0)
-        if(length != write(fd, data, length))
-        {
-            g_warning("ctrl_write_packet: failed to write packet");
-            return;
-        }
-}
-
-static void
-ctrl_write_gint(gint fd, gint val)
-{
-    ctrl_write_packet(fd, &val, sizeof(gint));
-}
-
-static void
-ctrl_write_gfloat(gint fd, gfloat val)
-{
-    ctrl_write_packet(fd, &val, sizeof(gfloat));
-}
-
-static void
-ctrl_write_gboolean(gint fd, gboolean bool)
-{
-    ctrl_write_packet(fd, &bool, sizeof(gboolean));
-}
-
-static void
-ctrl_write_string(gint fd, gchar * string)
-{
-    ctrl_write_packet(fd, string, string ? strlen(string) + 1 : 0);
-}
-
-static void
-ctrl_ack_packet(PacketNode * pkt)
-{
-    ctrl_write_packet(pkt->fd, NULL, 0);
-    close(pkt->fd);
-    if (pkt->data)
-        memory_pool_release(cs_pool, pkt->data);
-    memory_pool_release(cs_pool, pkt);
-}
-
-static gboolean
-ctrlsocket_is_going(void)
-{
-    gboolean result;
-
-    g_mutex_lock(status_mutex);
-    result = going;
-    g_mutex_unlock(status_mutex);
-
-    return result;
-}
-
-static gpointer
-ctrlsocket_func(gpointer arg)
-{
-    fd_set set;
-    struct timeval tv;
-    struct sockaddr_un saddr;
-    gint fd, b, i;
-    gint info[3];
-    gint32 v[2];
-    PacketNode *pkt;
-    socklen_t len;
-    gfloat fval[11];
-
-    g_mutex_lock(status_mutex);
-    while (!started && going)
-        g_cond_wait(start_cond, status_mutex);
-    g_mutex_unlock(status_mutex);
-
-    while (ctrlsocket_is_going()) {
-        FD_ZERO(&set);
-        FD_SET(ctrl_fd, &set);
-        tv.tv_sec = 0;
-        tv.tv_usec = CTRLSOCKET_TIMEOUT;
-        len = sizeof(saddr);
-        if (select(ctrl_fd + 1, &set, NULL, NULL, &tv) <= 0)
-            continue;
-        if ((fd = accept(ctrl_fd, (struct sockaddr *) &saddr, &len)) == -1)
-            continue;
-
-        pkt = memory_pool_alloc_object(cs_pool, PacketNode);
-        if ((size_t)read(fd, &pkt->hdr, sizeof(ClientPktHeader))
-            < sizeof(ClientPktHeader)) {
-            memory_pool_release(cs_pool, pkt);
-            continue;
-        }
-
-        if (pkt->hdr.data_length) {
-            size_t data_length = pkt->hdr.data_length;
-            pkt->data = memory_pool_allocate(cs_pool, data_length);
-            if ((size_t)read(fd, pkt->data, data_length) < data_length) {
-                memory_pool_release(cs_pool, pkt->data);
-                memory_pool_release(cs_pool, pkt);
-                g_warning("ctrlsocket_func(): Incomplete data packet dropped");
-                continue;
-            }
-        }
-
-        pkt->fd = fd;
-        switch (pkt->hdr.command) {
-        case CMD_GET_VERSION:
-            ctrl_write_gint(pkt->fd, 0x09a3);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_PLAYING:
-            ctrl_write_gboolean(pkt->fd, playback_get_playing());
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_PAUSED:
-            ctrl_write_gboolean(pkt->fd, playback_get_paused());
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_PLAYLIST_POS:
-            ctrl_write_gint(pkt->fd, playlist_get_position(playlist_get_active()));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_PLAYLIST_LENGTH:
-            ctrl_write_gint(pkt->fd, playlist_get_length(playlist_get_active()));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_PLAYQUEUE_LENGTH:
-            ctrl_write_gint(pkt->fd, playlist_queue_get_length(playlist_get_active()));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYQUEUE_IS_QUEUED:
-            ctrl_write_gboolean(pkt->fd,
-                playlist_is_position_queued(playlist_get_active(), *((guint32 *) pkt->data)));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYQUEUE_GET_POS:
-            if (pkt->data)
-                ctrl_write_gint(pkt->fd,
-                                playlist_get_queue_position_number(playlist_get_active(),
-                                                                   *((guint32 *) pkt->data)));
-            else
-                ctrl_write_gint(pkt->fd, 0);
-
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYQUEUE_GET_QPOS:
-            if (pkt->data)
-                ctrl_write_gint(pkt->fd,
-                                playlist_get_queue_position_number(playlist_get_active(),
-                                                                   *((guint32 *) pkt->data)));
-            else
-                ctrl_write_gint(pkt->fd, 0);
-
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_OUTPUT_TIME:
-            if (playback_get_playing())
-                ctrl_write_gint(pkt->fd, playback_get_time());
-            else
-                ctrl_write_gint(pkt->fd, 0);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_VOLUME:
-            input_get_volume(&v[0], &v[1]);
-            ctrl_write_packet(pkt->fd, v, sizeof(v));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_BALANCE:
-            input_get_volume(&v[0], &v[1]);
-            if (v[0] < 0 || v[1] < 0)
-                b = 0;
-            else if (v[0] > v[1])
-                b = -100 + ((v[1] * 100) / v[0]);
-            else if (v[1] > v[0])
-                b = 100 - ((v[0] * 100) / v[1]);
-            else
-                b = 0;
-            ctrl_write_gint(pkt->fd, b);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_SKIN:
-            ctrl_write_string(pkt->fd, bmp_active_skin->path);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_PLAYLIST_FILE:
-            if (pkt->data) {
-                gchar *filename;
-                filename = playlist_get_filename(playlist_get_active(), *((guint32 *) pkt->data));
-                ctrl_write_string(pkt->fd, filename);
-                g_free(filename);
-            }
-            else
-                ctrl_write_string(pkt->fd, NULL);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_PLAYLIST_TITLE:
-            if (pkt->data) {
-                gchar *title;
-                title = playlist_get_songtitle(playlist_get_active(), *((guint32 *) pkt->data));
-                ctrl_write_string(pkt->fd, title);
-                g_free(title);
-            }
-            else
-                ctrl_write_string(pkt->fd, NULL);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_PLAYLIST_TIME:
-            if (pkt->data)
-                ctrl_write_gint(pkt->fd,
-                                playlist_get_songtime(playlist_get_active(),
-                                                      *((guint32 *) pkt->data)));
-            else
-                ctrl_write_gint(pkt->fd, -1);
-
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_INFO:
-            playback_get_sample_params(&info[0], &info[1], &info[2]);
-            ctrl_write_packet(pkt->fd, info, 3 * sizeof(gint));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_EQ_DATA:
-        case CMD_SET_EQ_DATA:
-            /* obsolete */
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PING:
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYLIST_ADD:
-            if (pkt->data) {
-                guint32 *dataptr = pkt->data;
-                while ((len = *dataptr) > 0) {
-                    gchar *filename;
-
-                    dataptr++;
-                    filename = memory_pool_allocate(cs_pool, len);
-                    memcpy(filename, dataptr, len);
-
-                    GDK_THREADS_ENTER();
-                    playlist_add_url(playlist_get_active(), filename);
-                    GDK_THREADS_LEAVE();
-
-                    memory_pool_release(cs_pool, filename);
-                    dataptr += (len + 3) / 4;
-                }
-            }
-            ctrl_ack_packet(pkt);
-            break;
-	case CMD_PLAYLIST_ENQUEUE_TO_TEMP:
-	    {
- 	        Playlist *new_pl = playlist_new();
-
-                GDK_THREADS_ENTER();
-                playlist_select_playlist(new_pl);
-                playlist_add_url(new_pl, pkt->data);
-                GDK_THREADS_LEAVE();
-
-                ctrl_ack_packet(pkt);
-            }
-            break;
-        case CMD_PLAYLIST_ADD_URL_STRING:
-            GDK_THREADS_ENTER();
-            playlist_add_url(playlist_get_active(), pkt->data);
-            GDK_THREADS_LEAVE();
-
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYLIST_INS_URL_STRING:
-            if (pkt->data) {
-                gint pos = *(gint *) pkt->data;
-                gchar *ptr = pkt->data;
-                ptr += sizeof(gint);
-                playlist_ins_url(playlist_get_active(), ptr, pos);
-            }
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYLIST_DELETE:
-            GDK_THREADS_ENTER();
-            playlist_delete_index(playlist_get_active(), *((guint32 *) pkt->data));
-            GDK_THREADS_LEAVE();
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYLIST_CLEAR:
-            GDK_THREADS_ENTER();
-            playlist_clear(playlist_get_active());
-            mainwin_clear_song_info();
-            mainwin_set_info_text();
-            GDK_THREADS_LEAVE();
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_PLAYLIST_GET_TUPLE_DATA:
-            if (pkt->data) {
-                gint pos = *(gint *) pkt->data;
-                gchar *ptr = pkt->data;
-                TitleInput *tuple;
-                ptr += sizeof(gint);
-                tuple = playlist_get_tuple(playlist_get_active(), pos);
-                if (!tuple) {
-                    ctrl_ack_packet(pkt);
-                    break;
-                }
-                if (!strcasecmp(ptr, "performer")) {
-                    ctrl_write_string(pkt->fd, tuple->performer);
-                } else if (!strcasecmp(ptr, "album_name")) {
-                    ctrl_write_string(pkt->fd, tuple->album_name);
-                } else if (!strcasecmp(ptr, "track_name")) {
-                    ctrl_write_string(pkt->fd, tuple->track_name);
-                } else if (!strcasecmp(ptr, "track_number")) {
-                    ctrl_write_gint(pkt->fd, tuple->track_number);
-                } else if (!strcasecmp(ptr, "year")) {
-                    ctrl_write_gint(pkt->fd, tuple->year);
-                } else if (!strcasecmp(ptr, "date")) {
-                    ctrl_write_string(pkt->fd, tuple->date);
-                } else if (!strcasecmp(ptr, "genre")) {
-                    ctrl_write_string(pkt->fd, tuple->genre);
-                } else if (!strcasecmp(ptr, "comment")) {
-                    ctrl_write_string(pkt->fd, tuple->comment);
-                } else if (!strcasecmp(ptr, "file_name")) {
-                    ctrl_write_string(pkt->fd, tuple->file_name);
-                } else if (!strcasecmp(ptr, "file_ext")) {
-                    ctrl_write_string(pkt->fd, g_strdup(tuple->file_ext));
-                } else if (!strcasecmp(ptr, "file_path")) {
-                    ctrl_write_string(pkt->fd, tuple->file_path);
-                } else if (!strcasecmp(ptr, "length")) {
-                    ctrl_write_gint(pkt->fd, tuple->length);
-                } else if (!strcasecmp(ptr, "album_name")) {
-                    ctrl_write_string(pkt->fd, tuple->album_name);
-                } else if (!strcasecmp(ptr, "formatter")) {
-                    ctrl_write_string(pkt->fd, tuple->formatter);
-                } else if (!strcasecmp(ptr, "custom")) {
-                    ctrl_write_string(pkt->fd, tuple->custom);
-                } else if (!strcasecmp(ptr, "mtime")) {
-                    ctrl_write_gint(pkt->fd, tuple->mtime);
-                }
-            }
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_MAIN_WIN:
-            ctrl_write_gboolean(pkt->fd, cfg.player_visible);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_PL_WIN:
-            ctrl_write_gboolean(pkt->fd, cfg.playlist_visible);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_EQ_WIN:
-            ctrl_write_gboolean(pkt->fd, cfg.equalizer_visible);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_REPEAT:
-            ctrl_write_gboolean(pkt->fd, cfg.repeat);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_SHUFFLE:
-            ctrl_write_gboolean(pkt->fd, cfg.shuffle);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_IS_ADVANCE:
-            ctrl_write_gboolean(pkt->fd, !cfg.no_playlist_advance);
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_EQ:
-            fval[0] = equalizerwin_get_preamp();
-            for (i = 0; i < 10; i++)
-                fval[i + 1] = equalizerwin_get_band(i);
-            ctrl_write_packet(pkt->fd, fval, 11 * sizeof(gfloat));
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_EQ_PREAMP:
-            ctrl_write_gfloat(pkt->fd, equalizerwin_get_preamp());
-            ctrl_ack_packet(pkt);
-            break;
-        case CMD_GET_EQ_BAND:
-            i = *((guint32 *) pkt->data);
-            ctrl_write_gfloat(pkt->fd, equalizerwin_get_band(i));
-            ctrl_ack_packet(pkt);
-            break;
-        default:
-            g_mutex_lock(packet_list_mutex);
-            packet_list = g_list_append(packet_list, pkt);
-            ctrl_write_packet(pkt->fd, NULL, 0);
-            close(pkt->fd);
-            g_mutex_unlock(packet_list_mutex);
-            break;
-        }
-    }
-    g_thread_exit(NULL);
-
-    /* Used to suppress GCC warnings. Sometimes you'd wish C has
-       native threading support :p */
-    return NULL;
-}
-
-void
-ctrlsocket_check(void)
-{
-    GList *pkt_list, *next;
-    PacketNode *pkt;
-    gpointer data;
-    guint32 v[2], i, num;
-    gboolean tbool;
-    gfloat *fval, f;
-
-    g_mutex_lock(packet_list_mutex);
-    for (pkt_list = packet_list; pkt_list; pkt_list = next) {
-        pkt = pkt_list->data;
-        data = pkt->data;
-
-        switch (pkt->hdr.command) {
-        case CMD_PLAY:
-            if (playback_get_paused())
-                playback_pause();
-            else if (playlist_get_length(playlist_get_active()))
-                playback_initiate();
-            else
-                mainwin_eject_pushed();
-            break;
-        case CMD_PAUSE:
-            playback_pause();
-            break;
-        case CMD_STOP:
-            ip_data.stop = TRUE;
-            playback_stop();
-            ip_data.stop = FALSE;
-            mainwin_clear_song_info();
-            break;
-        case CMD_PLAY_PAUSE:
-            if (playback_get_playing())
-                playback_pause();
-            else
-                playback_initiate();
-            break;
-        case CMD_PLAYQUEUE_ADD:
-            num = *((guint32 *) data);
-            if (num < (guint)playlist_get_length(playlist_get_active()))
-                playlist_queue_position(playlist_get_active(), num);
-            break;
-        case CMD_PLAYQUEUE_REMOVE:
-            num = *((guint32 *) data);
-            if (num < (guint)playlist_get_length(playlist_get_active()))
-                playlist_queue_remove(playlist_get_active(), num);
-            break;
-        case CMD_PLAYQUEUE_CLEAR:
-            playlist_clear_queue(playlist_get_active());
-            break;
-        case CMD_SET_PLAYLIST_POS:
-            num = *((guint32 *) data);
-            if (num < (guint)playlist_get_length(playlist_get_active()))
-                playlist_set_position(playlist_get_active(), num);
-            break;
-        case CMD_JUMP_TO_TIME:
-            num = *((guint32 *) data);
-            if (playlist_get_current_length(playlist_get_active()) > 0 &&
-                num < (guint)playlist_get_current_length(playlist_get_active()))
-                playback_seek(num / 1000);
-            break;
-        case CMD_SET_VOLUME:
-            v[0] = ((guint32 *) data)[0];
-            v[1] = ((guint32 *) data)[1];
-            for (i = 0; i < 2; i++) {
-                if (v[i] > 100)
-                    v[i] = 100;
-            }
-            input_set_volume(v[0], v[1]);
-            break;
-        case CMD_SET_SKIN:
-	    if (has_x11_connection == TRUE)
-                bmp_active_skin_load(data);
-            break;
-        case CMD_PL_WIN_TOGGLE:
-	    if (has_x11_connection != TRUE)
-                break;
-            tbool = *((gboolean *) data);
-            if (tbool)
-                playlistwin_show();
-            else
-                playlistwin_hide();
-            break;
-        case CMD_EQ_WIN_TOGGLE:
-	    if (has_x11_connection != TRUE)
-                break;
-            tbool = *((gboolean *) data);
-            equalizerwin_show(!!tbool);
-            break;
-        case CMD_SHOW_PREFS_BOX:
-	    if (has_x11_connection != TRUE)
-                break;
-            show_prefs_window();
-            break;
-        case CMD_SHOW_JTF_BOX:
-	    if (has_x11_connection != TRUE)
-                break;
-            ui_jump_to_track();
-            break;
-        case CMD_TOGGLE_AOT:
-	    if (has_x11_connection != TRUE)
-                break;
-            tbool = *((gboolean *) data);
-            mainwin_set_always_on_top(tbool);
-            break;
-        case CMD_SHOW_ABOUT_BOX:
-            break;
-        case CMD_EJECT:
-	    if (has_x11_connection != TRUE)
-                break;
-            mainwin_eject_pushed();
-            break;
-        case CMD_PLAYLIST_PREV:
-            playlist_prev(playlist_get_active());
-            break;
-        case CMD_PLAYLIST_NEXT:
-            playlist_next(playlist_get_active());
-            break;
-        case CMD_TOGGLE_REPEAT:
-            mainwin_repeat_pushed(!cfg.repeat);
-            break;
-        case CMD_TOGGLE_SHUFFLE:
-            mainwin_shuffle_pushed(!cfg.shuffle);
-            break;
-        case CMD_TOGGLE_ADVANCE:
-            /* FIXME: to be implemented */
-            break;
-        case CMD_MAIN_WIN_TOGGLE:
-	    if (has_x11_connection != TRUE)
-                break;
-            tbool = *((gboolean *) data);
-            mainwin_show(!!tbool);
-            break;
-        case CMD_SET_EQ:
-            if (pkt->hdr.data_length >= 11 * sizeof(gfloat)) {
-                fval = (gfloat *) data;
-                equalizerwin_set_preamp(fval[0]);
-                for (i = 0; i < 10; i++)
-                    equalizerwin_set_band(i, fval[i + 1]);
-            }
-            break;
-        case CMD_SET_EQ_PREAMP:
-            f = *((gfloat *) data);
-            equalizerwin_set_preamp(f);
-            break;
-        case CMD_SET_EQ_BAND:
-            if (pkt->hdr.data_length >= sizeof(gint) + sizeof(gfloat)) {
-                i = *((gint *) data);
-                f = *((gfloat *) ((gchar *) data + sizeof(gint)));
-                equalizerwin_set_band(i, f);
-            }
-            break;
-        case CMD_QUIT:
-            /*
-             * We unlock the packet_list_mutex to
-             * avoid that cleanup_ctrlsocket() can
-             * deadlock, mainwin_quit_cb() will
-             * never return anyway, so this will
-             * work ok.
-             */
-	    if (pkt->data)
-	        memory_pool_release(cs_pool, pkt->data);
-            memory_pool_release(cs_pool, pkt);
-
-            g_mutex_unlock(packet_list_mutex);
-            mainwin_quit_cb();
-            break;
-	case CMD_ACTIVATE:
-	    gtk_window_present(GTK_WINDOW(mainwin));
-	    break;
-        default:
-            g_message("Unknown socket command received");
-            break;
-        }
-        next = g_list_next(pkt_list);
-        packet_list = g_list_remove_link(packet_list, pkt_list);
-        g_list_free_1(pkt_list);
-        if (pkt->data)
-            memory_pool_release(cs_pool, pkt->data);
-        memory_pool_release(cs_pool, pkt);
-    }
-    g_mutex_unlock(packet_list_mutex);
-}
--- a/src/audacious/controlsocket.h	Tue May 08 23:24:26 2007 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2007  Audacious development team
- *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team.
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
- *
- *  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.
- */
-
-#ifndef CONTROLSOCKET_H
-#define CONTROLSOCKET_H
-
-#include <glib.h>
-
-#define XMMS_PROTOCOL_VERSION	     1
-
-#define CTRLSOCKET_NAME              "audacious"
-#define CTRLSOCKET_IO_TIMEOUT_USEC   100000
-
-enum {
-    CMD_GET_VERSION, CMD_PLAYLIST_ADD, CMD_PLAY, CMD_PAUSE, CMD_STOP,
-    CMD_IS_PLAYING, CMD_IS_PAUSED, CMD_GET_PLAYLIST_POS,
-    CMD_SET_PLAYLIST_POS, CMD_GET_PLAYLIST_LENGTH, CMD_PLAYLIST_CLEAR,
-    CMD_GET_OUTPUT_TIME, CMD_JUMP_TO_TIME, CMD_GET_VOLUME,
-    CMD_SET_VOLUME, CMD_GET_SKIN, CMD_SET_SKIN, CMD_GET_PLAYLIST_FILE,
-    CMD_GET_PLAYLIST_TITLE, CMD_GET_PLAYLIST_TIME, CMD_GET_INFO,
-    CMD_GET_EQ_DATA, CMD_SET_EQ_DATA, CMD_PL_WIN_TOGGLE,
-    CMD_EQ_WIN_TOGGLE, CMD_SHOW_PREFS_BOX, CMD_TOGGLE_AOT,
-    CMD_SHOW_ABOUT_BOX, CMD_EJECT, CMD_PLAYLIST_PREV, CMD_PLAYLIST_NEXT,
-    CMD_PING, CMD_GET_BALANCE, CMD_TOGGLE_REPEAT, CMD_TOGGLE_SHUFFLE,
-    CMD_MAIN_WIN_TOGGLE, CMD_PLAYLIST_ADD_URL_STRING,
-    CMD_IS_EQ_WIN, CMD_IS_PL_WIN, CMD_IS_MAIN_WIN, CMD_PLAYLIST_DELETE,
-    CMD_IS_REPEAT, CMD_IS_SHUFFLE,
-    CMD_GET_EQ, CMD_GET_EQ_PREAMP, CMD_GET_EQ_BAND,
-    CMD_SET_EQ, CMD_SET_EQ_PREAMP, CMD_SET_EQ_BAND,
-    CMD_QUIT, CMD_PLAYLIST_INS_URL_STRING, CMD_PLAYLIST_INS, CMD_PLAY_PAUSE,
-    CMD_PLAYQUEUE_ADD, CMD_GET_PLAYQUEUE_LENGTH, CMD_PLAYQUEUE_REMOVE,
-    CMD_TOGGLE_ADVANCE, CMD_IS_ADVANCE,
-    CMD_ACTIVATE, CMD_SHOW_JTF_BOX,
-    CMD_PLAYQUEUE_CLEAR, CMD_PLAYQUEUE_IS_QUEUED,
-    CMD_PLAYQUEUE_GET_POS, CMD_PLAYQUEUE_GET_QPOS,
-    CMD_PLAYLIST_ENQUEUE_TO_TEMP, CMD_PLAYLIST_GET_TUPLE_DATA
-};
-
-
-typedef struct {
-    guint16 version;
-    guint16 command;
-    guint32 data_length;
-} ClientPktHeader;
-
-typedef struct {
-    guint16 version;
-    guint32 data_length;
-} ServerPktHeader;
-
-typedef struct {
-    ClientPktHeader hdr;
-    gpointer data;
-    gint fd;
-} PacketNode;
-
-
-gboolean ctrlsocket_setup(void);
-gboolean ctrlsocket_setup_unix(void);
-gboolean ctrlsocket_setup_tcp(void);
-void ctrlsocket_start(void);
-void ctrlsocket_check(void);
-void ctrlsocket_cleanup(void);
-gint ctrlsocket_get_session_id(void);
-
-#endif
--- a/src/audacious/genevent.c	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/genevent.c	Wed May 09 14:03:11 2007 -0700
@@ -46,7 +46,6 @@
 #include "libaudacious/configdb.h"
 #include "libaudacious/beepctrl.h"
 
-#include "controlsocket.h"
 #include "dnd.h"
 #include "effect.h"
 #include "general.h"
@@ -124,8 +123,6 @@
 {
     gint time = 0;
 
-    ctrlsocket_check();
-
     if (playback_get_playing()) {
         time = playback_get_time();
 
--- a/src/audacious/main.c	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/main.c	Wed May 09 14:03:11 2007 -0700
@@ -53,7 +53,6 @@
 #  include "dbus.h"
 #endif
 
-#include "controlsocket.h"
 #include "dnd.h"
 #include "effect.h"
 #include "ui_equalizer.h"
@@ -906,13 +905,6 @@
         exit(EXIT_SUCCESS);
     }
 
-    if (session == -1) {
-        if (!remote)
-            session = ctrlsocket_get_session_id();
-        else
-            session = 0;
-    }
-
     if (filenames != NULL)
     {
         gint pos = 0;
@@ -1143,7 +1135,7 @@
 
     bmp_config_load();
 
-    if (options.session != -1 || !ctrlsocket_setup()) {
+    if (options.session != -1) {
         handle_cmd_line_options(&options, TRUE);
         exit(EXIT_SUCCESS);
     }
@@ -1192,8 +1184,6 @@
     init_dbus();
 #endif
 
-    ctrlsocket_start();
-
     handle_cmd_line_options(&options, FALSE);
 
     if (options.headless != 1)
--- a/src/audacious/pluginenum.c	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/pluginenum.c	Wed May 09 14:03:11 2007 -0700
@@ -36,7 +36,6 @@
 #include <glib/gprintf.h>
 #include <string.h>
 
-#include "controlsocket.h"
 #include "main.h"
 #include "ui_main.h"
 #include "playback.h"
@@ -173,7 +172,7 @@
 general_plugin_init(Plugin * plugin)
 {
     GeneralPlugin *p = GENERAL_PLUGIN(plugin);
-    p->xmms_session = ctrlsocket_get_session_id();
+    p->xmms_session = -1;
     gp_data.general_list = g_list_append(gp_data.general_list, p);
 }
 
@@ -181,7 +180,7 @@
 vis_plugin_init(Plugin * plugin)
 {
     VisPlugin *p = VIS_PLUGIN(plugin);
-    p->xmms_session = ctrlsocket_get_session_id();
+    p->xmms_session = -1;
     p->disable_plugin = vis_disable_plugin;
     vp_data.vis_list = g_list_append(vp_data.vis_list, p);
 }
--- a/src/audacious/ui_jumptotrack.c	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/ui_jumptotrack.c	Wed May 09 14:03:11 2007 -0700
@@ -59,7 +59,6 @@
 
 #include "main.h"
 
-#include "controlsocket.h"
 #include "dnd.h"
 #include "dock.h"
 #include "genevent.h"
--- a/src/audacious/ui_main.c	Tue May 08 23:24:26 2007 -0700
+++ b/src/audacious/ui_main.c	Wed May 09 14:03:11 2007 -0700
@@ -59,7 +59,6 @@
 
 #include "main.h"
 
-#include "controlsocket.h"
 #include "dnd.h"
 #include "dock.h"
 #include "genevent.h"
@@ -444,8 +443,6 @@
     bmp_config_save();
     gtk_accel_map_save(bmp_paths[BMP_PATH_ACCEL_FILE]);
 
-    ctrlsocket_cleanup();
-
     plugin_system_cleanup();
 
     playlist_stop_get_info_thread();