EdgeRight,
EdgeTop,
EdgeBottom,
+#if BUILDFLAG(IS_TIZEN_TV)
+ DeviceConnectionChanged,
+ PlaybackLoad,
+ PlaybackVideoReady,
+ PlaybackReady,
+ PlaybackStart,
+ PlaybackFinish,
+ PlaybackStop,
+ UserMediaState,
+#endif
OverscrolledLeft,
OverscrolledRight,
OverscrolledTop,
DECLARE_EWK_VIEW_CALLBACK(EdgeTop, "edge,top", void);
DECLARE_EWK_VIEW_CALLBACK(EdgeBottom, "edge,bottom", void);
DECLARE_EWK_VIEW_CALLBACK(EdgeRight, "edge,right", void);
+#if BUILDFLAG(IS_TIZEN_TV)
+DECLARE_EWK_VIEW_CALLBACK(DeviceConnectionChanged,
+ "device,connection,changed",
+ int*);
+DECLARE_EWK_VIEW_CALLBACK(PlaybackLoad, "notification,playback,load", void*);
+DECLARE_EWK_VIEW_CALLBACK(PlaybackVideoReady,
+ "notification,playback,videoready",
+ void*);
+DECLARE_EWK_VIEW_CALLBACK(PlaybackReady, "notification,playback,ready", void*);
+DECLARE_EWK_VIEW_CALLBACK(PlaybackStart, "notification,playback,start", void*);
+DECLARE_EWK_VIEW_CALLBACK(PlaybackStop, "notification,playback,stop", void*);
+DECLARE_EWK_VIEW_CALLBACK(PlaybackFinish,
+ "notification,playback,finish",
+ void*);
+DECLARE_EWK_VIEW_CALLBACK(UserMediaState, "usermedia,state", void*);
+#endif
DECLARE_EWK_VIEW_CALLBACK(OverscrolledLeft, "overscrolled,left", void);
DECLARE_EWK_VIEW_CALLBACK(OverscrolledRight, "overscrolled,right", void);
DECLARE_EWK_VIEW_CALLBACK(OverscrolledTop, "overscrolled,top", void);
#include "build/build_config.h"
#include "private/ewk_private.h"
+struct _Ewk_Media_Playback_Info {
+ int video_id;
+ const char* media_url;
+ const char* mime_type;
+ Eina_Bool media_resource_acquired;
+ const char* translated_url;
+ const char* drm_info;
+ Ewk_Hardware_Decoders decoder;
+};
+
const char* ewk_media_playback_info_media_url_get(
Ewk_Media_Playback_Info* data) {
LOG_EWK_API_MOCKUP();
LOG_EWK_API_MOCKUP();
}
+Ewk_Hardware_Decoders ewk_media_playback_info_decoder_get(
+ Ewk_Media_Playback_Info* data) {
+ EINA_SAFETY_ON_NULL_RETURN_VAL(data, EWK_HARDWARE_DECODERS_NONE);
+ return data->decoder;
+}
+
+void ewk_media_playback_info_decoder_set(
+ Ewk_Media_Playback_Info* data,
+ Ewk_Hardware_Decoders decoder) {
+ if (data)
+ data->decoder = decoder;
+}
+
const int ewk_media_playback_info_video_id_get(Ewk_Media_Playback_Info* data)
{
LOG_EWK_API_MOCKUP();
--- /dev/null
+/*
+ * Copyright (C) 2022 Samsung Electronics. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SAMSUNG ELECTRONICS. AND ITS CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SAMSUNG ELECTRONICS. OR ITS
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @file ewk_media_playback_info.h
+ * @brief This file describes the ewk media playback info API.
+ */
+
+#ifndef ewk_media_playback_info_h
+#define ewk_media_playback_info_h
+#include <Eina.h>
+#include <Evas.h>
+#include <tizen.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _Ewk_Media_Playback_Info Ewk_Media_Playback_Info;
+
+/**
+ * Get url of media.
+ *
+ * @param meia playback info's structure
+ *
+ * @return @c media url
+ */
+EXPORT_API const char* ewk_media_playback_info_media_url_get(
+ Ewk_Media_Playback_Info* data);
+
+/**
+ * Get mime type of media.
+ *
+ * @param meia playback info's structure
+ *
+ * @return @c mime type
+ */
+EXPORT_API const char* ewk_media_playback_info_mime_type_get(
+ Ewk_Media_Playback_Info* data);
+
+/**
+ * Get translated url of media.
+ *
+ * @param media playback info's structure
+ *
+ * @return @c translated url
+ */
+EXPORT_API const char* ewk_media_playback_info_translated_url_get(
+ Ewk_Media_Playback_Info* data);
+
+/**
+ * Get drm info of media.
+ *
+ * @param media playback info's structure
+ *
+ * @return @c drm info
+ */
+EXPORT_API const char* ewk_media_playback_info_drm_info_get(
+ Ewk_Media_Playback_Info* data);
+
+/**
+ * Set media resource acquired of media.
+ *
+ * @param media playback info's structure
+ */
+EXPORT_API void ewk_media_playback_info_media_resource_acquired_set(
+ Ewk_Media_Playback_Info* data,
+ Eina_Bool media_resource_acquired);
+
+/**
+ * Set translated url of media.
+ *
+ * @param media playback info's structure
+ */
+EXPORT_API void ewk_media_playback_info_translated_url_set(
+ Ewk_Media_Playback_Info* data,
+ const char* translated_url);
+
+/**
+ * Set drm info of media.
+ *
+ * @param media playback info's structure
+ */
+EXPORT_API void ewk_media_playback_info_drm_info_set(
+ Ewk_Media_Playback_Info* data,
+ const char* drm_info);
+
+#ifdef __cplusplus
+}
+#endif
+#endif // ewk_media_playback_info_h
+
extern "C" {
#endif
+/**
+ * Enum values used to inform webengine about decoder used by broadcast.
+ */
+typedef enum Ewk_Hardware_Decoders {
+ EWK_HARDWARE_DECODERS_NONE,
+ EWK_HARDWARE_DECODERS_MAIN,
+ EWK_HARDWARE_DECODERS_SUB,
+} Ewk_Hardware_Decoders;
+
typedef struct _Ewk_Media_Playback_Info Ewk_Media_Playback_Info;
/**
Ewk_Media_Playback_Info* data);
/**
+ * Get decoder info of media.
+ *
+ * @param data playback info's structure
+ *
+ * @return @c decoder name
+ */
+EXPORT_API Ewk_Hardware_Decoders ewk_media_playback_info_decoder_get(
+ Ewk_Media_Playback_Info* data);
+
+/**
* Set media resource acquired of media.
*
* @param media playback info's structure
Ewk_Media_Playback_Info* data,
const char* drm_info);
+/**
+ * Set decoder info of media.
+ *
+ * @param media playback info's structure
+ */
+EXPORT_API void ewk_media_playback_info_decoder_set(
+ Ewk_Media_Playback_Info* data,
+ Ewk_Hardware_Decoders decoder);
+
Ewk_Media_Playback_Info* ewkMediaPlaybackInfoCreate(const int player_id,
const char* url,
const char* mime_type);
--- /dev/null
+// Copyright 2022 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+* @file ewk_media_subtitle_info.h
+* @brief .
+*/
+
+#ifndef ewk_media_subtitle_info_h
+#define ewk_media_subtitle_info_h
+#include <Eina.h>
+#include <Evas.h>
+#include <tizen.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _Ewk_Media_Subtitle_Info Ewk_Media_Subtitle_Info;
+
+/**
+* Get id of subtitle.
+*
+* @param meia subtitle info's structure
+*
+* @return @c subtitle id
+*/
+EXPORT_API int ewk_media_subtitle_info_id_get(Ewk_Media_Subtitle_Info *data);
+
+/**
+* Get url of subtitle.
+*
+* @param meia subtitle info's structure
+*
+* @return @c subtitle url
+*/
+EXPORT_API const char *ewk_media_subtitle_info_url_get(Ewk_Media_Subtitle_Info *data);
+
+/**
+* Get srcLang of subtitle.
+*
+* @param meia subtitle info's structure
+*
+* @return @c subtitle srcLang
+*/
+EXPORT_API const char *ewk_media_subtitle_info_lang_get(Ewk_Media_Subtitle_Info *data);
+
+/**
+* Get label of subtitle.
+*
+* @param meia subtitle info's structure
+*
+* @return @c subtitle label
+*/
+EXPORT_API const char *ewk_media_subtitle_info_label_get(Ewk_Media_Subtitle_Info *data);
+
+typedef struct _Ewk_Media_Subtitle_Data Ewk_Media_Subtitle_Data;
+
+/**
+* Get id of subtitle.
+*
+* @param meia subtitle data's structure
+*
+* @return @c subtitle id
+*/
+EXPORT_API int ewk_media_subtitle_data_id_get(Ewk_Media_Subtitle_Data *data);
+
+/**
+* Get timestamp of subtitle.
+*
+* @param meia subtitle data's structure
+*
+* @return @c subtitle timestamp
+*/
+EXPORT_API double ewk_media_subtitle_data_timestamp_get(Ewk_Media_Subtitle_Data *data);
+
+/**
+* Get data size of subtitle.
+*
+* @param meia subtitle data's structure
+*
+* @return @c subtitle data size
+*/
+EXPORT_API unsigned ewk_media_subtitle_data_size_get(Ewk_Media_Subtitle_Data *data);
+
+/**
+* Get data of subtitle.
+*
+* @param meia subtitle data's structure
+*
+* @return @c subtitle data
+*/
+EXPORT_API const void* ewk_media_subtitle_data_get(Ewk_Media_Subtitle_Data *data);
+
+#ifdef __cplusplus
+}
+#endif
+#endif // ewk_media_subtitle_info_h
\ No newline at end of file
return EINA_FALSE;
}
+void ewk_settings_default_audio_input_device_set(Ewk_Settings* settings, const char* device_id)
+{
+ LOG_EWK_API_MOCKUP();
+}
+
void ewk_settings_media_playback_notification_set(Ewk_Settings* settings, Eina_Bool enabled)
{
LOG_EWK_API_MOCKUP();
*/
EXPORT_API Eina_Bool ewk_settings_clipboard_enabled_get(const Ewk_Settings* settings);
+EXPORT_API void ewk_settings_default_audio_input_device_set(Ewk_Settings* settings, const char* device_id);
#ifdef __cplusplus
}
typedef enum _Ewk_User_Media_Device_Type Ewk_User_Media_Device_Type;
/**
+ * struct _Ewk_User_Media_State_Info
+ * @brief Get user media device usability status.
+ *
+ */
+struct _Ewk_User_Media_State_Info {
+ Ewk_User_Media_Device_Type device_type;
+ uint32_t previous_state;
+ uint32_t current_state;
+};
+typedef struct _Ewk_User_Media_State_Info Ewk_User_Media_State_Info;
+
+/**
* Requests for getting origin of local media permission request.
*
* @param request Ewk_User_Media_Permission_Request object to get origin for
return EINA_FALSE;
}
+Eina_Bool ewk_view_is_video_playing(Evas_Object* o, Ewk_Is_Video_Playing_Callback callback, void* user_data)
+{
+ LOG_EWK_API_MOCKUP();
+ return EINA_FALSE;
+}
+
Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id)
{
LOG_EWK_API_MOCKUP();
return EINA_FALSE;
}
+void ewk_view_broadcast_decoder_set(
+ Evas_Object* view,
+ Ewk_Hardware_Decoders decoder)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ /* waiting for implement*/
+ //impl->SetBroadcastDecoder(decoder);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
+}
+
void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list)
{
LOG_EWK_API_MOCKUP();
EWK_VIEW_IMPL_GET_OR_RETURN(o, impl);
impl->RequestManifest(callback, user_data);
}
+
+void ewk_view_media_device_list_get(Evas_Object* o, Ewk_Media_Device_List_Get_Callback callback, void* user_data) {
+ //TODO
+}
\ No newline at end of file
#ifndef ewk_view_internal_h
#define ewk_view_internal_h
+#include <stdbool.h>
+
#include "ewk_app_installation_request_internal.h"
#include "ewk_auth_challenge_internal.h"
#include "ewk_context_internal.h"
};
typedef enum Ewk_Mouse_Button_Type Ewk_Mouse_Button_Type;
+typedef enum _EwkMediaDeviceType{
+ MEDIA_DEVICE_TYPE_AUDIO_INPUT,
+ MEDIA_DEVICE_TYPE_VIDEO_INPUT,
+ MEDIA_DEVICE_TYPE_AUDIO_OUTPUT,
+ NUM_MEDIA_DEVICE_TYPES,
+} EwkMediaDeviceType;
+
+typedef struct _EwkMediaDeviceInfo{
+ const char* device_id;
+ const char* label;
+ EwkMediaDeviceType type;
+ bool connected;
+} EwkMediaDeviceInfo;
+
/// Ewk view's class, to be overridden by sub-classes.
struct Ewk_View_Smart_Class {
Evas_Smart_Class sc; /**< all but 'data' is free to be changed. */
*/
typedef void (*Ewk_View_SmartRC_Mic_Notification_Callback)(Evas_Object *o, Eina_Bool show, void *user_data);
+typedef void (*Ewk_Media_Device_List_Get_Callback)(EwkMediaDeviceInfo* device_list, int size, void* user_data);
+
/**
* The version you have to put into the version field
* in the @a Ewk_View_Smart_Class structure.
int x,
int y);
+EXPORT_API void ewk_view_media_device_list_get(Evas_Object* o, Ewk_Media_Device_List_Get_Callback callback, void* user_data);
+
#ifdef __cplusplus
}
#endif
#define ewk_view_product_h
#include "ewk_context_product.h"
+#include "ewk_media_playback_info_product.h"
#include "ewk_value_product.h"
#include "ewk_view_internal.h"
EXPORT_API Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id);
/**
+ * Inform webengine about decoder used by broadcast for dual decoding.
+ *
+ * @param view View object
+ * @param decoder Identifier of used decoder
+ */
+EXPORT_API void ewk_view_broadcast_decoder_set(Evas_Object* view,
+ Ewk_Hardware_Decoders decoder);
+
+/**
* Set the selected text track language to media player.
*
* @param ewkView view object