View widgets updated based on controls' setup 18/189918/4
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Fri, 21 Sep 2018 16:11:14 +0000 (18:11 +0200)
committerKrzysztof Wieclaw <k.wieclaw@samsung.com>
Thu, 4 Oct 2018 13:14:16 +0000 (15:14 +0200)
Change-Id: I8e6d84be94836bcef1127f4df98c1f69c692af84
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
inc/controller/controller_racing.h
inc/model/model_device_to_connection.h
src/controller/controller_racing.c
src/model/model_device_to_connection.c
src/view/view_racing.c

index 404f0c3..6ec17c5 100644 (file)
@@ -24,6 +24,7 @@ typedef struct _s_controller_data {
        float throttle;
        float direction;
        float cam_elevation;
+       float cam_azimuth;
 } s_controller_data;
 
 void controller_racing_init(t_view_update_cb view_update_cb);
index 1a18898..b4d7491 100644 (file)
@@ -33,4 +33,9 @@ void model_device_to_connection_buttons(float value);
 
 void model_device_to_connection_set_control_roles(e_device axis_x, e_device axis_y, e_device bezel, e_device buttons);
 
+const e_device model_device_to_connection_axis_x_get_function();
+const e_device model_device_to_connection_axis_y_get_function();
+const e_device model_device_to_connection_bezel_get_function();
+const e_device model_device_to_connection_buttons_get_function();
+
 #endif /* MODEL_DEVICE_TO_CONNECTION_H_ */
index 35eeeed..77b9c7b 100644 (file)
@@ -42,16 +42,42 @@ static void _model_connected_cb(s_model_car_connection_cb_data *model_data)
        view_manager_set_view(VIEW_RESET);
 }
 
+void _map_device_to_view(e_device device, float value)
+{
+       switch (device) {
+       case STERING_MODE_DIRETION:
+               s_info.controller_data.direction = value;
+               break;
+       case STERING_MODE_THROTTLE:
+               s_info.controller_data.throttle = value;
+               break;
+       case STERING_MODE_CAM_AZIMUTH:
+               s_info.controller_data.cam_azimuth = value;
+               break;
+       case STERING_MODE_CAM_ELEVATION:
+               s_info.controller_data.cam_elevation = value;
+               break;
+       default:
+               break;
+       }
+}
+
 static void _sensors_cb(s_model_sensors_cb_data *model_data)
 {
-       s_info.controller_data.direction = model_data->axis_x;
-       s_info.controller_data.throttle = model_data->axis_y;
+       e_device device = model_device_to_connection_axis_x_get_function();
+       _map_device_to_view(device, model_data->axis_x);
+
+       device = model_device_to_connection_axis_y_get_function();
+       _map_device_to_view(device, model_data->axis_y);
+
        s_info.base_controller.view_update_cb(&s_info.controller_data);
 }
 
 static void _hw_cb(s_model_hw_cb_data *model_data)
 {
-       s_info.controller_data.throttle = model_data->bezel_position;
+       e_device device = model_device_to_connection_bezel_get_function();
+       _map_device_to_view(device, model_data->bezel_position);
+
        s_info.base_controller.view_update_cb(&s_info.controller_data);
 }
 
index fe47f46..05b2913 100644 (file)
@@ -83,3 +83,26 @@ void model_device_to_connection_set_control_roles(e_device axis_x, e_device axis
        s_info.buttons = buttons;
 }
 
+const e_device model_device_to_connection_axis_x_get_function()
+{
+       return s_info.axis_x;
+}
+
+const e_device model_device_to_connection_axis_y_get_function()
+{
+       return s_info.axis_y;
+}
+
+const e_device model_device_to_connection_bezel_get_function()
+{
+       return s_info.bezel;
+}
+
+const e_device model_device_to_connection_buttons_get_function()
+{
+       return s_info.buttons;
+}
+
+
+
+
index 2e71df4..4b970c1 100644 (file)
@@ -118,6 +118,9 @@ static void _controller_cb(void *data)
        angle = math_helper_range_map(controller_data->cam_elevation, 0, 1, 0, 90);
        view_base_set_angle(s_info.camera_elevation_indicator, 90 - angle, 180.0, 180.0);
 
+       angle = math_helper_range_map(controller_data->cam_azimuth, -1, 1, -90.0f, 90.0f);
+       view_base_set_angle(s_info.camera_azimuth_indicator, angle, 180.0, 180.0);
+
        if (controller_data->throttle < 0) {
                evas_object_color_set(s_info.velocity, 0, 255, 255, 255);
        } else {