Umsci
Upmix Spatial Control Interface — OCA/OCP.1 spatial audio utility
Loading...
Searching...
No Matches
DeviceController::RemoteObject Struct Reference

A fully-qualified remote parameter including its type, address, and current value. More...

#include <DeviceController.h>

+ Collaboration diagram for DeviceController::RemoteObject:

Public Types

enum  RemObjIdent {
  HeartbeatPing = 0 ,
  HeartbeatPong ,
  Invalid ,
  Fixed_GUID ,
  Settings_DeviceName ,
  Status_StatusText ,
  Status_AudioNetworkSampleStatus ,
  Error_GnrlErr ,
  Error_ErrorText ,
  MatrixInput_Mute ,
  MatrixInput_Gain ,
  MatrixInput_Delay ,
  MatrixInput_DelayEnable ,
  MatrixInput_EqEnable ,
  MatrixInput_Polarity ,
  MatrixInput_ChannelName ,
  MatrixInput_LevelMeterPreMute ,
  MatrixInput_LevelMeterPostMute ,
  MatrixInput_ReverbSendGain ,
  MatrixNode_Enable ,
  MatrixNode_Gain ,
  MatrixNode_DelayEnable ,
  MatrixNode_Delay ,
  MatrixOutput_Mute ,
  MatrixOutput_Gain ,
  MatrixOutput_Delay ,
  MatrixOutput_DelayEnable ,
  MatrixOutput_EqEnable ,
  MatrixOutput_Polarity ,
  MatrixOutput_ChannelName ,
  MatrixOutput_LevelMeterPreMute ,
  MatrixOutput_LevelMeterPostMute ,
  Positioning_SourceSpread ,
  Positioning_SourceDelayMode ,
  Positioning_SourcePosition_XY ,
  Positioning_SourcePosition_X ,
  Positioning_SourcePosition_Y ,
  Positioning_SourcePosition ,
  CoordinateMapping_SourcePosition_XY ,
  CoordinateMapping_SourcePosition_X ,
  CoordinateMapping_SourcePosition_Y ,
  CoordinateMapping_SourcePosition ,
  MatrixSettings_ReverbRoomId ,
  MatrixSettings_ReverbPredelayFactor ,
  MatrixSettings_ReverbRearLevel ,
  FunctionGroup_Name ,
  FunctionGroup_Delay ,
  FunctionGroup_SpreadFactor ,
  ReverbInput_Gain ,
  ReverbInputProcessing_Mute ,
  ReverbInputProcessing_Gain ,
  ReverbInputProcessing_EqEnable ,
  ReverbInputProcessing_LevelMeter ,
  Scene_SceneIndex ,
  Scene_SceneName ,
  Scene_SceneComment ,
  Scene_Previous ,
  Scene_Next ,
  Scene_Recall ,
  CoordinateMappingSettings_P1real ,
  CoordinateMappingSettings_P2real ,
  CoordinateMappingSettings_P3real ,
  CoordinateMappingSettings_P4real ,
  CoordinateMappingSettings_P1virtual ,
  CoordinateMappingSettings_P3virtual ,
  CoordinateMappingSettings_Flip ,
  CoordinateMappingSettings_Name ,
  Positioning_SpeakerPosition ,
  SoundObjectRouting_Mute ,
  SoundObjectRouting_Gain ,
  Device_Clear ,
  InvalidMAX
}
 Enumerates every controllable or monitorable parameter on the DS100. More...
 

Public Member Functions

 RemoteObject ()
 
 RemoteObject (const RemoteObject &rhs)
 
 RemoteObject (RemObjIdent id, RemObjAddr addr, NanoOcp1::Variant v)
 
bool operator== (const RemoteObject &other) const
 
bool operator!= (const RemoteObject &other) const
 
bool operator< (const RemoteObject &other) const
 
bool operator> (const RemoteObject &other) const
 
RemoteObjectoperator= (const RemoteObject &other)
 

Static Public Member Functions

static juce::String GetObjectDescription (const RemObjIdent roi)
 

Public Attributes

RemObjIdent Id
 
RemObjAddr Addr
 
NanoOcp1::Variant Var
 

Detailed Description

A fully-qualified remote parameter including its type, address, and current value.

RemoteObject is the currency that flows between DeviceController and the rest of Umsci. It bundles together:

  • Idwhat parameter (RemObjIdent enum),
  • Addrwhich channel/record it belongs to (RemObjAddr),
  • Var — the current value as a type-erased NanoOcp1::Variant.

Callers receive RemoteObjects via the onRemoteObjectReceived callback and send them via SetObjectValue().

Definition at line 303 of file DeviceController.h.

Member Enumeration Documentation

◆ RemObjIdent

Enumerates every controllable or monitorable parameter on the DS100.

The identifiers roughly mirror the OCA object tree on the device. Objects in the Matrix* family map to the DS100's internal audio matrix. Objects in the Positioning_* family control/report spatial attributes of sound objects and loudspeakers. Objects in the CoordinateMapping_* family deal with virtual-to-real mapping.

