NanoOcp
Minimal AES70 / OCP.1 TCP client/server library for d&b Soundscape devices
Loading...
Searching...
No Matches
Ocp1DS100ObjectDefinitions.h
Go to the documentation of this file.
1/* Copyright (c) 2023, Christian Ahrens
2 *
3 * This file is part of NanoOcp <https://github.com/ChristianAhrens/NanoOcp>
4 *
5 * This library is free software; you can redistribute it and/or modify it under
6 * the terms of the GNU Lesser General Public License version 3.0 as published
7 * by the Free Software Foundation.
8 *
9 * This library is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 * details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19#pragma once
20
22
23
24namespace NanoOcp1
25{
26
94//==============================================================================
95namespace DS100
96{
97
98// ─── Device identity (Fixed box) ──────────────────────────────────────────────
99static constexpr BoxAndObjNo Fixed_Box = 0x00;
100static constexpr BoxAndObjNo Fixed_HardwareVariant = 0x02;
101static constexpr BoxAndObjNo Fixed_SerNr = 0x0a;
102static constexpr BoxAndObjNo Fixed_GUID = 0x0f;
103
104// ─── Device settings ──────────────────────────────────────────────────────────
105static constexpr BoxAndObjNo Settings_Box = 0x01;
106static constexpr BoxAndObjNo Settings_DeviceName = 0x0d;
107
108// ─── Status ───────────────────────────────────────────────────────────────────
109static constexpr BoxAndObjNo Status_Box = 0x03;
110static constexpr BoxAndObjNo Status_StatusText = 0x03;
112
113// ─── Error ────────────────────────────────────────────────────────────────────
114static constexpr BoxAndObjNo Error_Box = 0x04;
115static constexpr BoxAndObjNo Error_GnrlErr = 0x01;
116static constexpr BoxAndObjNo Error_ErrorText = 0x03;
117
118// ─── Matrix settings (global En-Scene / En-Space) ────────────────────────────
119static constexpr BoxAndObjNo MatrixSettings_Box = 0x02;
125
126// ─── Coordinate mapping settings (corner points for mapping areas 1–4) ───────
137
138// ─── Coordinate mapping (per-source positions in virtual space) ───────────────
139static constexpr BoxAndObjNo CoordinateMapping_Box = 0x16;
141
142// ─── Matrix inputs (sound objects / En-Scene sources) ────────────────────────
143static constexpr BoxAndObjNo MatrixInput_Box = 0x05;
144static constexpr BoxAndObjNo MatrixInput_Mute = 0x01;
145static constexpr BoxAndObjNo MatrixInput_Gain = 0x02;
146static constexpr BoxAndObjNo MatrixInput_Delay = 0x03;
147static constexpr BoxAndObjNo MatrixInput_DelayEnable = 0x04;
148static constexpr BoxAndObjNo MatrixInput_EqEnable = 0x05;
149static constexpr BoxAndObjNo MatrixInput_Polarity = 0x06;
150static constexpr BoxAndObjNo MatrixInput_ChannelName = 0x07;
151static constexpr BoxAndObjNo MatrixInput_LevelMeterIn = 0x08;
154static constexpr BoxAndObjNo MatrixInput_ISP = 0x0b;
156
157// ─── Matrix nodes (crosspoints in the routing matrix) ─────────────────────────
158static constexpr BoxAndObjNo MatrixNode_Box = 0x07;
159static constexpr BoxAndObjNo MatrixNode_Enable = 0x01;
160static constexpr BoxAndObjNo MatrixNode_Gain = 0x02;
161static constexpr BoxAndObjNo MatrixNode_Delay = 0x03;
162static constexpr BoxAndObjNo MatrixNode_DelayEnable = 0x04;
163
164// ─── Matrix outputs ───────────────────────────────────────────────────────────
165static constexpr BoxAndObjNo MatrixOutput_Box = 0x08;
166static constexpr BoxAndObjNo MatrixOutput_Mute = 0x01;
167static constexpr BoxAndObjNo MatrixOutput_Gain = 0x02;
168static constexpr BoxAndObjNo MatrixOutput_Delay = 0x03;
169static constexpr BoxAndObjNo MatrixOutput_DelayEnable = 0x04;
170static constexpr BoxAndObjNo MatrixOutput_EqEnable = 0x05;
171static constexpr BoxAndObjNo MatrixOutput_Polarity = 0x06;
172static constexpr BoxAndObjNo MatrixOutput_ChannelName = 0x07;
173static constexpr BoxAndObjNo MatrixOutput_LevelMeterIn = 0x08;
176static constexpr BoxAndObjNo MatrixOutput_OSP = 0x0b;
177
178// ─── En-Scene source positioning ──────────────────────────────────────────────
179static constexpr BoxAndObjNo Positioning_Source_Box = 0x0d;
181static constexpr BoxAndObjNo Positioning_Source_Enable = 0x03;
182static constexpr BoxAndObjNo Positioning_Source_Spread = 0x04;
186
187// ─── Function groups (named loudspeaker groups) ───────────────────────────────
188static constexpr BoxAndObjNo FunctionGroup_Box = 0x0e;
189static constexpr BoxAndObjNo FunctionGroup_Name = 0x01;
190static constexpr BoxAndObjNo FunctionGroup_Delay = 0x02;
192
193// ─── En-Space reverb inputs ───────────────────────────────────────────────────
194static constexpr BoxAndObjNo ReverbInput_Box = 0x10;
195static constexpr BoxAndObjNo ReverbInput_Gain = 0x01;
196
197// ─── En-Space reverb input processing ────────────────────────────────────────
198static constexpr BoxAndObjNo ReverbInputProcessing_Box = 0x11;
203
204// ─── Scene management ─────────────────────────────────────────────────────────
205static constexpr BoxAndObjNo Scene_Box = 0x17;
206static constexpr BoxAndObjNo Scene_SceneIndex = 0x01;
207static constexpr BoxAndObjNo Scene_SceneName = 0x03;
208static constexpr BoxAndObjNo Scene_SceneComment = 0x04;
209
210// ─── Sound object routing (per function-group) ───────────────────────────────
211static constexpr BoxAndObjNo SoundObjectRouting_Box = 0x18;
212static constexpr BoxAndObjNo SoundObjectRouting_Mute = 0x01;
213static constexpr BoxAndObjNo SoundObjectRouting_Gain = 0x02;
214
215// ─── Loudspeaker positioning (stack 1+, firmware ≥ DB000CD0) ─────────────────
216static constexpr BoxAndObjNo Positioning_Speaker_Box = 0x1a;
217static constexpr BoxAndObjNo Positioning_Speaker_Group = 0x01;
219
220// ─── Scene agent ONo ──────────────────────────────────────────────────────────
229static constexpr std::uint32_t SceneAgentONo = 0x2714;
230
231
237{
239 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Fixed_Box, Fixed_HardwareVariant), // ONO of Fixed_HardwareVariant,
240 OCP1DATATYPE_INT32, // Value type
242 1) // Prop_Reading
243 {
244 }
245};
246
252{
254 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Fixed_Box, Fixed_SerNr), // ONO of Fixed_SerNr,
255 OCP1DATATYPE_STRING, // Value type
257 1) // Prop_Setting
258 {
259 }
260};
261
279{
281 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Fixed_Box, Fixed_GUID), // ONO of Fixed_GUID,
282 OCP1DATATYPE_STRING, // Value type
284 1) // Prop_Setting
285 {
286 }
287};
288
293{
295 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Settings_Box, Settings_DeviceName), // ONO of Settings_DeviceName,
296 OCP1DATATYPE_STRING, // Value type
298 1) // Prop_Setting
299 {
300 }
301};
302
307{
309 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Status_Box, Status_StatusText), // ONO of Status_StatusText,
310 OCP1DATATYPE_STRING, // Value type
312 1) // Prop_Setting
313 {
314 }
315};
316
321{
323 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Status_Box, Status_AudioNetworkSampleStatus), // ONO of Status_AudioNetworkSampleStatus,
324 OCP1DATATYPE_INT32, // Value type
326 1) // Prop_Reading
327 {
328 }
329};
330
335{
337 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Error_Box, Error_GnrlErr), // ONO of Error_GnrlErr,
338 OCP1DATATYPE_BOOLEAN, // Value type
340 1) // Prop_Reading
341 {
342 }
343};
344
349{
351 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Error_Box, Error_ErrorText), // ONO of Error_ErrorText,
352 OCP1DATATYPE_STRING, // Value type
354 1) // Prop_String
355 {
356 }
357};
358
363{
365 : Ocp1CommandDefinition(GetONoTy2(0x02, record, 0x00, CoordinateMappingSettings_Box, CoordinateMappingSettings_Name), // ONO of CoordinateMappingSettings_Name
366 OCP1DATATYPE_STRING, // Value type
368 1) // Prop_Setting
369 {
370 }
371};
372
377{
379 : Ocp1CommandDefinition(GetONoTy2(0x02, record, 0x00, CoordinateMappingSettings_Box, CoordinateMappingSettings_Type), // ONO of CoordinateMappingSettings_Type
380 OCP1DATATYPE_UINT16, // Value type
382 1) // Prop_Position
383 {
384 }
385};
386
391{
393 : Ocp1CommandDefinition(GetONoTy2(0x02, record, 0x00, CoordinateMappingSettings_Box, CoordinateMappingSettings_Flip), // ONO of CoordinateMappingSettings_Flip
394 OCP1DATATYPE_UINT16, // Value type
396 1) // Prop_Position
397 {
398 }
399};
400
414
428
442
456
470
484
501{
502 dbOcaObjectDef_CoordinateMapping_Source_Position(std::uint32_t record, std::uint32_t channel)
503 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, CoordinateMapping_Box, CoordinateMapping_Source_Position), // ONO of CoordinateMapping_Source_Position,
504 OCP1DATATYPE_DB_POSITION, // Value type
506 1) // Prop_Position
507 {
508 }
509};
510
540{
542 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Source_Box, Positioning_Source_Position), // ONO of Positioning_Source_Position
543 OCP1DATATYPE_DB_POSITION, // Value type
545 1) // Prop_Position
546 {
547 }
548};
549
554{
556 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Source_Box, Positioning_Source_Enable), // ONO of Positioning_Source_Enable
557 OCP1DATATYPE_UINT16, // Value type
559 1) // Prop_Position
560 {
561 }
562};
563
568{
570 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Source_Box, Positioning_Source_Spread), // ONO of Positioning_Source_Spread
571 OCP1DATATYPE_FLOAT32, // Value type
573 1) // Prop_Setting
574 {
575 }
576};
577
582{
584 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Source_Box, Positioning_Source_Speaker_Group), // ONO of Positioning_Source_Speaker_Group
585 OCP1DATATYPE_INT32, // Value type
587 1) // Prop_Setting
588 {
589 }
590};
591
611{
613 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Source_Box, Positioning_Source_Speaker_Position), // ONO of Positioning_Source_Speaker_Position
614 OCP1DATATYPE_DB_POSITION, // Value type
616 1) // Prop_Aiming_and_Position
617 {
618 }
619};
620
625{
627 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Source_Box, Positioning_Source_DelayMode), // ONO of Positioning_Source_DelayMode
628 OCP1DATATYPE_UINT16, // Value type
630 1) // Prop_Position
631 {
632 }
633};
634
635
640{
642 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, FunctionGroup_Box, FunctionGroup_Name), // ONO of FunctionGroup_Name
643 OCP1DATATYPE_STRING, // Value type
645 1) // Prop_Setting
646 {
647 }
648};
649
654{
656 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, FunctionGroup_Box, FunctionGroup_Delay), // ONO of FunctionGroup_Delay
657 OCP1DATATYPE_FLOAT32, // Value type
659 1) // Prop_Delay_Time
660 {
661 }
662};
663
668{
670 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, FunctionGroup_Box, FunctionGroup_SpreadFactor), // ONO of FunctionGroup_SpreadFactor
671 OCP1DATATYPE_FLOAT32, // Value type
673 1) // Prop_Setting
674 {
675 }
676};
677
683{
684 dbOcaObjectDef_MatrixInput_Mute(std::uint32_t channel)
685 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_Mute), // ONO of MatrixInput_Mute
686 OCP1DATATYPE_UINT8, // Value type
688 1) // Prop_Setting
689 {
690 }
691};
692
697{
698 dbOcaObjectDef_MatrixInput_Gain(std::uint32_t channel)
699 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_Gain), // ONO of MatrixInput_Gain
700 OCP1DATATYPE_FLOAT32, // Value type
702 1) // Prop_Gain
703 {
704 }
705};
706
711{
712 dbOcaObjectDef_MatrixInput_Delay(std::uint32_t channel)
713 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_Delay), // ONO of MatrixInput_Delay
714 OCP1DATATYPE_FLOAT32, // Value type
716 1) // Prop_Delay_Time
717 {
718 }
719};
720
725{
727 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_DelayEnable), // ONO of MatrixInput_DelayEnable
728 OCP1DATATYPE_UINT16, // Value type
730 1) // Prop_Position
731 {
732 }
733};
734
739{
741 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_EqEnable), // ONO of MatrixInput_EqEnable
742 OCP1DATATYPE_UINT16, // Value type
744 1) // Prop_Position
745 {
746 }
747};
748
753{
755 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_Polarity), // ONO of MatrixInput_Polarity
756 OCP1DATATYPE_UINT8, // Value type
758 1) // Prop_State
759 {
760 }
761};
762
767{
769 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_ChannelName), // ONO of MatrixInput_ChannelName
770 OCP1DATATYPE_STRING, // Value type
772 1) // Prop_Setting
773 {
774 }
775};
776
781{
783 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_LevelMeterIn), // ONO of MatrixInput_LevelMeterIn
784 OCP1DATATYPE_FLOAT32, // Value type
786 1) // Prop_Level
787 {
788 }
789};
790
795{
797 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_LevelMeterPreMute), // ONO of MatrixInput_LevelMeterPreMute
798 OCP1DATATYPE_FLOAT32, // Value type
800 1) // Prop_Level
801 {
802 }
803};
804
809{
811 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_LevelMeterPostMute), // ONO of MatrixInput_LevelMeterPostMute
812 OCP1DATATYPE_FLOAT32, // Value type
814 1) // Prop_Level
815 {
816 }
817};
818
823{
824 dbOcaObjectDef_MatrixInput_ISP(std::uint32_t channel)
825 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_ISP), // ONO of MatrixInput_ISP,
826 OCP1DATATYPE_BOOLEAN, // Value type
828 1) // Prop_Reading
829 {
830 }
831};
832
837{
839 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixInput_Box, MatrixInput_ReverbSendGain), // ONO of MatrixInput_ReverbSendGain
840 OCP1DATATYPE_FLOAT32, // Value type
842 1) // Prop_Gain
843 {
844 }
845};
846
851{
852 dbOcaObjectDef_MatrixNode_Enable(std::uint32_t record, std::uint32_t channel)
853 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, MatrixNode_Box, MatrixNode_Enable), // ONO of MatrixNode_Enable
854 OCP1DATATYPE_UINT16, // Value type
856 1) // Prop_Position
857 {
858 }
859};
860
865{
866 dbOcaObjectDef_MatrixNode_Gain(std::uint32_t record, std::uint32_t channel)
867 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, MatrixNode_Box, MatrixNode_Gain), // ONO of MatrixNode_Gain
868 OCP1DATATYPE_FLOAT32, // Value type
870 1) // Prop_Gain
871 {
872 }
873};
874
879{
880 dbOcaObjectDef_MatrixNode_Delay(std::uint32_t record, std::uint32_t channel)
881 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, MatrixNode_Box, MatrixNode_Delay), // ONO of MatrixNode_Delay
882 OCP1DATATYPE_FLOAT32, // Value type
884 1) // Prop_Delay_Time
885 {
886 }
887};
888
893{
894 dbOcaObjectDef_MatrixNode_DelayEnable(std::uint32_t record, std::uint32_t channel)
895 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, MatrixNode_Box, MatrixNode_DelayEnable), // ONO of MatrixNode_DelayEnable
896 OCP1DATATYPE_UINT16, // Value type
898 1) // Prop_Position
899 {
900 }
901};
902
908{
909 dbOcaObjectDef_MatrixOutput_Mute(std::uint32_t channel)
910 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_Mute), // ONO of MatrixOutput_Mute
911 OCP1DATATYPE_UINT8, // Value type
913 1) // Prop_Setting
914 {
915 }
916};
917
922{
923 dbOcaObjectDef_MatrixOutput_Gain(std::uint32_t channel)
924 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_Gain), // ONO of MatrixOutput_Gain
925 OCP1DATATYPE_FLOAT32, // Value type
927 1) // Prop_Gain
928 {
929 }
930};
931
936{
938 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_Delay), // ONO of MatrixOutput_Delay
939 OCP1DATATYPE_FLOAT32, // Value type
941 1) // Prop_Delay_Time
942 {
943 }
944};
945
950{
952 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_DelayEnable), // ONO of MatrixOutput_DelayEnable
953 OCP1DATATYPE_UINT16, // Value type
955 1) // Prop_Position
956 {
957 }
958};
959
964{
966 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_EqEnable), // ONO of MatrixOutput_EqEnable
967 OCP1DATATYPE_UINT16, // Value type
969 1) // Prop_Position
970 {
971 }
972};
973
978{
980 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_Polarity), // ONO of MatrixOutput_Polarity
981 OCP1DATATYPE_UINT8, // Value type
983 1) // Prop_State
984 {
985 }
986};
987
992{
994 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_ChannelName), // ONO of MatrixOutput_ChannelName
995 OCP1DATATYPE_STRING, // Value type
997 1) // Prop_Setting
998 {
999 }
1000};
1001
1006{
1008 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_LevelMeterIn), // ONO of MatrixOutput_LevelMeterIn
1009 OCP1DATATYPE_FLOAT32, // Value type
1011 1) // Prop_Level
1012 {
1013 }
1014};
1015
1020{
1022 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_LevelMeterPreMute), // ONO of MatrixOutput_LevelMeterPreMute
1023 OCP1DATATYPE_FLOAT32, // Value type
1025 1) // Prop_Level
1026 {
1027 }
1028};
1029
1034{
1036 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_LevelMeterPostMute), // ONO of MatrixOutput_LevelMeterPostMute
1037 OCP1DATATYPE_FLOAT32, // Value type
1039 1) // Prop_Level
1040 {
1041 }
1042};
1043
1048{
1049 dbOcaObjectDef_MatrixOutput_OSP(std::uint32_t channel)
1050 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, MatrixOutput_Box, MatrixOutput_OSP), // ONO of MatrixOutput_OSP,
1051 OCP1DATATYPE_BOOLEAN, // Value type
1053 1) // Prop_Reading
1054 {
1055 }
1056};
1057
1062{
1064 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, MatrixSettings_Box, MatrixSettings_PositioningEnable), // ONO of MatrixSettings_PositioningEnable
1065 OCP1DATATYPE_UINT16, // Value type
1067 1) // Prop_Position
1068 {
1069 }
1070};
1071
1076{
1078 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, MatrixSettings_Box, MatrixSettings_ReverbEnable), // ONO of MatrixSettings_ReverbEnable
1079 OCP1DATATYPE_UINT16, // Value type
1081 1) // Prop_Position
1082 {
1083 }
1084};
1085
1090{
1092 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, MatrixSettings_Box, MatrixSettings_ReverbRoomId), // ONO of MatrixSettings_ReverbRoomId
1093 OCP1DATATYPE_UINT16, // Value type
1095 1) // Prop_Position
1096 {
1097 }
1098};
1099
1104{
1106 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, MatrixSettings_Box, MatrixSettings_ReverbRoomId), // ONO of MatrixSettings_ReverbRoomId
1107 OCP1DATATYPE_BLOB, // Actual datatype is OcaList<OcaString>
1109 2) // Prop_Position_Names
1110 {
1111 }
1112
1114 {
1118 5, // GetPositionNames has MethodIdx 5
1119 0, // GetPositionNames needs 0 input params
1120 ByteVector()); // Empty parameters
1121 }
1122
1127};
1128
1133{
1135 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, MatrixSettings_Box, MatrixSettings_ReverbRoomId), // ONO of MatrixSettings_ReverbRoomId
1136 OCP1DATATYPE_BLOB, // Actual datatype is OcaList<OcaBoolean>
1138 3) // Prop_Position_Enabled
1139 {
1140 }
1141
1143 {
1147 9, // GetPositionEnableds has MethodIdx 9
1148 0, // GetPositionEnableds needs 0 input params
1149 ByteVector()); // Empty parameters
1150 }
1151
1156};
1157
1171
1176{
1178 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, MatrixSettings_Box, MatrixSettings_ReverbRearLevel), // ONO of MatrixSettings_ReverbRearLevel
1179 OCP1DATATYPE_FLOAT32, // Value type
1181 1) // Prop_Gain
1182 {
1183 }
1184};
1185
1190{
1191 dbOcaObjectDef_ReverbInput_Gain(std::uint32_t record, std::uint32_t channel)
1192 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, ReverbInput_Box, ReverbInput_Gain), // ONO of ReverbInput_Gain
1193 OCP1DATATYPE_FLOAT32, // Value type
1195 1) // Prop_Gain
1196 {
1197 }
1198};
1199
1200
1205{
1207 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, ReverbInputProcessing_Box, ReverbInputProcessing_Mute), // ONO of ReverbInputProcessing_Mute,
1208 OCP1DATATYPE_UINT8, // Value type
1210 1) // Prop_Setting
1211 {
1212 }
1213};
1214
1219{
1221 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, ReverbInputProcessing_Box, ReverbInputProcessing_Gain), // ONO of ReverbInputProcessing_Gain,
1222 OCP1DATATYPE_FLOAT32, // Value type
1224 1) // Prop_Gain
1225 {
1226 }
1227};
1228
1233{
1235 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, ReverbInputProcessing_Box, ReverbInputProcessing_EqEnable), // ONO of ReverbInputProcessing_EqEnable,
1236 OCP1DATATYPE_UINT16, // Value type
1238 1) // Prop_Position
1239 {
1240 }
1241};
1242
1247{
1249 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, ReverbInputProcessing_Box, ReverbInputProcessing_LevelMeter), // ONO of ReverbInputProcessing_LevelMeter,
1250 OCP1DATATYPE_FLOAT32, // Value type
1252 1) // Prop_Level
1253 {
1254 }
1255};
1256
1261{
1263 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Scene_Box, Scene_SceneIndex), // ONO of Scene_SceneIndex,
1264 OCP1DATATYPE_STRING, // Value type
1266 1) // Prop_Setting
1267 {
1268 }
1269};
1270
1275{
1277 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Scene_Box, Scene_SceneName), // ONO of Scene_SceneName,
1278 OCP1DATATYPE_STRING, // Value type
1280 1) // Prop_Setting
1281 {
1282 }
1283};
1284
1289{
1291 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, 0x00, Scene_Box, Scene_SceneComment), // ONO of Scene_SceneComment,
1292 OCP1DATATYPE_STRING, // Value type
1294 1) // Prop_Setting
1295 {
1296 }
1297};
1298
1299
1305{
1306 dbOcaObjectDef_SoundObjectRouting_Mute(std::uint32_t record, std::uint32_t channel)
1307 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, SoundObjectRouting_Box, SoundObjectRouting_Mute), // ONO of SoundObjectRouting_Mute
1308 OCP1DATATYPE_UINT8, // Value type
1310 1) // Prop_Setting
1311 {
1312 }
1313};
1314
1319{
1320 dbOcaObjectDef_SoundObjectRouting_Gain(std::uint32_t record, std::uint32_t channel)
1321 : Ocp1CommandDefinition(GetONoTy2(0x02, record, channel, SoundObjectRouting_Box, SoundObjectRouting_Gain), // ONO of SoundObjectRouting_Gain
1322 OCP1DATATYPE_FLOAT32, // Value type
1324 1) // Prop_Gain
1325 {
1326 }
1327};
1328
1329
1334{
1336 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Speaker_Box, Positioning_Speaker_Group), // ONO of Positioning_Speaker_Group
1337 OCP1DATATYPE_INT32, // Value type
1339 1) // Prop_Setting
1340 {
1341 }
1342};
1343
1361{
1363 : Ocp1CommandDefinition(GetONoTy2(0x02, 0x00, channel, Positioning_Speaker_Box, Positioning_Speaker_Position), // ONO of Positioning_Speaker_Position
1364 OCP1DATATYPE_DB_POSITION, // Value type
1366 1) // Prop_Aiming_and_Position
1367 {
1368 }
1369};
1370
1371
1376{
1378 : Ocp1CommandDefinition(SceneAgentONo, // ONO of custom SceneAgent,
1379 OCP1DATATYPE_UINT32, // Value type
1381 0) // Dummy
1382 {
1383 }
1384
1385 Ocp1CommandDefinition ApplyCommand(std::uint16_t major, std::uint16_t minor)
1386 {
1387 std::uint32_t newValue = minor + (major << 16);
1388
1389 std::uint8_t paramCount(1);
1390 ByteVector newParamData = DataFromUint32(newValue);
1391
1395 7, // ApplyScene is MethodIdx 7
1396 paramCount,
1397 newParamData);
1398 }
1399
1401 {
1405 8); // PreviousScene is MethodIdx 8
1406 }
1407
1409 {
1413 9); // NextScene is MethodIdx 9
1414 }
1415
1417 {
1418 return std::unique_ptr<Ocp1CommandDefinition>(new dbOcaObjectDef_SceneAgent(*this)).release();
1419 }
1420};
1421
1422}
1423
1424}
static constexpr BoxAndObjNo Status_StatusText
Human-readable device status string.
static constexpr BoxAndObjNo Positioning_Source_Spread
Sound object spread factor (float32, 0–1).
static constexpr BoxAndObjNo ReverbInput_Gain
Send gain from sound object to reverb zone (float32, dB).
static constexpr BoxAndObjNo Positioning_Source_DelayMode
Delay mode for this sound object (uint32 enum).
static constexpr BoxAndObjNo MatrixInput_ChannelName
User-assignable input channel name (string).
static constexpr BoxAndObjNo CoordinateMappingSettings_P3_real
Corner point P3 in real-world coordinates.
static constexpr BoxAndObjNo CoordinateMappingSettings_P3_virtual
Corner point P3 in virtual (mapped) coordinates.
static constexpr BoxAndObjNo CoordinateMappingSettings_Name
Name string for this mapping area.
static constexpr BoxAndObjNo MatrixInput_LevelMeterIn
Pre-processing level meter reading (float32, dBFS).
static constexpr BoxAndObjNo ReverbInputProcessing_Box
Box number for per-reverb-send processing parameters.
static constexpr BoxAndObjNo MatrixNode_Gain
Crosspoint gain (float32, dB).
static constexpr BoxAndObjNo ReverbInputProcessing_EqEnable
Reverb send EQ enable (bool).
static constexpr BoxAndObjNo MatrixOutput_ChannelName
User-assignable output channel name (string).
static constexpr BoxAndObjNo MatrixOutput_Polarity
Output polarity invert (bool).
static constexpr BoxAndObjNo MatrixInput_ISP
Input signal presence indicator (bool).
static constexpr BoxAndObjNo CoordinateMappingSettings_Flip
Axis-flip flags (bool).
static constexpr BoxAndObjNo MatrixInput_DelayEnable
Input delay enable (bool).
static constexpr BoxAndObjNo MatrixOutput_Gain
Output gain in dB (float32).
static constexpr BoxAndObjNo MatrixOutput_Box
Box number for per-output-channel parameters.
static constexpr BoxAndObjNo MatrixInput_Box
Box number for per-input-channel (sound object) parameters.
static constexpr BoxAndObjNo MatrixSettings_PositioningEnable
Enable / disable En-Scene object-based positioning globally.
static constexpr BoxAndObjNo MatrixSettings_ReverbRoomId
En-Space room impulse-response selection (uint32 room index).
static constexpr BoxAndObjNo CoordinateMapping_Source_Position
Source position in the virtual coordinate space of the mapping area (3 × float32 XYZ,...
static constexpr BoxAndObjNo CoordinateMappingSettings_P2_real
Corner point P2 in real-world coordinates.
static constexpr BoxAndObjNo MatrixSettings_ReverbPredelayFactor
Pre-delay scaling factor for the selected room (float32).
static constexpr BoxAndObjNo MatrixInput_ReverbSendGain
En-Space send gain for this input (float32, dB).
static constexpr BoxAndObjNo ReverbInputProcessing_Gain
Reverb send gain trim (float32, dB).
static constexpr BoxAndObjNo Positioning_Speaker_Position
Loudspeaker 6-DOF position: [hor, vert, rot, x, y, z] (6 × float32 blob).
static constexpr BoxAndObjNo SoundObjectRouting_Box
Box number for per-(sound-object × function-group) routing parameters.
static constexpr BoxAndObjNo MatrixNode_DelayEnable
Crosspoint delay enable (bool).
static constexpr BoxAndObjNo FunctionGroup_SpreadFactor
Group spread factor (float32).
static constexpr BoxAndObjNo ReverbInputProcessing_LevelMeter
Reverb send level meter reading (float32, dBFS).
static constexpr BoxAndObjNo ReverbInput_Box
Box number for per-(sound-object × reverb-zone) send parameters.
static constexpr BoxAndObjNo Settings_Box
Box number for writable device settings.
static constexpr BoxAndObjNo FunctionGroup_Box
Box number for per-function-group parameters (groups 1–32).
static constexpr BoxAndObjNo MatrixNode_Enable
Crosspoint enable / mute (bool).
static constexpr BoxAndObjNo Settings_DeviceName
User-assignable device name string.
static constexpr BoxAndObjNo Scene_Box
Box number for scene-related read/write objects.
static constexpr BoxAndObjNo Scene_SceneComment
Comment text for the currently active scene (string).
static constexpr BoxAndObjNo MatrixSettings_ReverbEnable
Enable / disable En-Space convolution reverb globally.
static constexpr BoxAndObjNo ReverbInputProcessing_Mute
Reverb send mute (bool).
static constexpr BoxAndObjNo MatrixOutput_LevelMeterPostMute
Post-mute level meter reading (float32, dBFS).
static constexpr BoxAndObjNo MatrixOutput_OSP
Output signal presence indicator (bool).
static constexpr BoxAndObjNo CoordinateMappingSettings_P1_virtual
Corner point P1 in virtual (mapped) coordinates.
static constexpr BoxAndObjNo MatrixNode_Delay
Crosspoint delay (float32, ms).
static constexpr BoxAndObjNo Positioning_Speaker_Box
Box number for per-loudspeaker 6-DOF position parameters.
static constexpr BoxAndObjNo MatrixSettings_ReverbRearLevel
Rear-channel level adjustment for the reverb tail (float32, dB).
static constexpr BoxAndObjNo MatrixInput_Delay
Input delay in ms (float32).
static constexpr BoxAndObjNo CoordinateMappingSettings_P1_real
Corner point P1 in real-world coordinates (3 × float32 XYZ).
static constexpr BoxAndObjNo Status_Box
Box number for read-only status objects.
static constexpr BoxAndObjNo MatrixOutput_EqEnable
Output EQ enable (bool).
static constexpr BoxAndObjNo Fixed_HardwareVariant
Hardware variant code (int32).
static constexpr BoxAndObjNo Positioning_Source_Enable
En-Scene processing enable for this sound object (bool).
static constexpr BoxAndObjNo Fixed_SerNr
Serial number string.
static constexpr BoxAndObjNo MatrixOutput_DelayEnable
Output delay enable (bool).
static constexpr BoxAndObjNo Status_AudioNetworkSampleStatus
Audio network sample-rate/lock status.
static constexpr BoxAndObjNo MatrixInput_Mute
Input mute (bool: 0=unmuted, 1=muted).
static constexpr BoxAndObjNo Positioning_Speaker_Group
Function-group assignment for this loudspeaker output (uint32).
static constexpr BoxAndObjNo CoordinateMappingSettings_P4_real
Corner point P4 in real-world coordinates.
static constexpr BoxAndObjNo Positioning_Source_Speaker_Group
static constexpr BoxAndObjNo Scene_SceneIndex
Currently active scene index (uint32).
static constexpr BoxAndObjNo FunctionGroup_Delay
Group delay in ms (float32).
static constexpr BoxAndObjNo Positioning_Source_Box
Box number for per-sound-object En-Scene positioning parameters.
static constexpr BoxAndObjNo Fixed_Box
Box number for all Fixed (read-only) device identity objects.
static constexpr BoxAndObjNo FunctionGroup_Name
User-assignable function group name (string).
static constexpr BoxAndObjNo Error_GnrlErr
General error flag.
static constexpr BoxAndObjNo MatrixInput_LevelMeterPostMute
Post-mute level meter reading (float32, dBFS).
static constexpr BoxAndObjNo Error_ErrorText
Human-readable error description string.
static constexpr BoxAndObjNo MatrixOutput_Mute
Output mute (bool).
static constexpr BoxAndObjNo Fixed_GUID
8-char hex firmware/model GUID (e.g. "DB000CD0"). Read on connect to detect stack-ident.
static constexpr BoxAndObjNo MatrixSettings_Box
Box number for global matrix / En-Space / En-Scene settings.
static constexpr BoxAndObjNo CoordinateMappingSettings_Type
Mapping type (uint32 enum).
static constexpr BoxAndObjNo SoundObjectRouting_Gain
Routing gain for this sound-object/function-group pair (float32, dB).
static constexpr BoxAndObjNo MatrixInput_LevelMeterPreMute
Pre-mute level meter reading (float32, dBFS).
static constexpr BoxAndObjNo Scene_SceneName
Name of the currently active scene (string).
static constexpr BoxAndObjNo MatrixInput_EqEnable
Input EQ enable (bool).
static constexpr BoxAndObjNo MatrixOutput_Delay
Output delay in ms (float32).
static constexpr BoxAndObjNo Positioning_Source_Position
Sound object XYZ position in real-world space (3 × float32 blob, normalised 0–1).
static constexpr BoxAndObjNo Error_Box
Box number for error-reporting objects.
static constexpr BoxAndObjNo MatrixOutput_LevelMeterPreMute
Pre-mute level meter reading (float32, dBFS).
static constexpr BoxAndObjNo MatrixNode_Box
Box number for per-crosspoint (input × output) routing parameters.
static constexpr BoxAndObjNo Positioning_Source_Speaker_Position
static constexpr BoxAndObjNo CoordinateMappingSettings_Box
Box number for coordinate-mapping corner-point configuration (per area).
static constexpr BoxAndObjNo MatrixOutput_LevelMeterIn
Pre-processing level meter reading (float32, dBFS).
static constexpr BoxAndObjNo CoordinateMapping_Box
Box number for per-source coordinate-mapped positions (per area).
static constexpr std::uint32_t SceneAgentONo
Fixed ONo for the DS100 Scene Agent object.
static constexpr BoxAndObjNo MatrixInput_Polarity
Input polarity invert (bool).
static constexpr BoxAndObjNo MatrixInput_Gain
Input gain in dB (float32).
static constexpr BoxAndObjNo SoundObjectRouting_Mute
Routing mute for this sound-object/function-group pair (bool).
Minimal AES70 / OCP.1 TCP client/server library built on JUCE.
Definition NanoOcp1.cpp:23
static constexpr int DefLevel_OcaDelay
static constexpr int DefLevel_OcaPolarity
std::vector< std::uint8_t > ByteVector
Binary buffer type used throughout NanoOcp for all serialized OCP.1 data.
@ OCP1DATATYPE_BOOLEAN
Single byte: 0 = false, non-zero = true.
@ OCP1DATATYPE_DB_POSITION
d&b-specific 3D position blob (3 × float32); used by deprecated position agent.
@ OCP1DATATYPE_NONE
No type; used as "not set" sentinel.
@ OCP1DATATYPE_STRING
OCA string: 2-byte big-endian length prefix followed by UTF-8 bytes.
@ OCP1DATATYPE_UINT16
Unsigned 16-bit integer, big-endian.
@ OCP1DATATYPE_UINT32
Unsigned 32-bit integer, big-endian.
@ OCP1DATATYPE_FLOAT32
IEEE 754 single-precision float, big-endian (4 bytes).
@ OCP1DATATYPE_BLOB
Variable-length binary blob; layout is property-specific.
@ OCP1DATATYPE_UINT8
Unsigned 8-bit integer.
@ OCP1DATATYPE_INT32
Signed 32-bit integer, big-endian.
ByteVector DataFromUint32(std::uint32_t intValue)
static constexpr int DefLevel_OcaInt32Actuator
std::uint32_t BoxAndObjNo
Shorthand for the combined box-and-object-number part of an ONo.
static constexpr int DefLevel_OcaFloat32Actuator
static constexpr int DefLevel_OcaStringSensor
static constexpr int DefLevel_OcaGain
static constexpr int DefLevel_OcaBooleanSensor
std::uint32_t GetONoTy2(std::uint32_t type, std::uint32_t record, std::uint32_t channel, std::uint32_t boxNumber, std::uint32_t objectNumber)
static constexpr int DefLevel_dbOcaSceneAgent
DS100 scene agent, extends dbOcaDataTransfer.
static constexpr int DefLevel_dbOcaSpeakerPositionAgentDeprecated
Deprecated d&b speaker-position agent.
static constexpr int DefLevel_OcaMute
static constexpr int DefLevel_OcaInt32Sensor
static constexpr int DefLevel_OcaStringActuator
static constexpr int DefLevel_dbOcaPositionAgentDeprecated
Deprecated d&b 3D position agent (pre-firmware DB000CD0).
static constexpr int DefLevel_OcaLevelSensor
static constexpr int DefLevel_OcaSwitch
dbOcaObjDef_MatrixSettings_ReverbRoomIdEnableds * Clone() const override
dbOcaObjDef_MatrixSettings_ReverbRoomIdNames * Clone() const override
OCA definition for a sound object's position in a coordinate mapping area's virtual space.
dbOcaObjectDef_CoordinateMapping_Source_Position(std::uint32_t record, std::uint32_t channel)
OCA definition for the DS100 firmware/model GUID string (read-only).
OCA definition for the DS100 hardware-variant identifier (read-only int32).
OCA definition for the DS100 serial number string (read-only).
dbOcaObjectDef_MatrixNode_DelayEnable(std::uint32_t record, std::uint32_t channel)
dbOcaObjectDef_MatrixNode_Delay(std::uint32_t record, std::uint32_t channel)
dbOcaObjectDef_MatrixNode_Enable(std::uint32_t record, std::uint32_t channel)
dbOcaObjectDef_MatrixNode_Gain(std::uint32_t record, std::uint32_t channel)
OCA definition for a sound object's 3D position in real-world space (En-Scene).
OCA definition for loudspeaker 6-DOF position — legacy firmware only (stack-ident 0).
OCA definition for loudspeaker 6-DOF position — firmware ≥ DB000CD0 (stack-ident 1).
dbOcaObjectDef_ReverbInput_Gain(std::uint32_t record, std::uint32_t channel)
Ocp1CommandDefinition * Clone() const override
Ocp1CommandDefinition ApplyCommand(std::uint16_t major, std::uint16_t minor)
dbOcaObjectDef_SoundObjectRouting_Gain(std::uint32_t record, std::uint32_t channel)
dbOcaObjectDef_SoundObjectRouting_Mute(std::uint32_t record, std::uint32_t channel)
Parameter bundle that fully describes one OCA controllable property.
Definition Ocp1Message.h:72