// Protobufs for objects that represent runtime status, and are // exchanged between processes over GRPC. syntax = "proto3"; package autoradio; //import "google/protobuf/empty.proto"; message IcecastMount { string path = 1; int32 listeners = 2; int32 bit_rate = 3; int32 sample_rate = 4; float quality = 5; int32 channels = 6; string artist = 7; string title = 8; string name = 9; string description = 10; } message Status { string name = 1; uint64 timestamp = 2; bool icecast_ok = 3; repeated IcecastMount icecast_mounts = 4; int32 cur_bandwidth = 5; int32 max_bandwidth = 6; int32 max_listeners = 7; int32 num_listeners = 8; } // The GossipService is used by frontends to exchange NodeStatus // between themselves with a gossip-like protocol. service GossipService { rpc Exchange(ExchangeRequest) returns (ExchangeResponse) {} } message ExchangeRequest { repeated Status nodes = 1; } message ExchangeResponse { repeated Status nodes = 1; }