propresenter7-php-lib/proto/proApiV1Status.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

109 lines
2.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";
import "proApiV1Size.proto";
message API_v1_SlideDisplayDetails {
string text = 1;
string notes = 2;
string uuid = 3;
}
message API_v1_ScreenConfig {
.rv.data.API_v1_Identifier id = 1;
.rv.data.API_v1_Size size = 2;
.rv.data.API_v1_ScreenType screen_type = 3;
}
message API_v1_Status_Request {
message GetLayers {
}
message GetStageScreens {
}
message PutStageScreens {
bool enabled = 1;
}
message GetAudienceScreens {
}
message PutAudienceScreens {
bool enabled = 1;
}
message GetScreens {
}
message GetSlide {
}
oneof Request {
.rv.data.API_v1_Status_Request.GetLayers get_layers = 1;
.rv.data.API_v1_Status_Request.GetStageScreens get_stage_screens = 2;
.rv.data.API_v1_Status_Request.PutStageScreens put_stage_screens = 3;
.rv.data.API_v1_Status_Request.GetAudienceScreens get_audience_screens = 4;
.rv.data.API_v1_Status_Request.PutAudienceScreens put_audience_screens = 5;
.rv.data.API_v1_Status_Request.GetScreens get_screens = 6;
.rv.data.API_v1_Status_Request.GetSlide get_slide = 7;
}
}
message API_v1_Status_Response {
message GetLayers {
bool video_input = 1;
bool media = 2;
bool slide = 3;
bool announcements = 4;
bool props = 5;
bool messages = 6;
bool audio = 7;
}
message GetStageScreens {
bool enabled = 1;
}
message PutStageScreens {
}
message GetAudienceScreens {
bool enabled = 1;
}
message PutAudienceScreens {
}
message GetScreens {
repeated .rv.data.API_v1_ScreenConfig screens = 1;
}
message GetSlide {
.rv.data.API_v1_SlideDisplayDetails current = 1;
.rv.data.API_v1_SlideDisplayDetails next = 2;
}
oneof Response {
.rv.data.API_v1_Status_Response.GetLayers get_layers = 1;
.rv.data.API_v1_Status_Response.GetStageScreens get_stage_screens = 2;
.rv.data.API_v1_Status_Response.PutStageScreens put_stage_screens = 3;
.rv.data.API_v1_Status_Response.GetAudienceScreens get_audience_screens = 4;
.rv.data.API_v1_Status_Response.PutAudienceScreens put_audience_screens = 5;
.rv.data.API_v1_Status_Response.GetScreens get_screens = 6;
.rv.data.API_v1_Status_Response.GetSlide get_slide = 7;
}
}
enum API_v1_ScreenType {
audience = 0;
stage = 1;
}