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

208 lines
4.9 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";
message API_v1_TimerFormat {
enum API_v1_TimerUnitDisplayFormat {
none = 0;
short = 1;
long = 2;
remove_short = 3;
remove_long = 4;
}
.rv.data.API_v1_TimerFormat.API_v1_TimerUnitDisplayFormat hour = 6;
.rv.data.API_v1_TimerFormat.API_v1_TimerUnitDisplayFormat minute = 7;
.rv.data.API_v1_TimerFormat.API_v1_TimerUnitDisplayFormat second = 8;
.rv.data.API_v1_TimerFormat.API_v1_TimerUnitDisplayFormat millisecond = 9;
}
message API_v1_TimerValue {
.rv.data.API_v1_Identifier id = 1;
string time = 2;
.rv.data.API_v1_TimerState state = 3;
}
message API_v1_Timer {
message API_v1_Timer_Countdown {
int32 duration = 1;
}
message API_v1_Timer_CountdownToTime {
int32 time_of_day = 1;
.rv.data.API_v1_Timer.API_v1_TimePeriod period = 2;
}
message API_v1_Timer_Elapsed {
int32 start_time = 1;
int32 end_time = 2;
bool has_end_time = 3;
}
enum API_v1_TimePeriod {
am = 0;
pm = 1;
is_24_hour = 2;
}
.rv.data.API_v1_Identifier id = 1;
bool allows_overrun = 2;
oneof TimerConfiguration {
.rv.data.API_v1_Timer.API_v1_Timer_Countdown countdown = 3;
.rv.data.API_v1_Timer.API_v1_Timer_CountdownToTime count_down_to_time = 4;
.rv.data.API_v1_Timer.API_v1_Timer_Elapsed elapsed = 5;
}
}
message API_v1_Timer_Request {
message Timers {
}
message CreateTimer {
string name = 1;
bool allows_overrun = 2;
.rv.data.API_v1_Timer.API_v1_Timer_Countdown countdown = 3;
.rv.data.API_v1_Timer.API_v1_Timer_CountdownToTime count_down_to_time = 4;
.rv.data.API_v1_Timer.API_v1_Timer_Elapsed elapsed = 5;
}
message CurrentTimes {
}
message AllTimersOperation {
.rv.data.API_v1_TimerOperation operation = 1;
}
message GetTimer {
string id = 1;
}
message PutTimer {
string id = 1;
.rv.data.API_v1_Timer timer = 2;
}
message DeleteTimer {
string id = 1;
}
message TimerOperation {
string id = 1;
.rv.data.API_v1_TimerOperation operation = 2;
}
message PutTimerOperation {
string id = 1;
.rv.data.API_v1_TimerOperation operation = 2;
.rv.data.API_v1_Timer timer = 3;
}
message TimerIncrement {
string id = 1;
double amount = 2;
}
message SystemTime {
}
message VideoCountdown {
}
oneof Request {
.rv.data.API_v1_Timer_Request.Timers timers = 1;
.rv.data.API_v1_Timer_Request.CreateTimer create_timer = 2;
.rv.data.API_v1_Timer_Request.CurrentTimes current_times = 3;
.rv.data.API_v1_Timer_Request.AllTimersOperation all_timers_operation = 4;
.rv.data.API_v1_Timer_Request.GetTimer get_timer = 5;
.rv.data.API_v1_Timer_Request.PutTimer put_timer = 6;
.rv.data.API_v1_Timer_Request.DeleteTimer delete_timer = 7;
.rv.data.API_v1_Timer_Request.TimerOperation timer_operation = 8;
.rv.data.API_v1_Timer_Request.PutTimerOperation put_timer_operation = 9;
.rv.data.API_v1_Timer_Request.TimerIncrement timer_increment = 10;
.rv.data.API_v1_Timer_Request.SystemTime system_time = 11;
.rv.data.API_v1_Timer_Request.VideoCountdown video_countdown = 12;
}
}
message API_v1_Timer_Response {
message Timers {
repeated .rv.data.API_v1_Timer timers = 1;
}
message CreateTimer {
.rv.data.API_v1_Timer timer = 1;
}
message CurrentTimes {
repeated .rv.data.API_v1_TimerValue timers = 1;
}
message AllTimersOperation {
}
message GetTimer {
.rv.data.API_v1_Timer timer = 1;
}
message PutTimer {
.rv.data.API_v1_Timer timer = 1;
}
message DeleteTimer {
}
message TimerOperation {
}
message PutTimerOperation {
.rv.data.API_v1_Timer timer = 1;
}
message TimerIncrement {
}
message SystemTime {
uint64 time = 1;
}
message VideoCountdown {
string time = 1;
}
oneof Response {
.rv.data.API_v1_Timer_Response.Timers timers = 1;
.rv.data.API_v1_Timer_Response.CreateTimer create_timer = 2;
.rv.data.API_v1_Timer_Response.CurrentTimes current_times = 3;
.rv.data.API_v1_Timer_Response.AllTimersOperation all_timers_operation = 4;
.rv.data.API_v1_Timer_Response.GetTimer get_timer = 5;
.rv.data.API_v1_Timer_Response.PutTimer put_timer = 6;
.rv.data.API_v1_Timer_Response.DeleteTimer delete_timer = 7;
.rv.data.API_v1_Timer_Response.TimerOperation timer_operation = 8;
.rv.data.API_v1_Timer_Response.PutTimerOperation put_timer_operation = 9;
.rv.data.API_v1_Timer_Response.TimerIncrement timer_increment = 10;
.rv.data.API_v1_Timer_Response.SystemTime system_time = 11;
.rv.data.API_v1_Timer_Response.VideoCountdown video_countdown = 12;
}
}
enum API_v1_TimerState {
stopped = 0;
running = 1;
complete = 2;
overrunning = 3;
overran = 4;
}
enum API_v1_TimerOperation {
start = 0;
stop = 1;
reset = 2;
}