PHP 8.4 library and CLI tools to read, modify, and generate ProPresenter 7 files: songs (.pro), playlists (.proplaylist), bundles (.probundle), themes, and the global library files (Macros, Labels, Groups, ClearGroups, CCLI, Messages, Timers, Stage, Workspace, Props, TestPatterns, Calendar, KeyMappings, CommunicationDevices). Built on the MIT-licensed ProPresenter7-Proto schema by greyshirtguy (v7.16.2). Includes 18 CLI parsers, comprehensive API docs in doc/, binary-format specs, and a synthetic 369-test PHPUnit suite covering RTF extraction, translation slides, ZIP64 repair, round-trip fidelity, and end-to-end generation.
47 lines
1 KiB
Protocol Buffer
Executable file
47 lines
1 KiB
Protocol Buffer
Executable file
syntax = "proto3";
|
|
|
|
package rv.analytics;
|
|
|
|
option cc_enable_arenas = true;
|
|
option csharp_namespace = "Pro.SerializationInterop.RVProtoData.Analytics";
|
|
option swift_prefix = "Analytics_";
|
|
|
|
message Timeline {
|
|
message TriggerCue {
|
|
enum TriggerType {
|
|
TRIGGER_TYPE_SLIDE = 0;
|
|
TRIGGER_TYPE_MEDIA = 1;
|
|
TRIGGER_TYPE_AUDIO = 2;
|
|
TRIGGER_TYPE_ACTION = 3;
|
|
}
|
|
|
|
enum TimingSource {
|
|
TIMING_SOURCE_INTERNAL = 0;
|
|
TIMING_SOURCE_SMPTE = 1;
|
|
}
|
|
|
|
.rv.analytics.Timeline.TriggerCue.TriggerType trigger_type = 1;
|
|
.rv.analytics.Timeline.TriggerCue.TimingSource timing_source = 2;
|
|
}
|
|
|
|
message Action {
|
|
enum ActionType {
|
|
ACTION_TYPE_PLAY = 0;
|
|
ACTION_TYPE_STOP = 1;
|
|
ACTION_TYPE_RESET = 2;
|
|
}
|
|
|
|
.rv.analytics.Timeline.Action.ActionType action_type = 1;
|
|
}
|
|
|
|
message RecordCue {
|
|
}
|
|
|
|
oneof Event {
|
|
.rv.analytics.Timeline.TriggerCue trigger_cue = 1;
|
|
.rv.analytics.Timeline.Action action = 2;
|
|
.rv.analytics.Timeline.RecordCue record_cue = 3;
|
|
}
|
|
}
|
|
|