[WRTjs][VD] Remove build dependency of tvs-api 89/324489/6
authorDonghyun, Song <dh81.song@samsung.com>
Mon, 19 May 2025 12:39:35 +0000 (21:39 +0900)
committerBot Blink <blinkbot@samsung.com>
Wed, 11 Jun 2025 02:07:17 +0000 (02:07 +0000)
Remove build dependency of tvs-api

Change-Id: I511101d015763b0ca4aec770f1adaa197b0bea9e
Signed-off-by: Donghyun, Song <dh81.song@samsung.com>
packaging/chromium-efl.spec
tizen_src/build/BUILD.gn
wrt/BUILD.gn
wrt/src/browser/tv/tv_window_manager.cc
wrt/src/browser/tv/tv_window_manager.h
wrt/src/common/tv/wrt_lib_wrapper.cc
wrt/src/common/tv/wrt_lib_wrapper.h

index 769129e5c580da45ab373c5bfa9c32491cc04a17..d408a8f52038096b8ae20b43ed012f94d3972a23 100644 (file)
@@ -461,7 +461,6 @@ BuildRequires: pkgmgr-extension-devel
 BuildRequires: pkgconfig(capi-media-player)
 BuildRequires: pkgconfig(capi-screensaver)
 BuildRequires: pkgconfig(settings-api)
-BuildRequires: pkgconfig(tvs-api)
 %else
 BuildRequires: pkgconfig(capi-appfw-watch-application)
 BuildRequires: pkgconfig(capi-ui-inputmethod)
