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.
128 lines
3.3 KiB
Protocol Buffer
Executable file
128 lines
3.3 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 "action.proto";
|
|
import "applicationInfo.proto";
|
|
import "background.proto";
|
|
import "cue.proto";
|
|
import "customOptions.proto";
|
|
import "effects.proto";
|
|
import "groups.proto";
|
|
import "intRange.proto";
|
|
import "musicKeyScale.proto";
|
|
import "rvtimestamp.proto";
|
|
import "url.proto";
|
|
import "uuid.proto";
|
|
|
|
message Presentation {
|
|
reserved "social_media";
|
|
reserved 16;
|
|
message CCLI {
|
|
string author = 1;
|
|
string artist_credits = 2;
|
|
string song_title = 3;
|
|
string publisher = 4;
|
|
uint32 copyright_year = 5;
|
|
uint32 song_number = 6;
|
|
bool display = 7;
|
|
string album = 8;
|
|
bytes artwork = 9;
|
|
}
|
|
|
|
message BibleReference {
|
|
uint32 book_index = 1;
|
|
string book_name = 2;
|
|
.rv.data.IntRange chapter_range = 3;
|
|
.rv.data.IntRange verse_range = 4;
|
|
string translation_name = 5;
|
|
string translation_display_abbreviation = 6;
|
|
string translation_internal_abbreviation = 7;
|
|
string book_key = 8;
|
|
}
|
|
|
|
message Timeline {
|
|
reserved 2;
|
|
reserved 3;
|
|
reserved 4;
|
|
reserved 7;
|
|
message Cue {
|
|
double trigger_time = 1;
|
|
string name = 3;
|
|
oneof trigger_info {
|
|
.rv.data.UUID cue_id = 2;
|
|
.rv.data.Action action = 4;
|
|
}
|
|
}
|
|
|
|
repeated .rv.data.Presentation.Timeline.Cue cues = 1;
|
|
double duration = 5;
|
|
bool loop = 6;
|
|
.rv.data.Action audio_action = 8;
|
|
bool timecode_enable = 9;
|
|
double timecode_offset = 10;
|
|
repeated .rv.data.Presentation.Timeline.Cue cues_v2 = 11;
|
|
}
|
|
|
|
message Arrangement {
|
|
.rv.data.UUID uuid = 1;
|
|
string name = 2;
|
|
repeated .rv.data.UUID group_identifiers = 3;
|
|
}
|
|
|
|
message CueGroup {
|
|
.rv.data.Group group = 1;
|
|
repeated .rv.data.UUID cue_identifiers = 2;
|
|
}
|
|
|
|
message MultiTracksLicensing {
|
|
enum Subscription {
|
|
SUBSCRIPTION_CHART_PRO = 0;
|
|
SUBSCRIPTION_SLIDE_PRO = 1;
|
|
}
|
|
|
|
int64 song_identifier = 1;
|
|
string customer_identifier = 2;
|
|
.rv.data.Timestamp expiration_date = 3;
|
|
.rv.data.Timestamp license_expiration = 4;
|
|
.rv.data.Presentation.MultiTracksLicensing.Subscription subscription = 5;
|
|
}
|
|
|
|
message Music {
|
|
string original_music_key = 1;
|
|
string user_music_key = 2;
|
|
.rv.data.MusicKeyScale original = 3;
|
|
.rv.data.MusicKeyScale user = 4;
|
|
}
|
|
|
|
.rv.data.ApplicationInfo application_info = 1;
|
|
.rv.data.UUID uuid = 2;
|
|
string name = 3;
|
|
.rv.data.Timestamp last_date_used = 4;
|
|
.rv.data.Timestamp last_modified_date = 5;
|
|
string category = 6;
|
|
string notes = 7;
|
|
.rv.data.Background background = 8;
|
|
.rv.data.URL chord_chart = 9;
|
|
.rv.data.UUID selected_arrangement = 10;
|
|
repeated .rv.data.Presentation.Arrangement arrangements = 11;
|
|
repeated .rv.data.Presentation.CueGroup cue_groups = 12;
|
|
repeated .rv.data.Cue cues = 13;
|
|
.rv.data.Presentation.CCLI ccli = 14;
|
|
.rv.data.Presentation.BibleReference bible_reference = 15;
|
|
.rv.data.Presentation.Timeline timeline = 17;
|
|
.rv.data.Transition transition = 18;
|
|
.rv.data.Action.ContentDestination content_destination = 19;
|
|
.rv.data.Presentation.MultiTracksLicensing multi_tracks_licensing = 21;
|
|
string music_key = 22;
|
|
.rv.data.Presentation.Music music = 23;
|
|
oneof SlideShow {
|
|
double slide_show_duration = 20;
|
|
}
|
|
}
|
|
|