blob: a7368cf667240f84c45c017184f41df4dadd3754 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_MEDIA_ROUTER_DISCOVERY_MDNS_MEDIA_SINK_UTIL_H_
#define CHROME_BROWSER_MEDIA_ROUTER_DISCOVERY_MDNS_MEDIA_SINK_UTIL_H_
#include <vector>
#include "components/media_router/common/discovery/media_sink_internal.h"
#include "components/media_router/common/providers/cast/channel/cast_device_capability.h"
namespace media_router {
struct DnsSdService;
// The DNS-SD service type for Cast devices.
inline constexpr char kCastServiceType[] = "_googlecast._tcp.local";
// Returns the icon type to use according to |capabilities|. |capabilities| is
// a bit set of cast_channel::CastDeviceCapabilities in CastSinkExtraData.
SinkIconType GetCastSinkIconType(
cast_channel::CastDeviceCapabilitySet capabilities);
enum CreateCastMediaSinkResult {
kOk,
kNotCastDevice,
kMissingID,
kMissingFriendlyName,
kMissingOrInvalidIPAddress,
kMissingOrInvalidPort,
kMissingDeviceCapabilities,
kMissingNetworkInfo
};
// Creates a MediaSinkInternal from |service| and assigns the result to
// |cast_sink|. |cast_sink| is only valid if the returned result is |kOk|.
CreateCastMediaSinkResult CreateCastMediaSink(const DnsSdService& service,
MediaSinkInternal* cast_sink);
// Command line flag for a list of Cast device IPs to connect to at startup.
// The value should be a comma-separated list of IP endpoints.
inline constexpr char kFixedCastDeviceIps[] = "media-router-cast-device-ips";
// Returns a list of Cast sinks whose IPs were specified in the command line
// flag |kFixedCastDeviceIps|.
std::vector<MediaSinkInternal> GetFixedIPSinksFromCommandLine();
} // namespace media_router
#endif // CHROME_BROWSER_MEDIA_ROUTER_DISCOVERY_MDNS_MEDIA_SINK_UTIL_H_