From 5f83cf4cde03c8901c391943511c51ab8b7f7aea Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 10 Jun 2015 22:46:13 +0900 Subject: [PATCH] change to tizen coding style Change-Id: Ie43705d659f3656fae9fe32eae5d56d4fd393f5e Signed-off-by: Junkyeong Kim --- include/eom-connect.h | 2 +- include/eom.h | 131 ++-- include/eom_internal.h | 15 +- src/eom-connect.c | 51 +- src/eom-dbus.c | 756 +++++++++++----------- src/eom-dbus.h | 32 +- src/eom-log.h | 40 +- src/eom-private.h | 37 +- src/eom.c | 1678 +++++++++++++++++++++++------------------------- 9 files changed, 1320 insertions(+), 1422 deletions(-) mode change 100755 => 100644 include/eom-connect.h mode change 100755 => 100644 include/eom.h mode change 100755 => 100644 src/eom-connect.c mode change 100755 => 100644 src/eom-dbus.c mode change 100755 => 100644 src/eom-dbus.h mode change 100755 => 100644 src/eom-log.h mode change 100755 => 100644 src/eom-private.h mode change 100755 => 100644 src/eom.c diff --git a/include/eom-connect.h b/include/eom-connect.h old mode 100755 new mode 100644 index 4cd8d8a..c5b18f4 --- a/include/eom-connect.h +++ b/include/eom-connect.h @@ -61,7 +61,7 @@ extern "C" { * @retval #EOM_ERROR_OPERATE_MESSAGE_FAILE Message operation failure * see #eom_output_mode_e */ -int eom_output_set_mode (eom_output_id output_id, eom_output_mode_e mode); +int eom_output_set_mode(eom_output_id output_id, eom_output_mode_e mode); #ifdef __cplusplus diff --git a/include/eom.h b/include/eom.h old mode 100755 new mode 100644 index e32ba4f..98f467c --- a/include/eom.h +++ b/include/eom.h @@ -61,79 +61,74 @@ extern "C" { * @brief Enumeration of External Output Manager (EOM) error type * @since_tizen 2.4 */ -typedef enum -{ - EOM_ERROR_NONE = TIZEN_ERROR_NONE, /**< Success */ - EOM_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Memory allocation failure */ - EOM_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid input parameter */ - EOM_ERROR_NO_SUCH_DEVICE = TIZEN_ERROR_NO_SUCH_DEVICE, /**< Invalid external output instance */ - EOM_ERROR_CONNECTION_FAILURE = TIZEN_ERROR_EOM | 0x01, /**< Connection failure */ - EOM_ERROR_MESSAGE_SENDING_FAILURE = TIZEN_ERROR_EOM | 0x02, /**< Message sending failure */ - EOM_ERROR_MESSAGE_OPERATION_FAILURE = TIZEN_ERROR_EOM | 0x03, /**< Message operation failure */ +typedef enum { + EOM_ERROR_NONE = TIZEN_ERROR_NONE, /**< Success */ + EOM_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Memory allocation failure */ + EOM_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid input parameter */ + EOM_ERROR_NO_SUCH_DEVICE = TIZEN_ERROR_NO_SUCH_DEVICE, /**< Invalid external output instance */ + EOM_ERROR_CONNECTION_FAILURE = TIZEN_ERROR_EOM | 0x01, /**< Connection failure */ + EOM_ERROR_MESSAGE_SENDING_FAILURE = TIZEN_ERROR_EOM | 0x02, /**< Message sending failure */ + EOM_ERROR_MESSAGE_OPERATION_FAILURE = TIZEN_ERROR_EOM | 0x03, /**< Message operation failure */ } eom_error_e; /** * @brief Enumeration of external output type * @since_tizen 2.4 */ -typedef enum -{ - EOM_OUTPUT_TYPE_UNKNOWN, /**< Unknown output type */ - EOM_OUTPUT_TYPE_VGA, /**< VGA output */ - EOM_OUTPUT_TYPE_DVII, /**< DVII output type */ - EOM_OUTPUT_TYPE_DVID, /**< DVID output type */ - EOM_OUTPUT_TYPE_DVIA, /**< DVIA output type */ - EOM_OUTPUT_TYPE_COMPOSITE, /**< Composite output type */ - EOM_OUTPUT_TYPE_SVIDEO, /**< SVIDEO output type */ - EOM_OUTPUT_TYPE_LVDS, /**< LVDS output type */ - EOM_OUTPUT_TYPE_COMPONENT, /**< Component output type */ - EOM_OUTPUT_TYPE_9PINDIN, /**< 9PinDIN output type */ - EOM_OUTPUT_TYPE_DISPLAYPORT, /**< DisplayPort output type */ - EOM_OUTPUT_TYPE_HDMIA, /**< HDMIA output type */ - EOM_OUTPUT_TYPE_HDMIB, /**< HDMIB output type */ - EOM_OUTPUT_TYPE_TV, /**< TV output type */ - EOM_OUTPUT_TYPE_EDP, /**< EDP output type */ - EOM_OUTPUT_TYPE_VIRTUAL, /**< VIRTUAL output type */ - EOM_OUTPUT_TYPE_DSI, /**< DSI output type */ - EOM_OUTPUT_TYPE_MAX, +typedef enum { + EOM_OUTPUT_TYPE_UNKNOWN, /**< Unknown output type */ + EOM_OUTPUT_TYPE_VGA, /**< VGA output */ + EOM_OUTPUT_TYPE_DVII, /**< DVII output type */ + EOM_OUTPUT_TYPE_DVID, /**< DVID output type */ + EOM_OUTPUT_TYPE_DVIA, /**< DVIA output type */ + EOM_OUTPUT_TYPE_COMPOSITE, /**< Composite output type */ + EOM_OUTPUT_TYPE_SVIDEO, /**< SVIDEO output type */ + EOM_OUTPUT_TYPE_LVDS, /**< LVDS output type */ + EOM_OUTPUT_TYPE_COMPONENT, /**< Component output type */ + EOM_OUTPUT_TYPE_9PINDIN, /**< 9PinDIN output type */ + EOM_OUTPUT_TYPE_DISPLAYPORT, /**< DisplayPort output type */ + EOM_OUTPUT_TYPE_HDMIA, /**< HDMIA output type */ + EOM_OUTPUT_TYPE_HDMIB, /**< HDMIB output type */ + EOM_OUTPUT_TYPE_TV, /**< TV output type */ + EOM_OUTPUT_TYPE_EDP, /**< EDP output type */ + EOM_OUTPUT_TYPE_VIRTUAL, /**< VIRTUAL output type */ + EOM_OUTPUT_TYPE_DSI, /**< DSI output type */ + EOM_OUTPUT_TYPE_MAX, } eom_output_type_e; /** * @brief Enumeration of external output mode * @since_tizen 2.4 */ -typedef enum -{ - EOM_OUTPUT_MODE_NONE, /**< None */ - EOM_OUTPUT_MODE_MIRROR, /**< Mirror mode */ - EOM_OUTPUT_MODE_PRESENTATION, /**< Presentation mode */ - EOM_OUTPUT_MODE_MAX, +typedef enum { + EOM_OUTPUT_MODE_NONE, /**< None */ + EOM_OUTPUT_MODE_MIRROR, /**< Mirror mode */ + EOM_OUTPUT_MODE_PRESENTATION, /**< Presentation mode */ + EOM_OUTPUT_MODE_MAX, } eom_output_mode_e; /** * @brief Enumeration of External Output Manager (EOM) attributes * @since_tizen 2.4 */ -typedef enum -{ - EOM_OUTPUT_ATTRIBUTE_NONE, /**< None */ - EOM_OUTPUT_ATTRIBUTE_NORMAL, /**< Normal presentation mode window showing on external output */ - EOM_OUTPUT_ATTRIBUTE_EXCLUSIVE_SHARE, /**< Exclusive share presentation mode window showing on external output */ - EOM_OUTPUT_ATTRIBUTE_EXCLUSIVE, /**< Exclusive presentation mode window showing on external output */ - EOM_OUTPUT_ATTRIBUTE_MAX, +typedef enum { + EOM_OUTPUT_ATTRIBUTE_NONE, /**< None */ + EOM_OUTPUT_ATTRIBUTE_NORMAL, /**< Normal presentation mode window showing on external output */ + EOM_OUTPUT_ATTRIBUTE_EXCLUSIVE_SHARE, /**< Exclusive share presentation mode window showing on external output */ + EOM_OUTPUT_ATTRIBUTE_EXCLUSIVE, /**< Exclusive presentation mode window showing on external output */ + EOM_OUTPUT_ATTRIBUTE_MAX, } eom_output_attribute_e; /** * @brief Enumeration of External Output Manager (EOM) attribute state * @since_tizen 2.4 */ -typedef enum -{ - EOM_OUTPUT_ATTRIBUTE_STATE_NONE, /**< None */ - EOM_OUTPUT_ATTRIBUTE_STATE_ACTIVE, /**< Output attribute is active */ - EOM_OUTPUT_ATTRIBUTE_STATE_INACTIVE, /**< Output attribute is inactive */ - EOM_OUTPUT_ATTRIBUTE_STATE_LOST, /**< Cannot use external output */ - EOM_OUTPUT_ATTRIBUTE_STATE_MAX, +typedef enum { + EOM_OUTPUT_ATTRIBUTE_STATE_NONE, /**< None */ + EOM_OUTPUT_ATTRIBUTE_STATE_ACTIVE, /**< Output attribute is active */ + EOM_OUTPUT_ATTRIBUTE_STATE_INACTIVE, /**< Output attribute is inactive */ + EOM_OUTPUT_ATTRIBUTE_STATE_LOST, /**< Cannot use external output */ + EOM_OUTPUT_ATTRIBUTE_STATE_MAX, } eom_output_attribute_state_e; /** @@ -193,7 +188,7 @@ typedef void (*eom_attribute_changed_cb)(eom_output_id output_id, void *user_dat * @see eom_deinit() * @see #eom_error_e */ -int eom_init (void); +int eom_init(void); /** * @brief Finalizes External Output Manager (EOM). @@ -201,7 +196,7 @@ int eom_init (void); * @since_tizen 2.4 * @see eom_init() */ -void eom_deinit (void); +void eom_deinit(void); /** * @brief Registers a callback function to get output connection notification from External Output Manager (EOM) module. @@ -217,7 +212,7 @@ void eom_deinit (void); * @see eom_unset_output_added_cb() * @see #eom_output_added_cb */ -int eom_set_output_added_cb (eom_output_added_cb callback, void *user_data); +int eom_set_output_added_cb(eom_output_added_cb callback, void *user_data); /** * @brief Unregisters the callback function. @@ -231,7 +226,7 @@ int eom_set_output_added_cb (eom_output_added_cb callback, void *user_data); * @see eom_set_output_added_cb() * @see #eom_output_added_cb */ -int eom_unset_output_added_cb (eom_output_added_cb callback); +int eom_unset_output_added_cb(eom_output_added_cb callback); /** * @brief Registers a callback function to get output disconnection notification from External Output Manager (EOM) module. @@ -247,7 +242,7 @@ int eom_unset_output_added_cb (eom_output_added_cb callback); * @see eom_unset_output_removed_cb() * @see #eom_output_removed_cb */ -int eom_set_output_removed_cb (eom_output_removed_cb callback, void *user_data); +int eom_set_output_removed_cb(eom_output_removed_cb callback, void *user_data); /** * @brief Unregisters the callback function. @@ -261,7 +256,7 @@ int eom_set_output_removed_cb (eom_output_removed_cb callback, void *user_data); * @see eom_set_output_removed_cb() * @see #eom_output_removed_cb */ -int eom_unset_output_removed_cb (eom_output_removed_cb callback); +int eom_unset_output_removed_cb(eom_output_removed_cb callback); /** * @brief Registers a callback function to get output mode changing notification from External Output Manager (EOM) module. @@ -277,7 +272,7 @@ int eom_unset_output_removed_cb (eom_output_removed_cb callback); * @see eom_unset_mode_changed_cb() * @see #eom_mode_changed_cb */ -int eom_set_mode_changed_cb (eom_mode_changed_cb callback, void *user_data); +int eom_set_mode_changed_cb(eom_mode_changed_cb callback, void *user_data); /** * @brief Unregisters the callback function. @@ -291,7 +286,7 @@ int eom_set_mode_changed_cb (eom_mode_changed_cb callback, void *user_data); * @see eom_set_mode_changed_cb() * @see #eom_mode_changed_cb */ -int eom_unset_mode_changed_cb (eom_mode_changed_cb callback); +int eom_unset_mode_changed_cb(eom_mode_changed_cb callback); /** * @brief Registers a callback function to get output attribute changing notification from External Output Manager (EOM) module. @@ -307,7 +302,7 @@ int eom_unset_mode_changed_cb (eom_mode_changed_cb callback); * @see eom_unset_attribute_changed_cb() * @see #eom_attribute_changed_cb */ -int eom_set_attribute_changed_cb (eom_attribute_changed_cb callback, void *user_data); +int eom_set_attribute_changed_cb(eom_attribute_changed_cb callback, void *user_data); /** * @brief Unregisters the callback function. @@ -321,7 +316,7 @@ int eom_set_attribute_changed_cb (eom_attribute_changed_cb callback, void *user_ * @see eom_set_attribute_changed_cb() * @see #eom_attribute_changed_cb */ -int eom_unset_attribute_changed_cb (eom_attribute_changed_cb callback); +int eom_unset_attribute_changed_cb(eom_attribute_changed_cb callback); /** * @brief Gets the IDs and count of external output. @@ -342,7 +337,7 @@ int eom_unset_attribute_changed_cb (eom_attribute_changed_cb callback); * @see #eom_output_id * @see #eom_error_e */ -eom_output_id* eom_get_eom_output_ids (int *count); +eom_output_id *eom_get_eom_output_ids(int *count); /** * @brief Gets type of external output. @@ -360,7 +355,7 @@ eom_output_id* eom_get_eom_output_ids (int *count); * @see #eom_error_e * @see #eom_output_type_e */ -int eom_get_output_type (eom_output_id output_id, eom_output_type_e *type); +int eom_get_output_type(eom_output_id output_id, eom_output_type_e *type); /** * @brief Gets mode of external output. @@ -379,7 +374,7 @@ int eom_get_output_type (eom_output_id output_id, eom_output_type_e *type); * @see #eom_error_e * @see #eom_output_mode_e */ -int eom_get_output_mode (eom_output_id output_id, eom_output_mode_e *mode); +int eom_get_output_mode(eom_output_id output_id, eom_output_mode_e *mode); /** * @brief Gets attribute of external output. @@ -398,7 +393,7 @@ int eom_get_output_mode (eom_output_id output_id, eom_output_mode_e *mode); * @see #eom_error_e * @see #eom_output_attribute_e */ -int eom_get_output_attribute (eom_output_id output_id, eom_output_attribute_e *attribute); +int eom_get_output_attribute(eom_output_id output_id, eom_output_attribute_e *attribute); /** * @brief Gets attribute state of external output. @@ -417,7 +412,7 @@ int eom_get_output_attribute (eom_output_id output_id, eom_output_attribute_e *a * @see #eom_error_e * @see #eom_output_attribute_state_e */ -int eom_get_output_attribute_state (eom_output_id output_id, eom_output_attribute_state_e *state); +int eom_get_output_attribute_state(eom_output_id output_id, eom_output_attribute_state_e *state); /** * @brief Gets resolution of external output. @@ -434,7 +429,7 @@ int eom_get_output_attribute_state (eom_output_id output_id, eom_output_attribut * @see #eom_output_id * @see #eom_error_e */ -int eom_get_output_resolution (eom_output_id output_id, int *width, int *height); +int eom_get_output_resolution(eom_output_id output_id, int *width, int *height); /** * @brief Gets physical width/height (millimeters) of external output. @@ -451,7 +446,7 @@ int eom_get_output_resolution (eom_output_id output_id, int *width, int *height) * @see #eom_output_id * @see #eom_error_e */ -int eom_get_output_physical_size (eom_output_id output_id, int *phy_width, int *phy_height); +int eom_get_output_physical_size(eom_output_id output_id, int *phy_width, int *phy_height); /** * @brief Sets the attribute of the external output ID. @@ -474,7 +469,7 @@ int eom_get_output_physical_size (eom_output_id output_id, int *phy_width, int * * @see #eom_output_id * @see #eom_error_e */ -int eom_set_output_attribute (eom_output_id output_id, eom_output_attribute_e attr); +int eom_set_output_attribute(eom_output_id output_id, eom_output_attribute_e attr); /** * @brief Sets window to the external output best resolution of external output device. @@ -492,7 +487,7 @@ int eom_set_output_attribute (eom_output_id output_id, eom_output_attribute_e at * @see #eom_output_id * @see #eom_error_e */ -int eom_set_output_window (eom_output_id output_id, Evas_Object *win); +int eom_set_output_window(eom_output_id output_id, Evas_Object *win); #ifdef __cplusplus } diff --git a/include/eom_internal.h b/include/eom_internal.h index dd750d0..df834cc 100644 --- a/include/eom_internal.h +++ b/include/eom_internal.h @@ -39,14 +39,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * @brief Enumeration of eom notify type * @since_tizen 2.4 */ -typedef enum -{ - EOM_OUTPUT_NOTIFY_NONE, /**< None notify */ - EOM_OUTPUT_NOTIFY_ADD, /**< Output add notify */ - EOM_OUTPUT_NOTIFY_REMOVE, /**< Output remove notify */ - EOM_OUTPUT_NOTIFY_MODE_CHANGED, /**< Mode change notify */ - EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED, /**< Attribute change notify */ - EOM_OUTPUT_NOTIFY_MAX, +typedef enum { + EOM_OUTPUT_NOTIFY_NONE, /**< None notify */ + EOM_OUTPUT_NOTIFY_ADD, /**< Output add notify */ + EOM_OUTPUT_NOTIFY_REMOVE, /**< Output remove notify */ + EOM_OUTPUT_NOTIFY_MODE_CHANGED, /**< Mode change notify */ + EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED, /**< Attribute change notify */ + EOM_OUTPUT_NOTIFY_MAX, } eom_output_notify_type_e; #endif /* __EOM_INTERNAL_H__ */ diff --git a/src/eom-connect.c b/src/eom-connect.c old mode 100755 new mode 100644 index 1b95167..0abf6c7 --- a/src/eom-connect.c +++ b/src/eom-connect.c @@ -40,43 +40,42 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "eom-private.h" API int -eom_output_set_mode (eom_output_id output_id, eom_output_mode_e mode) +eom_output_set_mode(eom_output_id output_id, eom_output_mode_e mode) { - bool ret = false; - GValueArray *msg_array; - GValueArray *ret_array; - GValue v = G_VALUE_INIT; + bool ret = false; + GValueArray *msg_array; + GValueArray *ret_array; + GValue v = G_VALUE_INIT; - RETV_IF_FAIL (mode < EOM_OUTPUT_MODE_MAX, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(mode < EOM_OUTPUT_MODE_MAX, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - INFO ("mode: %d\n", mode); + INFO("mode: %d\n", mode); - msg_array = g_value_array_new (0); + msg_array = g_value_array_new(0); - g_value_init (&v, G_TYPE_INT); - g_value_set_int (&v, output_id); - msg_array = g_value_array_append (msg_array, &v); - g_value_set_int (&v, mode); - msg_array = g_value_array_append (msg_array, &v); + g_value_init(&v, G_TYPE_INT); + g_value_set_int(&v, output_id); + msg_array = g_value_array_append(msg_array, &v); + g_value_set_int(&v, mode); + msg_array = g_value_array_append(msg_array, &v); - ret_array = eom_dbus_client_send_message ("SetMode", msg_array); - g_value_array_free (msg_array); - if (!ret_array) - { - _eom_mutex_unlock (); - return EOM_ERROR_MESSAGE_SENDING_FAILURE; - } + ret_array = eom_dbus_client_send_message("SetMode", msg_array); + g_value_array_free(msg_array); + if (!ret_array) { + _eom_mutex_unlock(); + return EOM_ERROR_MESSAGE_SENDING_FAILURE; + } - ret = g_value_get_int (g_value_array_get_nth (ret_array, 0)); + ret = g_value_get_int(g_value_array_get_nth(ret_array, 0)); - g_value_array_free (ret_array); + g_value_array_free(ret_array); - INFO ("SetMode: %s", (ret)?"success":"failed"); + INFO("SetMode: %s", (ret) ? "success" : "failed"); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return (ret)?EOM_ERROR_NONE:EOM_ERROR_MESSAGE_OPERATION_FAILURE; + return (ret) ? EOM_ERROR_NONE : EOM_ERROR_MESSAGE_OPERATION_FAILURE; } diff --git a/src/eom-dbus.c b/src/eom-dbus.c old mode 100755 new mode 100644 index 9ffe3c7..9865666 --- a/src/eom-dbus.c +++ b/src/eom-dbus.c @@ -38,511 +38,477 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "eom-log.h" #include "eom-dbus.h" -#define REPLY_TIME 1000 -#define ARGV_NUM 64 - -typedef struct _EomDBusClientInfo -{ - DBusConnection *conn; - char name[STR_LEN]; - char rule[STR_LEN]; - GSource* src; - EomDBusClientMethod *methods; - int fd; +#define REPLY_TIME 1000 +#define ARGV_NUM 64 + +typedef struct _EomDBusClientInfo { + DBusConnection *conn; + char name[STR_LEN]; + char rule[STR_LEN]; + GSource *src; + EomDBusClientMethod *methods; + int fd; } EomDBusClientInfo; static EomDBusClientInfo client_info; -static void _eom_dbus_client_deinit (EomDBusClientInfo *info); +static void _eom_dbus_client_deinit(EomDBusClientInfo *info); static int -_eom_dbus_need_private_conn (void) +_eom_dbus_need_private_conn(void) { - char *env = getenv("EOM_PRIVATE_CONN"); + char *env = getenv("EOM_PRIVATE_CONN"); - if(env) - { - return (atoi(env) > 0) ? 1 : 0; - INFO ("EOM_PRIVATE_CONN = %s", env); - } + if (env) { + return (atoi(env) > 0) ? 1 : 0; + INFO("EOM_PRIVATE_CONN = %s", env); + } - return 0; + return 0; } static int -_eom_dbus_convert_gvalue_to_message (GValueArray *array, DBusMessage *msg) +_eom_dbus_convert_gvalue_to_message(GValueArray *array, DBusMessage *msg) { - DBusMessageIter iter; - int i; - - if (!array) - return 1; - - if (array->n_values <= 0) - return 1; - - dbus_message_iter_init_append (msg, &iter); - - INFO ("[EOM_CLIENT:%s] n_values(%d)", client_info.name, array->n_values); - - for (i = 0; i < array->n_values; i++) - { - GValue *v = g_value_array_get_nth (array, i); - GType type = v->g_type; - - INFO ("[EOM_CLIENT:%s] type(%d)", client_info.name, (int)type); - - switch (type) - { - case G_TYPE_INT: - { - int integer = g_value_get_int (v); - - if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &integer)) - { - ERR ("[EOM_CLIENT:%s] failed: int append", client_info.name); - return 0; - } - } - break; - case G_TYPE_UINT: - { - unsigned int uinteger = g_value_get_uint (v); - - if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &uinteger)) - { - ERR ("[EOM_CLIENT:%s] failed: uint append", client_info.name); - return 0; - } - } - break; - case G_TYPE_STRING: - { - char *string = (char*)g_value_get_string (v); - - if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, (void*)&string)) - { - ERR ("[EOM_CLIENT:%s] failed: uint append", client_info.name); - return 0; - } - } - break; - case G_TYPE_VARIANT: - { - GVariant *variant = g_value_get_variant (v); - int data_size = g_variant_get_size (variant); - void *data = (void*)g_variant_get_data (variant); - DBusMessageIter sub; - - RETV_IF_FAIL (data != NULL, 0); - RETV_IF_FAIL (data_size > 0, 0); - - dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "y", &sub); - if (!dbus_message_iter_append_fixed_array (&sub, DBUS_TYPE_BYTE, (void*)&data, data_size)) - { - ERR ("[EOM_CLIENT:%s] failed: uint append", client_info.name); - return 0; - } - dbus_message_iter_close_container(&iter, &sub); - } - break; - default: - return 0; - } - } - - return 1; + DBusMessageIter iter; + int i; + + if (!array) + return 1; + + if (array->n_values <= 0) + return 1; + + dbus_message_iter_init_append(msg, &iter); + + INFO("[EOM_CLIENT:%s] n_values(%d)", client_info.name, array->n_values); + + for (i = 0; i < array->n_values; i++) { + GValue *v = g_value_array_get_nth(array, i); + GType type = v->g_type; + + INFO("[EOM_CLIENT:%s] type(%d)", client_info.name, (int)type); + + switch (type) { + case G_TYPE_INT: + { + int integer = g_value_get_int(v); + + if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &integer)) { + ERR("[EOM_CLIENT:%s] failed: int append", client_info.name); + return 0; + } + } + break; + case G_TYPE_UINT: + { + unsigned int uinteger = g_value_get_uint(v); + + if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &uinteger)) { + ERR("[EOM_CLIENT:%s] failed: uint append", client_info.name); + return 0; + } + } + break; + case G_TYPE_STRING: + { + char *string = (char *)g_value_get_string(v); + + if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, (void *)&string)) { + ERR("[EOM_CLIENT:%s] failed: uint append", client_info.name); + return 0; + } + } + break; + case G_TYPE_VARIANT: + { + GVariant *variant = g_value_get_variant(v); + int data_size = g_variant_get_size(variant); + void *data = (void *)g_variant_get_data(variant); + DBusMessageIter sub; + + RETV_IF_FAIL(data != NULL, 0); + RETV_IF_FAIL(data_size > 0, 0); + + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "y", &sub); + if (!dbus_message_iter_append_fixed_array(&sub, DBUS_TYPE_BYTE, (void *)&data, data_size)) { + ERR("[EOM_CLIENT:%s] failed: uint append", client_info.name); + return 0; + } + dbus_message_iter_close_container(&iter, &sub); + } + break; + default: + return 0; + } + } + + return 1; } static GValueArray* -_eom_dbus_convert_message_to_gvalue (DBusMessage *msg) +_eom_dbus_convert_message_to_gvalue(DBusMessage *msg) { - GValueArray *array; - DBusMessageIter iter; - - if (!dbus_message_iter_init (msg, &iter)) - return NULL; - - array = g_value_array_new (0); - - do - { - int type = dbus_message_iter_get_arg_type (&iter); - GValue v = G_VALUE_INIT; - - INFO ("[EOM_CLIENT:%s] type(%c(%d))", client_info.name, (char)type, type); - - switch (type) - { - case DBUS_TYPE_INT32: - { - int integer = 0; - dbus_message_iter_get_basic (&iter, &integer); - g_value_init (&v, G_TYPE_INT); - g_value_set_int (&v, integer); - array = g_value_array_append (array, &v); - g_value_unset (&v); - } - break; - case DBUS_TYPE_UINT32: - { - unsigned int uinteger = 0; - dbus_message_iter_get_basic (&iter, &uinteger); - g_value_init (&v, G_TYPE_UINT); - g_value_set_uint (&v, uinteger); - array = g_value_array_append (array, &v); - g_value_unset (&v); - } - break; - case DBUS_TYPE_STRING: - { - char *string = NULL; - dbus_message_iter_get_basic (&iter, &string); - g_value_init (&v, G_TYPE_STRING); - g_value_set_string (&v, string); - array = g_value_array_append (array, &v); - g_value_unset (&v); - } - break; - default: - NEVER_GET_HERE (); - g_value_array_free (array); - return NULL; - } - } - while (dbus_message_iter_has_next (&iter) && dbus_message_iter_next (&iter)); - - return array; + GValueArray *array; + DBusMessageIter iter; + + if (!dbus_message_iter_init(msg, &iter)) + return NULL; + + array = g_value_array_new(0); + + do { + int type = dbus_message_iter_get_arg_type(&iter); + GValue v = G_VALUE_INIT; + + INFO("[EOM_CLIENT:%s] type(%c(%d))", client_info.name, (char)type, type); + + switch (type) { + case DBUS_TYPE_INT32: + { + int integer = 0; + dbus_message_iter_get_basic(&iter, &integer); + g_value_init(&v, G_TYPE_INT); + g_value_set_int(&v, integer); + array = g_value_array_append(array, &v); + g_value_unset(&v); + } + break; + case DBUS_TYPE_UINT32: + { + unsigned int uinteger = 0; + dbus_message_iter_get_basic(&iter, &uinteger); + g_value_init(&v, G_TYPE_UINT); + g_value_set_uint(&v, uinteger); + array = g_value_array_append(array, &v); + g_value_unset(&v); + } + break; + case DBUS_TYPE_STRING: + { + char *string = NULL; + dbus_message_iter_get_basic(&iter, &string); + g_value_init(&v, G_TYPE_STRING); + g_value_set_string(&v, string); + array = g_value_array_append(array, &v); + g_value_unset(&v); + } + break; + default: + NEVER_GET_HERE(); + g_value_array_free(array); + return NULL; + } + } while (dbus_message_iter_has_next(&iter) && dbus_message_iter_next(&iter)); + + return array; } static void -_eom_dbus_client_process_message (EomDBusClientInfo *info, DBusMessage *msg) +_eom_dbus_client_process_message(EomDBusClientInfo *info, DBusMessage *msg) { - EomDBusClientMethod **prev; - DBusError err; + EomDBusClientMethod **prev; + DBusError err; - dbus_error_init (&err); + dbus_error_init(&err); - INFO ("[CLIENT] Process a message (%s.%s)", - dbus_message_get_interface (msg), dbus_message_get_member (msg)); + INFO("[CLIENT] Process a message (%s.%s)", + dbus_message_get_interface(msg), dbus_message_get_member(msg)); - RET_IF_FAIL (info->conn != NULL); + RET_IF_FAIL(info->conn != NULL); - for (prev = &info->methods; *prev; prev = &(*prev)->next) - { - EomDBusClientMethod *method = *prev; + for (prev = &info->methods; *prev; prev = &(*prev)->next) { + EomDBusClientMethod *method = *prev; - if (!strcmp (dbus_message_get_member (msg), method->name)) - { - GValueArray *array = _eom_dbus_convert_message_to_gvalue (msg); + if (!strcmp(dbus_message_get_member(msg), method->name)) { + GValueArray *array = _eom_dbus_convert_message_to_gvalue(msg); - if (method->func) - method->func (method->data, array); + if (method->func) + method->func(method->data, array); - if (array) - g_value_array_free (array); + if (array) + g_value_array_free(array); - dbus_error_free (&err); + dbus_error_free(&err); - return; - } - } + return; + } + } } gboolean -_eom_dbus_client_cb (GIOChannel *src, GIOCondition cond, gpointer data) +_eom_dbus_client_cb(GIOChannel *src, GIOCondition cond, gpointer data) { - EomDBusClientInfo *info = (EomDBusClientInfo*)data; + EomDBusClientInfo *info = (EomDBusClientInfo *)data; - if (!info || !info->conn || info->fd < 0) - return false; + if (!info || !info->conn || info->fd < 0) + return false; - do - { - dbus_connection_read_write_dispatch (info->conn, 0); - } - while (info->conn && - dbus_connection_get_is_connected (info->conn) && - dbus_connection_get_dispatch_status (info->conn) == - DBUS_DISPATCH_DATA_REMAINS); + do { + if (info->conn) + dbus_connection_read_write_dispatch(info->conn, 0); + } while (info->conn && + dbus_connection_get_is_connected(info->conn) && + dbus_connection_get_dispatch_status(info->conn) == + DBUS_DISPATCH_DATA_REMAINS); - return true; + return true; } static DBusHandlerResult -_eom_dbus_client_msg_handler (DBusConnection *connection, DBusMessage *msg, void *data) +_eom_dbus_client_msg_handler(DBusConnection *connection, DBusMessage *msg, void *data) { - EomDBusClientInfo *info = (EomDBusClientInfo*)data; + EomDBusClientInfo *info = (EomDBusClientInfo *)data; - if (!info || !info->conn || !msg) - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + if (!info || !info->conn || !msg) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - INFO("[Client] Got a message (%s.%s)", - dbus_message_get_interface (msg), dbus_message_get_member (msg)); + INFO("[Client] Got a message (%s.%s)", + dbus_message_get_interface(msg), dbus_message_get_member(msg)); - _eom_dbus_client_process_message (info, msg); + _eom_dbus_client_process_message(info, msg); - return DBUS_HANDLER_RESULT_HANDLED; + return DBUS_HANDLER_RESULT_HANDLED; } static DBusHandlerResult -_eom_dbus_client_msg_filter (DBusConnection *conn, DBusMessage *msg, void *data) +_eom_dbus_client_msg_filter(DBusConnection *conn, DBusMessage *msg, void *data) { - EomDBusClientInfo *info = (EomDBusClientInfo*)data; + EomDBusClientInfo *info = (EomDBusClientInfo *)data; - if (!info) - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + if (!info) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - if (dbus_message_is_signal (msg, DBUS_INTERFACE_LOCAL, "Disconnected")) - { - INFO ("[EOM] disconnected by signal"); - _eom_dbus_client_deinit (info); + if (dbus_message_is_signal(msg, DBUS_INTERFACE_LOCAL, "Disconnected")) { + INFO("[EOM] disconnected by signal"); + _eom_dbus_client_deinit(info); - return DBUS_HANDLER_RESULT_HANDLED; - } + return DBUS_HANDLER_RESULT_HANDLED; + } - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } static int _eom_dbus_client_init(EomDBusClientInfo *info) { - DBusError err; - int ret; - DBusObjectPathVTable vtable = {.message_function = _eom_dbus_client_msg_handler, }; - GIOChannel* channel; - - dbus_error_init (&err); - - if (_eom_dbus_need_private_conn ()) - info->conn = dbus_bus_get_private (DBUS_BUS_SYSTEM, &err); - else - info->conn = dbus_bus_get (DBUS_BUS_SYSTEM, &err); - - if (dbus_error_is_set (&err)) - { - ERR ("[EOM] failed: connection (%s)", err.message); - goto free_err; - } - if (!info->conn) - { - ERR ("[EOM] failed: connection NULL"); - goto free_err; - } - - ret = dbus_bus_request_name (info->conn, info->name, - DBUS_NAME_FLAG_REPLACE_EXISTING , &err); - if (dbus_error_is_set (&err)) - { - ERR ("[EOM] failed: request name (%s)", err.message); - goto free_conn; - } - if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) - { - ERR ("[EOM] failed: Not Primary Owner (%d)", ret); - goto free_conn; - } - - snprintf (info->rule, sizeof (info->rule), "interface='%s'", - EOM_DBUS_INTERFACE); - - dbus_bus_add_match (info->conn, info->rule, &err); - dbus_connection_flush(info->conn); - if (dbus_error_is_set (&err)) - { - ERR ("[EOM] failed: add match (%s)", err.message); - goto free_name; - } - - if (!dbus_connection_register_object_path (info->conn, - EOM_DBUS_PATH, &vtable, - info)) - { - ERR ("[EOM] failed: register object path"); - goto free_match; - } - - dbus_connection_set_exit_on_disconnect (info->conn, FALSE); - - if (!dbus_connection_add_filter (info->conn, _eom_dbus_client_msg_filter, info, NULL)) - { - ERR ("[EOM] failed: add filter (%s)", err.message); - goto free_register; - } - - if (!dbus_connection_get_unix_fd (info->conn, &info->fd) || info->fd < 0) - { - ERR ("[EOM] failed: get fd"); - goto free_filter; - } - - dbus_error_free (&err); - - channel = g_io_channel_unix_new(info->fd); - g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL); - - info->src = g_io_create_watch(channel, G_IO_IN); - g_source_set_callback(info->src, (GSourceFunc)_eom_dbus_client_cb, (gpointer)info, NULL); - g_source_attach(info->src, NULL); - - g_io_channel_unref(channel); - - INFO("[EOM_CLIENT] connected"); - - return 1; + DBusError err; + int ret; + DBusObjectPathVTable vtable = {.message_function = _eom_dbus_client_msg_handler, }; + GIOChannel *channel; + + dbus_error_init(&err); + + if (_eom_dbus_need_private_conn()) + info->conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err); + else + info->conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err); + + if (dbus_error_is_set(&err)) { + ERR("[EOM] failed: connection (%s)", err.message); + goto free_err; + } + if (!info->conn) { + ERR("[EOM] failed: connection NULL"); + goto free_err; + } + + ret = dbus_bus_request_name(info->conn, info->name, DBUS_NAME_FLAG_REPLACE_EXISTING, &err); + if (dbus_error_is_set(&err)) { + ERR("[EOM] failed: request name (%s)", err.message); + goto free_conn; + } + if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { + ERR("[EOM] failed: Not Primary Owner (%d)", ret); + goto free_conn; + } + + snprintf(info->rule, sizeof(info->rule), "interface='%s'", EOM_DBUS_INTERFACE); + + dbus_bus_add_match(info->conn, info->rule, &err); + dbus_connection_flush(info->conn); + if (dbus_error_is_set(&err)) { + ERR("[EOM] failed: add match (%s)", err.message); + goto free_name; + } + + if (!dbus_connection_register_object_path(info->conn, EOM_DBUS_PATH, &vtable, info)) { + ERR("[EOM] failed: register object path"); + goto free_match; + } + + dbus_connection_set_exit_on_disconnect(info->conn, FALSE); + + if (!dbus_connection_add_filter(info->conn, _eom_dbus_client_msg_filter, info, NULL)) { + ERR("[EOM] failed: add filter (%s)", err.message); + goto free_register; + } + + if (!dbus_connection_get_unix_fd(info->conn, &info->fd) || info->fd < 0) { + ERR("[EOM] failed: get fd"); + goto free_filter; + } + + dbus_error_free(&err); + + channel = g_io_channel_unix_new(info->fd); + g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL); + + info->src = g_io_create_watch(channel, G_IO_IN); + g_source_set_callback(info->src, (GSourceFunc)_eom_dbus_client_cb, (gpointer)info, NULL); + g_source_attach(info->src, NULL); + + g_io_channel_unref(channel); + + INFO("[EOM_CLIENT] connected"); + + return 1; free_filter: - dbus_connection_remove_filter (info->conn, _eom_dbus_client_msg_filter, info); + dbus_connection_remove_filter(info->conn, _eom_dbus_client_msg_filter, info); free_register: - dbus_connection_unregister_object_path (info->conn, EOM_DBUS_PATH); + dbus_connection_unregister_object_path(info->conn, EOM_DBUS_PATH); free_match: - dbus_bus_remove_match (info->conn, info->rule, &err); - dbus_error_free (&err); + dbus_bus_remove_match(info->conn, info->rule, &err); + dbus_error_free(&err); free_name: - dbus_bus_release_name (info->conn, info->name, &err); - dbus_error_free (&err); + dbus_bus_release_name(info->conn, info->name, &err); + dbus_error_free(&err); free_conn: - dbus_connection_close (info->conn); + dbus_connection_close(info->conn); free_err: - dbus_error_free (&err); - info->conn = NULL; - info->fd = -1; + dbus_error_free(&err); + info->conn = NULL; + info->fd = -1; - return 0; + return 0; } static void -_eom_dbus_client_deinit (EomDBusClientInfo *info) +_eom_dbus_client_deinit(EomDBusClientInfo *info) { - DBusError err; - - if (!info->conn) - return; - - if (info->src) - { - g_source_destroy (info->src); - g_source_unref (info->src); - } - - if (info->conn) - { - dbus_error_init (&err); - dbus_bus_remove_match (info->conn, info->rule, &err); - dbus_error_free (&err); - dbus_bus_release_name (info->conn, info->name, &err); - dbus_error_free (&err); - dbus_connection_unref (info->conn); - } - - memset (info, 0, sizeof (EomDBusClientInfo)); - info->fd = -1; - - INFO ("[EOM] disconnected"); + DBusError err; + + if (!info->conn) + return; + + if (info->src) { + g_source_destroy(info->src); + g_source_unref(info->src); + } + + if (info->conn) { + dbus_error_init(&err); + dbus_bus_remove_match(info->conn, info->rule, &err); + dbus_error_free(&err); + dbus_bus_release_name(info->conn, info->name, &err); + dbus_error_free(&err); + dbus_connection_unref(info->conn); + } + + memset(info, 0, sizeof(EomDBusClientInfo)); + info->fd = -1; + + INFO("[EOM] disconnected"); } bool -eom_dbus_client_connect (void) +eom_dbus_client_connect(void) { - if (client_info.conn) - return true; + if (client_info.conn) + return true; - snprintf (client_info.name, STR_LEN, "org.eom.client%d", getpid()); + snprintf(client_info.name, STR_LEN, "org.eom.client%d", getpid()); - client_info.fd = -1; + client_info.fd = -1; - if(!_eom_dbus_client_init (&client_info)) - return false; + if (!_eom_dbus_client_init(&client_info)) + return false; - return true; + return true; } void -eom_dbus_client_disconnect (void) +eom_dbus_client_disconnect(void) { - _eom_dbus_client_deinit (&client_info); + _eom_dbus_client_deinit(&client_info); } bool -eom_dbus_client_add_method (EomDBusClientMethod *method) +eom_dbus_client_add_method(EomDBusClientMethod *method) { - EomDBusClientMethod **prev; + EomDBusClientMethod **prev; - for (prev = &client_info.methods; *prev; prev = &(*prev)->next); + for (prev = &client_info.methods; *prev; prev = &(*prev)->next); - method->next = NULL; - *prev = method; + method->next = NULL; + *prev = method; - return true; + return true; } void -eom_dbus_client_remove_method (EomDBusClientMethod *method) +eom_dbus_client_remove_method(EomDBusClientMethod *method) { - EomDBusClientMethod **prev; - - for (prev = &client_info.methods; *prev; prev = &(*prev)->next) - if (*prev == method) - { - *prev = method->next; - method->next = NULL; - break; - } + EomDBusClientMethod **prev; + + for (prev = &client_info.methods; *prev; prev = &(*prev)->next) + if (*prev == method) { + *prev = method->next; + method->next = NULL; + break; + } } GValueArray* -eom_dbus_client_send_message (char* method, GValueArray *array) +eom_dbus_client_send_message(char *method, GValueArray *array) { - DBusMessage *msg = NULL; - DBusMessage *reply_msg = NULL; - GValueArray *ret_array = NULL; - DBusError err; + DBusMessage *msg = NULL; + DBusMessage *reply_msg = NULL; + GValueArray *ret_array = NULL; + DBusError err; - RETV_IF_FAIL (client_info.conn != NULL, NULL); + RETV_IF_FAIL(client_info.conn != NULL, NULL); - dbus_error_init (&err); + dbus_error_init(&err); - msg = dbus_message_new_method_call (EOM_DBUS_SERVER, EOM_DBUS_PATH, - EOM_DBUS_INTERFACE, method); - GOTO_IF_FAIL (msg != NULL, err_send); + msg = dbus_message_new_method_call(EOM_DBUS_SERVER, EOM_DBUS_PATH, EOM_DBUS_INTERFACE, method); + GOTO_IF_FAIL(msg != NULL, err_send); - INFO ("[EOM_CLIENT:%s] Send message(%s)", client_info.name, method); + INFO("[EOM_CLIENT:%s] Send message(%s)", client_info.name, method); - if (!_eom_dbus_convert_gvalue_to_message (array, msg)) - { - ERR ("[EOM_CLIENT:%s] failed: gvalue_to_message", client_info.name); - goto err_send; - } + if (!_eom_dbus_convert_gvalue_to_message(array, msg)) { + ERR("[EOM_CLIENT:%s] failed: gvalue_to_message", client_info.name); + goto err_send; + } - reply_msg = dbus_connection_send_with_reply_and_block (client_info.conn, msg, - REPLY_TIME, &err); - if (dbus_error_is_set (&err)) - { - ERR ("[EOM_CLIENT:%s] failed: send (%s)", client_info.name, err.message); - goto err_send; - } - GOTO_IF_FAIL (reply_msg != NULL, err_send); + reply_msg = dbus_connection_send_with_reply_and_block(client_info.conn, msg, REPLY_TIME, &err); + if (dbus_error_is_set(&err)) { + ERR("[EOM_CLIENT:%s] failed: send (%s)", client_info.name, err.message); + goto err_send; + } + GOTO_IF_FAIL(reply_msg != NULL, err_send); - INFO ("[EOM_CLIENT:%s] Got reply", client_info.name); + INFO("[EOM_CLIENT:%s] Got reply", client_info.name); - ret_array = _eom_dbus_convert_message_to_gvalue (reply_msg); + ret_array = _eom_dbus_convert_message_to_gvalue(reply_msg); - dbus_message_unref(msg); - dbus_message_unref(reply_msg); - dbus_error_free (&err); + dbus_message_unref(msg); + dbus_message_unref(reply_msg); + dbus_error_free(&err); - return ret_array; + return ret_array; err_send: - if (msg) - dbus_message_unref(msg); - if (reply_msg) - dbus_message_unref(reply_msg); - if (ret_array) - g_value_array_free (ret_array); + if (msg) + dbus_message_unref(msg); + if (reply_msg) + dbus_message_unref(reply_msg); + if (ret_array) + g_value_array_free(ret_array); - dbus_error_free (&err); + dbus_error_free(&err); - return NULL; + return NULL; } diff --git a/src/eom-dbus.h b/src/eom-dbus.h old mode 100755 new mode 100644 index e8862e2..a5530fc --- a/src/eom-dbus.h +++ b/src/eom-dbus.h @@ -39,28 +39,26 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include "eom.h" -#define EOM_DBUS_SERVER "org.eom.server" -#define EOM_DBUS_CLIENT "org.eom.client" -#define EOM_DBUS_INTERFACE "org.eom.interface" -#define EOM_DBUS_PATH "/org/eom/path" +#define EOM_DBUS_SERVER "org.eom.server" +#define EOM_DBUS_CLIENT "org.eom.client" +#define EOM_DBUS_INTERFACE "org.eom.interface" +#define EOM_DBUS_PATH "/org/eom/path" -#define STR_LEN 128 +#define STR_LEN 128 typedef void (*MethodFunc) (void *data, GValueArray *noti_array); -typedef struct _EomDBusClientMethod -{ - char name[STR_LEN]; - MethodFunc func; - void *data; - - struct _EomDBusClientMethod *next; +typedef struct _EomDBusClientMethod { + char name[STR_LEN]; + MethodFunc func; + void *data; + struct _EomDBusClientMethod *next; } EomDBusClientMethod; -bool eom_dbus_client_connect (void); -void eom_dbus_client_disconnect (void); -GValueArray* eom_dbus_client_send_message (char* method, GValueArray *array); -bool eom_dbus_client_add_method (EomDBusClientMethod *method); -void eom_dbus_client_remove_method (EomDBusClientMethod *method); +bool eom_dbus_client_connect(void); +void eom_dbus_client_disconnect(void); +GValueArray *eom_dbus_client_send_message(char *method, GValueArray *array); +bool eom_dbus_client_add_method(EomDBusClientMethod *method); +void eom_dbus_client_remove_method(EomDBusClientMethod *method); #endif /* __EOM_DBUS_H__ */ diff --git a/src/eom-log.h b/src/eom-log.h old mode 100755 new mode 100644 index 4a86eb0..01e6818 --- a/src/eom-log.h +++ b/src/eom-log.h @@ -48,36 +48,36 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. extern bool eom_debug_on; #ifndef HAVE_CAPI_0_1_1 -static inline void set_last_result (int i) {;} +static inline void set_last_result(int i) {; } #endif #ifdef HAVE_DLOG #define LOG_TAG "EOM" #include #define INFO(fmt, arg...) \ - if (eom_debug_on) SECURE_SLOGI(fmt, ##arg) + if (eom_debug_on) SECURE_SLOGI(fmt, ##arg) #define WARN(fmt, arg...) \ - if (eom_debug_on) SECURE_SLOGW(fmt, ##arg) + if (eom_debug_on) SECURE_SLOGW(fmt, ##arg) #define ERR(fmt, arg...) SECURE_SLOGE(fmt, ##arg) #define ERRNO(fmt, arg...) SECURE_SLOGE("(err=%s(%d)) "fmt, strerror(errno), errno, ##arg) #define FATAL(fmt, arg...) SECURE_SLOGF(fmt, ##arg) -#else /* HAVE_DLOG */ +#else /* HAVE_DLOG */ #include #define INFO(fmt, arg...) \ - if (eom_debug_on) fprintf(stdout,"[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) + if (eom_debug_on) fprintf(stdout, "[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) #define WARN(fmt, arg...) \ - if (eom_debug_on) fprintf(stderr,"[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) -#define ERR(fmt, arg...) fprintf(stderr,"[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) -#define ERRNO(fmt, arg...) fprintf(stderr,"[%s:%d](err=%s(%d)) "fmt"\n", __FUNCTION__, __LINE__, strerror(errno), errno, ##arg) -#define FATAL(fmt, arg...) fprintf(stderr,"[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) -#endif /* HAVE_DLOG */ - -#define WARN_IF_FAIL(cond) {if (!(cond)) { ERR ("'%s' failed", #cond);}} -#define RET_IF_FAIL(cond) {if (!(cond)) { ERR ("'%s' failed", #cond); return; }} -#define RETV_IF_FAIL(cond, val) {if (!(cond)) { ERR ("'%s' failed", #cond); return val; }} -#define RETV_IF_ERRNO(cond, val, errno) {if (!(cond)) { ERRNO ("'%s' failed", #cond); return val; }} -#define GOTO_IF_FAIL(cond, dst) {if (!(cond)) { ERR ("'%s' failed", #cond); goto dst; }} -#define GOTO_IF_ERRNO(cond, dst, errno) {if (!(cond)) { ERRNO ("'%s' failed", #cond); goto dst; }} -#define NEVER_GET_HERE() ERR("** NEVER GET HERE **\n") - -#endif /* __EOM_LOG_H__ */ + if (eom_debug_on) fprintf(stderr, "[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) +#define ERR(fmt, arg...) fprintf(stderr, "[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) +#define ERRNO(fmt, arg...) fprintf(stderr, "[%s:%d](err=%s(%d)) "fmt"\n", __FUNCTION__, __LINE__, strerror(errno), errno, ##arg) +#define FATAL(fmt, arg...) fprintf(stderr, "[%s:%d] "fmt"\n", __FUNCTION__, __LINE__, ##arg) +#endif /* HAVE_DLOG */ + +#define WARN_IF_FAIL(cond) if (!(cond)) ERR("'%s' failed", #cond); +#define RET_IF_FAIL(cond) {if (!(cond)) { ERR("'%s' failed", #cond); return; } } +#define RETV_IF_FAIL(cond, val) {if (!(cond)) { ERR("'%s' failed", #cond); return val; } } +#define RETV_IF_ERRNO(cond, val, errno) {if (!(cond)) { ERRNO("'%s' failed", #cond); return val; } } +#define GOTO_IF_FAIL(cond, dst) {if (!(cond)) { ERR("'%s' failed", #cond); goto dst; } } +#define GOTO_IF_ERRNO(cond, dst, errno) {if (!(cond)) { ERRNO("'%s' failed", #cond); goto dst; } } +#define NEVER_GET_HERE() ERR("** NEVER GET HERE **\n") + +#endif /* __EOM_LOG_H__ */ diff --git a/src/eom-private.h b/src/eom-private.h old mode 100755 new mode 100644 index 78d98d0..dec29be --- a/src/eom-private.h +++ b/src/eom-private.h @@ -36,30 +36,27 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "eom.h" -typedef struct -{ - eom_output_id id; - eom_output_type_e type; - - eom_output_mode_e output_mode; - eom_output_attribute_e attribute; - eom_output_attribute_state_e state; - - int width; - int height; - int mm_width; - int mm_height; +typedef struct { + eom_output_id id; + eom_output_type_e type; + eom_output_mode_e output_mode; + eom_output_attribute_e attribute; + eom_output_attribute_state_e state; + + int width; + int height; + int mm_width; + int mm_height; } eom_output_info; -struct _eom_output -{ - eom_output_id id; - eom_output_type_e type; +struct _eom_output { + eom_output_id id; + eom_output_type_e type; - eom_output_info *output_info; + eom_output_info *output_info; }; -void _eom_mutex_lock (void); -void _eom_mutex_unlock (void); +void _eom_mutex_lock(void); +void _eom_mutex_unlock(void); #endif /* __EOM_PRIVATE_H__ */ diff --git a/src/eom.c b/src/eom.c old mode 100755 new mode 100644 index 6d9543b..6f08a4e --- a/src/eom.c +++ b/src/eom.c @@ -44,1230 +44,1174 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "eom-dbus.h" #include "eom-private.h" -typedef struct -{ - eom_output_notify_type_e type; /**< External output type */ - eom_output_id output_id; /**< External output id */ +typedef struct { + eom_output_notify_type_e type; /**< External output type */ + eom_output_id output_id; /**< External output id */ } eom_output_notify_base_s; -typedef struct -{ - eom_output_notify_type_e type; /**< External output type */ - eom_output_id output_id; /**< External output id */ +typedef struct { + eom_output_notify_type_e type; /**< External output type */ + eom_output_id output_id; /**< External output id */ } eom_output_notify_add_s; -typedef struct -{ - eom_output_notify_type_e type; /**< External output type */ - eom_output_id output_id; /**< External output id */ +typedef struct { + eom_output_notify_type_e type; /**< External output type */ + eom_output_id output_id; /**< External output id */ } eom_output_notify_remove_s; -typedef struct -{ - eom_output_notify_type_e type; /**< External output type */ - eom_output_id output_id; /**< External output id */ - eom_output_mode_e old_mode; /**< External output mode */ - eom_output_mode_e new_mode; /**< External output mode */ +typedef struct { + eom_output_notify_type_e type; /**< External output type */ + eom_output_id output_id; /**< External output id */ + eom_output_mode_e old_mode; /**< External output mode */ + eom_output_mode_e new_mode; /**< External output mode */ } eom_output_notify_mode_change_s; -typedef struct -{ - eom_output_notify_type_e type; /**< External output type */ - eom_output_id output_id; /**< External output id */ - eom_output_attribute_e attribute; /**< External output attribute */ - eom_output_attribute_state_e attr_state; /**< External output attribute state */ +typedef struct { + eom_output_notify_type_e type; /**< External output type */ + eom_output_id output_id; /**< External output id */ + eom_output_attribute_e attribute; /**< External output attribute */ + eom_output_attribute_state_e attr_state; /**< External output attribute state */ } eom_output_notify_attribute_change_s; -typedef union -{ - eom_output_notify_base_s base; /**< Base structure for eom notify */ - eom_output_notify_add_s output_add; /**< #EOM_OUTPUT_NOTIFY_ADD notify */ - eom_output_notify_remove_s output_remove; /**< #EOM_OUTPUT_NOTIFY_REMOVE notify */ - eom_output_notify_mode_change_s mode_change; /**< #EOM_OUTPUT_NOTIFY_MODE_CHANGED notify */ - eom_output_notify_attribute_change_s attr_change; /**< #EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED notify */ +typedef union { + eom_output_notify_base_s base; /**< Base structure for eom notify */ + eom_output_notify_add_s output_add; /**< #EOM_OUTPUT_NOTIFY_ADD notify */ + eom_output_notify_remove_s output_remove; /**< #EOM_OUTPUT_NOTIFY_REMOVE notify */ + eom_output_notify_mode_change_s mode_change; /**< #EOM_OUTPUT_NOTIFY_MODE_CHANGED notify */ + eom_output_notify_attribute_change_s attr_change; /**< #EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED notify */ } eom_output_notify_s; -typedef struct -{ - eom_output_notify_type_e type; - eom_output_added_cb add_func; - eom_output_removed_cb remove_func; - eom_mode_changed_cb mode_change_func; - eom_attribute_changed_cb attribute_change_func; - void *user_data; +typedef struct { + eom_output_notify_type_e type; + eom_output_added_cb add_func; + eom_output_removed_cb remove_func; + eom_mode_changed_cb mode_change_func; + eom_attribute_changed_cb attribute_change_func; + void *user_data; } eom_output_notify_cb_info; bool eom_debug_on; -static pthread_mutex_t eom_lock; +static pthread_mutex_t eom_lock; -static bool dbus_initialized; +static bool dbus_initialized; static EomDBusClientMethod dbus_method; -static GList *cb_info_list; -static GList *output_info_list; +static GList *cb_info_list; +static GList *output_info_list; -static void _eom_output_process_notify_cb (void *data, GValueArray *array); -static eom_output_info* _eom_find_output_info (eom_output_id output_id); -static eom_output_info* _eom_alloc_output_info (int output_id, int output_type); +static void _eom_output_process_notify_cb(void *data, GValueArray *array); +static eom_output_info *_eom_find_output_info(eom_output_id output_id); +static eom_output_info *_eom_alloc_output_info(int output_id, int output_type); static const char* -TYPE (eom_output_type_e output_type) +TYPE(eom_output_type_e output_type) { - switch (output_type) - { - case EOM_OUTPUT_TYPE_VGA: - return "VGA"; - case EOM_OUTPUT_TYPE_DVII: - return "DVII"; - case EOM_OUTPUT_TYPE_DVID: - return "DVID"; - case EOM_OUTPUT_TYPE_DVIA: - return "DVIA"; - case EOM_OUTPUT_TYPE_COMPOSITE: - return "COMPOSITE"; - case EOM_OUTPUT_TYPE_SVIDEO: - return "SVIDEO"; - case EOM_OUTPUT_TYPE_LVDS: - return "LVDS"; - case EOM_OUTPUT_TYPE_COMPONENT: - return "COMPONENT"; - case EOM_OUTPUT_TYPE_9PINDIN: - return "9PINDIN"; - case EOM_OUTPUT_TYPE_DISPLAYPORT: - return "DISPLAYPORT"; - case EOM_OUTPUT_TYPE_HDMIA: - return "HDMIA"; - case EOM_OUTPUT_TYPE_HDMIB: - return "HDMIB"; - case EOM_OUTPUT_TYPE_TV: - return "TV"; - case EOM_OUTPUT_TYPE_EDP: - return "EDP"; - case EOM_OUTPUT_TYPE_VIRTUAL: - return "VIRTUAL"; - case EOM_OUTPUT_TYPE_DSI: - return "DSI"; - default: - return "UNKNOWN"; - } - return "UNKNOWN"; + switch (output_type) { + case EOM_OUTPUT_TYPE_VGA: + return "VGA"; + case EOM_OUTPUT_TYPE_DVII: + return "DVII"; + case EOM_OUTPUT_TYPE_DVID: + return "DVID"; + case EOM_OUTPUT_TYPE_DVIA: + return "DVIA"; + case EOM_OUTPUT_TYPE_COMPOSITE: + return "COMPOSITE"; + case EOM_OUTPUT_TYPE_SVIDEO: + return "SVIDEO"; + case EOM_OUTPUT_TYPE_LVDS: + return "LVDS"; + case EOM_OUTPUT_TYPE_COMPONENT: + return "COMPONENT"; + case EOM_OUTPUT_TYPE_9PINDIN: + return "9PINDIN"; + case EOM_OUTPUT_TYPE_DISPLAYPORT: + return "DISPLAYPORT"; + case EOM_OUTPUT_TYPE_HDMIA: + return "HDMIA"; + case EOM_OUTPUT_TYPE_HDMIB: + return "HDMIB"; + case EOM_OUTPUT_TYPE_TV: + return "TV"; + case EOM_OUTPUT_TYPE_EDP: + return "EDP"; + case EOM_OUTPUT_TYPE_VIRTUAL: + return "VIRTUAL"; + case EOM_OUTPUT_TYPE_DSI: + return "DSI"; + default: + return "UNKNOWN"; + } + return "UNKNOWN"; } static void -_eom_get_debug_evn (void) +_eom_get_debug_evn(void) { - char *env = getenv("EOM_DEBUG"); + char *env = getenv("EOM_DEBUG"); - if(env) - { - eom_debug_on = (atoi(env) > 0) ? true : false; + if (env) { + eom_debug_on = (atoi(env) > 0) ? true : false; #ifdef HAVE_DLOG - fprintf (stderr, "eom dlog on\n"); + fprintf(stderr, "eom dlog on\n"); #else - fprintf (stderr, "eom dlog off\n"); + fprintf(stderr, "eom dlog off\n"); #endif - INFO ("EOM_DEBUG = %s", env); - } - else - eom_debug_on = 0; + INFO("EOM_DEBUG = %s", env); + } else + eom_debug_on = 0; } static bool -_eom_mutex_init (void) +_eom_mutex_init(void) { - static bool init = false; + static bool init = false; - if (init) - return true; + if (init) + return true; - if (pthread_mutex_init (&eom_lock, NULL)) - { - ERRNO ("fail: mutex init"); - return false; - } + if (pthread_mutex_init(&eom_lock, NULL)) { + ERRNO("fail: mutex init"); + return false; + } - init = true; + init = true; - return true; + return true; } void -_eom_mutex_lock (void) +_eom_mutex_lock(void) { - if (!_eom_mutex_init ()) - return; + if (!_eom_mutex_init()) + return; - pthread_mutex_lock (&eom_lock); + pthread_mutex_lock(&eom_lock); } void -_eom_mutex_unlock (void) +_eom_mutex_unlock(void) { - pthread_mutex_unlock (&eom_lock); + pthread_mutex_unlock(&eom_lock); } static bool -_eom_dbus_init (void) +_eom_dbus_init(void) { - if (dbus_initialized) - return true; + if (dbus_initialized) + return true; - if (!eom_dbus_client_connect ()) - return false; + if (!eom_dbus_client_connect()) + return false; - snprintf (dbus_method.name, sizeof (dbus_method.name), "%s", "Notify"); - dbus_method.func = _eom_output_process_notify_cb; - dbus_method.data = NULL; - eom_dbus_client_add_method (&dbus_method); + snprintf(dbus_method.name, sizeof(dbus_method.name), "%s", "Notify"); + dbus_method.func = _eom_output_process_notify_cb; + dbus_method.data = NULL; + eom_dbus_client_add_method(&dbus_method); - dbus_initialized = true; + dbus_initialized = true; - INFO ("dbus init"); + INFO("dbus init"); - return true; + return true; } static void -_eom_dbus_deinit (void) +_eom_dbus_deinit(void) { - if (!dbus_initialized) - return; + if (!dbus_initialized) + return; - /* An output instance and a callback can be created and be added only by user. - * If there is cb_info_list, it means that user is still - * watching and interested with eom dbus message. - */ - if (cb_info_list) - return; + /* An output instance and a callback can be created and be added only by user. + * If there is cb_info_list, it means that user is still + * watching and interested with eom dbus message. + */ + if (cb_info_list) + return; - eom_dbus_client_remove_method (&dbus_method); - eom_dbus_client_disconnect (); + eom_dbus_client_remove_method(&dbus_method); + eom_dbus_client_disconnect(); - dbus_initialized = false; + dbus_initialized = false; } static void -_eom_set_output_info_mode (eom_output_info *output_info, int output_mode) +_eom_set_output_info_mode(eom_output_info *output_info, int output_mode) { - RET_IF_FAIL (output_info != NULL); + RET_IF_FAIL(output_info != NULL); - if (output_info->output_mode == output_mode) - return; + if (output_info->output_mode == output_mode) + return; - output_info->output_mode = output_mode; + output_info->output_mode = output_mode; } static void -_eom_set_output_attribute (eom_output_info *output_info, eom_output_attribute_e attribute) +_eom_set_output_attribute(eom_output_info *output_info, eom_output_attribute_e attribute) { - RET_IF_FAIL (output_info != NULL); + RET_IF_FAIL(output_info != NULL); - output_info->attribute = attribute; + output_info->attribute = attribute; } static void -_eom_set_output_attribute_state (eom_output_info *output_info, eom_output_attribute_state_e state) +_eom_set_output_attribute_state(eom_output_info *output_info, eom_output_attribute_state_e state) { - RET_IF_FAIL (output_info != NULL); + RET_IF_FAIL(output_info != NULL); - output_info->state = state; + output_info->state = state; } static void -_eom_set_output_info_size (eom_output_info *output_info, int w, int h) +_eom_set_output_info_size(eom_output_info *output_info, int w, int h) { - RET_IF_FAIL (output_info != NULL); + RET_IF_FAIL(output_info != NULL); - output_info->width = w; - output_info->height = h; + output_info->width = w; + output_info->height = h; } static void -_eom_set_output_info_phy_size (eom_output_info *output_info, int w_mm, int h_mm) +_eom_set_output_info_phy_size(eom_output_info *output_info, int w_mm, int h_mm) { - RET_IF_FAIL (output_info != NULL); + RET_IF_FAIL(output_info != NULL); - output_info->mm_width = w_mm; - output_info->mm_height = h_mm; + output_info->mm_width = w_mm; + output_info->mm_height = h_mm; } static void -_eom_reset_output_info (eom_output_info *output_info) +_eom_reset_output_info(eom_output_info *output_info) { - RET_IF_FAIL (output_info != NULL); + RET_IF_FAIL(output_info != NULL); - output_info->output_mode = EOM_OUTPUT_MODE_NONE; - output_info->width = 0; - output_info->height = 0; - output_info->mm_width = 0; - output_info->mm_height = 0; + output_info->output_mode = EOM_OUTPUT_MODE_NONE; + output_info->width = 0; + output_info->height = 0; + output_info->mm_width = 0; + output_info->mm_height = 0; } static void -_eom_output_call_notify_cb (eom_output_notify_s *notify) +_eom_output_call_notify_cb(eom_output_notify_s *notify) { - GList *l; - - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; - - if (!cb_info || cb_info->type != notify->base.type) - continue; - - if (notify->base.type == EOM_OUTPUT_NOTIFY_ADD) - { - if (cb_info->add_func == NULL) - continue; - - INFO ("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); - - cb_info->add_func (notify->base.output_id, cb_info->user_data); - } - else if (notify->base.type == EOM_OUTPUT_NOTIFY_REMOVE) - { - if (cb_info->remove_func == NULL) - continue; - - INFO ("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); - - cb_info->remove_func (notify->base.output_id, cb_info->user_data); - } - else if (notify->base.type == EOM_OUTPUT_NOTIFY_MODE_CHANGED) - { - if (cb_info->mode_change_func == NULL) - continue; - - INFO ("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); - - cb_info->mode_change_func (notify->base.output_id, cb_info->user_data); - } - else if (notify->base.type == EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED) - { - if (cb_info->attribute_change_func == NULL) - continue; - - INFO ("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); - - cb_info->attribute_change_func (notify->base.output_id, cb_info->user_data); - } - else - { - INFO ("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); - continue; - } - } + GList *l; + + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; + + if (!cb_info || cb_info->type != notify->base.type) + continue; + + if (notify->base.type == EOM_OUTPUT_NOTIFY_ADD) { + if (cb_info->add_func == NULL) + continue; + + INFO("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); + + cb_info->add_func(notify->base.output_id, cb_info->user_data); + } else if (notify->base.type == EOM_OUTPUT_NOTIFY_REMOVE) { + if (cb_info->remove_func == NULL) + continue; + + INFO("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); + + cb_info->remove_func(notify->base.output_id, cb_info->user_data); + } else if (notify->base.type == EOM_OUTPUT_NOTIFY_MODE_CHANGED) { + if (cb_info->mode_change_func == NULL) + continue; + + INFO("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); + + cb_info->mode_change_func(notify->base.output_id, cb_info->user_data); + } else if (notify->base.type == EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED) { + if (cb_info->attribute_change_func == NULL) + continue; + + INFO("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); + + cb_info->attribute_change_func(notify->base.output_id, cb_info->user_data); + } else { + INFO("cb_info: type(%d) output_id(%d)", notify->base.type, notify->base.output_id); + continue; + } + } } static void -_eom_output_process_notify_cb (void *data, GValueArray *array) +_eom_output_process_notify_cb(void *data, GValueArray *array) { - eom_output_notify_s notify; - eom_output_info *output_info; - int notify_type, output_id, output_type, output_mode, w, h, w_mm, h_mm, pid, attr, state; - GValue *v; - - RET_IF_FAIL (array != NULL); - RET_IF_FAIL (array->n_values == 11); - - /* 11 args 0: notify_type 1:output_id, 2:output_type, 3:output_mode, 4:w, 5:h, 6:w_mm, 7:h_mm, 8:pid, 9:attri, 10:state */ - v = g_value_array_get_nth (array, 0); - notify_type = g_value_get_int (v); - v = g_value_array_get_nth (array, 1); - output_id = g_value_get_int (v); - v = g_value_array_get_nth (array, 2); - output_type = g_value_get_int (v); - v = g_value_array_get_nth (array, 3); - output_mode = g_value_get_int (v); - v = g_value_array_get_nth (array, 4); - w = g_value_get_int (v); - v = g_value_array_get_nth (array, 5); - h = g_value_get_int (v); - v = g_value_array_get_nth (array, 6); - w_mm = g_value_get_int (v); - v = g_value_array_get_nth (array, 7); - h_mm = g_value_get_int (v); - v = g_value_array_get_nth (array, 8); - pid = g_value_get_int (v); - v = g_value_array_get_nth (array, 9); - attr = g_value_get_int (v); - v = g_value_array_get_nth (array, 10); - state = g_value_get_int (v); - - INFO ("notify: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", - notify_type, output_id, output_type, output_mode, w, h, w_mm, h_mm, pid, attr, state); - - memset (¬ify, 0, sizeof (eom_output_notify_s)); - notify.base.type = notify_type; - notify.base.output_id = output_id; - - _eom_mutex_lock (); - - output_info = _eom_find_output_info (output_id); - GOTO_IF_FAIL (output_info != NULL, exit); - - switch (notify_type) - { - case EOM_OUTPUT_NOTIFY_ADD: - { - INFO ("'%s(%d)' added", TYPE(output_type), output_id); - - _eom_set_output_info_mode (output_info, output_mode); - _eom_set_output_info_size (output_info, w, h); - _eom_set_output_info_phy_size (output_info, w_mm, h_mm); - - _eom_mutex_unlock (); - _eom_output_call_notify_cb (¬ify); - _eom_mutex_lock (); - } - break; - - case EOM_OUTPUT_NOTIFY_REMOVE: - { - INFO ("'%s(%d)' removed", TYPE(output_type), output_id); - _eom_reset_output_info (output_info); - - _eom_mutex_unlock (); - _eom_output_call_notify_cb (¬ify); - _eom_mutex_lock (); - } - break; - - case EOM_OUTPUT_NOTIFY_MODE_CHANGED: - { - eom_output_mode_e old_mode; - - old_mode = output_info->output_mode; - output_info->output_mode = output_mode; - - INFO ("'%s(%d)' mode changed(%d=>%d)", - TYPE(output_type), output_id, old_mode, output_info->output_mode); - - notify.mode_change.old_mode = old_mode; - notify.mode_change.new_mode = output_info->output_mode; - - _eom_mutex_unlock (); - _eom_output_call_notify_cb (¬ify); - _eom_mutex_lock (); - } - break; - - case EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED: - { - int current_pid = getpid(); - - if (current_pid == pid) - { - INFO ("'%s(%d)'pid(%d)", TYPE(output_type), output_id, pid); - _eom_set_output_attribute(output_info, attr); - _eom_set_output_attribute_state(output_info, state); - notify.attr_change.output_id = output_id; - notify.attr_change.attribute = attr; - notify.attr_change.attr_state = state; - - _eom_mutex_unlock (); - _eom_output_call_notify_cb (¬ify); - _eom_mutex_lock (); - } - } - break; - - default: - INFO ("'unknown(%d)' notified", notify.base.type); - - _eom_mutex_unlock (); - _eom_output_call_notify_cb (¬ify); - _eom_mutex_lock (); - break; - } + eom_output_notify_s notify; + eom_output_info *output_info; + int notify_type, output_id, output_type, output_mode, w, h, w_mm, h_mm, pid, attr, state; + GValue *v; + + RET_IF_FAIL(array != NULL); + RET_IF_FAIL(array->n_values == 11); + + /* 11 args 0: notify_type 1:output_id, 2:output_type, 3:output_mode, 4:w, 5:h, 6:w_mm, 7:h_mm, 8:pid, 9:attri, 10:state */ + v = g_value_array_get_nth(array, 0); + notify_type = g_value_get_int(v); + v = g_value_array_get_nth(array, 1); + output_id = g_value_get_int(v); + v = g_value_array_get_nth(array, 2); + output_type = g_value_get_int(v); + v = g_value_array_get_nth(array, 3); + output_mode = g_value_get_int(v); + v = g_value_array_get_nth(array, 4); + w = g_value_get_int(v); + v = g_value_array_get_nth(array, 5); + h = g_value_get_int(v); + v = g_value_array_get_nth(array, 6); + w_mm = g_value_get_int(v); + v = g_value_array_get_nth(array, 7); + h_mm = g_value_get_int(v); + v = g_value_array_get_nth(array, 8); + pid = g_value_get_int(v); + v = g_value_array_get_nth(array, 9); + attr = g_value_get_int(v); + v = g_value_array_get_nth(array, 10); + state = g_value_get_int(v); + + INFO("notify: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", + notify_type, output_id, output_type, output_mode, w, h, w_mm, h_mm, pid, attr, state); + + memset(¬ify, 0, sizeof(eom_output_notify_s)); + notify.base.type = notify_type; + notify.base.output_id = output_id; + + _eom_mutex_lock(); + + output_info = _eom_find_output_info(output_id); + GOTO_IF_FAIL(output_info != NULL, exit); + + switch (notify_type) { + case EOM_OUTPUT_NOTIFY_ADD: + { + INFO("'%s(%d)' added", TYPE(output_type), output_id); + + _eom_set_output_info_mode(output_info, output_mode); + _eom_set_output_info_size(output_info, w, h); + _eom_set_output_info_phy_size(output_info, w_mm, h_mm); + + _eom_mutex_unlock(); + _eom_output_call_notify_cb(¬ify); + _eom_mutex_lock(); + } + break; + + case EOM_OUTPUT_NOTIFY_REMOVE: + { + INFO("'%s(%d)' removed", TYPE(output_type), output_id); + + _eom_reset_output_info(output_info); + + _eom_mutex_unlock(); + _eom_output_call_notify_cb(¬ify); + _eom_mutex_lock(); + } + break; + + case EOM_OUTPUT_NOTIFY_MODE_CHANGED: + { + eom_output_mode_e old_mode; + + old_mode = output_info->output_mode; + output_info->output_mode = output_mode; + + INFO("'%s(%d)' mode changed(%d=>%d)", + TYPE(output_type), output_id, old_mode, output_info->output_mode); + + notify.mode_change.old_mode = old_mode; + notify.mode_change.new_mode = output_info->output_mode; + + _eom_mutex_unlock(); + _eom_output_call_notify_cb(¬ify); + _eom_mutex_lock(); + } + break; + + case EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED: + { + int current_pid = getpid(); + + if (current_pid == pid) { + INFO("'%s(%d)'pid(%d)", TYPE(output_type), output_id, pid); + _eom_set_output_attribute(output_info, attr); + _eom_set_output_attribute_state(output_info, state); + notify.attr_change.output_id = output_id; + notify.attr_change.attribute = attr; + notify.attr_change.attr_state = state; + + _eom_mutex_unlock(); + _eom_output_call_notify_cb(¬ify); + _eom_mutex_lock(); + } + } + break; + + default: + INFO("'unknown(%d)' notified", notify.base.type); + + _eom_mutex_unlock(); + _eom_output_call_notify_cb(¬ify); + _eom_mutex_lock(); + break; + } exit: - _eom_mutex_unlock (); + _eom_mutex_unlock(); } static eom_output_info* -_eom_find_output_info (eom_output_id output_id) +_eom_find_output_info(eom_output_id output_id) { - GList *l; + GList *l; - for (l = output_info_list; l; l = g_list_next (l)) - { - eom_output_info *output_info = (eom_output_info*)l->data; + for (l = output_info_list; l; l = g_list_next(l)) { + eom_output_info *output_info = (eom_output_info *)l->data; - if (output_info && (output_id == output_info->id)) - return output_info; - } + if (output_info && (output_id == output_info->id)) + return output_info; + } - return NULL; + return NULL; } static void -_eom_free_output_info (eom_output_info **output_info) +_eom_free_output_info(eom_output_info **output_info) { - if (output_info && *output_info) - { - free(*output_info); - *output_info = NULL; - } + if (output_info && *output_info) { + free(*output_info); + *output_info = NULL; + } } static eom_output_info* -_eom_alloc_output_info (int output_id, int output_type) +_eom_alloc_output_info(int output_id, int output_type) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - output_info = calloc (1, sizeof (eom_output_info)); - GOTO_IF_FAIL (output_info != NULL, fail); + output_info = calloc(1, sizeof(eom_output_info)); + GOTO_IF_FAIL(output_info != NULL, fail); - output_info->id = output_id; - output_info->type = output_type; - output_info->output_mode = EOM_OUTPUT_MODE_NONE; - output_info->attribute = EOM_OUTPUT_ATTRIBUTE_NONE; - output_info->state = EOM_OUTPUT_ATTRIBUTE_STATE_NONE; - output_info->width = 0; - output_info->height = 0; - output_info->mm_width = 0; - output_info->mm_height = 0; + output_info->id = output_id; + output_info->type = output_type; + output_info->output_mode = EOM_OUTPUT_MODE_NONE; + output_info->attribute = EOM_OUTPUT_ATTRIBUTE_NONE; + output_info->state = EOM_OUTPUT_ATTRIBUTE_STATE_NONE; + output_info->width = 0; + output_info->height = 0; + output_info->mm_width = 0; + output_info->mm_height = 0; - INFO ("alloc '%s(%d)''s info", TYPE (output_type), output_id); + INFO("alloc '%s(%d)''s info", TYPE(output_type), output_id); - return output_info; + return output_info; fail: - if (output_info) - free (output_info); + if (output_info) + free(output_info); - ERR ("fail: alloc '%s(%d)''s info", TYPE (output_type), output_id); + ERR("fail: alloc '%s(%d)''s info", TYPE(output_type), output_id); - return NULL; + return NULL; } API int -eom_init (void) +eom_init(void) { - bool ret; + bool ret; - _eom_get_debug_evn (); + _eom_get_debug_evn(); - _eom_mutex_lock (); + _eom_mutex_lock(); - g_type_init (); + g_type_init(); - ret = _eom_dbus_init (); + ret = _eom_dbus_init(); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - INFO ("eom init %s", (ret)?"success":"failed"); + INFO("eom init %s", (ret) ? "success" : "failed"); - return (ret)?EOM_ERROR_NONE:EOM_ERROR_CONNECTION_FAILURE; + return (ret) ? EOM_ERROR_NONE : EOM_ERROR_CONNECTION_FAILURE; } API void -eom_deinit (void) +eom_deinit(void) { - GList *l; + GList *l; - _eom_mutex_lock (); - _eom_dbus_deinit (); + _eom_mutex_lock(); + _eom_dbus_deinit(); - // TODO: redesign the life-cycle of output_infos - //destory output_info. - for (l = output_info_list; l; l = g_list_next (l)) - { - eom_output_info *output_info = (eom_output_info*)l->data; - output_info_list = g_list_remove (output_info_list, output_info); + /* TODO: redesign the life-cycle of output_infos */ + /* destory output_info. */ + for (l = output_info_list; l; l = g_list_next(l)) { + eom_output_info *output_info = (eom_output_info *)l->data; + output_info_list = g_list_remove(output_info_list, output_info); - _eom_free_output_info(&output_info); - } + _eom_free_output_info(&output_info); + } - _eom_mutex_unlock (); + _eom_mutex_unlock(); - INFO ("eom deinit"); + INFO("eom deinit"); } API eom_output_id* -eom_get_eom_output_ids (int *count) +eom_get_eom_output_ids(int *count) { - GValueArray *ret_array = NULL; - eom_output_id *output_ids = NULL; - int i; - - if (!count) - { - set_last_result (EOM_ERROR_INVALID_PARAMETER); - return NULL; - } - - _eom_mutex_lock (); - - ret_array = eom_dbus_client_send_message ("GetOutputIDs", NULL); - - if (!ret_array) - { - *count = 0; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NONE); - return NULL; - } - - if (ret_array->n_values == 0) - { - g_value_array_free (ret_array); - *count = 0; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NONE); - return NULL; - } - - output_ids = calloc (ret_array->n_values, sizeof (eom_output_id)); - GOTO_IF_FAIL (output_ids != NULL, fail); - - *count = ret_array->n_values; - for (i = 0; i < ret_array->n_values; i++) - { - GValue *v = g_value_array_get_nth (ret_array, i); - output_ids[i] = g_value_get_int (v); - INFO ("output_ids: %d", output_ids[i]); - } - - g_value_array_free (ret_array); - ret_array = NULL; - - // TODO: redesign the life-cycle of output_infos - for (i = 0; i < *count; i++) - { - /* add output_info to output_info_list */ - eom_output_info *output_info; - eom_output_id output_id = output_ids[i]; - GValueArray *msg_array; - GValue v = G_VALUE_INIT; - - output_info = _eom_find_output_info (output_id); - if (output_info) - continue; - - msg_array = g_value_array_new (0); - - g_value_init (&v, G_TYPE_INT); - g_value_set_int (&v, output_id); - msg_array = g_value_array_append (msg_array, &v); - - ret_array = eom_dbus_client_send_message("GetOutputInfo", msg_array); - g_value_array_free (msg_array); - - if (ret_array) - { - /* 0:output_id, 1:output_type, 2:output_mode, 3:w, 4:h, 5:w_mm, 6:h_mm */ - output_info = _eom_alloc_output_info (g_value_get_int(g_value_array_get_nth (ret_array, 0)), - g_value_get_int(g_value_array_get_nth (ret_array, 1))); - if (output_info) - { - output_info_list = g_list_append (output_info_list, output_info); - _eom_set_output_info_mode (output_info, g_value_get_int(g_value_array_get_nth (ret_array, 2))); - _eom_set_output_info_size (output_info, g_value_get_int(g_value_array_get_nth (ret_array, 3)), - g_value_get_int(g_value_array_get_nth (ret_array, 4))); - _eom_set_output_info_phy_size (output_info, g_value_get_int(g_value_array_get_nth (ret_array, 5)), - g_value_get_int(g_value_array_get_nth (ret_array, 6))); - INFO ("GetOutputInfo: %s(%d)", TYPE (output_info->type), output_info->id); - } - - g_value_array_free (ret_array); - ret_array = NULL; - } - else - ERR ("fail: get id(%d)'s information", output_id); - } - - _eom_mutex_unlock (); - - set_last_result (EOM_ERROR_NONE); - - return output_ids; + GValueArray *ret_array = NULL; + eom_output_id *output_ids = NULL; + int i; + + if (!count) { + set_last_result(EOM_ERROR_INVALID_PARAMETER); + return NULL; + } + + _eom_mutex_lock(); + + ret_array = eom_dbus_client_send_message("GetOutputIDs", NULL); + + if (!ret_array) { + *count = 0; + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NONE); + return NULL; + } + + if (ret_array->n_values == 0) { + g_value_array_free(ret_array); + *count = 0; + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NONE); + return NULL; + } + + output_ids = calloc(ret_array->n_values, sizeof(eom_output_id)); + GOTO_IF_FAIL(output_ids != NULL, fail); + + *count = ret_array->n_values; + for (i = 0; i < ret_array->n_values; i++) { + GValue *v = g_value_array_get_nth(ret_array, i); + output_ids[i] = g_value_get_int(v); + INFO("output_ids: %d", output_ids[i]); + } + + g_value_array_free(ret_array); + ret_array = NULL; + + /* TODO: redesign the life-cycle of output_infos */ + for (i = 0; i < *count; i++) { + /* add output_info to output_info_list */ + eom_output_info *output_info; + eom_output_id output_id = output_ids[i]; + GValueArray *msg_array; + GValue v = G_VALUE_INIT; + + output_info = _eom_find_output_info(output_id); + if (output_info) + continue; + + msg_array = g_value_array_new(0); + + g_value_init(&v, G_TYPE_INT); + g_value_set_int(&v, output_id); + msg_array = g_value_array_append(msg_array, &v); + + ret_array = eom_dbus_client_send_message("GetOutputInfo", msg_array); + g_value_array_free(msg_array); + + if (ret_array) { + /* 0:output_id, 1:output_type, 2:output_mode, 3:w, 4:h, 5:w_mm, 6:h_mm */ + output_info = _eom_alloc_output_info(g_value_get_int(g_value_array_get_nth(ret_array, 0)), + g_value_get_int(g_value_array_get_nth(ret_array, 1))); + if (output_info) { + output_info_list = g_list_append(output_info_list, output_info); + _eom_set_output_info_mode(output_info, g_value_get_int(g_value_array_get_nth(ret_array, 2))); + _eom_set_output_info_size(output_info, g_value_get_int(g_value_array_get_nth(ret_array, 3)), + g_value_get_int(g_value_array_get_nth(ret_array, 4))); + _eom_set_output_info_phy_size(output_info, g_value_get_int(g_value_array_get_nth(ret_array, 5)), + g_value_get_int(g_value_array_get_nth(ret_array, 6))); + INFO("GetOutputInfo: %s(%d)", TYPE(output_info->type), output_info->id); + } + + g_value_array_free(ret_array); + ret_array = NULL; + } else + ERR("fail: get id(%d)'s information", output_id); + } + + _eom_mutex_unlock(); + + set_last_result(EOM_ERROR_NONE); + + return output_ids; fail: - if (ret_array) - g_value_array_free (ret_array); + if (ret_array) + g_value_array_free(ret_array); - if (output_ids) - free (output_ids); + if (output_ids) + free(output_ids); - *count = 0; + *count = 0; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - set_last_result (EOM_ERROR_OUT_OF_MEMORY); + set_last_result(EOM_ERROR_OUT_OF_MEMORY); - return NULL; + return NULL; } API int -eom_set_output_added_cb (eom_output_added_cb callback, void *user_data) +eom_set_output_added_cb(eom_output_added_cb callback, void *user_data) { - eom_output_notify_cb_info *cb_info; - GList *l; + eom_output_notify_cb_info *cb_info; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (cb_info && (cb_info->add_func != NULL) && (cb_info->add_func == callback)) - { - _eom_mutex_unlock (); - return EOM_ERROR_NONE; - } - } + if (cb_info && (cb_info->add_func != NULL) && (cb_info->add_func == callback)) { + _eom_mutex_unlock(); + return EOM_ERROR_NONE; + } + } - cb_info = calloc (1, sizeof (eom_output_notify_cb_info)); - GOTO_IF_FAIL (cb_info != NULL, fail); + cb_info = calloc(1, sizeof(eom_output_notify_cb_info)); + GOTO_IF_FAIL(cb_info != NULL, fail); - cb_info->type = EOM_OUTPUT_NOTIFY_ADD; - cb_info->add_func = callback; - cb_info->user_data = user_data; + cb_info->type = EOM_OUTPUT_NOTIFY_ADD; + cb_info->add_func = callback; + cb_info->user_data = user_data; - cb_info_list = g_list_append (cb_info_list, cb_info); + cb_info_list = g_list_append(cb_info_list, cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; fail: - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_OUT_OF_MEMORY; + return EOM_ERROR_OUT_OF_MEMORY; } API int -eom_unset_output_added_cb (eom_output_added_cb callback) +eom_unset_output_added_cb(eom_output_added_cb callback) { - GList *l; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (!cb_info || (cb_info->add_func == NULL) || (cb_info->add_func != callback)) - continue; + if (!cb_info || (cb_info->add_func == NULL) || (cb_info->add_func != callback)) + continue; - cb_info_list = g_list_remove (cb_info_list, cb_info); - free (cb_info); + cb_info_list = g_list_remove(cb_info_list, cb_info); + free(cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; - } + return EOM_ERROR_NONE; + } - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_INVALID_PARAMETER; + return EOM_ERROR_INVALID_PARAMETER; } API int -eom_set_output_removed_cb (eom_output_removed_cb callback, void *user_data) +eom_set_output_removed_cb(eom_output_removed_cb callback, void *user_data) { - eom_output_notify_cb_info *cb_info; - GList *l; + eom_output_notify_cb_info *cb_info; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (cb_info && (cb_info->remove_func != NULL) && (cb_info->remove_func == callback)) - { - _eom_mutex_unlock (); - return EOM_ERROR_NONE; - } - } + if (cb_info && (cb_info->remove_func != NULL) && (cb_info->remove_func == callback)) { + _eom_mutex_unlock(); + return EOM_ERROR_NONE; + } + } - cb_info = calloc (1, sizeof (eom_output_notify_cb_info)); - GOTO_IF_FAIL (cb_info != NULL, fail); + cb_info = calloc(1, sizeof(eom_output_notify_cb_info)); + GOTO_IF_FAIL(cb_info != NULL, fail); - cb_info->type = EOM_OUTPUT_NOTIFY_REMOVE; - cb_info->remove_func = callback; - cb_info->user_data = user_data; + cb_info->type = EOM_OUTPUT_NOTIFY_REMOVE; + cb_info->remove_func = callback; + cb_info->user_data = user_data; - cb_info_list = g_list_append (cb_info_list, cb_info); + cb_info_list = g_list_append(cb_info_list, cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; fail: - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_OUT_OF_MEMORY; + return EOM_ERROR_OUT_OF_MEMORY; } API int -eom_unset_output_removed_cb (eom_output_removed_cb callback) +eom_unset_output_removed_cb(eom_output_removed_cb callback) { - GList *l; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (!cb_info || (cb_info->remove_func == NULL) || (cb_info->remove_func != callback)) - continue; + if (!cb_info || (cb_info->remove_func == NULL) || (cb_info->remove_func != callback)) + continue; - cb_info_list = g_list_remove (cb_info_list, cb_info); - free (cb_info); + cb_info_list = g_list_remove(cb_info_list, cb_info); + free(cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; - } + return EOM_ERROR_NONE; + } - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_INVALID_PARAMETER; + return EOM_ERROR_INVALID_PARAMETER; } API int -eom_set_mode_changed_cb (eom_mode_changed_cb callback, void *user_data) +eom_set_mode_changed_cb(eom_mode_changed_cb callback, void *user_data) { - eom_output_notify_cb_info *cb_info; - GList *l; + eom_output_notify_cb_info *cb_info; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (cb_info && (cb_info->mode_change_func != NULL) && (cb_info->mode_change_func == callback)) - { - _eom_mutex_unlock (); - return EOM_ERROR_NONE; - } - } + if (cb_info && (cb_info->mode_change_func != NULL) && (cb_info->mode_change_func == callback)) { + _eom_mutex_unlock(); + return EOM_ERROR_NONE; + } + } - cb_info = calloc (1, sizeof (eom_output_notify_cb_info)); - GOTO_IF_FAIL (cb_info != NULL, fail); + cb_info = calloc(1, sizeof(eom_output_notify_cb_info)); + GOTO_IF_FAIL(cb_info != NULL, fail); - cb_info->type = EOM_OUTPUT_NOTIFY_MODE_CHANGED; - cb_info->mode_change_func = callback; - cb_info->user_data = user_data; + cb_info->type = EOM_OUTPUT_NOTIFY_MODE_CHANGED; + cb_info->mode_change_func = callback; + cb_info->user_data = user_data; - cb_info_list = g_list_append (cb_info_list, cb_info); + cb_info_list = g_list_append(cb_info_list, cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; fail: - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_OUT_OF_MEMORY; + return EOM_ERROR_OUT_OF_MEMORY; } API int -eom_unset_mode_changed_cb (eom_mode_changed_cb callback) +eom_unset_mode_changed_cb(eom_mode_changed_cb callback) { - GList *l; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (!cb_info || (cb_info->mode_change_func == NULL) || (cb_info->mode_change_func != callback)) - continue; + if (!cb_info || (cb_info->mode_change_func == NULL) || (cb_info->mode_change_func != callback)) + continue; - cb_info_list = g_list_remove (cb_info_list, cb_info); - free (cb_info); + cb_info_list = g_list_remove(cb_info_list, cb_info); + free(cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; - } + return EOM_ERROR_NONE; + } - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_INVALID_PARAMETER; + return EOM_ERROR_INVALID_PARAMETER; } API int -eom_set_attribute_changed_cb (eom_attribute_changed_cb callback, void *user_data) +eom_set_attribute_changed_cb(eom_attribute_changed_cb callback, void *user_data) { - eom_output_notify_cb_info *cb_info; - GList *l; + eom_output_notify_cb_info *cb_info; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (cb_info && (cb_info->attribute_change_func != NULL) && (cb_info->attribute_change_func == callback)) - { - _eom_mutex_unlock (); - return EOM_ERROR_NONE; - } - } + if (cb_info && (cb_info->attribute_change_func != NULL) && (cb_info->attribute_change_func == callback)) { + _eom_mutex_unlock(); + return EOM_ERROR_NONE; + } + } - cb_info = calloc (1, sizeof (eom_output_notify_cb_info)); - GOTO_IF_FAIL (cb_info != NULL, fail); + cb_info = calloc(1, sizeof(eom_output_notify_cb_info)); + GOTO_IF_FAIL(cb_info != NULL, fail); - cb_info->type = EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED; - cb_info->attribute_change_func = callback; - cb_info->user_data = user_data; + cb_info->type = EOM_OUTPUT_NOTIFY_ATTRIBUTE_CHANGED; + cb_info->attribute_change_func = callback; + cb_info->user_data = user_data; - cb_info_list = g_list_append (cb_info_list, cb_info); + cb_info_list = g_list_append(cb_info_list, cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; fail: - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_OUT_OF_MEMORY; + return EOM_ERROR_OUT_OF_MEMORY; } API int -eom_unset_attribute_changed_cb (eom_attribute_changed_cb callback) +eom_unset_attribute_changed_cb(eom_attribute_changed_cb callback) { - GList *l; + GList *l; - RETV_IF_FAIL (callback != NULL, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(callback != NULL, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - for (l = cb_info_list; l; l = g_list_next (l)) - { - eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info*)l->data; + for (l = cb_info_list; l; l = g_list_next(l)) { + eom_output_notify_cb_info *cb_info = (eom_output_notify_cb_info *)l->data; - if (!cb_info || (cb_info->attribute_change_func == NULL) || (cb_info->attribute_change_func != callback)) - continue; + if (!cb_info || (cb_info->attribute_change_func == NULL) || (cb_info->attribute_change_func != callback)) + continue; - cb_info_list = g_list_remove (cb_info_list, cb_info); - free (cb_info); + cb_info_list = g_list_remove(cb_info_list, cb_info); + free(cb_info); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; - } + return EOM_ERROR_NONE; + } - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_INVALID_PARAMETER; + return EOM_ERROR_INVALID_PARAMETER; } API int -eom_set_output_attribute (eom_output_id output_id, eom_output_attribute_e attr) +eom_set_output_attribute(eom_output_id output_id, eom_output_attribute_e attr) { - eom_output_info *output_info = NULL; - bool ret = false; - GValueArray *msg_array; - GValueArray *ret_array; - GValue v = G_VALUE_INIT; - int pid = 0; + eom_output_info *output_info = NULL; + bool ret = false; + GValueArray *msg_array; + GValueArray *ret_array; + GValue v = G_VALUE_INIT; + int pid = 0; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); - RETV_IF_FAIL (attr > EOM_OUTPUT_ATTRIBUTE_NONE, EOM_ERROR_INVALID_PARAMETER); - RETV_IF_FAIL (attr < EOM_OUTPUT_ATTRIBUTE_MAX, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(attr > EOM_OUTPUT_ATTRIBUTE_NONE, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(attr < EOM_OUTPUT_ATTRIBUTE_MAX, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - _eom_mutex_unlock (); - return EOM_ERROR_NO_SUCH_DEVICE; - } + output_info = _eom_find_output_info(output_id); + if (!output_info) { + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + _eom_mutex_unlock(); + return EOM_ERROR_NO_SUCH_DEVICE; + } - pid = getpid(); + pid = getpid(); - INFO ("output_id: %d, pid: %d, mode: %d\n", output_id, pid, attr); + INFO("output_id: %d, pid: %d, mode: %d\n", output_id, pid, attr); - msg_array = g_value_array_new (0); + msg_array = g_value_array_new(0); - /* 0:output_id, 1:pid, 2:eom_attribuete_e */ - g_value_init (&v, G_TYPE_INT); - g_value_set_int (&v, output_id); - msg_array = g_value_array_append (msg_array, &v); - g_value_set_int (&v, pid); - msg_array = g_value_array_append (msg_array, &v); - g_value_set_int (&v, attr); - msg_array = g_value_array_append (msg_array, &v); + /* 0:output_id, 1:pid, 2:eom_attribuete_e */ + g_value_init(&v, G_TYPE_INT); + g_value_set_int(&v, output_id); + msg_array = g_value_array_append(msg_array, &v); + g_value_set_int(&v, pid); + msg_array = g_value_array_append(msg_array, &v); + g_value_set_int(&v, attr); + msg_array = g_value_array_append(msg_array, &v); - ret_array = eom_dbus_client_send_message ("SetOutputAttribute", msg_array); - g_value_array_free (msg_array); - if (!ret_array) - { - _eom_mutex_unlock (); - return EOM_ERROR_MESSAGE_SENDING_FAILURE; - } + ret_array = eom_dbus_client_send_message("SetOutputAttribute", msg_array); + g_value_array_free(msg_array); + if (!ret_array) { + _eom_mutex_unlock(); + return EOM_ERROR_MESSAGE_SENDING_FAILURE; + } - ret = g_value_get_int (g_value_array_get_nth (ret_array, 0)); + ret = g_value_get_int (g_value_array_get_nth(ret_array, 0)); - g_value_array_free (ret_array); + g_value_array_free(ret_array); - INFO ("SetOutputAttribute: %s", (ret)?"success":"failed"); + INFO("SetOutputAttribute: %s", (ret) ? "success" : "failed"); - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return (ret)?EOM_ERROR_NONE:EOM_ERROR_MESSAGE_OPERATION_FAILURE; + return (ret) ? EOM_ERROR_NONE : EOM_ERROR_MESSAGE_OPERATION_FAILURE; } API int -eom_get_output_type (eom_output_id output_id, eom_output_type_e *type) +eom_get_output_type(eom_output_id output_id, eom_output_type_e *type) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - *type = EOM_OUTPUT_TYPE_UNKNOWN; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - return EOM_ERROR_NO_SUCH_DEVICE; - } - *type = output_info->type; + output_info = _eom_find_output_info(output_id); + if (!output_info) { + *type = EOM_OUTPUT_TYPE_UNKNOWN; + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + return EOM_ERROR_NO_SUCH_DEVICE; + } + *type = output_info->type; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - set_last_result (EOM_ERROR_NONE); - return EOM_ERROR_NONE; + set_last_result(EOM_ERROR_NONE); + return EOM_ERROR_NONE; } API int -eom_get_output_mode (eom_output_id output_id, eom_output_mode_e *mode) +eom_get_output_mode(eom_output_id output_id, eom_output_mode_e *mode) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - *mode = EOM_OUTPUT_MODE_NONE; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - return EOM_ERROR_NO_SUCH_DEVICE; - } - *mode = output_info->output_mode; + output_info = _eom_find_output_info(output_id); + if (!output_info) { + *mode = EOM_OUTPUT_MODE_NONE; + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + return EOM_ERROR_NO_SUCH_DEVICE; + } + *mode = output_info->output_mode; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - set_last_result (EOM_ERROR_NONE); - return EOM_ERROR_NONE; + set_last_result(EOM_ERROR_NONE); + return EOM_ERROR_NONE; } API int -eom_get_output_attribute (eom_output_id output_id, eom_output_attribute_e *attribute) +eom_get_output_attribute(eom_output_id output_id, eom_output_attribute_e *attribute) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - *attribute = EOM_OUTPUT_ATTRIBUTE_NONE; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - return EOM_ERROR_NO_SUCH_DEVICE; - } - *attribute = output_info->attribute; + output_info = _eom_find_output_info(output_id); + if (!output_info) { + *attribute = EOM_OUTPUT_ATTRIBUTE_NONE; + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + return EOM_ERROR_NO_SUCH_DEVICE; + } + *attribute = output_info->attribute; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - set_last_result (EOM_ERROR_NONE); - return EOM_ERROR_NONE; + set_last_result(EOM_ERROR_NONE); + return EOM_ERROR_NONE; } API int -eom_get_output_attribute_state (eom_output_id output_id, eom_output_attribute_state_e *state) +eom_get_output_attribute_state(eom_output_id output_id, eom_output_attribute_state_e *state) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - *state = EOM_OUTPUT_ATTRIBUTE_STATE_NONE; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - return EOM_ERROR_NO_SUCH_DEVICE; - } - *state = output_info->state; + output_info = _eom_find_output_info(output_id); + if (!output_info) { + *state = EOM_OUTPUT_ATTRIBUTE_STATE_NONE; + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + return EOM_ERROR_NO_SUCH_DEVICE; + } + *state = output_info->state; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - set_last_result (EOM_ERROR_NONE); - return EOM_ERROR_NONE; + set_last_result(EOM_ERROR_NONE); + return EOM_ERROR_NONE; } API int -eom_get_output_resolution (eom_output_id output_id, int *width, int *height) +eom_get_output_resolution(eom_output_id output_id, int *width, int *height) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - if (width) - *width = 0; - if (height) - *height = 0; + output_info = _eom_find_output_info(output_id); + if (!output_info) { + if (width) + *width = 0; + if (height) + *height = 0; - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - _eom_mutex_unlock (); - return EOM_ERROR_NO_SUCH_DEVICE; - } + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + _eom_mutex_unlock(); + return EOM_ERROR_NO_SUCH_DEVICE; + } - if (width) - *width = output_info->width; - if (height) - *height = output_info->height; + if (width) + *width = output_info->width; + if (height) + *height = output_info->height; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; } API int -eom_get_output_physical_size (eom_output_id output_id, int *phy_width, int *phy_height) +eom_get_output_physical_size(eom_output_id output_id, int *phy_width, int *phy_height) { - eom_output_info *output_info = NULL; + eom_output_info *output_info = NULL; - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); - _eom_mutex_lock (); + _eom_mutex_lock(); - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - if (phy_width) - *phy_width = 0; - if (phy_height) - *phy_height = 0; + output_info = _eom_find_output_info(output_id); + if (!output_info) { + if (phy_width) + *phy_width = 0; + if (phy_height) + *phy_height = 0; - _eom_mutex_unlock (); - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - return EOM_ERROR_NO_SUCH_DEVICE; - } + _eom_mutex_unlock(); + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + return EOM_ERROR_NO_SUCH_DEVICE; + } - if (phy_width) - *phy_width = output_info->mm_width; - if (phy_height) - *phy_height = output_info->mm_height; + if (phy_width) + *phy_width = output_info->mm_width; + if (phy_height) + *phy_height = output_info->mm_height; - _eom_mutex_unlock (); + _eom_mutex_unlock(); - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; } API int -eom_set_output_window (eom_output_id output_id, Evas_Object *win) +eom_set_output_window(eom_output_id output_id, Evas_Object *win) { #ifdef HAVE_X11 - eom_output_info *output_info = NULL; - bool ret = false; - GValueArray *msg_array; - GValueArray *ret_array; - GValue v = G_VALUE_INIT; - Ecore_X_Window xwin; - int pid = 0; - - RETV_IF_FAIL (output_id != 0, EOM_ERROR_INVALID_PARAMETER); - RETV_IF_FAIL (win != NULL, EOM_ERROR_INVALID_PARAMETER); - - _eom_mutex_lock (); - - output_info = _eom_find_output_info (output_id); - if (!output_info) - { - set_last_result (EOM_ERROR_NO_SUCH_DEVICE); - _eom_mutex_unlock (); - return EOM_ERROR_NO_SUCH_DEVICE; - } - - pid = getpid(); - xwin = elm_win_xwindow_get (win); - - INFO ("output_id: %d, pid: %d, xwin: %d\n", output_id, pid, xwin); - - msg_array = g_value_array_new (0); - - /* 0:output_id, 1:pid, 2:eom_attribuete_e */ - g_value_init (&v, G_TYPE_INT); - g_value_set_int (&v, output_id); - msg_array = g_value_array_append (msg_array, &v); - g_value_set_int (&v, pid); - msg_array = g_value_array_append (msg_array, &v); - g_value_set_int (&v, xwin); - msg_array = g_value_array_append (msg_array, &v); - - ret_array = eom_dbus_client_send_message ("SetWindow", msg_array); - g_value_array_free (msg_array); - if (!ret_array) - { - _eom_mutex_unlock (); - return EOM_ERROR_MESSAGE_SENDING_FAILURE; - } - - ret = g_value_get_int (g_value_array_get_nth (ret_array, 0)); - - g_value_array_free (ret_array); - - if (ret == 1) - { - const char *profile = "desktop"; - elm_win_profiles_set(win, &profile, 1); - elm_win_fullscreen_set (win, EINA_TRUE); - INFO ("SetWindow: success\n"); - _eom_mutex_unlock (); - return EOM_ERROR_NONE; - } - - INFO ("SetWindow: failed\n"); - _eom_mutex_unlock (); - return EOM_ERROR_MESSAGE_OPERATION_FAILURE; + eom_output_info *output_info = NULL; + bool ret = false; + GValueArray *msg_array; + GValueArray *ret_array; + GValue v = G_VALUE_INIT; + Ecore_X_Window xwin; + int pid = 0; + + RETV_IF_FAIL(output_id != 0, EOM_ERROR_INVALID_PARAMETER); + RETV_IF_FAIL(win != NULL, EOM_ERROR_INVALID_PARAMETER); + + _eom_mutex_lock(); + + output_info = _eom_find_output_info(output_id); + if (!output_info) { + set_last_result(EOM_ERROR_NO_SUCH_DEVICE); + _eom_mutex_unlock(); + return EOM_ERROR_NO_SUCH_DEVICE; + } + + pid = getpid(); + xwin = elm_win_xwindow_get(win); + + INFO("output_id: %d, pid: %d, xwin: %d\n", output_id, pid, xwin); + + msg_array = g_value_array_new(0); + + /* 0:output_id, 1:pid, 2:eom_attribuete_e */ + g_value_init(&v, G_TYPE_INT); + g_value_set_int(&v, output_id); + msg_array = g_value_array_append(msg_array, &v); + g_value_set_int(&v, pid); + msg_array = g_value_array_append(msg_array, &v); + g_value_set_int(&v, xwin); + msg_array = g_value_array_append(msg_array, &v); + + ret_array = eom_dbus_client_send_message("SetWindow", msg_array); + g_value_array_free(msg_array); + if (!ret_array) { + _eom_mutex_unlock(); + return EOM_ERROR_MESSAGE_SENDING_FAILURE; + } + + ret = g_value_get_int(g_value_array_get_nth(ret_array, 0)); + + g_value_array_free(ret_array); + + if (ret == 1) { + const char *profile = "desktop"; + elm_win_profiles_set(win, &profile, 1); + elm_win_fullscreen_set(win, EINA_TRUE); + INFO("SetWindow: success\n"); + _eom_mutex_unlock(); + return EOM_ERROR_NONE; + } + + INFO("SetWindow: failed\n"); + _eom_mutex_unlock(); + return EOM_ERROR_MESSAGE_OPERATION_FAILURE; #else - return EOM_ERROR_NONE; + return EOM_ERROR_NONE; #endif } -- 2.7.4