index 81fed9192220984588e03d162ee8c69b5e507562..3b018de2738c44891b7dc486f4d6d652c9e3d6fa 100644 (file)
@@ -1189,9 +1189,6 @@ if (enable_wrt_js) {
     tizen_pkg_config("sqlite3") {
       packages = [ "sqlite3" ]
     }
-    tizen_pkg_config("tvs-api") {
-      packages = [ "tvs-api" ]
-    }
     tizen_pkg_config("ui-gadget-1") {
       packages = [ "ui-gadget-1" ]
     }
index e8f21604dd3a247edb75ef7f1bae8fe6d055e37a..6c9e307916f138a5893ad4bb33684280cf5bf45b 100644 (file)
@@ -288,7 +288,6 @@ config("wrt_config") {
       "//tizen_src/build:libcapi-system-sensor",
       "//tizen_src/build:message-port",
       "//tizen_src/build:sqlite3",
-      "//tizen_src/build:tvs-api",
       "//tizen_src/build:ui-gadget-1",
       "//tizen_src/build:vd-win-util",
     ]
index 6fa004188438d0fbd1dfc66acd0dcbeba90db4c4..f2481c17424de4f38c9890133686276753a7134d 100644 (file)
@@ -18,7 +18,6 @@
 
 #include <Ecore_Wl2.h>
 #include <Elementary.h>
-#include <TVServiceAPI.h>
 #include <tizen-extension-client-protocol.h>
 
 #include "base/logging.h"
@@ -27,7 +26,6 @@
 #include "wrt/src/browser/tv/input_device_manager.h"
 #include "wrt/src/browser/wrt_native_window.h"
 #include "wrt/src/common/application_data.h"
-#include "wrt/src/common/tv/wrt_lib_wrapper.h"
 
 #if defined(TIZEN_VIDEO_HOLE)
 #include "tizen_src/chromium_impl/media/base/tizen/video_plane_controller.h"
@@ -286,7 +284,7 @@ void TvWindowManager::Finalize() {
     elm_window_ = nullptr;
   }
   if (av_control_) {
-    TVServiceAPI::DestroyAVControl();
+    TVSM_IAVControl_Destroy(av_control_);
     av_control_ = nullptr;
   }
 
@@ -320,7 +318,8 @@ bool TvWindowManager::EnsureTVWindowAndControls() {
       LOG(INFO) << "tv-control created";
   }
   if (!av_control_) {
-    TVServiceAPI::CreateAVControl(PROFILE_TYPE_MAIN, 0, &av_control_);
+    av_control_ =
+        TVSM_IAVControl_Create(TVSM_SPipeline{TVSM_PROFILE_TYPE_MAIN, 0});
     if (!av_control_)
       LOG(ERROR) << "failed to create av-control";
     else
@@ -557,8 +556,10 @@ void TvWindowManager::SetMuteAudioVideo(bool mute) {
     return;
 
   LOG(INFO) << "set mute : " << mute;
-  av_control_->MuteAudio(mute);
-  av_control_->MuteVideo(mute);
+  int res = TVSM_IAVControl_MuteAudio(av_control_, TVSM_MUTE_MODE_NORMAL, mute);
+  LOG(INFO) << "TVSM_IAVControl_MuteAudio res : " << res;
+  res = TVSM_IAVControl_MuteVideo(av_control_, TVSM_MUTE_MODE_NORMAL, mute);
+  LOG(INFO) << "TVSM_IAVControl_MuteVideo res : " << res;
 }
 
 void TvWindowManager::ResetTVControlObj() {
index e21e5480c51990c6bcf13e716fba435ea9455605..1575662450910a9ad349cb673ccb6de03e3360a6 100644 (file)
@@ -28,6 +28,7 @@
 #include <vconf/vconf.h>
 
 #include "electron/shell/browser/native_window_observer.h"
+#include "wrt/src/common/tv/wrt_lib_wrapper.h"
 
 class IAVControl;
 
@@ -116,7 +117,7 @@ class TvWindowManager : public electron::NativeWindowObserver {
   bool is_ticker_applciation = false;
   bool is_skip_set_tv_property = false;
   std::unique_ptr<HostUG> host_ug_;
-  IAVControl* av_control_ = nullptr;
+  TVSM_IAVControl av_control_ = nullptr;
 };
 
 }  // namespace wrt
index 1691a9736ad24a43baf30fc149b73ad85c3ea6d8..a49c7b0468fa8eb0582ca96a307f50499770c74a 100644 (file)
@@ -27,6 +27,7 @@ const char* kLibEflAssist = LIB_PATH "/libefl-assist.so.0";
 const char* kLibTvControl = LIB_PATH "/libtv-control.so.0";
 const char* kLibDeviced = LIB_PATH "/libdeviced.so.1";
 const char* kLibAulExtension = LIB_PATH "/libaul-extension.so.0";
+const char* kLibTvsApi = LIB_PATH "/libtvs-api.so";
 const char* kZoneLibPath = LIB_PATH "/libzone.so.5";
 const char* kAutoInput = LIB_PATH "/libautoinput.so.0";
 
@@ -339,4 +340,44 @@ void VirtualMouse_Send_Move(int dx, int dy, int move_count) {
     return func(dx, dy, move_count);
 }
 
+TVSM_IAVControl TVSM_IAVControl_Create(TVSM_SPipeline pipeline) {
+  typedef TVSM_IAVControl (*func_sig)(TVSM_SPipeline);
+  auto* func = (func_sig)GetFunction(kLibTvsApi, __FUNCTION__);
+  if (func)
+    return func(pipeline);
+  else
+    return nullptr;
+}
+
+TVSM_EError TVSM_IAVControl_Destroy(TVSM_IAVControl iAVControl) {
+  typedef TVSM_EError (*func_sig)(TVSM_IAVControl);
+  auto* func = (func_sig)GetFunction(kLibTvsApi, __FUNCTION__);
+  if (func)
+    return func(iAVControl);
+  else
+    return TVSM_ERROR_NONE;
+}
+
+TVSM_EError TVSM_IAVControl_MuteVideo(TVSM_IAVControl iAVControl,
+                                      TVSM_EMuteMode muteMode,
+                                      bool turnOnOff) {
+  typedef TVSM_EError (*func_sig)(TVSM_IAVControl, TVSM_EMuteMode, bool);
+  auto* func = (func_sig)GetFunction(kLibTvsApi, __FUNCTION__);
+  if (func)
+    return func(iAVControl, muteMode, turnOnOff);
+  else
+    return TVSM_ERROR_NONE;
+}
+
+TVSM_EError TVSM_IAVControl_MuteAudio(TVSM_IAVControl iAVControl,
+                                      TVSM_EMuteMode muteMode,
+                                      bool turnOnOff) {
+  typedef TVSM_EError (*func_sig)(TVSM_IAVControl, TVSM_EMuteMode, bool);
+  auto* func = (func_sig)GetFunction(kLibTvsApi, __FUNCTION__);
+  if (func)
+    return func(iAVControl, muteMode, turnOnOff);
+  else
+    return TVSM_ERROR_NONE;
+}
+
 }  // namespace wrt
index 5a85a32296a8e890464cb2f222eb8c7bc1344271..e1366c5a12807597a6eff3077fee6ee6b77225b6 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <Elementary.h>
 #include <bundle.h>
+#include <tizen_error.h>
 
 namespace wrt {
 
@@ -125,6 +126,62 @@ void VirtualKey_Send_KeyCode(int key, int state);
 void VirtualMouse_Send_Button_Event(int button, int state);
 void VirtualMouse_Send_Move(int dx, int dy, int move_count);
 
+// IAVControl
+
+typedef enum {
+  TVSM_PROFILE_TYPE_UNKNOWN         = 0,
+  TVSM_PROFILE_TYPE_MAIN            = 1,
+  TVSM_PROFILE_TYPE_MAIN_TEST       = 2, // for test purpose only
+  TVSM_PROFILE_TYPE_PIP             = 101,
+  TVSM_PROFILE_TYPE_DUAL            = 201,
+  TVSM_PROFILE_TYPE_RECORD          = 301,
+  TVSM_PROFILE_TYPE_ANALYSIS        = 401,
+  TVSM_PROFILE_TYPE_MEDIA           = 601, // used for feeding SI sections into TVS
+  TVSM_PROFILE_TYPE_BACKGROUND      = 701,
+  TVSM_PROFILE_TYPE_BACKGROUND_SCAN = 702, // used by Tune Around, Barker Channel tuning
+  TVSM_PROFILE_TYPE_THUMBNAIL       = 801,
+  TVSM_PROFILE_TYPE_EXT_ANALYSIS    = 901,
+} TVSM_EProfileType;
+
+typedef enum {
+  // Generic errors mapped to platform errors
+  TVSM_ERROR_NONE = TIZEN_ERROR_NONE,
+  TVSM_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY,
+  TVSM_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER,
+  TVSM_ERROR_NO_DATA = TIZEN_ERROR_NO_DATA,
+  TVSM_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED,
+  TVSM_ERROR_NOT_PERMITTED = TIZEN_ERROR_NOT_PERMITTED,
+
+  // TVS-specific errors: values bitwise OR-ed with TIZEN_ERROR_TVS error class
+  TVSM_ERROR_API_FAILED = TIZEN_ERROR_TVS | 0x00,
+  TVSM_ERROR_IPC_FAILED = TIZEN_ERROR_TVS | 0x01,
+} TVSM_EError;
+
+typedef enum {
+  TVSM_MUTE_MODE_NORMAL = 0,           // default lock to use by app
+  TVSM_MUTE_MODE_MASTER = 1,           // highest priority lock, reserved only for CI (common interface) modules, cannot be unlocked by NORMAL unmute @warning improper usage causes assertion to fail.
+  TVSM_MUTE_MODE_CHANNELLOCK = 2,      // lock related to user 'channel lock' functionality
+  TVSM_MUTE_MODE_PLAYBACK_LOADING = 3, // Mute screen before Playback is ready
+  TVSM_MUTE_MODE_TVS_INTERNAL = 4,     // content muted by TVS @note trying to mute video or audio with this mode will fail, it is just informative
+} TVSM_EMuteMode;
+
+typedef void* TVSM_IAVControl;
+typedef struct _TVSM_SPipeline {
+  /// Pipeline's profile
+  TVSM_EProfileType  profileType;
+  /// Pipeline's screen identifier
+  unsigned short     screenId;
+} TVSM_SPipeline;
+
+TVSM_IAVControl TVSM_IAVControl_Create(TVSM_SPipeline pipeline);
+TVSM_EError TVSM_IAVControl_Destroy(TVSM_IAVControl iAVControl);
+TVSM_EError TVSM_IAVControl_MuteVideo(TVSM_IAVControl iAVControl,
+                                      TVSM_EMuteMode muteMode,
+                                      bool turnOnOff);
+TVSM_EError TVSM_IAVControl_MuteAudio(TVSM_IAVControl iAVControl,
+                                      TVSM_EMuteMode muteMode,
+                                      bool turnOnOff);
+
 }  // namespace wrt
 
 #endif  // COMMON_TV_WRT_LIB_WRAPPER_H_