diff --git a/proposal/other_devices_support/proposal.md b/proposal/other_devices_support/proposal.md new file mode 100644 index 00000000..8c4fb62c --- /dev/null +++ b/proposal/other_devices_support/proposal.md @@ -0,0 +1,157 @@ +# Support for non-lighting fixtures + +## Linked Issue + +https://github.com/mvrdevelopment/spec/issues/318 + +# Problem + +DMX Modes - DMX Mode is currently required for all devices, including Trusses, Power distros, Audio, Cables. + +## General information + +Currently, the DMX Mode is the entry point into the GDTF fixture type. If a +Speaker needs to be selected via MVR, then it is would currently be selected +via "DMX Mode" (GDTF Mode in MVR). + +# Proposals + +1. Keep it as it is and define the specific MVR properties in the objects - for example length in Cable: + +In GDTF, the cable definition provides information about possible cable lengths, in MVR, the length a field on the instance of the cable: + +```xml + + + + + + + ... +``` + +In MVR, define Length: + +```xml + + +``` + +Pros: + - full backwards compatibility + - easy addition to existing software +Cons: + - In GDTF, the DMX Mode must exist and link to the root geometry of the geometry tree. + - In MVR, the GDTFMode must be set, pointing to the DMX Mode + +In MVR, Fixure, Truss, Support, Video screen, and Projector already exist, other specific objects like Cable, Speaker, Amplifier... can be added. + + +2. In GDTF, Define specific modes for each MVR object type. Keep only the Geometry link there: + +```xml + + + + + + + + + + + + + + + + + + + + + + + ... + /> +``` + +MVR: +```xml + + +``` +Cable: +GDTF: for device types primarily cables: CableModes - CableMode, MVR: Cable: CableMode, Length + +Speaker: +GDTF: for devices primarly Speaker - SpeakerModes - SpeakerMode +MVR: Speaker - SpeakerMode + + + + + +3. as #2, but also define generic "DeviceModes - DeviceMode" for non specific devices. + +4. Define attributes of the specific object types into "DMX Mode" (for example cable length). + +```xml + + + + + + + ... +``` +In MVR, define Length: + +```xml + + +``` + +5. Define new objects and specify properties/geometries that can be assigned: + +For example: + + + + + + +Cons: + - we would need to define "common" geometries and all other "shared" parts for combination devices