From ebec47a2012068d73647412749075e6a6bbb43b9 Mon Sep 17 00:00:00 2001 From: Piotr Czaja Date: Fri, 12 Dec 2014 14:49:53 +0100 Subject: [PATCH] [TVWindow] Stubs Change-Id: I729f6d26fdb493d757a04a797e20db51c3317e00 Signed-off-by: Piotr Czaja --- packaging/webapi-plugins.spec | 5 ++++ src/tizen-wrt.gyp | 1 + src/tvwindow/tvwindow.gyp | 31 ++++++++++++++++++++ src/tvwindow/tvwindow_api.js | 47 ++++++++++++++++++++++++++++++ src/tvwindow/tvwindow_extension.cc | 36 +++++++++++++++++++++++ src/tvwindow/tvwindow_extension.h | 29 ++++++++++++++++++ src/tvwindow/tvwindow_instance.cc | 35 ++++++++++++++++++++++ src/tvwindow/tvwindow_instance.h | 31 ++++++++++++++++++++ src/tvwindow/tvwindow_manager.cc | 19 ++++++++++++ src/tvwindow/tvwindow_manager.h | 28 ++++++++++++++++++ 10 files changed, 262 insertions(+) create mode 100644 src/tvwindow/tvwindow.gyp create mode 100644 src/tvwindow/tvwindow_api.js create mode 100644 src/tvwindow/tvwindow_extension.cc create mode 100644 src/tvwindow/tvwindow_extension.h create mode 100644 src/tvwindow/tvwindow_instance.cc create mode 100644 src/tvwindow/tvwindow_instance.h create mode 100644 src/tvwindow/tvwindow_manager.cc create mode 100644 src/tvwindow/tvwindow_manager.h diff --git a/packaging/webapi-plugins.spec b/packaging/webapi-plugins.spec index 2f0ca547..39bcac56 100644 --- a/packaging/webapi-plugins.spec +++ b/packaging/webapi-plugins.spec @@ -143,6 +143,7 @@ Source0: %{name}-%{version}.tar.gz %define tizen_feature_wi_fi_support 0 %define tizen_feature_tv_display_support 1 %define tizen_feature_tvchannel_support 1 +%define tizen_feature_tvwindow_support 1 %endif # tizen_profile_tv @@ -232,6 +233,10 @@ Requires: sync-agent BuildRequires: pkgconfig(tvs-api) %endif +%if 0%{?tizen_feature_tvwindow_support} +BuildRequires: pkgconfig(tvs-api) +%endif + %if 0%{?tizen_feature_exif_support} BuildRequires: pkgconfig(libexif) %endif diff --git a/src/tizen-wrt.gyp b/src/tizen-wrt.gyp index a57d1041..c7aa0752 100644 --- a/src/tizen-wrt.gyp +++ b/src/tizen-wrt.gyp @@ -49,6 +49,7 @@ 'tvaudio/tvaudio.gyp:*', 'tvchannel/tvchannel.gyp:*', 'tvinputdevice/tvinputdevice.gyp:*', + 'tvwindow/tvwindow.gyp:*', ], }, ], # end tv diff --git a/src/tvwindow/tvwindow.gyp b/src/tvwindow/tvwindow.gyp new file mode 100644 index 00000000..3e0619ae --- /dev/null +++ b/src/tvwindow/tvwindow.gyp @@ -0,0 +1,31 @@ +{ + 'includes':[ + '../common/common.gypi', + ], + 'targets': [ + { + 'target_name': 'tizen_tvwindow', + 'type': 'loadable_module', + 'variables': { + 'packages': [ + 'tvs-api', + ], + }, + 'dependencies': [ + '../tizen/tizen.gyp:tizen', + ], + 'includes': [ + '../common/pkg-config.gypi', + ], + 'sources': [ + 'tvwindow_api.js', + 'tvwindow_extension.cc', + 'tvwindow_extension.h', + 'tvwindow_manager.cc', + 'tvwindow_manager.h', + 'tvwindow_instance.cc', + 'tvwindow_instance.h', + ], + }, + ], +} diff --git a/src/tvwindow/tvwindow_api.js b/src/tvwindow/tvwindow_api.js new file mode 100644 index 00000000..fc90d385 --- /dev/null +++ b/src/tvwindow/tvwindow_api.js @@ -0,0 +1,47 @@ +//Copyright (c) 2013 Intel Corporation. All rights reserved. +//Use of this source code is governed by a BSD-style license that can be +//found in the LICENSE file. + +extension.setMessageListener(function(msg) { + +}); + +//TVWindowManager interface +function TVWindowManager() { + if (!(this instanceof TVWindowManager)) { + throw new TypeError; + } +} + + +TVWindowManager.prototype.getAvailableWindows = function(successCallback, errorCallback) + { + return undefined; +}; + +TVWindowManager.prototype.setSource = function(videosource, successCallback, errorCallback, type) + { + return undefined; +}; + +TVWindowManager.prototype.getSource = function(type) + { + return undefined; +}; + +TVWindowManager.prototype.show = function(successCallback, errorCallback, rectangle, type) + { + return undefined; +}; + +TVWindowManager.prototype.hide = function(successCallback, errorCallback, type) + { + return undefined; +}; + +TVWindowManager.prototype.getRect = function(successCallback, errorCallback, unit, type) + { + return undefined; +}; + +exports = new TVWindowManager(); diff --git a/src/tvwindow/tvwindow_extension.cc b/src/tvwindow/tvwindow_extension.cc new file mode 100644 index 00000000..ab42886f --- /dev/null +++ b/src/tvwindow/tvwindow_extension.cc @@ -0,0 +1,36 @@ +// Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tvwindow/tvwindow_extension.h" +#include "tvwindow/tvwindow_instance.h" + +// This will be generated from datasync_api.js. +extern const char kSource_tvwindow_api[]; + +namespace extension { +namespace tvwindow { + +TVWindowExtension::TVWindowExtension() { + SetExtensionName("tizen.tvwindow"); + SetJavaScriptAPI(kSource_tvwindow_api); +} + +TVWindowExtension::~TVWindowExtension() {} + +TVWindowManager& TVWindowExtension::manager() { + // Initialize API on first request + return TVWindowManager::getInstance(); +} + +common::Instance* TVWindowExtension::CreateInstance() { + return new TVWindowInstance(*this); +} + +} // namespace tvwindow +} // namespace extension + +// entry point +common::Extension* CreateExtension() { + return new extension::tvwindow::TVWindowExtension; +} diff --git a/src/tvwindow/tvwindow_extension.h b/src/tvwindow/tvwindow_extension.h new file mode 100644 index 00000000..abdf270c --- /dev/null +++ b/src/tvwindow/tvwindow_extension.h @@ -0,0 +1,29 @@ +// Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SRC_TVWINDOW_TVWINDOW_EXTENSION_H_ +#define SRC_TVWINDOW_TVWINDOW_EXTENSION_H_ + +#include "common/extension.h" +#include "tvwindow/tvwindow_manager.h" + +namespace extension { +namespace tvwindow { + +class TVWindowExtension : public common::Extension { + public: + TVWindowExtension(); + virtual ~TVWindowExtension(); + + TVWindowManager& manager(); + + private: + // common::Extension implementation. + virtual common::Instance* CreateInstance(); +}; + +} // namespace tvwindow +} // namespace extension + +#endif // SRC_TVWINDOW_TVWINDOW_EXTENSION_H_ diff --git a/src/tvwindow/tvwindow_instance.cc b/src/tvwindow/tvwindow_instance.cc new file mode 100644 index 00000000..a5261872 --- /dev/null +++ b/src/tvwindow/tvwindow_instance.cc @@ -0,0 +1,35 @@ +// Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tvwindow/tvwindow_instance.h" +#include "common/logger.h" +#include "tizen/tizen.h" +#include "common/picojson.h" + +namespace extension { +namespace tvwindow { + +TVWindowInstance::TVWindowInstance(TVWindowExtension const& extension) { + LOGD("Entered"); +} + +TVWindowInstance::~TVWindowInstance() { + LOGD("Entered"); +} + +void TVWindowInstance::HandleMessage(const char* msg) { + // this is stub, no async messages + LOGD("Entered"); +} + +void TVWindowInstance::HandleSyncMessage(const char* msg) { + LOGD("Entered %s", msg); + picojson::object answer; + answer["answer"] = picojson::value(true); + + SendSyncReply(picojson::value(answer).serialize().c_str()); +} + +} // namespace tvwindow +} // namespace extension diff --git a/src/tvwindow/tvwindow_instance.h b/src/tvwindow/tvwindow_instance.h new file mode 100644 index 00000000..058b3dce --- /dev/null +++ b/src/tvwindow/tvwindow_instance.h @@ -0,0 +1,31 @@ +// Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SRC_TVWINDOW_TVWINDOW_INSTANCE_H_ +#define SRC_TVWINDOW_TVWINDOW_INSTANCE_H_ + +#include + +#include "common/extension.h" +#include "common/picojson.h" + +#include "tvwindow/tvwindow_extension.h" + +namespace extension { +namespace tvwindow { + +class TVWindowInstance : public common::ParsedInstance { + public: + explicit TVWindowInstance(TVWindowExtension const& extension); + virtual ~TVWindowInstance(); + + private: + virtual void HandleMessage(const char* msg); + virtual void HandleSyncMessage(const char* msg); +}; + +} // namespace tvwindow +} // namespace extension + +#endif // SRC_TVWINDOW_TVWINDOW_INSTANCE_H_ diff --git a/src/tvwindow/tvwindow_manager.cc b/src/tvwindow/tvwindow_manager.cc new file mode 100644 index 00000000..64631d5a --- /dev/null +++ b/src/tvwindow/tvwindow_manager.cc @@ -0,0 +1,19 @@ +// Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tvwindow/tvwindow_manager.h" + +namespace extension { +namespace tvwindow { + +TVWindowManager::TVWindowManager() { + LOGD("Enter"); +} + +TVWindowManager& TVWindowManager::getInstance() { + static TVWindowManager manager; + return manager; +} +} // namespace tvwindow +} // namespace extension diff --git a/src/tvwindow/tvwindow_manager.h b/src/tvwindow/tvwindow_manager.h new file mode 100644 index 00000000..8185cdb7 --- /dev/null +++ b/src/tvwindow/tvwindow_manager.h @@ -0,0 +1,28 @@ +// Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SRC_TVWINDOW_TVWINDOW_MANAGER_H_ +#define SRC_TVWINDOW_TVWINDOW_MANAGER_H_ + +#include "common/logger.h" + +namespace extension { +namespace tvwindow { + +class TVWindowManager { + public: + static TVWindowManager& getInstance(); + + private: + TVWindowManager(); + // Not copyable, assignable, movable + TVWindowManager(TVWindowManager const&); + void operator=(TVWindowManager const&); + TVWindowManager(TVWindowManager &&); +}; + +} // namespace tvwindow +} // namespace extension + +#endif // SRC_TVWINDOW_TVWINDOW_MANAGER_H_ -- 2.34.1