From 1b67643f09f4e5ab41221a5a26016b85a8329fe8 Mon Sep 17 00:00:00 2001 From: "giyeol.ok" Date: Tue, 2 Jul 2013 08:57:58 +0900 Subject: [PATCH] merge jack and switch control routine Signed-off-by: giyeol.ok Signed-off-by: Maciej Wereski Change-Id: I2471f28526f5ea4ef961f964f1e6dcceb26362c1 --- src/core/device-change-handler.c | 98 ++++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 44 deletions(-) diff --git a/src/core/device-change-handler.c b/src/core/device-change-handler.c index 12ce566..08970f2 100644 --- a/src/core/device-change-handler.c +++ b/src/core/device-change-handler.c @@ -98,16 +98,30 @@ enum snd_jack_types { #define CHANGE_ACTION "change" #define ENV_FILTER "CHGDET" -#define ENV_VALUE_USB "usb" -#define ENV_VALUE_CHARGER "charger" -#define ENV_VALUE_EARJACK "earjack" -#define ENV_VALUE_EARKEY "earkey" -#define ENV_VALUE_TVOUT "tvout" -#define ENV_VALUE_HDMI "hdmi" -#define ENV_VALUE_KEYBOARD "keyboard" +#define USB_NAME "usb" +#define USB_NAME_LEN 3 -#define SWITCH_DEVICE_USB "usb_cable" +#define CHARGER_NAME "charger" +#define CHARGER_NAME_LEN 7 + +#define EARJACK_NAME "earjack" +#define EARJACK_NAME_LEN 7 + +#define EARKEY_NAME "earkey" +#define EARKEY_NAME_LEN 6 + +#define TVOUT_NAME "tvout" +#define TVOUT_NAME_LEN 5 +#define HDMI_NAME "hdmi" +#define HDMI_NAME_LEN 4 + +#define KEYBOARD_NAME "keyboard" +#define KEYBOARD_NAME_LEN 8 + +#define POWER_SUPPLY_NAME_LEN 12 + +#define SWITCH_DEVICE_USB "usb_cable" #define ABNORMAL_POPUP_COUNTER 5 @@ -801,44 +815,40 @@ out: return EINA_TRUE; } -int changed_device_def_predefine_action(int argc, char **argv) +static int changed_device(int argc, char **argv) { - int state; + int *state = NULL; + int i; - if (argc ==2 && argv[0] != NULL && argv[1] != NULL) { - state = atoi(argv[1]); - goto switch_device; + for (i = 0 ; i < argc ; i++) { + if (argv[i] == NULL) { + _E("param is failed"); + return -EINVAL; + } } - if (argc != 1 || argv[0] == NULL) { - _E("param is failed"); - return -1; - } + if (argc == 2) + state = atoi(argv[1]); - if (strncmp(argv[0], ENV_VALUE_USB, strlen(ENV_VALUE_USB)) == 0) - usb_chgdet_cb(NULL); - if (strncmp(argv[0], ENV_VALUE_EARJACK, strlen(ENV_VALUE_EARJACK)) == 0) - earjack_chgdet_cb(NULL); - if (strncmp(argv[0], ENV_VALUE_EARKEY, strlen(ENV_VALUE_EARKEY)) == 0) - earkey_chgdet_cb(NULL); - if (strncmp(argv[0], ENV_VALUE_TVOUT, strlen(ENV_VALUE_TVOUT)) == 0) - tvout_chgdet_cb(NULL); - if (strncmp(argv[0], ENV_VALUE_HDMI, strlen(ENV_VALUE_HDMI)) == 0) - hdmi_chgdet_cb(NULL); - if (strncmp(argv[0], ENV_VALUE_KEYBOARD, strlen(ENV_VALUE_KEYBOARD)) == 0) - keyboard_chgdet_cb(NULL); - if (strncmp(argv[0], POWER_SUBSYSTEM, strlen(POWER_SUBSYSTEM)) == 0) - power_supply(NULL); + if (strncmp(argv[0], USB_NAME, USB_NAME_LEN) == 0) + usb_chgdet_cb((void *)state); + else if (strncmp(argv[0], EARJACK_NAME, EARJACK_NAME_LEN) == 0) + earjack_chgdet_cb((void *)state); + else if (strncmp(argv[0], EARKEY_NAME, EARKEY_NAME_LEN) == 0) + earkey_chgdet_cb((void *)state); + else if (strncmp(argv[0], TVOUT_NAME, TVOUT_NAME_LEN) == 0) + tvout_chgdet_cb((void *)state); + else if (strncmp(argv[0], HDMI_NAME, HDMI_NAME_LEN) == 0) + hdmi_chgdet_cb((void *)state); + else if (strncmp(argv[0], KEYBOARD_NAME, KEYBOARD_NAME_LEN) == 0) + keyboard_chgdet_cb((void *)state); + else if (strncmp(argv[0], POWER_SUBSYSTEM, POWER_SUPPLY_NAME_LEN) == 0) + power_supply((void *)state); return 0; - - switch_device: - if (strncmp(argv[0], SWITCH_DEVICE_USB, strlen(SWITCH_DEVICE_USB)) == 0) - usb_chgdet_cb((void *)state); - return 0; } -int usbcon_def_predefine_action(int argc, char **argv) +static int changed_dev_usb(int argc, char **argv) { int pid; int val = -1; @@ -870,7 +880,7 @@ int usbcon_def_predefine_action(int argc, char **argv) return -1; } -int earjackcon_def_predefine_action(int argc, char **argv) +static int changed_dev_earjack(int argc, char **argv) { int val; @@ -884,7 +894,7 @@ int earjackcon_def_predefine_action(int argc, char **argv) return -1; } -static int battery_def_cf_opened_actioin(int argc, char **argv) +static int changed_battery_cf(int argc, char **argv) { int ret; static int present_status = 1; @@ -935,10 +945,10 @@ static void device_change_init(void *data) { if (extcon_count_init() != 0) _E("fail to init extcon files"); - action_entry_add_internal(PREDEF_USBCON, usbcon_def_predefine_action, NULL, NULL); - action_entry_add_internal(PREDEF_EARJACKCON, earjackcon_def_predefine_action, NULL, NULL); - action_entry_add_internal(PREDEF_BATTERY_CF_OPENED, battery_def_cf_opened_actioin, NULL, NULL); - action_entry_add_internal(PREDEF_DEVICE_CHANGED, changed_device_def_predefine_action, NULL, NULL); + action_entry_add_internal(PREDEF_USBCON, changed_dev_usb, NULL, NULL); + action_entry_add_internal(PREDEF_EARJACKCON, changed_dev_earjack, NULL, NULL); + action_entry_add_internal(PREDEF_BATTERY_CF_OPENED, changed_battery_cf, NULL, NULL); + action_entry_add_internal(PREDEF_DEVICE_CHANGED, changed_device, NULL, NULL); if (uevent_control_start() != 0) { _E("fail uevent control init"); @@ -967,7 +977,7 @@ static void device_change_init(void *data) } /* check and set earjack init status */ - earjackcon_def_predefine_action(0, NULL); + changed_dev_earjack(0, NULL); /* dbus noti change cb */ #ifdef ENABLE_EDBUS_USE e_dbus_init(); -- 2.7.4