5 #include "maps_test_search_place.h"
6 #include "maps_test_search_route.h"
7 #include "maps_test_geocode.h"
8 #include "maps_test_util.h"
11 maps_service_h maps_svc = NULL;
12 maps_view_h maps_view = NULL;
13 maps_test_state_type maps_test_state = MAPS_TEST_STATE_MAIN;
14 maps_preference_h maps_pref = NULL;
17 #define PROVIDER_NAME_LEN 512
18 #define PROVIDER_KEY_LEN 1024
20 char g_provider_name[PROVIDER_NAME_LEN+1] = "";
21 char g_provider_key[PROVIDER_KEY_LEN+1] = "";
24 static int scanf_safety(const char *format, ...)
27 if (fgets(line, sizeof(line), stdin) == NULL)
31 va_start(args, format);
32 int ret = vsscanf(line, format, args);
38 int maps_test_set_configuration()
40 printf("Input provider name. [%s] : ", g_provider_name);
41 scanf_safety("%s", &g_provider_name);
43 printf("Input provider key. [%s] : ", g_provider_key);
44 scanf_safety("%s", &g_provider_key);
49 int maps_test_create_maps_service()
52 return MAPS_ERROR_INVALID_OPERATION;
53 int ret = maps_service_create_without_user_consent(g_provider_name, &maps_svc);
54 if (ret == MAPS_ERROR_NONE) {
55 maps_service_set_user_consent(maps_svc, true);
56 ret = maps_service_set_provider_key(maps_svc, g_provider_key);
58 print_result(ret == MAPS_ERROR_NONE);
62 int maps_test_destroy_maps_service()
64 int ret = maps_service_destroy(maps_svc);
66 print_result(ret == MAPS_ERROR_NONE);
70 static bool __maps_service_provider_info_cb(char *maps_provider, void *user_data)
72 int *number = (int*)user_data;
73 printf("%d : %s\n", ++*number, maps_provider);
77 int maps_test_show_list_of_providers()
80 return maps_service_foreach_provider(__maps_service_provider_info_cb, &number);
85 printf("========================================\n");
86 printf(" Maps Native API Tester\n");
87 printf("----------------------------------------\n");
88 printf(" a\t - Show list of Providers\n");
89 printf(" b\t - Set configuration\n");
90 printf(" c\t - Create Maps service\n");
91 printf(" d\t - Destroy Maps service\n");
92 printf("----------------------------------------\n");
93 printf(" 1\t - Search Place\n");
94 printf(" 2\t - Search Place By Address\n");
95 printf(" 3\t - Search Place By Area\n");
96 printf(" 4\t - Search Place List\n");
97 printf(" 5\t - Geocode\n");
98 printf(" 6\t - Reverse Geocode\n");
99 printf(" 7\t - Route\n");
100 printf("----------------------------------------\n");
101 printf(" x\t - Exit\n");
102 printf("========================================\n");
105 int maps_test_startup()
111 int maps_test_finish()
113 int ret = maps_test_destroy_maps_service();
117 bool run_command(char cmd)
120 switch ((int)maps_test_state) {
121 case MAPS_TEST_STATE_MAIN:
123 case 'a': ret = maps_test_show_list_of_providers(); break;
124 case 'b': ret = maps_test_set_configuration(); break;
125 case 'c': ret = maps_test_create_maps_service(); break;
126 case 'd': ret = maps_test_destroy_maps_service(); break;
128 case '1': ret = maps_test_search_place(maps_svc); break;
129 case '2': ret = maps_test_search_place_by_address(maps_svc); break;
130 case '3': ret = maps_test_search_place_by_area(maps_svc); break;
131 case '4': ret = maps_test_search_place_list(maps_svc); break;
132 case '5': ret = maps_test_geocode(maps_svc); break;
133 case '6': ret = maps_test_reverse_geocode(maps_svc); break;
134 case '7': ret = maps_test_search_route(maps_svc); break;
136 case 'x': return false;
137 case '\0': print_menu(); break;
138 default: printf("Unknown command\n"); break;
143 printf("Error = 0x%X\n", ret);
148 void *test_thread(void *data)
153 char input[256] = "";
154 scanf_safety("%s", &input);
155 if (run_command(input[0]) == false)
165 int main(int argc, char **argv)
168 #if !GLIB_CHECK_VERSION(2, 36, 0)
171 mainloop = g_main_loop_new(NULL, FALSE);
172 g_thread_new("capi-maps-service-test", &test_thread, NULL);
173 g_main_loop_run(mainloop);