Special IDs:

  • HeartbeatPing/Pong — used by OSC-based protocols, not by OCP.1.
  • Fixed_GUID — read-only string; queried first on every connection to determine the device model and firmware OCA revision before subscribing to any other objects (see ProcessGuidAndSubscribe()).

Parameter families at a glance:

  • MatrixInput_* — properties of a DS100 matrix input channel (sound object channel): mute, gain, delay, EQ enable, polarity, name, level meters, reverb send gain.
  • MatrixOutput_* — same properties on the output side (loudspeaker channel).
  • MatrixNode_* — cross-point properties of the routing matrix (input × output): enable, gain, delay, delay enable.
  • Positioning_Source* — En-Scene sound-object spatial attributes: absolute XYZ position, spread (0 = point source, 1 = full spread), delay mode (off / compensate / reflect).
  • Positioning_SpeakerPosition — fixed loudspeaker 6-DOF position reported by the DS100 (X, Y, Z + orientation angles); read-only from the device.
  • CoordinateMapping_* — En-Scene sound-object positions in mapped (virtual) coordinates for each of the four mapping areas.
  • CoordinateMappingSettings_* — the corner-point pairs (P1–P4 real, P1/P3 virtual) that define each mapping area's transform, plus its name and flip flag.
  • MatrixSettings_* — global En-Space reverb settings: room ID, pre-delay factor, rear level.
  • ReverbInput_Gain — per-sound-object send gain into an En-Space zone.
  • ReverbInputProcessing_* — per En-Space zone properties: mute, gain, EQ enable, level meter.
  • FunctionGroup_* — properties of a function group (logical loudspeaker set): name, delay, spread factor.
  • SoundObjectRouting_* — per-sound-object routing into a function group: mute, gain.
  • Scene_* — scene management: current index, name, comment, and the previous/next/recall action commands.
  • Settings_DeviceName / Status_* / Error_* — device-level metadata.
Note
[MANUAL CONTEXT NEEDED] A table mapping each identifier to its exact OCA class name, ONo, and value units/range would help when debugging raw OCA traffic. This information is in Ocp1DS100ObjectDefinitions.h.
Enumerator
HeartbeatPing 

Hearbeat request (OSC-exclusive) without data content.

HeartbeatPong 

Hearbeat answer (OSC-exclusive) without data content.

Invalid 

Invalid remote object id. This is not the first value to allow iteration over enum starting here (e.g. to not show the user the internal-only ping/pong).

Fixed_GUID 

Read-only 8-char device GUID; queried before any subscriptions.

Settings_DeviceName 
Status_StatusText 
Status_AudioNetworkSampleStatus 
Error_GnrlErr 
Error_ErrorText 
MatrixInput_Mute 
MatrixInput_Gain 
MatrixInput_Delay 
MatrixInput_DelayEnable 
MatrixInput_EqEnable 
MatrixInput_Polarity 
MatrixInput_ChannelName 
MatrixInput_LevelMeterPreMute 
MatrixInput_LevelMeterPostMute 
MatrixInput_ReverbSendGain 

reverbsendgain remote object id.

MatrixNode_Enable 
MatrixNode_Gain 
MatrixNode_DelayEnable 
MatrixNode_Delay 
MatrixOutput_Mute 
MatrixOutput_Gain 
MatrixOutput_Delay 
MatrixOutput_DelayEnable 
MatrixOutput_EqEnable 
MatrixOutput_Polarity 
MatrixOutput_ChannelName 
MatrixOutput_LevelMeterPreMute 
MatrixOutput_LevelMeterPostMute 
Positioning_SourceSpread 

spread remote object id.

Positioning_SourceDelayMode 

delaymode remote object id.

Positioning_SourcePosition_XY 
Positioning_SourcePosition_X 
Positioning_SourcePosition_Y 
Positioning_SourcePosition 
CoordinateMapping_SourcePosition_XY 

combined xy position remote object id.

CoordinateMapping_SourcePosition_X 

x position remote object id.

CoordinateMapping_SourcePosition_Y 

y position remote object id.

CoordinateMapping_SourcePosition 

combined xyz position remote object id.

MatrixSettings_ReverbRoomId 
MatrixSettings_ReverbPredelayFactor 
MatrixSettings_ReverbRearLevel 
FunctionGroup_Name 
FunctionGroup_Delay 
FunctionGroup_SpreadFactor 
ReverbInput_Gain 
ReverbInputProcessing_Mute 
ReverbInputProcessing_Gain 
ReverbInputProcessing_EqEnable 
ReverbInputProcessing_LevelMeter 
Scene_SceneIndex 
Scene_SceneName 
Scene_SceneComment 
Scene_Previous 
Scene_Next 
Scene_Recall 
CoordinateMappingSettings_P1real 
CoordinateMappingSettings_P2real 
CoordinateMappingSettings_P3real 
CoordinateMappingSettings_P4real 
CoordinateMappingSettings_P1virtual 
CoordinateMappingSettings_P3virtual 
CoordinateMappingSettings_Flip 
CoordinateMappingSettings_Name 
Positioning_SpeakerPosition 
SoundObjectRouting_Mute 
SoundObjectRouting_Gain 
Device_Clear 
InvalidMAX 

