syntax = "proto3"; package sys; import "GPIO.proto"; import "Artwork.proto"; import "Spotify.proto"; import "AirPlay.proto"; import "Squeezelite.proto"; import "Equalizer.proto"; import "nanopb.proto"; import "customoptions.proto"; // Configuration for sleep service message SleepService { option (nanopb_msgopt).msgid = 10035; // Inactivity in minutes before going to sleep uint32 delay = 1; // Inactivity delay in minutes after which sleep resumes int32 spurious = 2 [(nanopb).int_size = IS_16]; // GPIO for sleep GPIO sleep = 3; // List of GPIOs that will cause the system to wake up repeated GPIO wake = 4 [(nanopb).type = FT_POINTER]; //[(nanopb).max_count= 10]; // List of RTC GPIOs to keep active repeated GPIO rtc = 5 [(nanopb).type = FT_POINTER]; //[(nanopb).max_count= 10]; // Threshold in volts under which the system will enter into sleep float batt = 6; } message Telnet { bool enable = 1; uint32 block = 2 [(nanopb).int_size = IS_16]; uint32 buffer = 3 [(nanopb).int_size = IS_16]; } message Metadata { option (nanopb_msgopt).msgid = 10036; // Optional parameters controlling bluetooth and airplay // Display format with optional keywords %artist%, %album%, %title% string format = 1 [(nanopb).max_length= 50]; // Scrolling speed in ms uint32 speed = 2 ; // Pause time between scrolls in ms uint32 pause = 3; // Cover art display configuration Artwork artwork = 4; } message BluetoothSink { bool enabled = 1; uint32 volume = 2; string pin = 3 [(nanopb).max_length = 16,(cust_field).v_string = "0000" ]; } message Services { option (nanopb_msgopt).msgid = 10037; Metadata metadata = 1; SleepService sleep = 2; Spotify cspot = 4; AirPlay airplay = 5; Squeezelite squeezelite = 6; string release_url = 7 [(nanopb).max_length = 256, (cust_field).v_string = "https://api.github.com/repos/sle118/squeezelite-esp32/releases"]; BluetoothSink bt_sink = 8; bool statistics = 9 [(cust_field).v_bool = false]; Telnet telnet = 10; Equalizer equalizer = 11; }