diff --git a/android/client/if-hl.c b/android/client/if-hl.c
index 5ea29f8..220c024 100644
--- a/android/client/if-hl.c
+++ b/android/client/if-hl.c
#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 = {
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)
static struct method methods[] = {
STD_METHOD(init),
+ STD_METHODH(register_application,
+ "<app_name> <provider_name> <srv_name> <srv_descr>\n"
+ "<num_of_mdeps>\n"
+ "[[<mdep_role>] [<data_type>] [<channel_type>] [<mdep_descr>]]"
+ "..."),
STD_METHOD(cleanup),
END_METHOD
};