add functions to control the display of 360 71/146371/1 accepted/tizen/unified/20170907.185649 submit/tizen/20170906.061717
authorEunhae Choi <eunhae1.choi@samsung.com>
Mon, 28 Aug 2017 07:53:12 +0000 (16:53 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Mon, 28 Aug 2017 07:53:12 +0000 (16:53 +0900)
Change-Id: I0bee32a2f0e222d54f4aa3cf7eaedf24a99da16a

legacy/include/legacy_player.h
legacy/src/legacy_player.c
muse/api.list
muse/src/muse_player.c

index 00cbf6714842959c235d2af343d9de3a1f762717..91e0a018f0434973cbfc7125ebd7703c5fd3f2d5 100644 (file)
@@ -2223,6 +2223,16 @@ int legacy_player_is_audio_only(player_h player, bool *paudio_only);
 int legacy_player_set_streaming_buffering_time(player_h player, int buffer_ms, int rebuffer_ms);
 int legacy_player_get_streaming_buffering_time(player_h player, int *buffer_ms, int *rebuffer_ms);
 
+/* 360 video display */
+int legacy_player_360_set_enable(player_h player, bool enable);
+int legacy_player_360_is_enabled(player_h player, bool *enabled);
+int legacy_player_360_set_direction_of_view(player_h player, float yaw, float pitch);
+int legacy_player_360_get_direction_of_view(player_h player, float *yaw, float *pitch);
+int legacy_player_360_set_zoom(player_h player, float level);
+int legacy_player_360_get_zoom(player_h player, float *level);
+int legacy_player_360_set_field_of_view(player_h player, int horizontal_degrees, int vertical_degrees);
+int legacy_player_360_get_field_of_view(player_h player, int *horizontal_degrees, int *vertical_degrees);
+
 /**
  * @}
  */
index a9c54ba1257ff73d5e6b7a8632708ea3fcda657e..fd9565af9ed43486656e3b50fb1b9fe0d3fdb407 100644 (file)
@@ -3309,3 +3309,153 @@ int legacy_player_get_streaming_buffering_time(player_h player, int *buffer_ms,
                return PLAYER_ERROR_NONE;
        }
 }
+
+int legacy_player_360_set_enable(player_h player, bool enable)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       player_s *handle = (player_s *)player;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_IDLE)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       int ret = mm_player_360_set_enable(handle->mm_handle, enable);
+       if (ret != MM_ERROR_NONE)
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       else
+               return PLAYER_ERROR_NONE;
+}
+
+int legacy_player_360_is_enabled(player_h player, bool *enabled)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       player_s *handle = (player_s *)player;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_IDLE)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       int ret = mm_player_360_is_enabled(handle->mm_handle, enabled);
+       if (ret != MM_ERROR_NONE) {
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       } else {
+               return PLAYER_ERROR_NONE;
+       }
+}
+
+int legacy_player_360_set_direction_of_view(player_h player, float yaw, float pitch)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       player_s *handle = (player_s *)player;
+       int ret = MM_ERROR_NONE;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_READY)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       ret = mm_player_360_set_direction_of_view(handle->mm_handle, yaw, pitch);
+       if (ret != MM_ERROR_NONE)
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       else
+               return PLAYER_ERROR_NONE;
+}
+
+int legacy_player_360_get_direction_of_view(player_h player, float *yaw, float *pitch)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       PLAYER_NULL_ARG_CHECK(yaw);
+       PLAYER_NULL_ARG_CHECK(pitch);
+
+       player_s *handle = (player_s *)player;
+       int ret = MM_ERROR_NONE;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_IDLE)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       ret = mm_player_360_get_direction_of_view(handle->mm_handle, yaw, pitch);
+       if (ret != MM_ERROR_NONE) {
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       } else {
+               return PLAYER_ERROR_NONE;
+       }
+}
+
+int legacy_player_360_set_zoom(player_h player, float level)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       player_s *handle = (player_s *)player;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_PAUSED)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       int ret = mm_player_360_set_zoom(handle->mm_handle, level);
+       if (ret != MM_ERROR_NONE)
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       else
+               return PLAYER_ERROR_NONE;
+}
+
+int legacy_player_360_get_zoom(player_h player, float *level)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       player_s *handle = (player_s *)player;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_PAUSED)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       int ret = mm_player_360_get_zoom(handle->mm_handle, level);
+       if (ret != MM_ERROR_NONE) {
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       } else {
+               return PLAYER_ERROR_NONE;
+       }
+}
+
+int legacy_player_360_set_field_of_view(player_h player, int horizontal_degrees, int vertical_degrees)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       player_s *handle = (player_s *)player;
+       int ret = MM_ERROR_NONE;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_IDLE)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       ret = mm_player_360_set_field_of_view(handle->mm_handle, horizontal_degrees, vertical_degrees);
+       if (ret != MM_ERROR_NONE)
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       else
+               return PLAYER_ERROR_NONE;
+}
+
+int legacy_player_360_get_field_of_view(player_h player, int *horizontal_degrees, int *vertical_degrees)
+{
+       PLAYER_INSTANCE_CHECK(player);
+       PLAYER_NULL_ARG_CHECK(horizontal_degrees);
+       PLAYER_NULL_ARG_CHECK(vertical_degrees);
+
+       player_s *handle = (player_s *)player;
+       int ret = MM_ERROR_NONE;
+
+       if (!__player_state_validate(handle, PLAYER_STATE_IDLE)) {
+               LOGE("PLAYER_ERROR_INVALID_STATE (0x%08x) : current state - %d", PLAYER_ERROR_INVALID_STATE, handle->state);
+               return PLAYER_ERROR_INVALID_STATE;
+       }
+
+       ret = mm_player_360_get_field_of_view(handle->mm_handle, horizontal_degrees, vertical_degrees);
+       if (ret != MM_ERROR_NONE) {
+               return __player_convert_error_code(ret, (char *)__FUNCTION__);
+       } else {
+               return PLAYER_ERROR_NONE;
+       }
+}
index 8f28df1fe4c230b3d9b6b83576cd1643bc6ec4f0..8185913916b2d0bb15c2fc25312392351c72f9f6 100644 (file)
@@ -84,4 +84,12 @@ get_max_adaptive_variant_limit
 set_audio_only
 is_audio_only
 set_streaming_buffering_time
