propresenter7-php-lib/proto/proApiV1Prop.proto
Thorsten Bus 8e80a8af88 Upgrade proto schema to ProPresenter Proto 19beta
Sync the bundled .proto definitions with greyshirtguy/ProPresenter7-Proto
"Proto 19beta" (dumped from ProPresenter v19 beta build 318767123,
2025-06-05). This pulls in the schema for ProPresenter 19 features
including new advertisement groups, custom options, media metadata,
prop API v1, transport API, feature flags, PSB workspace, and zone
definitions, plus refactored analytics tracked events.

Strategy: merge rather than wholesale replace. All Proto 19beta files
overwrite our existing copies so we pick up the field/message updates
upstream made between 7.16.2 and 19beta. Eleven new .proto files are
added: advertisementGroup, analyticsEdit, analyticsMediaManagement,
analyticsPowerPoint, analyticsTrackedEvents, analyticsTriggerCue,
customOptions, mediaMetadata, proCoreFeatureFlags, psbWorkspace, zone.
Three google/protobuf well-known types (any, source_context, type) are
added for completeness; only descriptor.proto is actually imported.

Five proto files are kept that are not part of Proto 19beta upstream:
calendar.proto and keyMappings.proto were extracted from PP binaries
to support our parse-calendar and parse-key-mappings tools, while
analyticsCapture/Update/WHMStore.proto are retained from the prior
7.16.2 set so existing generated descriptors keep loading.

generated/ is regenerated from scratch with `protoc --php_out=generated
--proto_path=proto *.proto` (protoc 29.3, google/protobuf PHP 4.33.5).
The full PHPUnit suite (369 tests, 1298 assertions) still passes
without any source changes - the new schema is wire-compatible with our
reference files and high-level wrappers.

Documentation references to "v7.16.2" are updated to "Proto 19beta" in
LICENSE, doc/formats/pp_song_spec.md, pp_playlist_spec.md,
pp_bundle_spec.md, and doc/internal/decisions.md.
2026-05-04 07:19:24 +02:00

186 lines
4.4 KiB
Protocol Buffer
Executable file

syntax = "proto3";
package rv.data;
option cc_enable_arenas = true;
option csharp_namespace = "Pro.SerializationInterop.RVProtoData";
option swift_prefix = "RVData_";
import "proApiV1Identifier.proto";
message API_v1_Transition {
string uuid = 1;
string name = 2;
double duration = 3;
}
message API_v1_PropData {
.rv.data.API_v1_Identifier id = 1;
bool is_active = 2;
bool auto_clear_enabled = 3;
double auto_clear_duration = 4;
.rv.data.API_v1_Transition transition = 5;
}
message API_v1_PropCollection {
.rv.data.API_v1_Identifier id = 1;
repeated .rv.data.API_v1_PropData props = 2;
bool single_prop_enabled = 3;
}
message API_v1_Prop_Request {
message Props {
}
message GetProp {
string id = 1;
}
message PutProp {
message AutoClearChange {
bool auto_clear_enabled = 1;
double auto_clear_duration = 2;
}
string id = 1;
string name_change = 2;
.rv.data.API_v1_Prop_Request.PutProp.AutoClearChange auto_clear_change = 3;
}
message DeleteProp {
string id = 1;
}
message TriggerProp {
string id = 1;
}
message ClearProp {
string id = 1;
}
message PauseProp {
string id = 1;
}
message ResumeProp {
string id = 1;
}
message GetThumbnail {
string id = 1;
int32 quality = 2;
}
message GetPropCollections {
}
message GetPropCollection {
string id = 1;
}
message PostPropCollections {
string name = 1;
}
message PutPropCollection {
string id = 1;
.rv.data.API_v1_PropCollection changes = 2;
}
message DeletePropCollection {
string id = 1;
}
oneof Request {
.rv.data.API_v1_Prop_Request.Props props = 1;
.rv.data.API_v1_Prop_Request.GetProp get_prop = 2;
.rv.data.API_v1_Prop_Request.PutProp put_prop = 3;
.rv.data.API_v1_Prop_Request.DeleteProp delete_prop = 4;
.rv.data.API_v1_Prop_Request.TriggerProp trigger_prop = 5;
.rv.data.API_v1_Prop_Request.ClearProp clear_prop = 6;
.rv.data.API_v1_Prop_Request.GetThumbnail get_thumbnail = 7;
.rv.data.API_v1_Prop_Request.GetPropCollections get_prop_collections = 8;
.rv.data.API_v1_Prop_Request.GetPropCollection get_prop_collection = 9;
.rv.data.API_v1_Prop_Request.PostPropCollections post_prop_collections = 10;
.rv.data.API_v1_Prop_Request.PutPropCollection put_prop_collection = 11;
.rv.data.API_v1_Prop_Request.DeletePropCollection delete_prop_collection = 12;
.rv.data.API_v1_Prop_Request.PauseProp pause_prop = 13;
.rv.data.API_v1_Prop_Request.ResumeProp resume_prop = 14;
}
}
message API_v1_Prop_Response {
message Props {
repeated .rv.data.API_v1_PropData props = 1;
}
message GetProp {
.rv.data.API_v1_PropData prop = 1;
}
message PutProp {
.rv.data.API_v1_PropData prop = 1;
}
message DeleteProp {
}
message TriggerProp {
}
message ClearProp {
}
message PauseProp {
}
message ResumeProp {
}
message GetThumbnail {
bytes data = 1;
}
message GetPropCollections {
message Collections {
repeated .rv.data.API_v1_PropCollection collections = 1;
}
.rv.data.API_v1_Prop_Response.GetPropCollections.Collections prop_collections = 1;
}
message GetPropCollection {
.rv.data.API_v1_PropCollection prop_collection = 1;
}
message PostPropCollections {
.rv.data.API_v1_PropCollection prop_collection = 1;
}
message PutPropCollection {
.rv.data.API_v1_PropCollection prop_collection = 1;
}
message DeletePropCollection {
}
oneof Response {
.rv.data.API_v1_Prop_Response.Props props = 1;
.rv.data.API_v1_Prop_Response.GetProp get_prop = 2;
.rv.data.API_v1_Prop_Response.PutProp put_prop = 3;
.rv.data.API_v1_Prop_Response.DeleteProp delete_prop = 4;
.rv.data.API_v1_Prop_Response.TriggerProp trigger_prop = 5;
.rv.data.API_v1_Prop_Response.ClearProp clear_prop = 6;
.rv.data.API_v1_Prop_Response.GetThumbnail get_thumbnail = 7;
.rv.data.API_v1_Prop_Response.GetPropCollections get_prop_collections = 8;
.rv.data.API_v1_Prop_Response.GetPropCollection get_prop_collection = 9;
.rv.data.API_v1_Prop_Response.PostPropCollections post_prop_collections = 10;
.rv.data.API_v1_Prop_Response.PutPropCollection put_prop_collection = 11;
.rv.data.API_v1_Prop_Response.DeletePropCollection delete_prop_collection = 12;
.rv.data.API_v1_Prop_Response.PauseProp pause_prop = 13;
.rv.data.API_v1_Prop_Response.ResumeProp resume_prop = 14;
}
}