diff options
| -rw-r--r-- | audio/headset.c | 7 | ||||
| -rw-r--r-- | audio/main.c | 2 | ||||
| -rw-r--r-- | audio/manager.c | 11 | ||||
| -rw-r--r-- | audio/manager.h | 2 | 
4 files changed, 16 insertions, 6 deletions
| diff --git a/audio/headset.c b/audio/headset.c index 9e303782..44a6ce03 100644 --- a/audio/headset.c +++ b/audio/headset.c @@ -112,7 +112,6 @@ struct manager {  };  static DBusConnection *connection = NULL; -static GMainLoop *main_loop = NULL;  struct manager *audio_manager_new(DBusConnection *conn);  void audio_manager_free(struct manager *manager); @@ -1973,8 +1972,7 @@ int headset_init(DBusConnection *conn)  	if (!manager) {  		error("Failed to create an audio manager");  		dbus_connection_unref(connection); -		g_main_loop_unref(main_loop); -		exit(1); +		return -1;  	}  	audio_manager_create_headset_server(manager, 12); @@ -1985,7 +1983,10 @@ int headset_init(DBusConnection *conn)  void headset_exit(void)  {  	audio_manager_free(manager); +  	manager = NULL;  	dbus_connection_unref(connection); + +	connection = NULL;  } diff --git a/audio/main.c b/audio/main.c index 08194d82..bf0ddf4d 100644 --- a/audio/main.c +++ b/audio/main.c @@ -73,7 +73,7 @@ int main(int argc, char *argv[])  		exit(1);  	} -	audio_init(); +	audio_init(conn);  	headset_init(conn); diff --git a/audio/manager.c b/audio/manager.c index 7c7a92c0..32eea81b 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -25,13 +25,22 @@  #include <config.h>  #endif +#include <dbus/dbus.h> +  #include "manager.h" -int audio_init(void) +static DBusConnection *connection = NULL; + +int audio_init(DBusConnection *conn)  { +	connection = dbus_connection_ref(conn); +  	return 0;  }  void audio_exit(void)  { +	dbus_connection_unref(connection); + +	connection = NULL;  } diff --git a/audio/manager.h b/audio/manager.h index 3f2988f9..f97b563a 100644 --- a/audio/manager.h +++ b/audio/manager.h @@ -21,5 +21,5 @@   *   */ -int audio_init(void); +int audio_init(DBusConnection *conn);  void audio_exit(void); | 
