aboutsummaryrefslogtreecommitdiff
path: root/cast/standalone_receiver/cast_service.cc
diff options
context:
space:
mode:
authorJordan Bayles <jophba@chromium.org>2021-06-10 11:23:55 -0700
committerOpenscreen LUCI CQ <openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com>2021-06-10 19:10:22 +0000
commitf6e2b5ea1dfca4fceb6e1d4004494a88006e1f9f (patch)
tree1bcb7cfe38c6c8ea18f4bb42b6b01ef7fc68b022 /cast/standalone_receiver/cast_service.cc
parent1a4e533d57c2b879704759cdffb2a00f71266346 (diff)
downloadopenscreen-f6e2b5ea1dfca4fceb6e1d4004494a88006e1f9f.tar.gz
[Cast Streaming] Improve remoting in ReceiverSession API
This patch continues the process of wrapping up remoting support, by adding some support to the standalone implementations and cleaning up the ReceiverSession API. From here, the actual media stream will have to be mocked out/a standalone implementation created so that we can properly test the entire remoting flow and set the stage for integration into chrome. Bug: b/184186390 Change-Id: Ib2a5526ce5db71cb093f228acbc64cf3060e677d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2939634 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com>
Diffstat (limited to 'cast/standalone_receiver/cast_service.cc')
-rw-r--r--cast/standalone_receiver/cast_service.cc41
1 files changed, 20 insertions, 21 deletions
diff --git a/cast/standalone_receiver/cast_service.cc b/cast/standalone_receiver/cast_service.cc
index efab229b..28e6c65c 100644
--- a/cast/standalone_receiver/cast_service.cc
+++ b/cast/standalone_receiver/cast_service.cc
@@ -37,28 +37,27 @@ discovery::Config MakeDiscoveryConfig(const InterfaceInfo& interface) {
} // namespace
-CastService::CastService(TaskRunner* task_runner,
- const InterfaceInfo& interface,
- GeneratedCredentials credentials,
- const std::string& friendly_name,
- const std::string& model_name,
- bool enable_discovery)
- : local_endpoint_(DetermineEndpoint(interface)),
- credentials_(std::move(credentials)),
- agent_(task_runner, credentials_.provider.get()),
- mirroring_application_(task_runner, local_endpoint_.address, &agent_),
+CastService::CastService(CastService::Configuration config)
+ : local_endpoint_(DetermineEndpoint(config.interface)),
+ credentials_(std::move(config.credentials)),
+ agent_(config.task_runner, credentials_.provider.get()),
+ mirroring_application_(config.task_runner,
+ local_endpoint_.address,
+ &agent_),
socket_factory_(&agent_, agent_.cast_socket_client()),
connection_factory_(
- TlsConnectionFactory::CreateFactory(&socket_factory_, task_runner)),
- discovery_service_(enable_discovery ? discovery::CreateDnsSdService(
- task_runner,
- this,
- MakeDiscoveryConfig(interface))
- : LazyDeletedDiscoveryService()),
+ TlsConnectionFactory::CreateFactory(&socket_factory_,
+ config.task_runner)),
+ discovery_service_(config.enable_discovery
+ ? discovery::CreateDnsSdService(
+ config.task_runner,
+ this,
+ MakeDiscoveryConfig(config.interface))
+ : LazyDeletedDiscoveryService()),
discovery_publisher_(
discovery_service_
? MakeSerialDelete<discovery::DnsSdServicePublisher<ServiceInfo>>(
- task_runner,
+ config.task_runner,
discovery_service_.get(),
kCastV2ServiceId,
ServiceInfoToDnsSdInstance)
@@ -69,11 +68,11 @@ CastService::CastService(TaskRunner* task_runner,
if (discovery_publisher_) {
ServiceInfo info;
info.port = local_endpoint_.port;
- info.unique_id = HexEncode(interface.hardware_address);
- info.friendly_name = friendly_name;
- info.model_name = model_name;
+ info.unique_id = HexEncode(config.interface.hardware_address);
+ info.friendly_name = config.friendly_name;
+ info.model_name = config.model_name;
info.capabilities = kHasVideoOutput | kHasAudioOutput;
- Error error = discovery_publisher_->Register(info);
+ const Error error = discovery_publisher_->Register(info);
if (!error.ok()) {
OnFatalError(std::move(error));
}