[TVChannel] Implement sync methods
authorPrzemyslaw Ciezkowski <p.ciezkowski@samsung.com>
Fri, 12 Dec 2014 16:09:21 +0000 (17:09 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 2 Feb 2015 11:03:48 +0000 (20:03 +0900)
Change-Id: I63bebc14b90d31ab5f4ddc598010faf588aa0e85
Signed-off-by: Przemyslaw Ciezkowski <p.ciezkowski@samsung.com>
src/tvchannel/tvchannel_api.js

index 210b2a39278ca5f9eb8730d3cbff092318697fba..31099c1d5d76ea0ba537e5c1ffeb0e5a1824b9a1 100644 (file)
@@ -2,9 +2,18 @@
 //Use of this source code is governed by a BSD-style license that can be
 //found in the LICENSE file.
 
-extension.setMessageListener(function(msg) {
+var native = new xwalk.utils.NativeManager(extension);
+var validator = xwalk.utils.validator;
+var validatorType = xwalk.utils.type;
 
-});
+
+/**
+ * An enumerator that defines window types.
+ * @enum {string}
+ */
+var WindowType = {
+  MAIN: 'MAIN'
+};
 
 // TVChannelManager interface
 function TVChannelManager() {
@@ -37,7 +46,22 @@ TVChannelManager.prototype.getChannelList = function(successCallback,
 };
 
 TVChannelManager.prototype.getCurrentChannel = function(windowType) {
-  return undefined;
+  var args = validator.validateArgs(arguments, [
+    {
+      name: 'windowType',
+      optional: true,
+      nullable: true,
+      type: validator.Types.ENUM,
+      values: validatorType.getValues(WindowType)
+    }
+  ]);
+  var ret = native.callSync('TVChannelManager_getCurrentChannel', {
+    windowType: args.windowType ? args.windowType : WindowType.MAIN
+  });
+  if (native.isFailure(ret)) {
+    throw native.getErrorObject(ret);
+  }
+  return native.getResultObject(ret);
 };
 
 TVChannelManager.prototype.getProgramList = function(channelInfo,
@@ -46,7 +70,22 @@ TVChannelManager.prototype.getProgramList = function(channelInfo,
 };
 
 TVChannelManager.prototype.getCurrentProgram = function(windowType) {
-  return undefined;
+  var args = validator.validateArgs(arguments, [
+    {
+      name: 'windowType',
+      optional: true,
+      nullable: true,
+      type: validator.Types.ENUM,
+      values: validatorType.getValues(WindowType)
+    }
+  ]);
+  var ret = native.callSync('TVChannelManager_getCurrentProgram', {
+    windowType: args.windowType ? args.windowType : WindowType.MAIN
+  });
+  if (native.isFailure(ret)) {
+    throw native.getErrorObject(ret);
+  }
+  return native.getResultObject(ret);
 };
 
 TVChannelManager.prototype.addChannelChangeListener = function(successCallback, windowType) {
@@ -65,8 +104,13 @@ TVChannelManager.prototype.removeProgramChangeListener = function(listenerId) {
   return undefined;
 };
 
-TVChannelManager.prototype.getNumOfAvailableTuner = function() {
-  return undefined;
+TVChannelManager.prototype.getNumOfAvailableTuner = function()
+    {
+  var ret = native.callSync('TVChannelManager_getNumOfAvailableTuner');
+  if (native.isFailure(ret)) {
+    throw native.getErrorObject(ret);
+  }
+  return native.getResultObject(ret);
 };
 
 exports = new TVChannelManager();