|
NanoOcp
Minimal AES70 / OCP.1 TCP client/server library for d&b Soundscape devices
|
Parameter bundle that fully describes one OCA controllable property. More...
#include <Ocp1Message.h>
Inherited by NanoOcp1::Amp5D::dbOcaObjectDef_ChStatus_Gr, NanoOcp1::Amp5D::dbOcaObjectDef_ChStatus_GrHead, NanoOcp1::Amp5D::dbOcaObjectDef_ChStatus_Isp, NanoOcp1::Amp5D::dbOcaObjectDef_ChStatus_Ovl, NanoOcp1::Amp5D::dbOcaObjectDef_Settings_PwrOn, NanoOcp1::AmpDx::dbOcaObjectDef_ChStatus_GrHead, NanoOcp1::AmpDxDy::dbOcaObjectDef_ChStatus_Gr, NanoOcp1::AmpDxDy::dbOcaObjectDef_ChStatus_Isp, NanoOcp1::AmpDxDy::dbOcaObjectDef_ChStatus_Ovl, NanoOcp1::AmpDxDy::dbOcaObjectDef_Settings_PwrOn, NanoOcp1::AmpDy::dbOcaObjectDef_ChStatus_GrHead, NanoOcp1::AmpGeneric::dbOcaObjectDef_Config_Mute, NanoOcp1::AmpGeneric::dbOcaObjectDef_Config_PotiLevel, NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds, NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_Flip, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_Name, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_P1_real, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_P1_virtual, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_P2_real, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_P3_real, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_P3_virtual, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_P4_real, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMappingSettings_Type, NanoOcp1::DS100::dbOcaObjectDef_CoordinateMapping_Source_Position, NanoOcp1::DS100::dbOcaObjectDef_Error_ErrorText, NanoOcp1::DS100::dbOcaObjectDef_Error_GnrlErr, NanoOcp1::DS100::dbOcaObjectDef_Fixed_GUID, NanoOcp1::DS100::dbOcaObjectDef_Fixed_HardwareVariant, NanoOcp1::DS100::dbOcaObjectDef_Fixed_SerNr, NanoOcp1::DS100::dbOcaObjectDef_FunctionGroup_Delay, NanoOcp1::DS100::dbOcaObjectDef_FunctionGroup_Name, NanoOcp1::DS100::dbOcaObjectDef_FunctionGroup_SpreadFactor, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_ChannelName, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_Delay, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_DelayEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_EqEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_Gain, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_ISP, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_LevelMeterIn, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_LevelMeterPostMute, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_LevelMeterPreMute, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_Mute, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_Polarity, NanoOcp1::DS100::dbOcaObjectDef_MatrixInput_ReverbSendGain, NanoOcp1::DS100::dbOcaObjectDef_MatrixNode_Delay, NanoOcp1::DS100::dbOcaObjectDef_MatrixNode_DelayEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixNode_Enable, NanoOcp1::DS100::dbOcaObjectDef_MatrixNode_Gain, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_ChannelName, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_Delay, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_DelayEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_EqEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_Gain, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_LevelMeterIn, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_LevelMeterPostMute, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_LevelMeterPreMute, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_Mute, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_OSP, NanoOcp1::DS100::dbOcaObjectDef_MatrixOutput_Polarity, NanoOcp1::DS100::dbOcaObjectDef_MatrixSettings_PositioningEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixSettings_ReverbEnable, NanoOcp1::DS100::dbOcaObjectDef_MatrixSettings_ReverbPredelayFactor, NanoOcp1::DS100::dbOcaObjectDef_MatrixSettings_ReverbRearLevel, NanoOcp1::DS100::dbOcaObjectDef_MatrixSettings_ReverbRoomId, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Source_DelayMode, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Source_Enable, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Source_Position, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Source_Speaker_Group, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Source_Speaker_Position, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Source_Spread, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Speaker_Group, NanoOcp1::DS100::dbOcaObjectDef_Positioning_Speaker_Position, NanoOcp1::DS100::dbOcaObjectDef_ReverbInputProcessing_EqEnable, NanoOcp1::DS100::dbOcaObjectDef_ReverbInputProcessing_Gain, NanoOcp1::DS100::dbOcaObjectDef_ReverbInputProcessing_LevelMeter, NanoOcp1::DS100::dbOcaObjectDef_ReverbInputProcessing_Mute, NanoOcp1::DS100::dbOcaObjectDef_ReverbInput_Gain, NanoOcp1::DS100::dbOcaObjectDef_SceneAgent, NanoOcp1::DS100::dbOcaObjectDef_Scene_SceneComment, NanoOcp1::DS100::dbOcaObjectDef_Scene_SceneIndex, NanoOcp1::DS100::dbOcaObjectDef_Scene_SceneName, NanoOcp1::DS100::dbOcaObjectDef_Settings_DeviceName, NanoOcp1::DS100::dbOcaObjectDef_SoundObjectRouting_Gain, NanoOcp1::DS100::dbOcaObjectDef_SoundObjectRouting_Mute, NanoOcp1::DS100::dbOcaObjectDef_Status_AudioNetworkSampleStatus, and NanoOcp1::DS100::dbOcaObjectDef_Status_StatusText.
Public Member Functions | |
| Ocp1CommandDefinition () | |
| Ocp1CommandDefinition (std::uint32_t targetOno, std::uint16_t propertyType, std::uint16_t propertyDefLevel, std::uint16_t propertyIndex, std::uint8_t paramCount=static_cast< std::uint8_t >(0), const ByteVector ¶meterData=std::vector< std::uint8_t >()) | |
| virtual | ~Ocp1CommandDefinition ()=default |
| virtual Ocp1CommandDefinition | AddSubscriptionCommand () const |
| virtual Ocp1CommandDefinition | RemoveSubscriptionCommand () const |
| virtual Ocp1CommandDefinition | GetValueCommand () const |
| virtual Ocp1CommandDefinition | SetValueCommand (const Variant &newValue) const |
| virtual Ocp1CommandDefinition * | Clone () const |
| Ocp1DataType | GetDataType () const |
Public Attributes | |
| std::uint32_t | m_targetOno |
| std::uint16_t | m_propertyType |
| std::uint16_t | m_propertyDefLevel |
| std::uint16_t | m_propertyIndex |
| std::uint8_t | m_paramCount |
| ByteVector | m_parameterData |
Parameter bundle that fully describes one OCA controllable property.
Every OCA property on a device is identified by three coordinates in the AES70 class hierarchy:
DefLevel_OcaGain = 4 for gain properties defined at the OcaGain class).1 = Prop_Gain).Ocp1CommandDefinition stores these plus the data type and any fixed parameter bytes, so that the four factory methods (AddSubscriptionCommand(), RemoveSubscriptionCommand(), GetValueCommand(), SetValueCommand()) can produce ready-to-send Ocp1CommandResponseRequired objects without the caller having to manually build the binary parameter data.
Each controllable parameter on each device type has a dedicated struct in Ocp1ObjectDefinitions.h and Ocp1DS100ObjectDefinitions.h, e.g.:
DeviceController::CreateKnownONosMap() pre-constructs one Ocp1CommandDefinition per (RemObjIdent, channel/record address) pair, keyed by ONo. The reverse map (ONo → RemObjIdent) allows incoming Notifications and Responses to be matched back to logical parameter names without a linear search.
Definition at line 71 of file Ocp1Message.h.
|
inline |
Standard struct constructor.
Definition at line 76 of file Ocp1Message.h.
Referenced by AddSubscriptionCommand(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::ApplyCommand(), Clone(), GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames::GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds::GetValueCommand(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::NextCommand(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::PreviousCommand(), RemoveSubscriptionCommand(), and SetValueCommand().
|
inline |
Parameterized struct constructor.
Definition at line 88 of file Ocp1Message.h.
|
virtualdefault |
Struct destructor.
|
virtual |
Generates a Ocp1CommandDefinition for a typical AddSubscription command. Can be overriden for custom object AddSubscription commands.
Definition at line 36 of file Ocp1Message.cpp.
References NanoOcp1::DataFromOnoForSubscription(), m_propertyType, m_targetOno, and Ocp1CommandDefinition().
|
virtual |
Clone this object. To prevent slicing, this method must be overriden whenever new members or methods are added to a subclass.
Reimplemented in NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames, NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds, and NanoOcp1::DS100::dbOcaObjectDef_SceneAgent.
Definition at line 78 of file Ocp1Message.cpp.
References Ocp1CommandDefinition().
|
inline |
Convenience getter method for the Ocp1CommandDefinition's type.
Definition at line 153 of file Ocp1Message.h.
References m_propertyType.
Referenced by SetValueCommand().
|
virtual |
Generates a Ocp1CommandDefinition for a typical GetValue command (methodIndex 1). Can be overriden for custom object GetValue commands.
Reimplemented in NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames, and NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds.
Definition at line 56 of file Ocp1Message.cpp.
References m_propertyDefLevel, m_propertyType, m_targetOno, and Ocp1CommandDefinition().
|
virtual |
Generates a Ocp1CommandDefinition for a typical Removeubscription command. Can be overriden for custom object RemoveSubscription commands.
Definition at line 46 of file Ocp1Message.cpp.
References NanoOcp1::DataFromOnoForSubscription(), m_propertyType, m_targetOno, and Ocp1CommandDefinition().
|
virtual |
Generates a Ocp1CommandDefinition for a typical SetValue command (methodIndex 2). Can be overriden for custom object SetValue commands.
Definition at line 66 of file Ocp1Message.cpp.
References GetDataType(), m_propertyDefLevel, m_propertyType, m_targetOno, Ocp1CommandDefinition(), and NanoOcp1::Variant::ToParamData().
| std::uint8_t NanoOcp1::Ocp1CommandDefinition::m_paramCount |
Definition at line 163 of file Ocp1Message.h.
| ByteVector NanoOcp1::Ocp1CommandDefinition::m_parameterData |
Definition at line 164 of file Ocp1Message.h.
| std::uint16_t NanoOcp1::Ocp1CommandDefinition::m_propertyDefLevel |
Definition at line 161 of file Ocp1Message.h.
Referenced by NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::ApplyCommand(), GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames::GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds::GetValueCommand(), NanoOcp1::Ocp1Notification::MatchesObject(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::NextCommand(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::PreviousCommand(), and SetValueCommand().
| std::uint16_t NanoOcp1::Ocp1CommandDefinition::m_propertyIndex |
Definition at line 162 of file Ocp1Message.h.
Referenced by NanoOcp1::Ocp1Notification::MatchesObject().
| std::uint16_t NanoOcp1::Ocp1CommandDefinition::m_propertyType |
Definition at line 160 of file Ocp1Message.h.
Referenced by AddSubscriptionCommand(), GetDataType(), GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames::GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds::GetValueCommand(), RemoveSubscriptionCommand(), and SetValueCommand().
| std::uint32_t NanoOcp1::Ocp1CommandDefinition::m_targetOno |
Definition at line 159 of file Ocp1Message.h.
Referenced by AddSubscriptionCommand(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::ApplyCommand(), GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdNames::GetValueCommand(), NanoOcp1::DS100::dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds::GetValueCommand(), NanoOcp1::Ocp1Notification::MatchesObject(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::NextCommand(), NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::PreviousCommand(), RemoveSubscriptionCommand(), and SetValueCommand().