propresenter7-php-lib/proto/proApiV1Announcement.proto
Thorsten Buss 4d10db4f17 Initial public release
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.
2026-05-03 22:21:01 +02:00

100 lines
2.6 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 "proApiV1Presentation.proto";
import "proApiV1TimelineOperation.proto";
message API_v1_Announcement_Request {
message ActiveTimelineOperation {
.rv.data.API_v1_TimelineOperation operation = 1;
}
message ActiveTimelineStatus {
}
message Active {
}
message AnnouncementIndex {
}
message ActiveFocus {
}
message ActiveTrigger {
}
message ActiveNextTrigger {
}
message ActivePreviousTrigger {
}
message ActiveIndexTrigger {
uint32 index = 1;
}
oneof Request {
.rv.data.API_v1_Announcement_Request.ActiveTimelineOperation active_timeline_operation = 1;
.rv.data.API_v1_Announcement_Request.ActiveTimelineStatus active_timeline_status = 2;
.rv.data.API_v1_Announcement_Request.Active active = 3;
.rv.data.API_v1_Announcement_Request.AnnouncementIndex slide_index = 4;
.rv.data.API_v1_Announcement_Request.ActiveFocus active_focus = 5;
.rv.data.API_v1_Announcement_Request.ActiveTrigger active_trigger = 6;
.rv.data.API_v1_Announcement_Request.ActiveNextTrigger active_next_trigger = 7;
.rv.data.API_v1_Announcement_Request.ActivePreviousTrigger active_previous_trigger = 8;
.rv.data.API_v1_Announcement_Request.ActiveIndexTrigger active_index_trigger = 9;
}
}
message API_v1_Announcement_Response {
message ActiveTimelineOperation {
}
message ActiveTimelineStatus {
bool is_running = 1;
double current_time = 2;
}
message Active {
.rv.data.API_v1_Presentation announcement = 1;
}
message SlideIndex {
.rv.data.API_v1_SlideIndex announcement_index = 1;
}
message ActiveFocus {
}
message ActiveTrigger {
}
message ActiveNextTrigger {
}
message ActivePreviousTrigger {
}
message ActiveIndexTrigger {
}
oneof Request {
.rv.data.API_v1_Announcement_Response.ActiveTimelineOperation active_timeline_operation = 1;
.rv.data.API_v1_Announcement_Response.ActiveTimelineStatus active_timeline_status = 2;
.rv.data.API_v1_Announcement_Response.Active active = 3;
.rv.data.API_v1_Announcement_Response.SlideIndex slide_index = 4;
.rv.data.API_v1_Announcement_Response.ActiveFocus active_focus = 5;
.rv.data.API_v1_Announcement_Response.ActiveTrigger active_trigger = 6;
.rv.data.API_v1_Announcement_Response.ActiveNextTrigger active_next_trigger = 7;
.rv.data.API_v1_Announcement_Response.ActivePreviousTrigger active_previous_trigger = 8;
.rv.data.API_v1_Announcement_Response.ActiveIndexTrigger active_index_trigger = 9;
}
}