/* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Ola.proto * Defines the protocol buffers used to talk to olad * Copyright (C) 2005 - 2008 Simon Newton */ package ola.proto; enum RegisterAction { REGISTER = 1; UNREGISTER = 2; } enum PatchAction { PATCH = 1; UNPATCH = 2; } enum MergeMode { HTP = 1; LTP = 2; } enum PluginIds { OLA_PLUGIN_ALL = 0; OLA_PLUGIN_DUMMY = 1; OLA_PLUGIN_ARTNET = 2; OLA_PLUGIN_SHOWNET = 3; OLA_PLUGIN_ESPNET = 4; OLA_PLUGIN_USBPRO = 5; OLA_PLUGIN_OPENDMX = 6; OLA_PLUGIN_SANDNET = 7; OLA_PLUGIN_STAGEPROFI = 8; OLA_PLUGIN_PATHPORT = 9; OLA_PLUGIN_DMX4LINUX = 10; OLA_PLUGIN_E131 = 11; OLA_PLUGIN_USBDMX = 12; } // This is a special string which indicates that no response will be received // for an RPC. message STREAMING_NO_RESPONSE {} // Generic Ack Message message Ack {} // request the list of available plugins message PluginListRequest {} message PluginInfo { required int32 plugin_id = 1; required string name = 2; } message PluginListReply { repeated PluginInfo plugin = 1; } // request the description for a plugin message PluginDescriptionRequest { required int32 plugin_id = 1; } message PluginDescriptionReply { required string name = 1; required string description = 2; } // request info on a device message DeviceInfoRequest { optional int32 plugin_id = 1; } message PortInfo { required int32 port_id = 1; required int32 priority_capability = 2; required string description = 5; optional int32 universe = 3; optional bool active = 4; optional int32 priority_mode = 6; optional int32 priority = 7; } message DeviceInfo { required int32 device_alias = 1; required int32 plugin_id = 2; required string device_name = 3; repeated PortInfo input_port = 4; repeated PortInfo output_port = 5; required string device_id = 6; } message DeviceInfoReply { repeated DeviceInfo device = 1; } message DmxData { required int32 universe = 1; required bytes data = 2; optional int32 priority = 3; } message RegisterDmxRequest { required int32 universe = 1; required RegisterAction action = 2; } message PatchPortRequest { required int32 universe = 1; required int32 device_alias = 2; required int32 port_id = 3; required PatchAction action = 4; required bool is_output = 5; } message UniverseNameRequest { required int32 universe = 1; required string name = 2; } message MergeModeRequest { required int32 universe = 1; required MergeMode merge_mode = 2; } // request info about a universe message OptionalUniverseRequest { optional int32 universe = 1; } message UniverseInfo { required int32 universe = 1; required string name = 2; required MergeMode merge_mode = 3; required int32 input_port_count = 4; required int32 output_port_count = 5; required int32 rdm_devices = 6; } message UniverseInfoReply { repeated UniverseInfo universe = 1; } message PortPriorityRequest { required int32 device_alias = 1; required bool is_output = 2; required int32 port_id = 3; required int32 priority_mode = 4; optional int32 priority = 5; } // a device config request message DeviceConfigRequest { required int32 device_alias = 1; required bytes data = 2; } message DeviceConfigReply { required bytes data = 1; } // RDM Messages // This represents a UID message UID { required int32 esta_id = 1; // only lower 2 bytes are used required fixed32 device_id = 2; } // Request the UID list for a universe message UniverseRequest { required int32 universe = 1; } message UIDListReply { required int32 universe = 1; repeated UID uid = 2; } message RDMRequest { required int32 universe = 1; required UID uid = 2; required int32 sub_device = 3; required int32 param_id = 4; required bytes data = 5; // 0 - 231 bytes required bool is_set = 6; } message RDMResponse { required bool was_broadcast = 1; required uint32 response_code = 2; required uint32 message_count = 3; required bytes data = 4; // 0 - 231 bytes } // Services // RPCs handled by the OLA Server service OlaServerService { rpc GetPlugins (PluginListRequest) returns (PluginListReply); rpc GetPluginDescription (PluginDescriptionRequest) returns (PluginDescriptionReply); rpc GetDeviceInfo (DeviceInfoRequest) returns (DeviceInfoReply); rpc GetCandidatePorts (OptionalUniverseRequest) returns (DeviceInfoReply); rpc ConfigureDevice (DeviceConfigRequest) returns (DeviceConfigReply); rpc SetPortPriority (PortPriorityRequest) returns (Ack); rpc GetUniverseInfo (OptionalUniverseRequest) returns (UniverseInfoReply); rpc SetUniverseName (UniverseNameRequest) returns (Ack); rpc SetMergeMode (MergeModeRequest) returns (Ack); rpc PatchPort (PatchPortRequest) returns (Ack); rpc RegisterForDmx (RegisterDmxRequest) returns (Ack); rpc UpdateDmxData (DmxData) returns (Ack); rpc GetDmx (UniverseRequest) returns (DmxData); rpc GetUIDs (UniverseRequest) returns (UIDListReply); rpc ForceDiscovery (UniverseRequest) returns (Ack); rpc SetSourceUID (UID) returns (Ack); rpc RDMCommand (RDMRequest) returns (RDMResponse); rpc StreamDmxData (DmxData) returns (STREAMING_NO_RESPONSE); } // RPCs handled by the OLA Client service OlaClientService { rpc UpdateDmxData (DmxData) returns (Ack); }