blob: 4773a16d3101867158506cc563fcfb569eca4667 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
<include src="media_router_data.js">
<include src="media_router_ui_interface.js">
// Handles user events for the Media Router UI.
cr.define('media_router', function() {
'use strict';
// The media-router-container element. Initialized after polymer is ready.
var container = null;
/**
* Initializes the Media Router WebUI and requests initial media
* router content, such as the media sink and media route lists.
*/
function initialize() {
media_router.browserApi.requestInitialData();
container = $('media-router-container');
media_router.ui.setContainer(container);
container.addEventListener('close-button-click', onCloseDialogClick);
container.addEventListener('close-route-click', onCloseRouteClick);
container.addEventListener('create-route', onCreateRoute);
container.addEventListener('issue-action-click', onIssueActionClick);
}
/**
* Closes the dialog.
* Called when the user clicks the close button on the dialog.
*/
function onCloseDialogClick() {
media_router.browserApi.closeDialog();
}
/**
* Acts on an issue and dismisses it from the UI.
* Called when the user performs an action on an issue.
*
* @param {{detail: {id: string, actionType: number, helpPageId: number}}}
* data
* Parameters in |data|.detail:
* id - issue ID.
* actionType - type of action performed by the user.
* helpPageId - the numeric help center ID.
*/
function onIssueActionClick(data) {
media_router.browserApi.actOnIssue(data.detail.id,
data.detail.actionType,
data.detail.helpPageId);
container.issue = null;
}
/**
* Creates a media route.
* Called when the user requests to create a media route.
*
* @param {{detail: {sinkId: string, selectedCastModeValue: number}}} data
* Parameters in |data|.detail:
* sinkId - sink ID selected by the user.
* selectedCastModeValue - cast mode selected by the user.
*/
function onCreateRoute(data) {
media_router.browserApi.requestRoute(data.detail.sinkId,
data.detail.selectedCastModeValue);
}
/**
* Stops a route.
* Called when the user requests to stop a media route.
*
* @param {{detail: {route: string}}} data
* Parameters in |data|.detail:
* route - route ID.
*/
function onCloseRouteClick(data) {
media_router.browserApi.closeRoute(data.detail.route);
}
return {
initialize: initialize,
};
});
window.addEventListener('load', media_router.initialize);