[Mediacontroller] added mode 360 feature 30/213330/19
authorPiotr Kosko/Native/Web API (PLT) /SRPOL/Engineer/삼성전자 <p.kosko@samsung.com>
Thu, 5 Sep 2019 05:21:53 +0000 (07:21 +0200)
committerPiotr Kosko/Native/Web API (PLT) /SRPOL/Engineer/삼성전자 <p.kosko@samsung.com>
Thu, 19 Sep 2019 09:13:51 +0000 (11:13 +0200)
commit0bd67b3f46ebf1824c71a533ea38b1322d08f78c
tree5a365867f5b348ee02db9643e5dc619bebee1853
parent1abd780e00480ed30dc17d27a38cd99b41e7ad2c
[Mediacontroller] added mode 360 feature

[ACR] http://suprem.sec.samsung.net/jira/browse/TWDAPI-229

[Verification] Code compiles without errors.
Basic test in chrome console works properly.

/// 1. adding command listener
var mcServer = tizen.mediacontroller.createServer();
mcServer.updatePlaybackState("PLAY");
var changeListener = function(enabled, clientName)
{
    console.log("Spherical mode change requested to: " + enabled + " by " + clientName);
    return new tizen.mediacontroller.RequestReply(new tizen.Bundle({"message": "Not allowed"}), 13);
};
watcherId = mcServer.mode360.addChangeRequestListener(changeListener);

/// 2. checking NotSupportedError when sending without enabled ability
var mcClient = tizen.mediacontroller.getClient();
var mcServerInfo = mcClient.getLatestServerInfo()
var enabled = true;
mcServerInfo.mode360.sendRequest(enabled,
    function(data, code)
    {
      console.log(
          "Server replied with return data: " + JSON.stringify(data) + " and code: " + code);
    },
    function(e)
    {
      console.log("Error executing command: " + e.message);
    });

/// 3. register listener for mode changes (client side)
watcherId = mcServerInfo.mode360.addModeChangeListener(function(status)
{
  console.log(mcServerInfo.name + " server spherical mode changed to " + status);
});

/// 4. change the value of mode 360 (should trigger listener from point 3)
mcServer.mode360.enabled = true

/// 5. enable ability of server
mcServer.abilities.mode360 = "YES"

/// sendRequest again (should trigger listener from point 1)
mcServerInfo.mode360.sendRequest(enabled,
    function(data, code)
    {
      console.log(
          "Server replied with return data: " + JSON.stringify(data) + " and code: " + code);
    },
    function(e)
    {
      console.log("Error executing command: " + e.message);
    });

/// 6. register ability change listener and trigger the update
var listener =
{
  onsimpleabilitychanged: function(server, type, ability)
  {
    console.log(type + " ability changed, server name: " + server.name + ", ability: " + ability);
  }
};
mcClient.addAbilityChangeListener(listener);

/// call updates to trigger listener
mcServer.abilities.mode360 = "NO"
mcServer.abilities.mode360 = "NO"
/// Listener should be triggered once

Change-Id: I8170d56f6d5b18f053047d48d55e68d3ebbe7719
src/mediacontroller/mediacontroller_api.js
src/mediacontroller/mediacontroller_client.cc
src/mediacontroller/mediacontroller_client.h
src/mediacontroller/mediacontroller_instance.cc
src/mediacontroller/mediacontroller_instance.h
src/mediacontroller/mediacontroller_server.cc
src/mediacontroller/mediacontroller_server.h
src/mediacontroller/mediacontroller_utils.cc
src/mediacontroller/mediacontroller_utils.h