From a07ea139e52ab9733f6d1e9f0ab2e0bf232059ef Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Thu, 12 Apr 2007 14:26:55 +0000 Subject: A little more refactoring --- audio/manager.c | 93 --------------------------------------------------------- 1 file changed, 93 deletions(-) (limited to 'audio/manager.c') diff --git a/audio/manager.c b/audio/manager.c index 3265c89e..07aa7b60 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -55,9 +55,6 @@ static DBusConnection *connection = NULL; -static GIOChannel *hs_server = NULL; - -static uint32_t hs_record_id; static char *default_hs = NULL; static GSList *headsets = NULL; @@ -137,84 +134,6 @@ static gboolean unix_event(GIOChannel *chan, GIOCondition cond, gpointer data) return TRUE; } -static GIOChannel *server_socket(uint8_t *channel) -{ - int sock, lm; - struct sockaddr_rc addr; - socklen_t sa_len; - GIOChannel *io; - - sock = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); - if (sock < 0) { - error("server socket: %s (%d)", strerror(errno), errno); - return NULL; - } - - lm = RFCOMM_LM_SECURE; - if (setsockopt(sock, SOL_RFCOMM, RFCOMM_LM, &lm, sizeof(lm)) < 0) { - error("server setsockopt: %s (%d)", strerror(errno), errno); - close(sock); - return NULL; - } - - memset(&addr, 0, sizeof(addr)); - addr.rc_family = AF_BLUETOOTH; - bacpy(&addr.rc_bdaddr, BDADDR_ANY); - addr.rc_channel = 0; - - if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) { - error("server bind: %s", strerror(errno), errno); - close(sock); - return NULL; - } - - if (listen(sock, 1) < 0) { - error("server listen: %s", strerror(errno), errno); - close(sock); - return NULL; - } - - sa_len = sizeof(struct sockaddr_rc); - getsockname(sock, (struct sockaddr *) &addr, &sa_len); - *channel = addr.rc_channel; - - io = g_io_channel_unix_new(sock); - if (!io) { - error("Unable to allocate new io channel"); - close(sock); - return NULL; - } - - return io; -} - -static gboolean manager_create_headset_server(uint8_t chan) -{ - if (hs_server) { - error("Server socket already created"); - return FALSE; - } - - hs_server = server_socket(&chan); - if (!hs_server) - return FALSE; - - if (!hs_record_id) - hs_record_id = headset_add_ag_record(chan); - - if (!hs_record_id) { - error("Unable to register service record"); - g_io_channel_unref(hs_server); - hs_server = NULL; - return FALSE; - } - - g_io_add_watch(hs_server, G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL, - (GIOFunc) headset_server_io_cb, NULL); - - return TRUE; -} - void manager_add_headset(char *path) { if (g_slist_find_custom(headsets, path, (GCompareFunc) strcmp)) @@ -478,8 +397,6 @@ int audio_init(DBusConnection *conn) connection = dbus_connection_ref(conn); - manager_create_headset_server(12); - return 0; } @@ -489,16 +406,6 @@ void audio_exit(void) unix_sock = -1; - if (hs_record_id) { - headset_remove_ag_record(hs_record_id); - hs_record_id = 0; - } - - if (hs_server) { - g_io_channel_unref(hs_server); - hs_server = NULL; - } - if (headsets) { g_slist_foreach(headsets, (GFunc) headset_remove, NULL); g_slist_free(headsets); -- cgit