/* * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://floralicense.org/license/ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "gear-racing-controller.h" #include "view_manager/view_manager.h" #include "model/model_sensors.h" #include "model/model_hw.h" #include "model/model_car_connection.h" #include "net-util.h" #include "config.h" #include "log.h" static bool app_create(void *data) { model_sensors_init(); model_hw_init(); model_car_connection_init(); view_manager_initialize_ui(); net_util_init(); return true; } static void app_control(app_control_h app_control, void *data) { char *appid; int ret = app_control_get_app_id(app_control, &appid); ASSERT_FUNCTION(ret != APP_CONTROL_ERROR_NONE); if (!strncmp(appid, "org.tizen.gear-racing-controller-bs", strlen(appid))) { config_set_bezel_steering_sensor_velocity(); } else if (!strncmp(appid, "org.tizen.gear-racing-controller-sb", strlen(appid))) { config_set_sensor_steering_bezel_velocity(); } else if (!strncmp(appid, "org.tizen.gear-racing-controller-ssa", strlen(appid))) { config_set_sensor_steering_sensor_velocity_bezel_azimuth(); } else if (!strncmp(appid, "org.tizen.gear-racing-controller-sse", strlen(appid))) { config_set_sensor_steering_sensor_velocity_bezel_elev(); } else { config_set_bezel_steering_sensor_velocity(); } } static void app_pause(void *data) { /* Take necessary actions when application becomes invisible. */ } static void app_resume(void *data) { /* Take necessary actions when application becomes visible. */ } static void app_terminate(void *data) { net_util_fini(); /* Release all resources. */ } static void ui_app_lang_changed(app_event_info_h event_info, void *user_data) { /*APP_EVENT_LANGUAGE_CHANGED*/ int ret; char *language; ret = app_event_get_language(event_info, &language); if (ret != APP_ERROR_NONE) { dlog_print(DLOG_ERROR, LOG_TAG, "app_event_get_language() failed. Err = %d.", ret); return; } if (language != NULL) { elm_language_set(language); free(language); } } static void ui_app_orient_changed(app_event_info_h event_info, void *user_data) { /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/ return; } static void ui_app_region_changed(app_event_info_h event_info, void *user_data) { /*APP_EVENT_REGION_FORMAT_CHANGED*/ } static void ui_app_low_battery(app_event_info_h event_info, void *user_data) { /*APP_EVENT_LOW_BATTERY*/ } static void ui_app_low_memory(app_event_info_h event_info, void *user_data) { /*APP_EVENT_LOW_MEMORY*/ } int main(int argc, char *argv[]) { int ret = 0; ui_app_lifecycle_callback_s event_callback = {0,}; app_event_handler_h handlers[5] = {NULL, }; event_callback.create = app_create; event_callback.terminate = app_terminate; event_callback.pause = app_pause; event_callback.resume = app_resume; event_callback.app_control = app_control; ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, NULL); ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, NULL); ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, NULL); ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, NULL); ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, NULL); ret = ui_app_main(argc, argv, &event_callback, NULL); if (ret != APP_ERROR_NONE) { dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret); } return ret; }