blob: 41abc0d3d839e385b3c01c033ce2ae9127360b19 [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.
#ifndef CHROME_BROWSER_UI_MEDIA_ROUTER_MEDIA_CAST_MODE_H_
#define CHROME_BROWSER_UI_MEDIA_ROUTER_MEDIA_CAST_MODE_H_
#include <set>
#include <string>
namespace media_router {
// A cast mode represents one way that the current WebContents (i.e., tab) may
// be presented to a media sink. These must be declared in the priority order
// returned by GetPreferredCastMode.
enum MediaCastMode {
// PresentationRequests (and their associated URLs) provided via the
// Presentation API. A top-level browsing context can set a
// PresentationRequest as the page-level default, or any frame can use one by
// calling PresentationRequest.start(). Available when the Presentation API
// is used and there is a compatible sink.
PRESENTATION = 0x1,
// Capture the rendered WebContents and stream it to a media sink. Available
// when there is a compatible sink.
TAB_MIRROR = 0x2,
// Capture the entire desktop and stream it to a media sink. Available when
// there is a compatible sink.
DESKTOP_MIRROR = 0x4,
};
using CastModeSet = std::set<MediaCastMode>;
// Returns a localized description string for |mode| and |host|
// (e.g. google.com).
std::string MediaCastModeToDescription(MediaCastMode mode,
const std::string& host);
// Returns true if |cast_mode_num| is a valid MediaCastMode, false otherwise.
bool IsValidCastModeNum(int cast_mode_num);
} // namespace media_router
#endif // CHROME_BROWSER_UI_MEDIA_ROUTER_MEDIA_CAST_MODE_H_