propresenter-php/proto/presentation.proto
Thorsten Bus 22ba4aff7d refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples
- Move src/, tests/, bin/, generated/, proto/, composer.json, composer.lock, phpunit.xml from php/ to repo root
- Move ref/ to doc/reference_samples/ for better organization
- Remove vendor/ from git tracking (now properly gitignored)
- Update all test file paths (dirname adjustments and ref/ -> doc/reference_samples/)
- Update all documentation paths (AGENTS.md, doc/*.md)
- Remove php.bak/ directory
- All 252 tests pass
2026-03-30 13:26:29 +02:00

127 lines
3.3 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 "action.proto";
import "applicationInfo.proto";
import "background.proto";
import "cue.proto";
import "effects.proto";
import "groups.proto";
import "intRange.proto";
import "musicKeyScale.proto";
import "rvtimestamp.proto";
import "url.proto";
import "uuid.proto";
message Presentation {
reserved "social_media";
reserved 16;
message CCLI {
string author = 1;
string artist_credits = 2;
string song_title = 3;
string publisher = 4;
uint32 copyright_year = 5;
uint32 song_number = 6;
bool display = 7;
string album = 8;
bytes artwork = 9;
}
message BibleReference {
uint32 book_index = 1;
string book_name = 2;
.rv.data.IntRange chapter_range = 3;
.rv.data.IntRange verse_range = 4;
string translation_name = 5;
string translation_display_abbreviation = 6;
string translation_internal_abbreviation = 7;
string book_key = 8;
}
message Timeline {
reserved 2;
reserved 3;
reserved 4;
reserved 7;
message Cue {
double trigger_time = 1;
string name = 3;
oneof trigger_info {
.rv.data.UUID cue_id = 2;
.rv.data.Action action = 4;
}
}
repeated .rv.data.Presentation.Timeline.Cue cues = 1;
double duration = 5;
bool loop = 6;
.rv.data.Action audio_action = 8;
bool timecode_enable = 9;
double timecode_offset = 10;
repeated .rv.data.Presentation.Timeline.Cue cues_v2 = 11;
}
message Arrangement {
.rv.data.UUID uuid = 1;
string name = 2;
repeated .rv.data.UUID group_identifiers = 3;
}
message CueGroup {
.rv.data.Group group = 1;
repeated .rv.data.UUID cue_identifiers = 2;
}
message MultiTracksLicensing {
enum Subscription {
SUBSCRIPTION_CHART_PRO = 0;
SUBSCRIPTION_SLIDE_PRO = 1;
}
int64 song_identifier = 1;
string customer_identifier = 2;
.rv.data.Timestamp expiration_date = 3;
.rv.data.Timestamp license_expiration = 4;
.rv.data.Presentation.MultiTracksLicensing.Subscription subscription = 5;
}
message Music {
string original_music_key = 1;
string user_music_key = 2;
.rv.data.MusicKeyScale original = 3;
.rv.data.MusicKeyScale user = 4;
}
.rv.data.ApplicationInfo application_info = 1;
.rv.data.UUID uuid = 2;
string name = 3;
.rv.data.Timestamp last_date_used = 4;
.rv.data.Timestamp last_modified_date = 5;
string category = 6;
string notes = 7;
.rv.data.Background background = 8;
.rv.data.URL chord_chart = 9;
.rv.data.UUID selected_arrangement = 10;
repeated .rv.data.Presentation.Arrangement arrangements = 11;
repeated .rv.data.Presentation.CueGroup cue_groups = 12;
repeated .rv.data.Cue cues = 13;
.rv.data.Presentation.CCLI ccli = 14;
.rv.data.Presentation.BibleReference bible_reference = 15;
.rv.data.Presentation.Timeline timeline = 17;
.rv.data.Transition transition = 18;
.rv.data.Action.ContentDestination content_destination = 19;
.rv.data.Presentation.MultiTracksLicensing multi_tracks_licensing = 21;
string music_key = 22;
.rv.data.Presentation.Music music = 23;
oneof SlideShow {
double slide_show_duration = 20;
}
}