blob: b8cc09198b266542aec88cf6c1236874aad4795e [file] [log] [blame]
// Copyright 2021 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.
//
// **** DO NOT EDIT - this .proto was automatically generated. ****
syntax = "proto3";
package cast.common;
option optimize_for = LITE_RUNTIME;
// Runtime description.
message RuntimeMetadata {
// Runtime name (platform provided - optional).
string name = 1;
// Runtime type.
RuntimeType.Type type = 2;
// Various Runtime capabilities.
RuntimeCapabilities runtime_capabilities = 3;
}
message RuntimeType {
// RuntimeType enumeration sets defines the way runtimes are selected for a
// given Cast application. The following rules are applied in the order:
// 1. Select NATIVE runtime if Cast application ID is in the supported list.
// 2. Select CAST_LITE runtime if Cast application is audio-only.
// 3. Fall back to Cast Web runtime.
enum Type {
UNDEFINED = 0;
// Cast Web runtime. The list of supported Cast application IDs must be
// empty.
CAST_WEB = 1;
// Cast Lite runtime for audio.
CAST_LITE = 2;
// Runtimes native to specific platform (Netflix, YouTube applications etc)
NATIVE = 3;
}
}
message MediaCapabilities {
// TODO: These capabilities must be flashed out.
bool audio_supported = 1;
bool video_supported = 2;
}
message ApplicationCapabilities {
// List of supported Cast application IDs.
repeated string app_ids = 1;
}
message RuntimeCapabilities {
MediaCapabilities media_capabilities = 1;
oneof specific_capabilities {
// capabilities for NATIVE runtime.
ApplicationCapabilities native_application_capabilities = 2;
}
// Flags if heartbeat is supported.
bool heartbeat_supported = 3;
// Flags if metrics recording is supported.
bool metrics_recorder_supported = 4;
}