Definition at line 353 of file DeviceController.h.

Constructor & Destructor Documentation

◆ RemoteObject() [1/3]

DeviceController::RemoteObject::RemoteObject ( )
inline

Definition at line 435 of file DeviceController.h.

◆ RemoteObject() [2/3]

DeviceController::RemoteObject::RemoteObject ( const RemoteObject rhs)
inline

Definition at line 438 of file DeviceController.h.

◆ RemoteObject() [3/3]

DeviceController::RemoteObject::RemoteObject ( RemObjIdent  id,
RemObjAddr  addr,
NanoOcp1::Variant  v 
)
inline

Definition at line 442 of file DeviceController.h.

Member Function Documentation

◆ GetObjectDescription()

static juce::String DeviceController::RemoteObject::GetObjectDescription ( const RemObjIdent  roi)
inlinestatic

Definition at line 474 of file DeviceController.h.

References CoordinateMapping_SourcePosition, CoordinateMapping_SourcePosition_X, CoordinateMapping_SourcePosition_XY, CoordinateMapping_SourcePosition_Y, CoordinateMappingSettings_Flip, CoordinateMappingSettings_Name, CoordinateMappingSettings_P1real, CoordinateMappingSettings_P1virtual, CoordinateMappingSettings_P2real, CoordinateMappingSettings_P3real, CoordinateMappingSettings_P3virtual, CoordinateMappingSettings_P4real, Device_Clear, Error_ErrorText, Error_GnrlErr, Fixed_GUID, FunctionGroup_Delay, FunctionGroup_Name, FunctionGroup_SpreadFactor, HeartbeatPing, HeartbeatPong, Invalid, MatrixInput_ChannelName, MatrixInput_Delay, MatrixInput_DelayEnable, MatrixInput_EqEnable, MatrixInput_Gain, MatrixInput_LevelMeterPostMute, MatrixInput_LevelMeterPreMute, MatrixInput_Mute, MatrixInput_Polarity, MatrixInput_ReverbSendGain, MatrixNode_Delay, MatrixNode_DelayEnable, MatrixNode_Enable, MatrixNode_Gain, MatrixOutput_ChannelName, MatrixOutput_Delay, MatrixOutput_DelayEnable, MatrixOutput_EqEnable, MatrixOutput_Gain, MatrixOutput_LevelMeterPostMute, MatrixOutput_LevelMeterPreMute, MatrixOutput_Mute, MatrixOutput_Polarity, MatrixSettings_ReverbPredelayFactor, MatrixSettings_ReverbRearLevel, MatrixSettings_ReverbRoomId, Positioning_SourceDelayMode, Positioning_SourcePosition, Positioning_SourcePosition_X, Positioning_SourcePosition_XY, Positioning_SourcePosition_Y, Positioning_SourceSpread, Positioning_SpeakerPosition, ReverbInput_Gain, ReverbInputProcessing_EqEnable, ReverbInputProcessing_Gain, ReverbInputProcessing_LevelMeter, ReverbInputProcessing_Mute, Scene_Next, Scene_Previous, Scene_Recall, Scene_SceneComment, Scene_SceneIndex, Scene_SceneName, Settings_DeviceName, SoundObjectRouting_Gain, SoundObjectRouting_Mute, Status_AudioNetworkSampleStatus, and Status_StatusText.

Referenced by DeviceController::SetObjectValue().

◆ operator!=()

bool DeviceController::RemoteObject::operator!= ( const RemoteObject other) const
inline

Definition at line 450 of file DeviceController.h.

◆ operator<()

bool DeviceController::RemoteObject::operator< ( const RemoteObject other) const
inline

Definition at line 454 of file DeviceController.h.

◆ operator=()

RemoteObject & DeviceController::RemoteObject::operator= ( const RemoteObject other)
inline

Definition at line 462 of file DeviceController.h.

References Addr, Id, and Var.

◆ operator==()

bool DeviceController::RemoteObject::operator== ( const RemoteObject other) const
inline

Definition at line 446 of file DeviceController.h.

References Addr, Id, and Var.

◆ operator>()

bool DeviceController::RemoteObject::operator> ( const RemoteObject other) const
inline

Definition at line 458 of file DeviceController.h.

References Addr, and Id.

Member Data Documentation

◆ Addr

RemObjAddr DeviceController::RemoteObject::Addr

◆ Id

RemObjIdent DeviceController::RemoteObject::Id

◆ Var

NanoOcp1::Variant DeviceController::RemoteObject::Var

Definition at line 433 of file DeviceController.h.

Referenced by operator=(), operator==(), and DeviceController::SetObjectValue().


The documentation for this struct was generated from the following file: