[Mediacontroller] added display mode feature 20/213720/9
authorPiotr Kosko/Native/Web API (PLT) /SRPOL/Engineer/삼성전자 <p.kosko@samsung.com>
Thu, 12 Sep 2019 12:38:12 +0000 (14:38 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Thu, 19 Sep 2019 10:57:36 +0000 (10:57 +0000)
commit7dfb9dbd4209d3d02f970357eea1f67184bd3e96
tree4ce3208dff6104f7d1eeaa0338038079ddca1422
parent30e94edf67eb57d71ab8a471d302a4dc5444a074
[Mediacontroller] added display mode feature

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

[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(type, clientName)
{
    console.log("Display mode change requested to: " + type + " by " + clientName);
    return new tizen.mediacontroller.RequestReply(new tizen.Bundle({"message": "Not allowed"}), 13);
};
watcherId = mcServer.displayMode.addChangeRequestListener(changeListener);

/// 2. checking NotSupportedError when sending without enabled ability
var mcClient = tizen.mediacontroller.getClient();
var mcServerInfo = mcClient.getLatestServerInfo()
var type = "ORIGIN_SIZE";
mcServerInfo.displayMode.sendRequest(type,
    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.displayMode.addModeChangeListener(function(type)
{
  console.log(mcServerInfo.name + " server display mode changed to " + type);
});

/// 4. change the value of display mode (should trigger listener from point 3)
mcServer.displayMode.type = "FULL_SCREEN"

/// 4. enable ability of server
// TODO support: mcServer.abilities.displayMode.originSize = "YES"

/// sendRequest again (should trigger listener from point 1)
mcServerInfo.displayMode.sendRequest(type,
    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);
    });

Change-Id: Icbc98513372d8da8e111a44d873c6559dede89e9
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