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

124 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 "proApiV1Size.proto";
import "uuid.proto";
message API_v1_CaptureSettings {
.rv.data.UUID source = 1;
repeated .rv.data.API_v1_AudioRouting audio_routing = 2;
oneof Destination {
.rv.data.API_v1_DiskCapture disk = 3;
.rv.data.API_v1_RTMPCapture rtmp = 4;
.rv.data.API_v1_ResiCapture resi = 5;
}
}
message API_v1_AudioRouting {
repeated uint32 map = 1;
}
message API_v1_DiskCapture {
string file_location = 1;
string codec = 2;
.rv.data.API_v1_Size resolution = 3;
double frame_rate = 4;
}
message API_v1_RTMPCapture {
string server = 1;
string key = 2;
string encoding = 3;
bool save_local = 4;
string file_location = 5;
}
message API_v1_ResiCapture {
string event_name = 1;
string event_description = 2;
string destination_group = 3;
string encoding = 4;
}
message API_v1_Capture_Request {
message Status {
}
message Operation {
enum CaptureOperation {
start = 0;
stop = 1;
}
.rv.data.API_v1_Capture_Request.Operation.CaptureOperation operation = 1;
}
message GetSettings {
}
message SetSettings {
.rv.data.API_v1_CaptureSettings settings = 1;
}
message Encodings {
.rv.data.API_v1_CaptureDestination type = 1;
}
oneof Request {
.rv.data.API_v1_Capture_Request.Status get_status = 1;
.rv.data.API_v1_Capture_Request.Operation operation = 2;
.rv.data.API_v1_Capture_Request.GetSettings get_settings = 3;
.rv.data.API_v1_Capture_Request.SetSettings set_settings = 4;
.rv.data.API_v1_Capture_Request.Encodings get_encodings = 5;
}
}
message API_v1_Capture_Response {
message GetStatus {
.rv.data.API_v1_CaptureStatus status = 1;
string capture_time = 2;
string status_text = 3;
}
message Operation {
}
message GetSettings {
.rv.data.API_v1_CaptureSettings settings = 1;
}
message SetSettings {
}
message Encodings {
repeated string encodings = 1;
}
oneof Response {
.rv.data.API_v1_Capture_Response.GetStatus get_status = 1;
.rv.data.API_v1_Capture_Response.Operation operation = 2;
.rv.data.API_v1_Capture_Response.GetSettings get_settings = 3;
.rv.data.API_v1_Capture_Response.SetSettings set_settings = 4;
.rv.data.API_v1_Capture_Response.Encodings get_encodings = 5;
}
}
enum API_v1_CaptureDestination {
disk = 0;
rtmp = 1;
resi = 2;
}
enum API_v1_CaptureStatus {
active = 0;
inactive = 1;
caution = 2;
error = 3;
}