From b58c2608cc4f724b591339719d5adbf7c4a38542 Mon Sep 17 00:00:00 2001 From: Ravi kumar Veeramally Date: Tue, 22 Apr 2014 15:06:06 +0300 Subject: [PATCH] android/client: Add register_application support to haltest Input parameters contains many optional strings, so treating '-' as empty input. It makes input handling simpler. --- android/client/if-hl.c | 96 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/android/client/if-hl.c b/android/client/if-hl.c index 5ea29f8c0..220c02419 100644 --- a/android/client/if-hl.c +++ b/android/client/if-hl.c @@ -25,6 +25,17 @@ #include "pollhandler.h" #include "../hal-utils.h" +SINTMAP(bthl_mdep_role_t, -1, "(unknown)") + DELEMENT(BTHL_MDEP_ROLE_SOURCE), + DELEMENT(BTHL_MDEP_ROLE_SINK), +ENDMAP + +SINTMAP(bthl_channel_type_t, -1, "(unknown)") + DELEMENT(BTHL_CHANNEL_TYPE_RELIABLE), + DELEMENT(BTHL_CHANNEL_TYPE_STREAMING), + DELEMENT(BTHL_CHANNEL_TYPE_ANY), +ENDMAP + const bthl_interface_t *if_hl = NULL; static bthl_callbacks_t hl_cbacks = { @@ -42,6 +53,86 @@ static void init_p(int argc, const char **argv) EXEC(if_hl->init, &hl_cbacks); } +/* register_application */ + +static void register_application_p(int argc, const char **argv) +{ + bthl_reg_param_t reg; + uint16_t mdep_argc_init, mdep_argc_off; + int app_id = -1; + int i; + + RETURN_IF_NULL(if_hl); + + if (argc <= 2) { + haltest_error("No app name is specified\n"); + return; + } + + if (argc <= 3) { + haltest_error("No provider is specified\n"); + return; + } + + if (argc <= 4) { + haltest_error("No service name is specified\n"); + return; + } + + if (argc <= 5) { + haltest_error("No service description is specified\n"); + return; + } + + if (argc <= 6) { + haltest_error("No num of mdeps is specified\n"); + return; + } + + memset(®, 0, sizeof(reg)); + + if (argc != ((atoi(argv[6]) * 4) + 7)) { + haltest_error("mdep cfg argumetns are not proper\n"); + return; + } + + reg.application_name = argv[2]; + + if (strcmp("-", argv[3])) + reg.provider_name = argv[3]; + + if (strcmp("-", argv[4])) + reg.srv_name = argv[4]; + + if (strcmp("-", argv[5])) + reg.srv_desp = argv[5]; + + reg.number_of_mdeps = atoi(argv[6]); + + reg.mdep_cfg = malloc(reg.number_of_mdeps * sizeof(bthl_mdep_cfg_t)); + mdep_argc_init = 7; + + for (i = 0; i < reg.number_of_mdeps; i++) { + mdep_argc_off = mdep_argc_init + (4 * i); + reg.mdep_cfg[i].mdep_role = + str2bthl_mdep_role_t(argv[mdep_argc_off]); + reg.mdep_cfg[i].data_type = atoi(argv[mdep_argc_off + 1]); + reg.mdep_cfg[i].channel_type = + str2bthl_channel_type_t(argv[mdep_argc_off + 2]); + + if (!strcmp("-", argv[mdep_argc_off + 3])) { + reg.mdep_cfg[i].mdep_description = NULL; + continue; + } + + reg.mdep_cfg[i].mdep_description = argv[mdep_argc_off + 3]; + } + + EXEC(if_hl->register_application, ®, &app_id); + + free(reg.mdep_cfg); +} + /* cleanup */ static void cleanup_p(int argc, const char **argv) @@ -54,6 +145,11 @@ static void cleanup_p(int argc, const char **argv) static struct method methods[] = { STD_METHOD(init), + STD_METHODH(register_application, + " \n" + "\n" + "[[] [] [] []]" + "..."), STD_METHOD(cleanup), END_METHOD }; -- 2.47.3