-get_streaming_buffering_time
\ No newline at end of file
+get_streaming_buffering_time
+360_set_enable
+360_is_enabled
+360_set_direction_of_view
+360_get_direction_of_view
+360_set_zoom
+360_get_zoom
+360_set_field_of_view
+360_get_field_of_view
\ No newline at end of file
index 0ee0ee0c6bec7de7cd6fcb673680235eb266d33c..72cf986b326c964a8e487be003c6287c06ccd301 100644 (file)
@@ -2910,7 +2910,6 @@ int player_disp_set_streaming_buffering_time(muse_module_h module)
        ret = legacy_player_set_streaming_buffering_time(muse_player->player_handle, buffer_ms, rebuffer_ms);
 
        player_msg_return(api, ret, module);
-
        return ret;
 }
 
@@ -2931,3 +2930,134 @@ int player_disp_get_streaming_buffering_time(muse_module_h module)
 
        return ret;
 }
+
+int player_disp_360_set_enable(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_SET_ENABLE;
+       muse_player_handle_s *muse_player = NULL;
+       int val = 0;
+
+       muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+       player_msg_get(val, muse_server_module_get_msg(module));
+
+       ret = legacy_player_360_set_enable(muse_player->player_handle, (bool)val);
+
+       player_msg_return(api, ret, module);
+       return ret;
+}
+
+int player_disp_360_is_enabled(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_IS_ENABLED;
+       muse_player_handle_s *muse_player = NULL;
+       bool val;
+
+       muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+
+       ret = legacy_player_360_is_enabled(muse_player->player_handle, &val);
+
+       player_msg_return1(api, ret, module, INT, val);
+       return ret;
+}
+
+int player_disp_360_set_direction_of_view(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_SET_DIRECTION_OF_VIEW;
+       muse_player_handle_s *muse_player = NULL;
+       double yaw, pitch;
+       bool ret_val = TRUE;
+
+       player_msg_get2(muse_server_module_get_msg(module), yaw, DOUBLE, pitch, DOUBLE, ret_val);
+       if (ret_val) {
+               muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+               ret = legacy_player_360_set_direction_of_view(muse_player->player_handle, (float)yaw, (float)pitch);
+       } else {
+               ret = PLAYER_ERROR_INVALID_OPERATION;
+       }
+       player_msg_return(api, ret, module);
+       return ret;
+}
+
+int player_disp_360_get_direction_of_view(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_GET_DIRECTION_OF_VIEW;
+       muse_player_handle_s *muse_player = NULL;
+       float yaw_val, pitch_val;
+
+       muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+
+       ret = legacy_player_get_volume(muse_player->player_handle, &yaw_val, &pitch_val);
+
+       player_msg_return2(api, ret, module, DOUBLE, yaw_val, DOUBLE, pitch_val);
+       return ret;
+}
+
+int player_disp_360_set_zoom(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_SET_ZOOM;
+       muse_player_handle_s *muse_player = NULL;
+       double level = 0;
+
+       muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+       player_msg_get(level, muse_server_module_get_msg(module));
+
+       ret = legacy_player_360_set_zoom(muse_player->player_handle, (float)level);
+
+       player_msg_return(api, ret, module);
+       return ret;
+}
+
+int player_disp_360_get_zoom(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_GET_ZOOM;
+       muse_player_handle_s *muse_player = NULL;
+       float zoom;
+
+       muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+
+       ret = legacy_player_360_get_zoom(muse_player->player_handle, &zoom);
+
+       player_msg_return1(api, ret, module, DOUBLE, zoom);
+       return ret;
+}
+
+int player_disp_360_set_field_of_view(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_SET_FIELD_OF_VIEW;
+       muse_player_handle_s *muse_player = NULL;
+       int horizontal_degrees = 0, vertical_degrees = 0;
+       bool ret_val = TRUE;
+
+       player_msg_get2(muse_server_module_get_msg(module), horizontal_degrees, INT, vertical_degrees, INT, ret_val);
+       if (ret_val) {
+               muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+               ret = legacy_player_360_set_field_of_view(muse_player->player_handle, horizontal_degrees, vertical_degrees);
+       } else {
+               ret = PLAYER_ERROR_INVALID_OPERATION;
+       }
+       player_msg_return(api, ret, module);
+
+       return ret;
+}
+
+int player_disp_360_get_field_of_view(muse_module_h module)
+{
+       int ret = PLAYER_ERROR_NONE;
+       muse_player_api_e api = MUSE_PLAYER_API_360_GET_FIELD_OF_VIEW;
+       muse_player_handle_s *muse_player = NULL;
+       int h_val = -1, v_val = -1;
+
+       muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
+
+       ret = legacy_player_360_get_field_of_view(muse_player->player_handle, &h_val, &v_val);
+
+       player_msg_return2(api, ret, module, DOUBLE, h_val, DOUBLE, v_val);
+       return ret;
+}