diff -x Entries -x Makefile.in -u -r -N utils/audio/device.c utils2/audio/device.c --- utils/audio/device.c 2007-10-27 14:52:45.000000000 +0000 +++ utils2/audio/device.c 2007-10-27 21:21:08.000000000 +0000 @@ -45,7 +45,7 @@ #include "logging.h" #include "textfile.h" -#include "error.h" +#include "common-error.h" #include "ipc.h" #include "device.h" #include "avdtp.h" diff -x Entries -x Makefile.in -u -r -N utils/audio/error.c utils2/audio/error.c --- utils/audio/error.c 2007-10-27 14:46:19.000000000 +0000 +++ utils2/audio/error.c 2007-10-28 17:48:34.000000000 +0000 @@ -30,80 +30,7 @@ #include "dbus-helper.h" -#include "error.h" +#include "common-error.h" #include "logging.h" -#define AUDIO_ERROR_INTERFACE "org.bluez.audio.Error" - -/* FIXME: Remove these once global error functions exist */ -static DBusHandlerResult error_reply(DBusConnection *conn, DBusMessage *msg, - const char *name, const char *descr) -{ - DBusMessage *derr; - - if (!conn || !msg) - return DBUS_HANDLER_RESULT_HANDLED; - - derr = dbus_message_new_error(msg, name, descr); - if (!derr) { - error("Unable to allocate new error return"); - return DBUS_HANDLER_RESULT_NEED_MEMORY; - } - - return dbus_connection_send_and_unref(conn, derr); -} - -DBusHandlerResult err_invalid_args(DBusConnection *conn, - DBusMessage *msg, const char *descr) -{ - return error_reply(conn, msg, - AUDIO_ERROR_INTERFACE ".InvalidArguments", - descr ? descr : "Invalid arguments in method call"); -} - -DBusHandlerResult err_already_connected(DBusConnection *conn, DBusMessage *msg) -{ - return error_reply(conn, msg, - AUDIO_ERROR_INTERFACE ".AlreadyConnected", - "Already connected to a device"); -} - -DBusHandlerResult err_not_connected(DBusConnection *conn, DBusMessage *msg) -{ - return error_reply(conn, msg, - AUDIO_ERROR_INTERFACE ".NotConnected", - "Not connected to any device"); -} - -DBusHandlerResult err_not_supported(DBusConnection *conn, DBusMessage *msg) -{ - return error_reply(conn, msg, - AUDIO_ERROR_INTERFACE ".NotSupported", - "The service is not supported by the remote device"); -} - -DBusHandlerResult err_connect_failed(DBusConnection *conn, - DBusMessage *msg, const char *err) -{ - return error_reply(conn, msg, - AUDIO_ERROR_INTERFACE ".ConnectFailed", err); -} - -DBusHandlerResult err_does_not_exist(DBusConnection *conn, DBusMessage *msg) -{ - return error_reply(conn, msg, - AUDIO_ERROR_INTERFACE ".DoesNotExist", - "Does not exist"); -} - -DBusHandlerResult err_not_available(DBusConnection *conn, DBusMessage *msg) -{ - return error_reply(conn, msg, AUDIO_ERROR_INTERFACE ".NotAvailable", - "Not available"); -} - -DBusHandlerResult err_failed(DBusConnection *conn, - DBusMessage *msg, const char *dsc) -{ - return error_reply(conn, msg, AUDIO_ERROR_INTERFACE ".Failed", dsc); -} +/* To be filled once audio service specific errors are defined */ diff -x Entries -x Makefile.in -u -r -N utils/audio/error.h utils2/audio/error.h --- utils/audio/error.h 2007-10-23 17:17:47.000000000 +0000 +++ utils2/audio/error.h 2007-10-27 21:21:54.000000000 +0000 @@ -22,14 +22,9 @@ * */ -DBusHandlerResult err_invalid_args(DBusConnection *conn, - DBusMessage *msg, const char *descr); -DBusHandlerResult err_already_connected(DBusConnection *conn, DBusMessage *msg); -DBusHandlerResult err_not_connected(DBusConnection *conn, DBusMessage * msg); -DBusHandlerResult err_not_supported(DBusConnection *conn, DBusMessage *msg); -DBusHandlerResult err_connect_failed(DBusConnection *conn, - DBusMessage *msg, const char *err); -DBusHandlerResult err_does_not_exist(DBusConnection *conn, DBusMessage *msg); -DBusHandlerResult err_not_available(DBusConnection *conn, DBusMessage *msg); -DBusHandlerResult err_failed(DBusConnection *conn, - DBusMessage *msg, const char *dsc); +/** + This file must only contain errors that are specific to the audio service. + As such they will be found in the org.bluez.audio.Error namespace. + If errors are not specific to the audio service, they must be declared + in common-error.h, so that other services can use it +*/ diff -x Entries -x Makefile.in -u -r -N utils/audio/headset.c utils2/audio/headset.c --- utils/audio/headset.c 2007-10-27 14:32:53.000000000 +0000 +++ utils2/audio/headset.c 2007-10-27 21:45:57.000000000 +0000 @@ -54,7 +54,7 @@ #include "logging.h" #include "device.h" #include "manager.h" -#include "error.h" +#include "common-error.h" #include "headset.h" #define RING_INTERVAL 3000 @@ -384,7 +384,7 @@ static void pending_connect_failed(struct pending_connect *c, struct device *dev) { if (c->msg) - err_connect_failed(dev->conn, c->msg, strerror(c->err)); + error_connection_attempt_failed(dev->conn, c->msg, c->err); if (c->cb) c->cb(NULL, c->cb_data); pending_connect_free(c); @@ -680,7 +680,7 @@ failed_not_supported: if (c->msg) { - err_not_supported(device->conn, c->msg); + error_not_supported(device->conn, c->msg); dbus_message_unref(c->msg); c->msg = NULL; } @@ -721,10 +721,10 @@ if (c->msg) { if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) - err_connect_failed(device->conn, c->msg, - strerror(EHOSTDOWN)); + error_connection_attempt_failed(device->conn, c->msg, + EHOSTDOWN); else - err_not_supported(device->conn, c->msg); + error_not_supported(device->conn, c->msg); } dbus_error_free(&derr); goto failed; @@ -738,21 +738,21 @@ error("Unable to get args from reply: %s", derr.message); dbus_error_free(&derr); if (c->msg) - err_not_supported(device->conn, c->msg); + error_not_supported(device->conn, c->msg); goto failed; } if (!array) { error("get_handles_reply: Unable to get handle array from reply"); if (c->msg) - err_not_supported(device->conn, c->msg); + error_not_supported(device->conn, c->msg); goto failed; } if (array_len < 1) { debug("No record handles found"); if (c->msg) - err_not_supported(device->conn, c->msg); + error_not_supported(device->conn, c->msg); goto failed; } @@ -765,7 +765,7 @@ if (!msg) { error("Unable to allocate new method call"); if (c->msg) - err_connect_failed(device->conn, c->msg, strerror(ENOMEM)); + error_out_of_memory(device->conn, c->msg); goto failed; } @@ -780,7 +780,7 @@ if (!dbus_connection_send_with_reply(device->conn, msg, &pending, -1)) { error("Sending GetRemoteServiceRecord failed"); if (c->msg) - err_connect_failed(device->conn, c->msg, strerror(EIO)); + error_connection_attempt_failed(device->conn, c->msg, EIO); goto failed; } @@ -945,7 +945,7 @@ return DBUS_HANDLER_RESULT_NEED_MEMORY; if (hs->state < HEADSET_STATE_PLAY_IN_PROGRESS) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); headset_set_state(device, HEADSET_STATE_CONNECTED); dbus_connection_send_and_unref(conn, reply); @@ -988,7 +988,7 @@ return DBUS_HANDLER_RESULT_NEED_MEMORY; if (hs->state == HEADSET_STATE_DISCONNECTED) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); headset_set_state(device, HEADSET_STATE_DISCONNECTED); ba2str(&device->dst, hs_address); @@ -1030,7 +1030,7 @@ int err; if (hs->state > HEADSET_STATE_DISCONNECTED) - return err_already_connected(conn, msg); + return error_already_connected(conn, msg); c = g_try_new0(struct pending_connect, 1); if (!c) { @@ -1048,7 +1048,7 @@ error: pending_connect_free(c); - return err_connect_failed(conn, msg, strerror(-err)); + return error_connection_attempt_failed(conn, msg, -err); } static gboolean ring_timer_cb(gpointer data) @@ -1069,7 +1069,7 @@ DBusMessage *reply = NULL; if (hs->state < HEADSET_STATE_CONNECTED) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -1082,7 +1082,7 @@ if (headset_send(device->headset, "\r\nRING\r\n") != G_IO_ERROR_NONE) { dbus_message_unref(reply); - return err_failed(conn, msg, "Failed"); + return error_failed(conn, msg, "Failed"); } hs->ring_timer = g_timeout_add(RING_INTERVAL, ring_timer_cb, device); @@ -1102,7 +1102,7 @@ DBusMessage *reply = NULL; if (hs->state < HEADSET_STATE_CONNECTED) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -1131,10 +1131,10 @@ int err; if (hs->state < HEADSET_STATE_CONNECTED) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); if (hs->state >= HEADSET_STATE_PLAY_IN_PROGRESS) - return err_already_connected(conn, msg); + return error_already_connected(conn, msg); c = g_try_new0(struct pending_connect, 1); if (!c) @@ -1145,7 +1145,7 @@ err = sco_connect(device, c); if (err < 0) { pending_connect_free(c); - return err_failed(conn, msg, strerror(-err)); + return error_failed(conn, msg, strerror(-err)); } return DBUS_HANDLER_RESULT_HANDLED; @@ -1161,7 +1161,7 @@ dbus_uint16_t gain; if (hs->state < HEADSET_STATE_CONNECTED || hs->sp_gain < 0) - return err_not_available(conn, msg); + return error_not_available(conn, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -1187,7 +1187,7 @@ dbus_uint16_t gain; if (hs->state < HEADSET_STATE_CONNECTED || hs->mic_gain < 0) - return err_not_available(conn, msg); + return error_not_available(conn, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -1215,20 +1215,20 @@ char str[13]; if (hs->state < HEADSET_STATE_CONNECTED) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); dbus_error_init(&derr); dbus_message_get_args(msg, &derr, DBUS_TYPE_UINT16, &gain, DBUS_TYPE_INVALID); if (dbus_error_is_set(&derr)) { - err_invalid_args(conn, msg, derr.message); + error_invalid_arguments(conn, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } if (gain > 15) - return err_invalid_args(conn, msg, + return error_invalid_arguments(conn, msg, "Must be less than or equal to 15"); reply = dbus_message_new_method_return(msg); @@ -1242,7 +1242,7 @@ if (headset_send(device->headset, str) != G_IO_ERROR_NONE) { dbus_message_unref(reply); - return err_failed(conn, msg, "Unable to send to headset"); + return error_failed(conn, msg, "Unable to send to headset"); } done: diff -x Entries -x Makefile.in -u -r -N utils/audio/manager.c utils2/audio/manager.c --- utils/audio/manager.c 2007-10-27 14:51:58.000000000 +0000 +++ utils2/audio/manager.c 2007-10-27 21:43:57.000000000 +0000 @@ -53,7 +53,7 @@ #include "textfile.h" #include "ipc.h" #include "device.h" -#include "error.h" +#include "common-error.h" #include "avdtp.h" #include "a2dp.h" #include "headset.h" @@ -326,7 +326,7 @@ if (dbus_error_is_set(&derr)) { error("Unable to get message args"); success = FALSE; - err_failed(connection, data->msg, derr.message); + error_failed(connection, data->msg, derr.message); dbus_error_free(&derr); goto done; } @@ -335,14 +335,14 @@ if (!data->records) { debug("No audio audio related service records were found"); success = FALSE; - err_not_supported(connection, data->msg); + error_not_supported(connection, data->msg); goto done; } reply = dbus_message_new_method_return(data->msg); if (!reply) { success = FALSE; - err_failed(connection, data->msg, "Out of memory"); + error_failed(connection, data->msg, "Out of memory"); goto done; } @@ -394,10 +394,10 @@ error("GetRemoteServiceRecord failed: %s", derr.message); if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) - err_connect_failed(connection, data->msg, - strerror(EHOSTDOWN)); + error_connection_attempt_failed(connection, data->msg, + EHOSTDOWN); else - err_failed(connection, data->msg, derr.message); + error_failed(connection, data->msg, derr.message); dbus_error_free(&derr); goto failed; } @@ -405,7 +405,7 @@ if (!dbus_message_get_args(reply, NULL, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, &array, &array_len, DBUS_TYPE_INVALID)) { - err_failed(connection, data->msg, + error_failed(connection, data->msg, "Unable to get args from GetRecordReply"); goto failed; } @@ -451,7 +451,7 @@ "GetRemoteServiceRecord"); if (!msg) { error("Unable to allocate new method call"); - err_connect_failed(connection, data->msg, strerror(ENOMEM)); + error_out_of_memory(connection, data->msg); finish_sdp(data, FALSE); return; } @@ -470,7 +470,7 @@ if (!dbus_connection_send_with_reply(connection, msg, &pending, -1)) { error("Sending GetRemoteServiceRecord failed"); - err_connect_failed(connection, data->msg, strerror(EIO)); + error_connection_attempt_failed(connection, data->msg, EIO); finish_sdp(data, FALSE); return; } @@ -508,9 +508,10 @@ error("GetRemoteServiceHandles failed: %s", derr.message); if (dbus_error_has_name(&derr, "org.bluez.Error.ConnectionAttemptFailed")) - err_connect_failed(connection, data->msg, strerror(EHOSTDOWN)); + error_connection_attempt_failed(connection, data->msg, + EHOSTDOWN); else - err_failed(connection, data->msg, derr.message); + error_failed(connection, data->msg, derr.message); dbus_error_free(&derr); goto failed; } @@ -519,7 +520,7 @@ DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &array, &array_len, DBUS_TYPE_INVALID)) { - err_failed(connection, data->msg, + error_failed(connection, data->msg, "Unable to get args from reply"); goto failed; } @@ -570,7 +571,7 @@ "org.bluez.Adapter", "GetRemoteServiceHandles"); if (!msg) { - err_failed(connection, data->msg, + error_failed(connection, data->msg, "Could not create a new dbus message"); goto failed; } @@ -582,7 +583,7 @@ DBUS_TYPE_INVALID); if (!dbus_connection_send_with_reply(connection, msg, &pending, -1)) { - err_failed(connection, data->msg, + error_failed(connection, data->msg, "Sending GetRemoteServiceHandles failed"); goto failed; } @@ -735,7 +736,7 @@ DBUS_TYPE_INVALID); if (dbus_error_is_set(&derr)) { - err_invalid_args(connection, msg, derr.message); + error_invalid_arguments(connection, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } @@ -825,18 +826,18 @@ if (!dbus_message_get_args(msg, &derr, DBUS_TYPE_STRING, &path, DBUS_TYPE_INVALID)) { - err_invalid_args(connection, msg, derr.message); + error_invalid_arguments(connection, msg, derr.message); return DBUS_HANDLER_RESULT_HANDLED; } if (dbus_error_is_set(&derr)) { - err_invalid_args(connection, msg, derr.message); + error_invalid_arguments(connection, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } match = g_slist_find_custom(devices, path, device_path_cmp); if (!match) - return err_does_not_exist(connection, msg); + return error_device_does_not_exist(connection, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -906,7 +907,7 @@ DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID); if (dbus_error_is_set(&derr)) { - err_invalid_args(connection, msg, derr.message); + error_invalid_arguments(connection, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } @@ -915,7 +916,7 @@ device = manager_find_device(&bda, NULL, FALSE); if (!device) - return err_does_not_exist(conn, msg); + return error_device_does_not_exist(conn, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -934,12 +935,12 @@ DBusMessage *reply; if (!default_dev) - return err_does_not_exist(connection, msg); + return error_device_does_not_exist(connection, msg); if (default_dev->headset == NULL && dbus_message_is_method_call(msg, AUDIO_MANAGER_INTERFACE, "DefaultHeadset")) - return err_does_not_exist(connection, msg); + return error_device_does_not_exist(connection, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -965,18 +966,18 @@ if (!dbus_message_get_args(msg, &derr, DBUS_TYPE_STRING, &path, DBUS_TYPE_INVALID)) { - err_invalid_args(connection, msg, derr.message); + error_invalid_arguments(connection, msg, derr.message); return DBUS_HANDLER_RESULT_HANDLED; } if (dbus_error_is_set(&derr)) { - err_invalid_args(connection, msg, derr.message); + error_invalid_arguments(connection, msg, derr.message); dbus_error_free(&derr); return DBUS_HANDLER_RESULT_HANDLED; } match = g_slist_find_custom(devices, path, device_path_cmp); if (!match) - return err_does_not_exist(connection, msg); + return error_device_does_not_exist(connection, msg); reply = dbus_message_new_method_return(msg); if (!reply) @@ -998,7 +999,7 @@ DBUS_TYPE_STRING, &device->path, DBUS_TYPE_INVALID); else - return err_does_not_exist(connection, msg); + return error_device_does_not_exist(connection, msg); default_dev = device; device_store(device, TRUE); diff -x Entries -x Makefile.in -u -r -N utils/audio/sink.c utils2/audio/sink.c --- utils/audio/sink.c 2007-10-27 14:45:38.000000000 +0000 +++ utils2/audio/sink.c 2007-10-27 21:48:38.000000000 +0000 @@ -40,7 +40,7 @@ #include "avdtp.h" #include "device.h" #include "a2dp.h" -#include "error.h" +#include "common-error.h" #include "sink.h" #define STREAM_SETUP_RETRY_TIMER 2000 @@ -147,7 +147,7 @@ dbus_connection_send_and_unref(pending->conn, reply); } else { debug("Stream setup failed, after XCASE connect:connect"); - err_failed(pending->conn, pending->msg, "Stream setup failed"); + error_failed(pending->conn, pending->msg, "Stream setup failed"); } sink->connect = NULL; @@ -182,7 +182,7 @@ stream_setup_retry, sink); } else { sink->connect = NULL; - err_failed(pending->conn, pending->msg, "Stream setup failed"); + error_failed(pending->conn, pending->msg, "Stream setup failed"); pending_request_free(pending); debug("Stream setup failed : %s", avdtp_strerror(err)); } @@ -201,14 +201,14 @@ sink->session = avdtp_get(&dev->src, &dev->dst); if (!sink->session) - return err_connect_failed(conn, msg, + return error_failed(conn, msg, "Unable to get a session"); if (sink->connect || sink->disconnect) - return err_connect_failed(conn, msg, "Connect in progress"); + return error_in_progress(conn, msg, "Device connection already in progress"); if (sink->state >= AVDTP_STATE_OPEN) - return err_already_connected(conn, msg); + return error_already_connected(conn, msg); pending = g_new0(struct pending_request, 1); pending->conn = dbus_connection_ref(conn); @@ -223,8 +223,7 @@ sink->connect = NULL; avdtp_unref(sink->session); sink->session = NULL; - return err_connect_failed(conn, msg, - "Failed to request a stream"); + return error_failed(conn, msg, "Failed to request a stream"); } debug("stream creation in progress"); @@ -243,10 +242,10 @@ int err; if (!sink->session) - return err_not_connected(conn, msg); + return error_not_connected(conn, msg); if (sink->connect || sink->disconnect) - return err_failed(conn, msg, strerror(EBUSY)); + return error_failed(conn, msg, strerror(EBUSY)); if (sink->state < AVDTP_STATE_OPEN) { DBusMessage *reply = dbus_message_new_method_return(msg); @@ -259,7 +258,7 @@ err = avdtp_close(sink->session, sink->stream); if (err < 0) - return err_failed(conn, msg, strerror(-err)); + return error_failed(conn, msg, strerror(-err)); pending = g_new0(struct pending_request, 1); pending->conn = dbus_connection_ref(conn);