diff --git a/src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml index 0a5110ec402bcc..700dd2223927b7 100644 --- a/src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml @@ -18,7 +18,7 @@ limitations under the License. XML generated by Alchemy; DO NOT EDIT. Source: src/app_clusters/CameraAVStreamManagement.adoc Parameters: in-progress -Git: 1.4-526-g306635762 +Git: 0.7-summer-2025-285-g2a2bd1961 --> @@ -111,9 +111,8 @@ Git: 1.4-526-g306635762 - - - + + @@ -188,12 +187,7 @@ Git: 1.4-526-g306635762 - - MaxContentBufferSize - - - - + MaxContentBufferSize MicrophoneCapabilities @@ -203,19 +197,13 @@ Git: 1.4-526-g306635762 SpeakerCapabilities - - - - + TwoWayTalkSupport - - - - + @@ -235,11 +223,11 @@ Git: 1.4-526-g306635762 HDRModeEnabled - - - + + + - FabricsUsingCamera + SupportedStreamUsages AllocatedVideoStreams @@ -315,10 +303,7 @@ Git: 1.4-526-g306635762 - - - - + @@ -326,30 +311,21 @@ Git: 1.4-526-g306635762 - - - - + SpeakerMaxLevel - - - - + SpeakerMinLevel - - - - + @@ -482,18 +458,18 @@ Git: 1.4-526-g306635762 This command SHALL allocate a video stream on the camera and return an allocated video stream identifier. - - - - - - - - - - - - + + + + + + + + + + + + @@ -536,12 +512,14 @@ Git: 1.4-526-g306635762 This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier. - - - - - - + + + + + + + + @@ -555,7 +533,24 @@ Git: 1.4-526-g306635762 - + + This command SHALL be used to modify a stream specified by the VideoStreamID. + + + + + + + + + + + + + + + + This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. @@ -564,13 +559,13 @@ Git: 1.4-526-g306635762 - + This command SHALL set the relative priorities of the various stream usages on the camera. - + - + This command SHALL return a Snapshot from the camera. @@ -580,7 +575,7 @@ Git: 1.4-526-g306635762 - + This command SHALL be sent by the device in response to the CaptureSnapshot command, carrying the requested snapshot. @@ -591,52 +586,6 @@ Git: 1.4-526-g306635762 - - - - - - - - - - - - - This event SHALL be generated when there is a modification in the corresponding video stream. - - - - - - - - - - - - - - This event SHALL be generated when there is a modification in the corresponding audio stream. - - - - - - - - - - - - - - This event SHALL be generated when there is a modification in the corresponding snapshot stream. - - - - - @@ -651,20 +600,45 @@ Git: 1.4-526-g306635762 - + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index 1e7ad57fc02778..b3a9ba30206450 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -9741,6 +9741,7 @@ provisional cluster CameraAvStreamManagement = 1361 { kWatermark = 0x40; kOnScreenDisplay = 0x80; kLocalStorage = 0x100; + kHighDynamicRange = 0x200; } struct VideoResolutionStruct { @@ -9809,9 +9810,8 @@ provisional cluster CameraAvStreamManagement = 1361 { struct VideoSensorParamsStruct { int16u sensorWidth = 0; int16u sensorHeight = 1; - boolean HDRCapable = 2; - int16u maxFPS = 3; - int16u maxHDRFPS = 4; + int16u maxFPS = 2; + optional int16u maxHDRFPS = 3; } struct ViewportStruct { @@ -9821,47 +9821,13 @@ provisional cluster CameraAvStreamManagement = 1361 { int16u y2 = 3; } - info event VideoStreamChanged = 0 { - int16u videoStreamID = 0; - optional StreamUsageEnum streamUsage = 1; - optional VideoCodecEnum videoCodec = 2; - optional int16u minFrameRate = 3; - optional int16u maxFrameRate = 4; - optional VideoResolutionStruct minResolution = 5; - optional VideoResolutionStruct maxResolution = 6; - optional int32u minBitRate = 7; - optional int32u maxBitRate = 8; - optional int16u minFragmentLen = 9; - optional int16u maxFragmentLen = 10; - } - - info event AudioStreamChanged = 1 { - int16u audioStreamID = 0; - optional StreamUsageEnum streamUsage = 1; - optional AudioCodecEnum audioCodec = 2; - optional int8u channelCount = 3; - optional int32u sampleRate = 4; - optional int32u bitRate = 5; - optional int8u bitDepth = 6; - } - - info event SnapshotStreamChanged = 2 { - int16u snapshotStreamID = 0; - optional ImageCodecEnum imageCodec = 1; - optional int16u frameRate = 2; - optional int32u bitRate = 3; - optional VideoResolutionStruct minResolution = 4; - optional VideoResolutionStruct maxResolution = 5; - optional int8u quality = 6; - } - readonly attribute optional int8u maxConcurrentVideoEncoders = 0; readonly attribute optional int32u maxEncodedPixelRate = 1; readonly attribute optional VideoSensorParamsStruct videoSensorParams = 2; readonly attribute optional boolean nightVisionCapable = 3; readonly attribute optional VideoResolutionStruct minViewport = 4; readonly attribute optional RateDistortionTradeOffPointsStruct rateDistortionTradeOffPoints[] = 5; - readonly attribute optional int32u maxContentBufferSize = 6; + readonly attribute int32u maxContentBufferSize = 6; readonly attribute optional AudioCapabilitiesStruct microphoneCapabilities = 7; readonly attribute optional AudioCapabilitiesStruct speakerCapabilities = 8; readonly attribute optional TwoWayTalkSupportTypeEnum twoWayTalkSupport = 9; @@ -9869,7 +9835,7 @@ provisional cluster CameraAvStreamManagement = 1361 { readonly attribute int32u maxNetworkBandwidth = 11; readonly attribute optional int16u currentFrameRate = 12; attribute access(read: manage, write: manage) optional boolean HDRModeEnabled = 13; - readonly attribute fabric_idx fabricsUsingCamera[] = 14; + readonly attribute StreamUsageEnum supportedStreamUsages[] = 14; readonly attribute optional VideoStreamStruct allocatedVideoStreams[] = 15; readonly attribute optional AudioStreamStruct allocatedAudioStreams[] = 16; readonly attribute optional SnapshotStreamStruct allocatedSnapshotStreams[] = 17; @@ -9956,12 +9922,20 @@ provisional cluster CameraAvStreamManagement = 1361 { VideoResolutionStruct minResolution = 3; VideoResolutionStruct maxResolution = 4; int8u quality = 5; + optional boolean watermarkEnabled = 6; + optional boolean OSDEnabled = 7; } response struct SnapshotStreamAllocateResponse = 8 { int16u snapshotStreamID = 0; } + request struct SnapshotStreamModifyRequest { + int16u snapshotStreamID = 0; + optional boolean watermarkEnabled = 1; + optional boolean OSDEnabled = 2; + } + request struct SnapshotStreamDeallocateRequest { int16u snapshotStreamID = 0; } @@ -9975,7 +9949,7 @@ provisional cluster CameraAvStreamManagement = 1361 { VideoResolutionStruct requestedResolution = 1; } - response struct CaptureSnapshotResponse = 12 { + response struct CaptureSnapshotResponse = 13 { octet_string data = 0; ImageCodecEnum imageCodec = 1; VideoResolutionStruct resolution = 2; @@ -9993,12 +9967,14 @@ provisional cluster CameraAvStreamManagement = 1361 { command access(invoke: manage) VideoStreamDeallocate(VideoStreamDeallocateRequest): DefaultSuccess = 6; /** This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier. */ command access(invoke: manage) SnapshotStreamAllocate(SnapshotStreamAllocateRequest): SnapshotStreamAllocateResponse = 7; + /** This command SHALL be used to modify a stream specified by the VideoStreamID. */ + command access(invoke: manage) SnapshotStreamModify(SnapshotStreamModifyRequest): DefaultSuccess = 9; /** This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. */ - command access(invoke: manage) SnapshotStreamDeallocate(SnapshotStreamDeallocateRequest): DefaultSuccess = 9; + command access(invoke: manage) SnapshotStreamDeallocate(SnapshotStreamDeallocateRequest): DefaultSuccess = 10; /** This command SHALL set the relative priorities of the various stream usages on the camera. */ - command access(invoke: administer) SetStreamPriorities(SetStreamPrioritiesRequest): DefaultSuccess = 10; + command access(invoke: administer) SetStreamPriorities(SetStreamPrioritiesRequest): DefaultSuccess = 11; /** This command SHALL return a Snapshot from the camera. */ - command CaptureSnapshot(CaptureSnapshotRequest): CaptureSnapshotResponse = 11; + command CaptureSnapshot(CaptureSnapshotRequest): CaptureSnapshotResponse = 12; } /** This cluster provides an interface into controls associated with the operation of a device that provides pan, tilt, and zoom functions, either mechanically, or against a digital image. */ diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java index cb423ce525f915..6813577c1d4d48 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java @@ -60409,7 +60409,7 @@ public static class CameraAvStreamManagementCluster extends BaseChipCluster { private static final long MAX_NETWORK_BANDWIDTH_ATTRIBUTE_ID = 11L; private static final long CURRENT_FRAME_RATE_ATTRIBUTE_ID = 12L; private static final long HDR_MODE_ENABLED_ATTRIBUTE_ID = 13L; - private static final long FABRICS_USING_CAMERA_ATTRIBUTE_ID = 14L; + private static final long SUPPORTED_STREAM_USAGES_ATTRIBUTE_ID = 14L; private static final long ALLOCATED_VIDEO_STREAMS_ATTRIBUTE_ID = 15L; private static final long ALLOCATED_AUDIO_STREAMS_ATTRIBUTE_ID = 16L; private static final long ALLOCATED_SNAPSHOT_STREAMS_ATTRIBUTE_ID = 17L; @@ -60645,11 +60645,11 @@ public void onResponse(StructType invokeStructValue) { }}, commandId, commandArgs, timedInvokeTimeoutMs); } - public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callback, Integer imageCodec, Integer maxFrameRate, Long bitRate, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct minResolution, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct maxResolution, Integer quality) { - snapshotStreamAllocate(callback, imageCodec, maxFrameRate, bitRate, minResolution, maxResolution, quality, 0); + public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callback, Integer imageCodec, Integer maxFrameRate, Long bitRate, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct minResolution, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct maxResolution, Integer quality, Optional watermarkEnabled, Optional OSDEnabled) { + snapshotStreamAllocate(callback, imageCodec, maxFrameRate, bitRate, minResolution, maxResolution, quality, watermarkEnabled, OSDEnabled, 0); } - public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callback, Integer imageCodec, Integer maxFrameRate, Long bitRate, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct minResolution, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct maxResolution, Integer quality, int timedInvokeTimeoutMs) { + public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callback, Integer imageCodec, Integer maxFrameRate, Long bitRate, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct minResolution, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct maxResolution, Integer quality, Optional watermarkEnabled, Optional OSDEnabled, int timedInvokeTimeoutMs) { final long commandId = 7L; ArrayList elements = new ArrayList<>(); @@ -60677,6 +60677,14 @@ public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callba BaseTLVType qualitytlvValue = new UIntType(quality); elements.add(new StructElement(qualityFieldID, qualitytlvValue)); + final long watermarkEnabledFieldID = 6L; + BaseTLVType watermarkEnabledtlvValue = watermarkEnabled.map((nonOptionalwatermarkEnabled) -> new BooleanType(nonOptionalwatermarkEnabled)).orElse(new EmptyType()); + elements.add(new StructElement(watermarkEnabledFieldID, watermarkEnabledtlvValue)); + + final long OSDEnabledFieldID = 7L; + BaseTLVType OSDEnabledtlvValue = OSDEnabled.map((nonOptionalOSDEnabled) -> new BooleanType(nonOptionalOSDEnabled)).orElse(new EmptyType()); + elements.add(new StructElement(OSDEnabledFieldID, OSDEnabledtlvValue)); + StructType commandArgs = new StructType(elements); invoke(new InvokeCallbackImpl(callback) { @Override @@ -60695,12 +60703,40 @@ public void onResponse(StructType invokeStructValue) { }}, commandId, commandArgs, timedInvokeTimeoutMs); } + public void snapshotStreamModify(DefaultClusterCallback callback, Integer snapshotStreamID, Optional watermarkEnabled, Optional OSDEnabled) { + snapshotStreamModify(callback, snapshotStreamID, watermarkEnabled, OSDEnabled, 0); + } + + public void snapshotStreamModify(DefaultClusterCallback callback, Integer snapshotStreamID, Optional watermarkEnabled, Optional OSDEnabled, int timedInvokeTimeoutMs) { + final long commandId = 9L; + + ArrayList elements = new ArrayList<>(); + final long snapshotStreamIDFieldID = 0L; + BaseTLVType snapshotStreamIDtlvValue = new UIntType(snapshotStreamID); + elements.add(new StructElement(snapshotStreamIDFieldID, snapshotStreamIDtlvValue)); + + final long watermarkEnabledFieldID = 1L; + BaseTLVType watermarkEnabledtlvValue = watermarkEnabled.map((nonOptionalwatermarkEnabled) -> new BooleanType(nonOptionalwatermarkEnabled)).orElse(new EmptyType()); + elements.add(new StructElement(watermarkEnabledFieldID, watermarkEnabledtlvValue)); + + final long OSDEnabledFieldID = 2L; + BaseTLVType OSDEnabledtlvValue = OSDEnabled.map((nonOptionalOSDEnabled) -> new BooleanType(nonOptionalOSDEnabled)).orElse(new EmptyType()); + elements.add(new StructElement(OSDEnabledFieldID, OSDEnabledtlvValue)); + + StructType commandArgs = new StructType(elements); + invoke(new InvokeCallbackImpl(callback) { + @Override + public void onResponse(StructType invokeStructValue) { + callback.onSuccess(); + }}, commandId, commandArgs, timedInvokeTimeoutMs); + } + public void snapshotStreamDeallocate(DefaultClusterCallback callback, Integer snapshotStreamID) { snapshotStreamDeallocate(callback, snapshotStreamID, 0); } public void snapshotStreamDeallocate(DefaultClusterCallback callback, Integer snapshotStreamID, int timedInvokeTimeoutMs) { - final long commandId = 9L; + final long commandId = 10L; ArrayList elements = new ArrayList<>(); final long snapshotStreamIDFieldID = 0L; @@ -60720,7 +60756,7 @@ public void setStreamPriorities(DefaultClusterCallback callback, ArrayList streamPriorities, int timedInvokeTimeoutMs) { - final long commandId = 10L; + final long commandId = 11L; ArrayList elements = new ArrayList<>(); final long streamPrioritiesFieldID = 0L; @@ -60740,7 +60776,7 @@ public void captureSnapshot(CaptureSnapshotResponseCallback callback, Integer sn } public void captureSnapshot(CaptureSnapshotResponseCallback callback, Integer snapshotStreamID, ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct requestedResolution, int timedInvokeTimeoutMs) { - final long commandId = 11L; + final long commandId = 12L; ArrayList elements = new ArrayList<>(); final long snapshotStreamIDFieldID = 0L; @@ -60823,7 +60859,7 @@ public interface SupportedSnapshotParamsAttributeCallback extends BaseAttributeC void onSuccess(List value); } - public interface FabricsUsingCameraAttributeCallback extends BaseAttributeCallback { + public interface SupportedStreamUsagesAttributeCallback extends BaseAttributeCallback { void onSuccess(List value); } @@ -61236,9 +61272,9 @@ public void onSuccess(byte[] tlv) { }, HDR_MODE_ENABLED_ATTRIBUTE_ID, minInterval, maxInterval); } - public void readFabricsUsingCameraAttribute( - FabricsUsingCameraAttributeCallback callback) { - ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FABRICS_USING_CAMERA_ATTRIBUTE_ID); + public void readSupportedStreamUsagesAttribute( + SupportedStreamUsagesAttributeCallback callback) { + ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_STREAM_USAGES_ATTRIBUTE_ID); readAttribute(new ReportCallbackImpl(callback, path) { @Override @@ -61246,12 +61282,12 @@ public void onSuccess(byte[] tlv) { List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv); callback.onSuccess(value); } - }, FABRICS_USING_CAMERA_ATTRIBUTE_ID, true); + }, SUPPORTED_STREAM_USAGES_ATTRIBUTE_ID, true); } - public void subscribeFabricsUsingCameraAttribute( - FabricsUsingCameraAttributeCallback callback, int minInterval, int maxInterval) { - ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FABRICS_USING_CAMERA_ATTRIBUTE_ID); + public void subscribeSupportedStreamUsagesAttribute( + SupportedStreamUsagesAttributeCallback callback, int minInterval, int maxInterval) { + ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_STREAM_USAGES_ATTRIBUTE_ID); subscribeAttribute(new ReportCallbackImpl(callback, path) { @Override @@ -61259,7 +61295,7 @@ public void onSuccess(byte[] tlv) { List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv); callback.onSuccess(value); } - }, FABRICS_USING_CAMERA_ATTRIBUTE_ID, minInterval, maxInterval); + }, SUPPORTED_STREAM_USAGES_ATTRIBUTE_ID, minInterval, maxInterval); } public void readAllocatedVideoStreamsAttribute( diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java b/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java index 491de7a3337b83..04af0f6bd2afb4 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java @@ -6309,474 +6309,6 @@ public String toString() { return output.toString(); } } -public static class CameraAvStreamManagementClusterVideoStreamChangedEvent { - public Integer videoStreamID; - public Optional streamUsage; - public Optional videoCodec; - public Optional minFrameRate; - public Optional maxFrameRate; - public Optional minResolution; - public Optional maxResolution; - public Optional minBitRate; - public Optional maxBitRate; - public Optional minFragmentLen; - public Optional maxFragmentLen; - private static final long VIDEO_STREAM_ID_ID = 0L; - private static final long STREAM_USAGE_ID = 1L; - private static final long VIDEO_CODEC_ID = 2L; - private static final long MIN_FRAME_RATE_ID = 3L; - private static final long MAX_FRAME_RATE_ID = 4L; - private static final long MIN_RESOLUTION_ID = 5L; - private static final long MAX_RESOLUTION_ID = 6L; - private static final long MIN_BIT_RATE_ID = 7L; - private static final long MAX_BIT_RATE_ID = 8L; - private static final long MIN_FRAGMENT_LEN_ID = 9L; - private static final long MAX_FRAGMENT_LEN_ID = 10L; - - public CameraAvStreamManagementClusterVideoStreamChangedEvent( - Integer videoStreamID, - Optional streamUsage, - Optional videoCodec, - Optional minFrameRate, - Optional maxFrameRate, - Optional minResolution, - Optional maxResolution, - Optional minBitRate, - Optional maxBitRate, - Optional minFragmentLen, - Optional maxFragmentLen - ) { - this.videoStreamID = videoStreamID; - this.streamUsage = streamUsage; - this.videoCodec = videoCodec; - this.minFrameRate = minFrameRate; - this.maxFrameRate = maxFrameRate; - this.minResolution = minResolution; - this.maxResolution = maxResolution; - this.minBitRate = minBitRate; - this.maxBitRate = maxBitRate; - this.minFragmentLen = minFragmentLen; - this.maxFragmentLen = maxFragmentLen; - } - - public StructType encodeTlv() { - ArrayList values = new ArrayList<>(); - values.add(new StructElement(VIDEO_STREAM_ID_ID, new UIntType(videoStreamID))); - values.add(new StructElement(STREAM_USAGE_ID, streamUsage.map((nonOptionalstreamUsage) -> new UIntType(nonOptionalstreamUsage)).orElse(new EmptyType()))); - values.add(new StructElement(VIDEO_CODEC_ID, videoCodec.map((nonOptionalvideoCodec) -> new UIntType(nonOptionalvideoCodec)).orElse(new EmptyType()))); - values.add(new StructElement(MIN_FRAME_RATE_ID, minFrameRate.map((nonOptionalminFrameRate) -> new UIntType(nonOptionalminFrameRate)).orElse(new EmptyType()))); - values.add(new StructElement(MAX_FRAME_RATE_ID, maxFrameRate.map((nonOptionalmaxFrameRate) -> new UIntType(nonOptionalmaxFrameRate)).orElse(new EmptyType()))); - values.add(new StructElement(MIN_RESOLUTION_ID, minResolution.map((nonOptionalminResolution) -> nonOptionalminResolution.encodeTlv()).orElse(new EmptyType()))); - values.add(new StructElement(MAX_RESOLUTION_ID, maxResolution.map((nonOptionalmaxResolution) -> nonOptionalmaxResolution.encodeTlv()).orElse(new EmptyType()))); - values.add(new StructElement(MIN_BIT_RATE_ID, minBitRate.map((nonOptionalminBitRate) -> new UIntType(nonOptionalminBitRate)).orElse(new EmptyType()))); - values.add(new StructElement(MAX_BIT_RATE_ID, maxBitRate.map((nonOptionalmaxBitRate) -> new UIntType(nonOptionalmaxBitRate)).orElse(new EmptyType()))); - values.add(new StructElement(MIN_FRAGMENT_LEN_ID, minFragmentLen.map((nonOptionalminFragmentLen) -> new UIntType(nonOptionalminFragmentLen)).orElse(new EmptyType()))); - values.add(new StructElement(MAX_FRAGMENT_LEN_ID, maxFragmentLen.map((nonOptionalmaxFragmentLen) -> new UIntType(nonOptionalmaxFragmentLen)).orElse(new EmptyType()))); - - return new StructType(values); - } - - public static CameraAvStreamManagementClusterVideoStreamChangedEvent decodeTlv(BaseTLVType tlvValue) { - if (tlvValue == null || tlvValue.type() != TLVType.Struct) { - return null; - } - Integer videoStreamID = null; - Optional streamUsage = Optional.empty(); - Optional videoCodec = Optional.empty(); - Optional minFrameRate = Optional.empty(); - Optional maxFrameRate = Optional.empty(); - Optional minResolution = Optional.empty(); - Optional maxResolution = Optional.empty(); - Optional minBitRate = Optional.empty(); - Optional maxBitRate = Optional.empty(); - Optional minFragmentLen = Optional.empty(); - Optional maxFragmentLen = Optional.empty(); - for (StructElement element: ((StructType)tlvValue).value()) { - if (element.contextTagNum() == VIDEO_STREAM_ID_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - videoStreamID = castingValue.value(Integer.class); - } - } else if (element.contextTagNum() == STREAM_USAGE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - streamUsage = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == VIDEO_CODEC_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - videoCodec = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == MIN_FRAME_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - minFrameRate = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == MAX_FRAME_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - maxFrameRate = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == MIN_RESOLUTION_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.Struct) { - StructType castingValue = element.value(StructType.class); - minResolution = Optional.of(ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct.decodeTlv(castingValue)); - } - } else if (element.contextTagNum() == MAX_RESOLUTION_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.Struct) { - StructType castingValue = element.value(StructType.class); - maxResolution = Optional.of(ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct.decodeTlv(castingValue)); - } - } else if (element.contextTagNum() == MIN_BIT_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - minBitRate = Optional.of(castingValue.value(Long.class)); - } - } else if (element.contextTagNum() == MAX_BIT_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - maxBitRate = Optional.of(castingValue.value(Long.class)); - } - } else if (element.contextTagNum() == MIN_FRAGMENT_LEN_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - minFragmentLen = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == MAX_FRAGMENT_LEN_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - maxFragmentLen = Optional.of(castingValue.value(Integer.class)); - } - } - } - return new CameraAvStreamManagementClusterVideoStreamChangedEvent( - videoStreamID, - streamUsage, - videoCodec, - minFrameRate, - maxFrameRate, - minResolution, - maxResolution, - minBitRate, - maxBitRate, - minFragmentLen, - maxFragmentLen - ); - } - - @Override - public String toString() { - StringBuilder output = new StringBuilder(); - output.append("CameraAvStreamManagementClusterVideoStreamChangedEvent {\n"); - output.append("\tvideoStreamID: "); - output.append(videoStreamID); - output.append("\n"); - output.append("\tstreamUsage: "); - output.append(streamUsage); - output.append("\n"); - output.append("\tvideoCodec: "); - output.append(videoCodec); - output.append("\n"); - output.append("\tminFrameRate: "); - output.append(minFrameRate); - output.append("\n"); - output.append("\tmaxFrameRate: "); - output.append(maxFrameRate); - output.append("\n"); - output.append("\tminResolution: "); - output.append(minResolution); - output.append("\n"); - output.append("\tmaxResolution: "); - output.append(maxResolution); - output.append("\n"); - output.append("\tminBitRate: "); - output.append(minBitRate); - output.append("\n"); - output.append("\tmaxBitRate: "); - output.append(maxBitRate); - output.append("\n"); - output.append("\tminFragmentLen: "); - output.append(minFragmentLen); - output.append("\n"); - output.append("\tmaxFragmentLen: "); - output.append(maxFragmentLen); - output.append("\n"); - output.append("}\n"); - return output.toString(); - } -} -public static class CameraAvStreamManagementClusterAudioStreamChangedEvent { - public Integer audioStreamID; - public Optional streamUsage; - public Optional audioCodec; - public Optional channelCount; - public Optional sampleRate; - public Optional bitRate; - public Optional bitDepth; - private static final long AUDIO_STREAM_ID_ID = 0L; - private static final long STREAM_USAGE_ID = 1L; - private static final long AUDIO_CODEC_ID = 2L; - private static final long CHANNEL_COUNT_ID = 3L; - private static final long SAMPLE_RATE_ID = 4L; - private static final long BIT_RATE_ID = 5L; - private static final long BIT_DEPTH_ID = 6L; - - public CameraAvStreamManagementClusterAudioStreamChangedEvent( - Integer audioStreamID, - Optional streamUsage, - Optional audioCodec, - Optional channelCount, - Optional sampleRate, - Optional bitRate, - Optional bitDepth - ) { - this.audioStreamID = audioStreamID; - this.streamUsage = streamUsage; - this.audioCodec = audioCodec; - this.channelCount = channelCount; - this.sampleRate = sampleRate; - this.bitRate = bitRate; - this.bitDepth = bitDepth; - } - - public StructType encodeTlv() { - ArrayList values = new ArrayList<>(); - values.add(new StructElement(AUDIO_STREAM_ID_ID, new UIntType(audioStreamID))); - values.add(new StructElement(STREAM_USAGE_ID, streamUsage.map((nonOptionalstreamUsage) -> new UIntType(nonOptionalstreamUsage)).orElse(new EmptyType()))); - values.add(new StructElement(AUDIO_CODEC_ID, audioCodec.map((nonOptionalaudioCodec) -> new UIntType(nonOptionalaudioCodec)).orElse(new EmptyType()))); - values.add(new StructElement(CHANNEL_COUNT_ID, channelCount.map((nonOptionalchannelCount) -> new UIntType(nonOptionalchannelCount)).orElse(new EmptyType()))); - values.add(new StructElement(SAMPLE_RATE_ID, sampleRate.map((nonOptionalsampleRate) -> new UIntType(nonOptionalsampleRate)).orElse(new EmptyType()))); - values.add(new StructElement(BIT_RATE_ID, bitRate.map((nonOptionalbitRate) -> new UIntType(nonOptionalbitRate)).orElse(new EmptyType()))); - values.add(new StructElement(BIT_DEPTH_ID, bitDepth.map((nonOptionalbitDepth) -> new UIntType(nonOptionalbitDepth)).orElse(new EmptyType()))); - - return new StructType(values); - } - - public static CameraAvStreamManagementClusterAudioStreamChangedEvent decodeTlv(BaseTLVType tlvValue) { - if (tlvValue == null || tlvValue.type() != TLVType.Struct) { - return null; - } - Integer audioStreamID = null; - Optional streamUsage = Optional.empty(); - Optional audioCodec = Optional.empty(); - Optional channelCount = Optional.empty(); - Optional sampleRate = Optional.empty(); - Optional bitRate = Optional.empty(); - Optional bitDepth = Optional.empty(); - for (StructElement element: ((StructType)tlvValue).value()) { - if (element.contextTagNum() == AUDIO_STREAM_ID_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - audioStreamID = castingValue.value(Integer.class); - } - } else if (element.contextTagNum() == STREAM_USAGE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - streamUsage = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == AUDIO_CODEC_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - audioCodec = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == CHANNEL_COUNT_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - channelCount = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == SAMPLE_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - sampleRate = Optional.of(castingValue.value(Long.class)); - } - } else if (element.contextTagNum() == BIT_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - bitRate = Optional.of(castingValue.value(Long.class)); - } - } else if (element.contextTagNum() == BIT_DEPTH_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - bitDepth = Optional.of(castingValue.value(Integer.class)); - } - } - } - return new CameraAvStreamManagementClusterAudioStreamChangedEvent( - audioStreamID, - streamUsage, - audioCodec, - channelCount, - sampleRate, - bitRate, - bitDepth - ); - } - - @Override - public String toString() { - StringBuilder output = new StringBuilder(); - output.append("CameraAvStreamManagementClusterAudioStreamChangedEvent {\n"); - output.append("\taudioStreamID: "); - output.append(audioStreamID); - output.append("\n"); - output.append("\tstreamUsage: "); - output.append(streamUsage); - output.append("\n"); - output.append("\taudioCodec: "); - output.append(audioCodec); - output.append("\n"); - output.append("\tchannelCount: "); - output.append(channelCount); - output.append("\n"); - output.append("\tsampleRate: "); - output.append(sampleRate); - output.append("\n"); - output.append("\tbitRate: "); - output.append(bitRate); - output.append("\n"); - output.append("\tbitDepth: "); - output.append(bitDepth); - output.append("\n"); - output.append("}\n"); - return output.toString(); - } -} -public static class CameraAvStreamManagementClusterSnapshotStreamChangedEvent { - public Integer snapshotStreamID; - public Optional imageCodec; - public Optional frameRate; - public Optional bitRate; - public Optional minResolution; - public Optional maxResolution; - public Optional quality; - private static final long SNAPSHOT_STREAM_ID_ID = 0L; - private static final long IMAGE_CODEC_ID = 1L; - private static final long FRAME_RATE_ID = 2L; - private static final long BIT_RATE_ID = 3L; - private static final long MIN_RESOLUTION_ID = 4L; - private static final long MAX_RESOLUTION_ID = 5L; - private static final long QUALITY_ID = 6L; - - public CameraAvStreamManagementClusterSnapshotStreamChangedEvent( - Integer snapshotStreamID, - Optional imageCodec, - Optional frameRate, - Optional bitRate, - Optional minResolution, - Optional maxResolution, - Optional quality - ) { - this.snapshotStreamID = snapshotStreamID; - this.imageCodec = imageCodec; - this.frameRate = frameRate; - this.bitRate = bitRate; - this.minResolution = minResolution; - this.maxResolution = maxResolution; - this.quality = quality; - } - - public StructType encodeTlv() { - ArrayList values = new ArrayList<>(); - values.add(new StructElement(SNAPSHOT_STREAM_ID_ID, new UIntType(snapshotStreamID))); - values.add(new StructElement(IMAGE_CODEC_ID, imageCodec.map((nonOptionalimageCodec) -> new UIntType(nonOptionalimageCodec)).orElse(new EmptyType()))); - values.add(new StructElement(FRAME_RATE_ID, frameRate.map((nonOptionalframeRate) -> new UIntType(nonOptionalframeRate)).orElse(new EmptyType()))); - values.add(new StructElement(BIT_RATE_ID, bitRate.map((nonOptionalbitRate) -> new UIntType(nonOptionalbitRate)).orElse(new EmptyType()))); - values.add(new StructElement(MIN_RESOLUTION_ID, minResolution.map((nonOptionalminResolution) -> nonOptionalminResolution.encodeTlv()).orElse(new EmptyType()))); - values.add(new StructElement(MAX_RESOLUTION_ID, maxResolution.map((nonOptionalmaxResolution) -> nonOptionalmaxResolution.encodeTlv()).orElse(new EmptyType()))); - values.add(new StructElement(QUALITY_ID, quality.map((nonOptionalquality) -> new UIntType(nonOptionalquality)).orElse(new EmptyType()))); - - return new StructType(values); - } - - public static CameraAvStreamManagementClusterSnapshotStreamChangedEvent decodeTlv(BaseTLVType tlvValue) { - if (tlvValue == null || tlvValue.type() != TLVType.Struct) { - return null; - } - Integer snapshotStreamID = null; - Optional imageCodec = Optional.empty(); - Optional frameRate = Optional.empty(); - Optional bitRate = Optional.empty(); - Optional minResolution = Optional.empty(); - Optional maxResolution = Optional.empty(); - Optional quality = Optional.empty(); - for (StructElement element: ((StructType)tlvValue).value()) { - if (element.contextTagNum() == SNAPSHOT_STREAM_ID_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - snapshotStreamID = castingValue.value(Integer.class); - } - } else if (element.contextTagNum() == IMAGE_CODEC_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - imageCodec = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == FRAME_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - frameRate = Optional.of(castingValue.value(Integer.class)); - } - } else if (element.contextTagNum() == BIT_RATE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - bitRate = Optional.of(castingValue.value(Long.class)); - } - } else if (element.contextTagNum() == MIN_RESOLUTION_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.Struct) { - StructType castingValue = element.value(StructType.class); - minResolution = Optional.of(ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct.decodeTlv(castingValue)); - } - } else if (element.contextTagNum() == MAX_RESOLUTION_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.Struct) { - StructType castingValue = element.value(StructType.class); - maxResolution = Optional.of(ChipStructs.CameraAvStreamManagementClusterVideoResolutionStruct.decodeTlv(castingValue)); - } - } else if (element.contextTagNum() == QUALITY_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - quality = Optional.of(castingValue.value(Integer.class)); - } - } - } - return new CameraAvStreamManagementClusterSnapshotStreamChangedEvent( - snapshotStreamID, - imageCodec, - frameRate, - bitRate, - minResolution, - maxResolution, - quality - ); - } - - @Override - public String toString() { - StringBuilder output = new StringBuilder(); - output.append("CameraAvStreamManagementClusterSnapshotStreamChangedEvent {\n"); - output.append("\tsnapshotStreamID: "); - output.append(snapshotStreamID); - output.append("\n"); - output.append("\timageCodec: "); - output.append(imageCodec); - output.append("\n"); - output.append("\tframeRate: "); - output.append(frameRate); - output.append("\n"); - output.append("\tbitRate: "); - output.append(bitRate); - output.append("\n"); - output.append("\tminResolution: "); - output.append(minResolution); - output.append("\n"); - output.append("\tmaxResolution: "); - output.append(maxResolution); - output.append("\n"); - output.append("\tquality: "); - output.append(quality); - output.append("\n"); - output.append("}\n"); - return output.toString(); - } -} public static class PushAvStreamTransportClusterPushTransportBeginEvent { public Integer connectionID; public Integer triggerType; diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java index 5614ac0f8fa5b6..1f549d49e5dcfe 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java @@ -14105,25 +14105,21 @@ public String toString() { public static class CameraAvStreamManagementClusterVideoSensorParamsStruct { public Integer sensorWidth; public Integer sensorHeight; - public Boolean HDRCapable; public Integer maxFPS; - public Integer maxHDRFPS; + public Optional maxHDRFPS; private static final long SENSOR_WIDTH_ID = 0L; private static final long SENSOR_HEIGHT_ID = 1L; - private static final long HDR_CAPABLE_ID = 2L; - private static final long MAX_FPS_ID = 3L; - private static final long MAX_HDRFPS_ID = 4L; + private static final long MAX_FPS_ID = 2L; + private static final long MAX_HDRFPS_ID = 3L; public CameraAvStreamManagementClusterVideoSensorParamsStruct( Integer sensorWidth, Integer sensorHeight, - Boolean HDRCapable, Integer maxFPS, - Integer maxHDRFPS + Optional maxHDRFPS ) { this.sensorWidth = sensorWidth; this.sensorHeight = sensorHeight; - this.HDRCapable = HDRCapable; this.maxFPS = maxFPS; this.maxHDRFPS = maxHDRFPS; } @@ -14132,9 +14128,8 @@ public StructType encodeTlv() { ArrayList values = new ArrayList<>(); values.add(new StructElement(SENSOR_WIDTH_ID, new UIntType(sensorWidth))); values.add(new StructElement(SENSOR_HEIGHT_ID, new UIntType(sensorHeight))); - values.add(new StructElement(HDR_CAPABLE_ID, new BooleanType(HDRCapable))); values.add(new StructElement(MAX_FPS_ID, new UIntType(maxFPS))); - values.add(new StructElement(MAX_HDRFPS_ID, new UIntType(maxHDRFPS))); + values.add(new StructElement(MAX_HDRFPS_ID, maxHDRFPS.map((nonOptionalmaxHDRFPS) -> new UIntType(nonOptionalmaxHDRFPS)).orElse(new EmptyType()))); return new StructType(values); } @@ -14145,9 +14140,8 @@ public static CameraAvStreamManagementClusterVideoSensorParamsStruct decodeTlv(B } Integer sensorWidth = null; Integer sensorHeight = null; - Boolean HDRCapable = null; Integer maxFPS = null; - Integer maxHDRFPS = null; + Optional maxHDRFPS = Optional.empty(); for (StructElement element: ((StructType)tlvValue).value()) { if (element.contextTagNum() == SENSOR_WIDTH_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { @@ -14159,11 +14153,6 @@ public static CameraAvStreamManagementClusterVideoSensorParamsStruct decodeTlv(B UIntType castingValue = element.value(UIntType.class); sensorHeight = castingValue.value(Integer.class); } - } else if (element.contextTagNum() == HDR_CAPABLE_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.Boolean) { - BooleanType castingValue = element.value(BooleanType.class); - HDRCapable = castingValue.value(Boolean.class); - } } else if (element.contextTagNum() == MAX_FPS_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { UIntType castingValue = element.value(UIntType.class); @@ -14172,14 +14161,13 @@ public static CameraAvStreamManagementClusterVideoSensorParamsStruct decodeTlv(B } else if (element.contextTagNum() == MAX_HDRFPS_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { UIntType castingValue = element.value(UIntType.class); - maxHDRFPS = castingValue.value(Integer.class); + maxHDRFPS = Optional.of(castingValue.value(Integer.class)); } } } return new CameraAvStreamManagementClusterVideoSensorParamsStruct( sensorWidth, sensorHeight, - HDRCapable, maxFPS, maxHDRFPS ); @@ -14195,9 +14183,6 @@ public String toString() { output.append("\tsensorHeight: "); output.append(sensorHeight); output.append("\n"); - output.append("\tHDRCapable: "); - output.append(HDRCapable); - output.append("\n"); output.append("\tmaxFPS: "); output.append(maxFPS); output.append("\n"); diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java index 885e1f045c0ccf..64242e9ab049a7 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java @@ -17284,7 +17284,7 @@ public enum Attribute { MaxNetworkBandwidth(11L), CurrentFrameRate(12L), HDRModeEnabled(13L), - FabricsUsingCamera(14L), + SupportedStreamUsages(14L), AllocatedVideoStreams(15L), AllocatedAudioStreams(16L), AllocatedSnapshotStreams(17L), @@ -17336,10 +17336,7 @@ public static Attribute value(long id) throws NoSuchFieldError { } } - public enum Event { - VideoStreamChanged(0L), - AudioStreamChanged(1L), - SnapshotStreamChanged(2L),; + public enum Event {; private final long id; Event(long id) { this.id = id; @@ -17366,9 +17363,10 @@ public enum Command { VideoStreamModify(5L), VideoStreamDeallocate(6L), SnapshotStreamAllocate(7L), - SnapshotStreamDeallocate(9L), - SetStreamPriorities(10L), - CaptureSnapshot(11L),; + SnapshotStreamModify(9L), + SnapshotStreamDeallocate(10L), + SetStreamPriorities(11L), + CaptureSnapshot(12L),; private final long id; Command(long id) { this.id = id; @@ -17471,7 +17469,7 @@ public static VideoStreamDeallocateCommandField value(int id) throws NoSuchField } throw new NoSuchFieldError(); } - }public enum SnapshotStreamAllocateCommandField {ImageCodec(0),MaxFrameRate(1),BitRate(2),MinResolution(3),MaxResolution(4),Quality(5),; + }public enum SnapshotStreamAllocateCommandField {ImageCodec(0),MaxFrameRate(1),BitRate(2),MinResolution(3),MaxResolution(4),Quality(5),WatermarkEnabled(6),OSDEnabled(7),; private final int id; SnapshotStreamAllocateCommandField(int id) { this.id = id; @@ -17488,6 +17486,23 @@ public static SnapshotStreamAllocateCommandField value(int id) throws NoSuchFiel } throw new NoSuchFieldError(); } + }public enum SnapshotStreamModifyCommandField {SnapshotStreamID(0),WatermarkEnabled(1),OSDEnabled(2),; + private final int id; + SnapshotStreamModifyCommandField(int id) { + this.id = id; + } + + public int getID() { + return id; + } + public static SnapshotStreamModifyCommandField value(int id) throws NoSuchFieldError { + for (SnapshotStreamModifyCommandField field : SnapshotStreamModifyCommandField.values()) { + if (field.getID() == id) { + return field; + } + } + throw new NoSuchFieldError(); + } }public enum SnapshotStreamDeallocateCommandField {SnapshotStreamID(0),; private final int id; SnapshotStreamDeallocateCommandField(int id) { diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java index f10d149932b188..7d6a3303c0aedf 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java @@ -20493,7 +20493,7 @@ public void onError(Exception ex) { } } - public static class DelegatedCameraAvStreamManagementClusterFabricsUsingCameraAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.FabricsUsingCameraAttributeCallback, DelegatedClusterCallback { + public static class DelegatedCameraAvStreamManagementClusterSupportedStreamUsagesAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.SupportedStreamUsagesAttributeCallback, DelegatedClusterCallback { private ClusterCommandCallback callback; @Override public void setCallbackDelegate(ClusterCommandCallback callback) { @@ -30728,6 +30728,12 @@ public Map> getCommandMap() { CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocatequalityCommandParameterInfo = new CommandParameterInfo("quality", Integer.class, Integer.class); cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("quality",cameraAvStreamManagementsnapshotStreamAllocatequalityCommandParameterInfo); + + CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocatewatermarkEnabledCommandParameterInfo = new CommandParameterInfo("watermarkEnabled", Optional.class, Boolean.class); + cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("watermarkEnabled",cameraAvStreamManagementsnapshotStreamAllocatewatermarkEnabledCommandParameterInfo); + + CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocateOSDEnabledCommandParameterInfo = new CommandParameterInfo("OSDEnabled", Optional.class, Boolean.class); + cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("OSDEnabled",cameraAvStreamManagementsnapshotStreamAllocateOSDEnabledCommandParameterInfo); InteractionInfo cameraAvStreamManagementsnapshotStreamAllocateInteractionInfo = new InteractionInfo( (cluster, callback, commandArguments) -> { ((ChipClusters.CameraAvStreamManagementCluster) cluster) @@ -30750,6 +30756,12 @@ public Map> getCommandMap() { , (Integer) commandArguments.get("quality") + , (Optional) + commandArguments.get("watermarkEnabled") + + , (Optional) + commandArguments.get("OSDEnabled") + ); }, () -> new DelegatedCameraAvStreamManagementClusterSnapshotStreamAllocateResponseCallback(), @@ -30757,6 +30769,33 @@ public Map> getCommandMap() { ); cameraAvStreamManagementClusterInteractionInfoMap.put("snapshotStreamAllocate", cameraAvStreamManagementsnapshotStreamAllocateInteractionInfo); + Map cameraAvStreamManagementsnapshotStreamModifyCommandParams = new LinkedHashMap(); + + CommandParameterInfo cameraAvStreamManagementsnapshotStreamModifysnapshotStreamIDCommandParameterInfo = new CommandParameterInfo("snapshotStreamID", Integer.class, Integer.class); + cameraAvStreamManagementsnapshotStreamModifyCommandParams.put("snapshotStreamID",cameraAvStreamManagementsnapshotStreamModifysnapshotStreamIDCommandParameterInfo); + + CommandParameterInfo cameraAvStreamManagementsnapshotStreamModifywatermarkEnabledCommandParameterInfo = new CommandParameterInfo("watermarkEnabled", Optional.class, Boolean.class); + cameraAvStreamManagementsnapshotStreamModifyCommandParams.put("watermarkEnabled",cameraAvStreamManagementsnapshotStreamModifywatermarkEnabledCommandParameterInfo); + + CommandParameterInfo cameraAvStreamManagementsnapshotStreamModifyOSDEnabledCommandParameterInfo = new CommandParameterInfo("OSDEnabled", Optional.class, Boolean.class); + cameraAvStreamManagementsnapshotStreamModifyCommandParams.put("OSDEnabled",cameraAvStreamManagementsnapshotStreamModifyOSDEnabledCommandParameterInfo); + InteractionInfo cameraAvStreamManagementsnapshotStreamModifyInteractionInfo = new InteractionInfo( + (cluster, callback, commandArguments) -> { + ((ChipClusters.CameraAvStreamManagementCluster) cluster) + .snapshotStreamModify((DefaultClusterCallback) callback + , (Integer) + commandArguments.get("snapshotStreamID") + , (Optional) + commandArguments.get("watermarkEnabled") + , (Optional) + commandArguments.get("OSDEnabled") + ); + }, + () -> new DelegatedDefaultClusterCallback(), + cameraAvStreamManagementsnapshotStreamModifyCommandParams + ); + cameraAvStreamManagementClusterInteractionInfoMap.put("snapshotStreamModify", cameraAvStreamManagementsnapshotStreamModifyInteractionInfo); + Map cameraAvStreamManagementsnapshotStreamDeallocateCommandParams = new LinkedHashMap(); CommandParameterInfo cameraAvStreamManagementsnapshotStreamDeallocatesnapshotStreamIDCommandParameterInfo = new CommandParameterInfo("snapshotStreamID", Integer.class, Integer.class); diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java index ff8503bec2e239..0281673b384c4b 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java @@ -18564,17 +18564,17 @@ private static Map readCameraAvStreamManagementInteract readCameraAvStreamManagementHDRModeEnabledCommandParams ); result.put("readHDRModeEnabledAttribute", readCameraAvStreamManagementHDRModeEnabledAttributeInteractionInfo); - Map readCameraAvStreamManagementFabricsUsingCameraCommandParams = new LinkedHashMap(); - InteractionInfo readCameraAvStreamManagementFabricsUsingCameraAttributeInteractionInfo = new InteractionInfo( + Map readCameraAvStreamManagementSupportedStreamUsagesCommandParams = new LinkedHashMap(); + InteractionInfo readCameraAvStreamManagementSupportedStreamUsagesAttributeInteractionInfo = new InteractionInfo( (cluster, callback, commandArguments) -> { - ((ChipClusters.CameraAvStreamManagementCluster) cluster).readFabricsUsingCameraAttribute( - (ChipClusters.CameraAvStreamManagementCluster.FabricsUsingCameraAttributeCallback) callback + ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSupportedStreamUsagesAttribute( + (ChipClusters.CameraAvStreamManagementCluster.SupportedStreamUsagesAttributeCallback) callback ); }, - () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterFabricsUsingCameraAttributeCallback(), - readCameraAvStreamManagementFabricsUsingCameraCommandParams + () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterSupportedStreamUsagesAttributeCallback(), + readCameraAvStreamManagementSupportedStreamUsagesCommandParams ); - result.put("readFabricsUsingCameraAttribute", readCameraAvStreamManagementFabricsUsingCameraAttributeInteractionInfo); + result.put("readSupportedStreamUsagesAttribute", readCameraAvStreamManagementSupportedStreamUsagesAttributeInteractionInfo); Map readCameraAvStreamManagementAllocatedVideoStreamsCommandParams = new LinkedHashMap(); InteractionInfo readCameraAvStreamManagementAllocatedVideoStreamsAttributeInteractionInfo = new InteractionInfo( (cluster, callback, commandArguments) -> { diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt deleted file mode 100644 index 4c6471dddbb5e7..00000000000000 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt +++ /dev/null @@ -1,144 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package chip.devicecontroller.cluster.eventstructs - -import chip.devicecontroller.cluster.* -import java.util.Optional -import matter.tlv.ContextSpecificTag -import matter.tlv.Tag -import matter.tlv.TlvReader -import matter.tlv.TlvWriter - -class CameraAvStreamManagementClusterAudioStreamChangedEvent( - val audioStreamID: UInt, - val streamUsage: Optional, - val audioCodec: Optional, - val channelCount: Optional, - val sampleRate: Optional, - val bitRate: Optional, - val bitDepth: Optional, -) { - override fun toString(): String = buildString { - append("CameraAvStreamManagementClusterAudioStreamChangedEvent {\n") - append("\taudioStreamID : $audioStreamID\n") - append("\tstreamUsage : $streamUsage\n") - append("\taudioCodec : $audioCodec\n") - append("\tchannelCount : $channelCount\n") - append("\tsampleRate : $sampleRate\n") - append("\tbitRate : $bitRate\n") - append("\tbitDepth : $bitDepth\n") - append("}\n") - } - - fun toTlv(tlvTag: Tag, tlvWriter: TlvWriter) { - tlvWriter.apply { - startStructure(tlvTag) - put(ContextSpecificTag(TAG_AUDIO_STREAM_ID), audioStreamID) - if (streamUsage.isPresent) { - val optstreamUsage = streamUsage.get() - put(ContextSpecificTag(TAG_STREAM_USAGE), optstreamUsage) - } - if (audioCodec.isPresent) { - val optaudioCodec = audioCodec.get() - put(ContextSpecificTag(TAG_AUDIO_CODEC), optaudioCodec) - } - if (channelCount.isPresent) { - val optchannelCount = channelCount.get() - put(ContextSpecificTag(TAG_CHANNEL_COUNT), optchannelCount) - } - if (sampleRate.isPresent) { - val optsampleRate = sampleRate.get() - put(ContextSpecificTag(TAG_SAMPLE_RATE), optsampleRate) - } - if (bitRate.isPresent) { - val optbitRate = bitRate.get() - put(ContextSpecificTag(TAG_BIT_RATE), optbitRate) - } - if (bitDepth.isPresent) { - val optbitDepth = bitDepth.get() - put(ContextSpecificTag(TAG_BIT_DEPTH), optbitDepth) - } - endStructure() - } - } - - companion object { - private const val TAG_AUDIO_STREAM_ID = 0 - private const val TAG_STREAM_USAGE = 1 - private const val TAG_AUDIO_CODEC = 2 - private const val TAG_CHANNEL_COUNT = 3 - private const val TAG_SAMPLE_RATE = 4 - private const val TAG_BIT_RATE = 5 - private const val TAG_BIT_DEPTH = 6 - - fun fromTlv( - tlvTag: Tag, - tlvReader: TlvReader, - ): CameraAvStreamManagementClusterAudioStreamChangedEvent { - tlvReader.enterStructure(tlvTag) - val audioStreamID = tlvReader.getUInt(ContextSpecificTag(TAG_AUDIO_STREAM_ID)) - val streamUsage = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_STREAM_USAGE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_STREAM_USAGE))) - } else { - Optional.empty() - } - val audioCodec = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_AUDIO_CODEC))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_AUDIO_CODEC))) - } else { - Optional.empty() - } - val channelCount = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_CHANNEL_COUNT))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_CHANNEL_COUNT))) - } else { - Optional.empty() - } - val sampleRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_SAMPLE_RATE))) { - Optional.of(tlvReader.getULong(ContextSpecificTag(TAG_SAMPLE_RATE))) - } else { - Optional.empty() - } - val bitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_BIT_RATE))) { - Optional.of(tlvReader.getULong(ContextSpecificTag(TAG_BIT_RATE))) - } else { - Optional.empty() - } - val bitDepth = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_BIT_DEPTH))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_BIT_DEPTH))) - } else { - Optional.empty() - } - - tlvReader.exitContainer() - - return CameraAvStreamManagementClusterAudioStreamChangedEvent( - audioStreamID, - streamUsage, - audioCodec, - channelCount, - sampleRate, - bitRate, - bitDepth, - ) - } - } -} diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt deleted file mode 100644 index 7863af3d86b853..00000000000000 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt +++ /dev/null @@ -1,158 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package chip.devicecontroller.cluster.eventstructs - -import chip.devicecontroller.cluster.* -import java.util.Optional -import matter.tlv.ContextSpecificTag -import matter.tlv.Tag -import matter.tlv.TlvReader -import matter.tlv.TlvWriter - -class CameraAvStreamManagementClusterSnapshotStreamChangedEvent( - val snapshotStreamID: UInt, - val imageCodec: Optional, - val frameRate: Optional, - val bitRate: Optional, - val minResolution: - Optional< - chip.devicecontroller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val maxResolution: - Optional< - chip.devicecontroller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val quality: Optional, -) { - override fun toString(): String = buildString { - append("CameraAvStreamManagementClusterSnapshotStreamChangedEvent {\n") - append("\tsnapshotStreamID : $snapshotStreamID\n") - append("\timageCodec : $imageCodec\n") - append("\tframeRate : $frameRate\n") - append("\tbitRate : $bitRate\n") - append("\tminResolution : $minResolution\n") - append("\tmaxResolution : $maxResolution\n") - append("\tquality : $quality\n") - append("}\n") - } - - fun toTlv(tlvTag: Tag, tlvWriter: TlvWriter) { - tlvWriter.apply { - startStructure(tlvTag) - put(ContextSpecificTag(TAG_SNAPSHOT_STREAM_ID), snapshotStreamID) - if (imageCodec.isPresent) { - val optimageCodec = imageCodec.get() - put(ContextSpecificTag(TAG_IMAGE_CODEC), optimageCodec) - } - if (frameRate.isPresent) { - val optframeRate = frameRate.get() - put(ContextSpecificTag(TAG_FRAME_RATE), optframeRate) - } - if (bitRate.isPresent) { - val optbitRate = bitRate.get() - put(ContextSpecificTag(TAG_BIT_RATE), optbitRate) - } - if (minResolution.isPresent) { - val optminResolution = minResolution.get() - optminResolution.toTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), this) - } - if (maxResolution.isPresent) { - val optmaxResolution = maxResolution.get() - optmaxResolution.toTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), this) - } - if (quality.isPresent) { - val optquality = quality.get() - put(ContextSpecificTag(TAG_QUALITY), optquality) - } - endStructure() - } - } - - companion object { - private const val TAG_SNAPSHOT_STREAM_ID = 0 - private const val TAG_IMAGE_CODEC = 1 - private const val TAG_FRAME_RATE = 2 - private const val TAG_BIT_RATE = 3 - private const val TAG_MIN_RESOLUTION = 4 - private const val TAG_MAX_RESOLUTION = 5 - private const val TAG_QUALITY = 6 - - fun fromTlv( - tlvTag: Tag, - tlvReader: TlvReader, - ): CameraAvStreamManagementClusterSnapshotStreamChangedEvent { - tlvReader.enterStructure(tlvTag) - val snapshotStreamID = tlvReader.getUInt(ContextSpecificTag(TAG_SNAPSHOT_STREAM_ID)) - val imageCodec = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_IMAGE_CODEC))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_IMAGE_CODEC))) - } else { - Optional.empty() - } - val frameRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_FRAME_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_FRAME_RATE))) - } else { - Optional.empty() - } - val bitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_BIT_RATE))) { - Optional.of(tlvReader.getULong(ContextSpecificTag(TAG_BIT_RATE))) - } else { - Optional.empty() - } - val minResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_RESOLUTION))) { - Optional.of( - chip.devicecontroller.cluster.structs - .CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val maxResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_RESOLUTION))) { - Optional.of( - chip.devicecontroller.cluster.structs - .CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val quality = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_QUALITY))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_QUALITY))) - } else { - Optional.empty() - } - - tlvReader.exitContainer() - - return CameraAvStreamManagementClusterSnapshotStreamChangedEvent( - snapshotStreamID, - imageCodec, - frameRate, - bitRate, - minResolution, - maxResolution, - quality, - ) - } - } -} diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt deleted file mode 100644 index 802ce6a49c8c67..00000000000000 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt +++ /dev/null @@ -1,214 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package chip.devicecontroller.cluster.eventstructs - -import chip.devicecontroller.cluster.* -import java.util.Optional -import matter.tlv.ContextSpecificTag -import matter.tlv.Tag -import matter.tlv.TlvReader -import matter.tlv.TlvWriter - -class CameraAvStreamManagementClusterVideoStreamChangedEvent( - val videoStreamID: UInt, - val streamUsage: Optional, - val videoCodec: Optional, - val minFrameRate: Optional, - val maxFrameRate: Optional, - val minResolution: - Optional< - chip.devicecontroller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val maxResolution: - Optional< - chip.devicecontroller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val minBitRate: Optional, - val maxBitRate: Optional, - val minFragmentLen: Optional, - val maxFragmentLen: Optional, -) { - override fun toString(): String = buildString { - append("CameraAvStreamManagementClusterVideoStreamChangedEvent {\n") - append("\tvideoStreamID : $videoStreamID\n") - append("\tstreamUsage : $streamUsage\n") - append("\tvideoCodec : $videoCodec\n") - append("\tminFrameRate : $minFrameRate\n") - append("\tmaxFrameRate : $maxFrameRate\n") - append("\tminResolution : $minResolution\n") - append("\tmaxResolution : $maxResolution\n") - append("\tminBitRate : $minBitRate\n") - append("\tmaxBitRate : $maxBitRate\n") - append("\tminFragmentLen : $minFragmentLen\n") - append("\tmaxFragmentLen : $maxFragmentLen\n") - append("}\n") - } - - fun toTlv(tlvTag: Tag, tlvWriter: TlvWriter) { - tlvWriter.apply { - startStructure(tlvTag) - put(ContextSpecificTag(TAG_VIDEO_STREAM_ID), videoStreamID) - if (streamUsage.isPresent) { - val optstreamUsage = streamUsage.get() - put(ContextSpecificTag(TAG_STREAM_USAGE), optstreamUsage) - } - if (videoCodec.isPresent) { - val optvideoCodec = videoCodec.get() - put(ContextSpecificTag(TAG_VIDEO_CODEC), optvideoCodec) - } - if (minFrameRate.isPresent) { - val optminFrameRate = minFrameRate.get() - put(ContextSpecificTag(TAG_MIN_FRAME_RATE), optminFrameRate) - } - if (maxFrameRate.isPresent) { - val optmaxFrameRate = maxFrameRate.get() - put(ContextSpecificTag(TAG_MAX_FRAME_RATE), optmaxFrameRate) - } - if (minResolution.isPresent) { - val optminResolution = minResolution.get() - optminResolution.toTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), this) - } - if (maxResolution.isPresent) { - val optmaxResolution = maxResolution.get() - optmaxResolution.toTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), this) - } - if (minBitRate.isPresent) { - val optminBitRate = minBitRate.get() - put(ContextSpecificTag(TAG_MIN_BIT_RATE), optminBitRate) - } - if (maxBitRate.isPresent) { - val optmaxBitRate = maxBitRate.get() - put(ContextSpecificTag(TAG_MAX_BIT_RATE), optmaxBitRate) - } - if (minFragmentLen.isPresent) { - val optminFragmentLen = minFragmentLen.get() - put(ContextSpecificTag(TAG_MIN_FRAGMENT_LEN), optminFragmentLen) - } - if (maxFragmentLen.isPresent) { - val optmaxFragmentLen = maxFragmentLen.get() - put(ContextSpecificTag(TAG_MAX_FRAGMENT_LEN), optmaxFragmentLen) - } - endStructure() - } - } - - companion object { - private const val TAG_VIDEO_STREAM_ID = 0 - private const val TAG_STREAM_USAGE = 1 - private const val TAG_VIDEO_CODEC = 2 - private const val TAG_MIN_FRAME_RATE = 3 - private const val TAG_MAX_FRAME_RATE = 4 - private const val TAG_MIN_RESOLUTION = 5 - private const val TAG_MAX_RESOLUTION = 6 - private const val TAG_MIN_BIT_RATE = 7 - private const val TAG_MAX_BIT_RATE = 8 - private const val TAG_MIN_FRAGMENT_LEN = 9 - private const val TAG_MAX_FRAGMENT_LEN = 10 - - fun fromTlv( - tlvTag: Tag, - tlvReader: TlvReader, - ): CameraAvStreamManagementClusterVideoStreamChangedEvent { - tlvReader.enterStructure(tlvTag) - val videoStreamID = tlvReader.getUInt(ContextSpecificTag(TAG_VIDEO_STREAM_ID)) - val streamUsage = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_STREAM_USAGE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_STREAM_USAGE))) - } else { - Optional.empty() - } - val videoCodec = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_VIDEO_CODEC))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_VIDEO_CODEC))) - } else { - Optional.empty() - } - val minFrameRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_FRAME_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MIN_FRAME_RATE))) - } else { - Optional.empty() - } - val maxFrameRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_FRAME_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MAX_FRAME_RATE))) - } else { - Optional.empty() - } - val minResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_RESOLUTION))) { - Optional.of( - chip.devicecontroller.cluster.structs - .CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val maxResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_RESOLUTION))) { - Optional.of( - chip.devicecontroller.cluster.structs - .CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val minBitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_BIT_RATE))) { - Optional.of(tlvReader.getULong(ContextSpecificTag(TAG_MIN_BIT_RATE))) - } else { - Optional.empty() - } - val maxBitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_BIT_RATE))) { - Optional.of(tlvReader.getULong(ContextSpecificTag(TAG_MAX_BIT_RATE))) - } else { - Optional.empty() - } - val minFragmentLen = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_FRAGMENT_LEN))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MIN_FRAGMENT_LEN))) - } else { - Optional.empty() - } - val maxFragmentLen = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_FRAGMENT_LEN))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MAX_FRAGMENT_LEN))) - } else { - Optional.empty() - } - - tlvReader.exitContainer() - - return CameraAvStreamManagementClusterVideoStreamChangedEvent( - videoStreamID, - streamUsage, - videoCodec, - minFrameRate, - maxFrameRate, - minResolution, - maxResolution, - minBitRate, - maxBitRate, - minFragmentLen, - maxFragmentLen, - ) - } - } -} diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni b/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni index d5c85a30254287..8c1864dd3cb333 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni +++ b/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni @@ -210,9 +210,6 @@ eventstructs_sources = [ "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/BridgedDeviceBasicInformationClusterActiveChangedEvent.kt", "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/BridgedDeviceBasicInformationClusterReachableChangedEvent.kt", "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/BridgedDeviceBasicInformationClusterStartUpEvent.kt", - "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt", - "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt", - "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt", "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CommissionerControlClusterCommissioningRequestResultEvent.kt", "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/DemandResponseLoadControlClusterLoadControlEventStatusChangeEvent.kt", "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/DeviceEnergyManagementClusterPowerAdjustEndEvent.kt", diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt index ed6516bd11c587..4aee8408a85c74 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt +++ b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt @@ -17,6 +17,7 @@ package chip.devicecontroller.cluster.structs import chip.devicecontroller.cluster.* +import java.util.Optional import matter.tlv.ContextSpecificTag import matter.tlv.Tag import matter.tlv.TlvReader @@ -25,15 +26,13 @@ import matter.tlv.TlvWriter class CameraAvStreamManagementClusterVideoSensorParamsStruct( val sensorWidth: UInt, val sensorHeight: UInt, - val HDRCapable: Boolean, val maxFPS: UInt, - val maxHDRFPS: UInt, + val maxHDRFPS: Optional, ) { override fun toString(): String = buildString { append("CameraAvStreamManagementClusterVideoSensorParamsStruct {\n") append("\tsensorWidth : $sensorWidth\n") append("\tsensorHeight : $sensorHeight\n") - append("\tHDRCapable : $HDRCapable\n") append("\tmaxFPS : $maxFPS\n") append("\tmaxHDRFPS : $maxHDRFPS\n") append("}\n") @@ -44,9 +43,11 @@ class CameraAvStreamManagementClusterVideoSensorParamsStruct( startStructure(tlvTag) put(ContextSpecificTag(TAG_SENSOR_WIDTH), sensorWidth) put(ContextSpecificTag(TAG_SENSOR_HEIGHT), sensorHeight) - put(ContextSpecificTag(TAG_HDR_CAPABLE), HDRCapable) put(ContextSpecificTag(TAG_MAX_FPS), maxFPS) - put(ContextSpecificTag(TAG_MAX_HDRFPS), maxHDRFPS) + if (maxHDRFPS.isPresent) { + val optmaxHDRFPS = maxHDRFPS.get() + put(ContextSpecificTag(TAG_MAX_HDRFPS), optmaxHDRFPS) + } endStructure() } } @@ -54,9 +55,8 @@ class CameraAvStreamManagementClusterVideoSensorParamsStruct( companion object { private const val TAG_SENSOR_WIDTH = 0 private const val TAG_SENSOR_HEIGHT = 1 - private const val TAG_HDR_CAPABLE = 2 - private const val TAG_MAX_FPS = 3 - private const val TAG_MAX_HDRFPS = 4 + private const val TAG_MAX_FPS = 2 + private const val TAG_MAX_HDRFPS = 3 fun fromTlv( tlvTag: Tag, @@ -65,16 +65,19 @@ class CameraAvStreamManagementClusterVideoSensorParamsStruct( tlvReader.enterStructure(tlvTag) val sensorWidth = tlvReader.getUInt(ContextSpecificTag(TAG_SENSOR_WIDTH)) val sensorHeight = tlvReader.getUInt(ContextSpecificTag(TAG_SENSOR_HEIGHT)) - val HDRCapable = tlvReader.getBoolean(ContextSpecificTag(TAG_HDR_CAPABLE)) val maxFPS = tlvReader.getUInt(ContextSpecificTag(TAG_MAX_FPS)) - val maxHDRFPS = tlvReader.getUInt(ContextSpecificTag(TAG_MAX_HDRFPS)) + val maxHDRFPS = + if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_HDRFPS))) { + Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MAX_HDRFPS))) + } else { + Optional.empty() + } tlvReader.exitContainer() return CameraAvStreamManagementClusterVideoSensorParamsStruct( sensorWidth, sensorHeight, - HDRCapable, maxFPS, maxHDRFPS, ) diff --git a/src/controller/java/generated/java/matter/controller/cluster/clusters/CameraAvStreamManagementCluster.kt b/src/controller/java/generated/java/matter/controller/cluster/clusters/CameraAvStreamManagementCluster.kt index 037f97217b68a3..8a156bfad42144 100644 --- a/src/controller/java/generated/java/matter/controller/cluster/clusters/CameraAvStreamManagementCluster.kt +++ b/src/controller/java/generated/java/matter/controller/cluster/clusters/CameraAvStreamManagementCluster.kt @@ -139,14 +139,14 @@ class CameraAvStreamManagementCluster( object SubscriptionEstablished : SupportedSnapshotParamsAttributeSubscriptionState() } - class FabricsUsingCameraAttribute(val value: List) + class SupportedStreamUsagesAttribute(val value: List) - sealed class FabricsUsingCameraAttributeSubscriptionState { - data class Success(val value: List) : FabricsUsingCameraAttributeSubscriptionState() + sealed class SupportedStreamUsagesAttributeSubscriptionState { + data class Success(val value: List) : SupportedStreamUsagesAttributeSubscriptionState() - data class Error(val exception: Exception) : FabricsUsingCameraAttributeSubscriptionState() + data class Error(val exception: Exception) : SupportedStreamUsagesAttributeSubscriptionState() - object SubscriptionEstablished : FabricsUsingCameraAttributeSubscriptionState() + object SubscriptionEstablished : SupportedStreamUsagesAttributeSubscriptionState() } class AllocatedVideoStreamsAttribute( @@ -495,6 +495,8 @@ class CameraAvStreamManagementCluster( minResolution: CameraAvStreamManagementClusterVideoResolutionStruct, maxResolution: CameraAvStreamManagementClusterVideoResolutionStruct, quality: UByte, + watermarkEnabled: Boolean?, + OSDEnabled: Boolean?, timedInvokeTimeout: Duration? = null, ): SnapshotStreamAllocateResponse { val commandId: UInt = 7u @@ -519,6 +521,14 @@ class CameraAvStreamManagementCluster( val TAG_QUALITY_REQ: Int = 5 tlvWriter.put(ContextSpecificTag(TAG_QUALITY_REQ), quality) + + val TAG_WATERMARK_ENABLED_REQ: Int = 6 + watermarkEnabled?.let { + tlvWriter.put(ContextSpecificTag(TAG_WATERMARK_ENABLED_REQ), watermarkEnabled) + } + + val TAG_OSD_ENABLED_REQ: Int = 7 + OSDEnabled?.let { tlvWriter.put(ContextSpecificTag(TAG_OSD_ENABLED_REQ), OSDEnabled) } tlvWriter.endStructure() val request: InvokeRequest = @@ -555,8 +565,10 @@ class CameraAvStreamManagementCluster( return SnapshotStreamAllocateResponse(snapshotStreamID_decoded) } - suspend fun snapshotStreamDeallocate( + suspend fun snapshotStreamModify( snapshotStreamID: UShort, + watermarkEnabled: Boolean?, + OSDEnabled: Boolean?, timedInvokeTimeout: Duration? = null, ) { val commandId: UInt = 9u @@ -564,6 +576,38 @@ class CameraAvStreamManagementCluster( val tlvWriter = TlvWriter() tlvWriter.startStructure(AnonymousTag) + val TAG_SNAPSHOT_STREAM_ID_REQ: Int = 0 + tlvWriter.put(ContextSpecificTag(TAG_SNAPSHOT_STREAM_ID_REQ), snapshotStreamID) + + val TAG_WATERMARK_ENABLED_REQ: Int = 1 + watermarkEnabled?.let { + tlvWriter.put(ContextSpecificTag(TAG_WATERMARK_ENABLED_REQ), watermarkEnabled) + } + + val TAG_OSD_ENABLED_REQ: Int = 2 + OSDEnabled?.let { tlvWriter.put(ContextSpecificTag(TAG_OSD_ENABLED_REQ), OSDEnabled) } + tlvWriter.endStructure() + + val request: InvokeRequest = + InvokeRequest( + CommandPath(endpointId, clusterId = CLUSTER_ID, commandId), + tlvPayload = tlvWriter.getEncoded(), + timedRequest = timedInvokeTimeout, + ) + + val response: InvokeResponse = controller.invoke(request) + logger.log(Level.FINE, "Invoke command succeeded: ${response}") + } + + suspend fun snapshotStreamDeallocate( + snapshotStreamID: UShort, + timedInvokeTimeout: Duration? = null, + ) { + val commandId: UInt = 10u + + val tlvWriter = TlvWriter() + tlvWriter.startStructure(AnonymousTag) + val TAG_SNAPSHOT_STREAM_ID_REQ: Int = 0 tlvWriter.put(ContextSpecificTag(TAG_SNAPSHOT_STREAM_ID_REQ), snapshotStreamID) tlvWriter.endStructure() @@ -583,7 +627,7 @@ class CameraAvStreamManagementCluster( streamPriorities: List, timedInvokeTimeout: Duration? = null, ) { - val commandId: UInt = 10u + val commandId: UInt = 11u val tlvWriter = TlvWriter() tlvWriter.startStructure(AnonymousTag) @@ -612,7 +656,7 @@ class CameraAvStreamManagementCluster( requestedResolution: CameraAvStreamManagementClusterVideoResolutionStruct, timedInvokeTimeout: Duration? = null, ): CaptureSnapshotResponse { - val commandId: UInt = 11u + val commandId: UInt = 12u val tlvWriter = TlvWriter() tlvWriter.startStructure(AnonymousTag) @@ -1265,7 +1309,7 @@ class CameraAvStreamManagementCluster( } } - suspend fun readMaxContentBufferSizeAttribute(): UInt? { + suspend fun readMaxContentBufferSizeAttribute(): UInt { val ATTRIBUTE_ID: UInt = 6u val attributePath = @@ -1291,12 +1335,7 @@ class CameraAvStreamManagementCluster( // Decode the TLV data into the appropriate type val tlvReader = TlvReader(attributeData.data) - val decodedValue: UInt? = - if (tlvReader.isNextTag(AnonymousTag)) { - tlvReader.getUInt(AnonymousTag) - } else { - null - } + val decodedValue: UInt = tlvReader.getUInt(AnonymousTag) return decodedValue } @@ -1342,14 +1381,9 @@ class CameraAvStreamManagementCluster( // Decode the TLV data into the appropriate type val tlvReader = TlvReader(attributeData.data) - val decodedValue: UInt? = - if (tlvReader.isNextTag(AnonymousTag)) { - tlvReader.getUInt(AnonymousTag) - } else { - null - } + val decodedValue: UInt = tlvReader.getUInt(AnonymousTag) - decodedValue?.let { emit(UIntSubscriptionState.Success(it)) } + emit(UIntSubscriptionState.Success(decodedValue)) } SubscriptionState.SubscriptionEstablished -> { emit(UIntSubscriptionState.SubscriptionEstablished) @@ -2064,7 +2098,7 @@ class CameraAvStreamManagementCluster( } } - suspend fun readFabricsUsingCameraAttribute(): FabricsUsingCameraAttribute { + suspend fun readSupportedStreamUsagesAttribute(): SupportedStreamUsagesAttribute { val ATTRIBUTE_ID: UInt = 14u val attributePath = @@ -2086,7 +2120,7 @@ class CameraAvStreamManagementCluster( it.path.attributeId == ATTRIBUTE_ID } - requireNotNull(attributeData) { "Fabricsusingcamera attribute not found in response" } + requireNotNull(attributeData) { "Supportedstreamusages attribute not found in response" } // Decode the TLV data into the appropriate type val tlvReader = TlvReader(attributeData.data) @@ -2099,13 +2133,13 @@ class CameraAvStreamManagementCluster( tlvReader.exitContainer() } - return FabricsUsingCameraAttribute(decodedValue) + return SupportedStreamUsagesAttribute(decodedValue) } - suspend fun subscribeFabricsUsingCameraAttribute( + suspend fun subscribeSupportedStreamUsagesAttribute( minInterval: Int, maxInterval: Int, - ): Flow { + ): Flow { val ATTRIBUTE_ID: UInt = 14u val attributePaths = listOf( @@ -2124,7 +2158,7 @@ class CameraAvStreamManagementCluster( when (subscriptionState) { is SubscriptionState.SubscriptionErrorNotification -> { emit( - FabricsUsingCameraAttributeSubscriptionState.Error( + SupportedStreamUsagesAttributeSubscriptionState.Error( Exception( "Subscription terminated with error code: ${subscriptionState.terminationCause}" ) @@ -2138,7 +2172,7 @@ class CameraAvStreamManagementCluster( .firstOrNull { it.path.attributeId == ATTRIBUTE_ID } requireNotNull(attributeData) { - "Fabricsusingcamera attribute not found in Node State update" + "Supportedstreamusages attribute not found in Node State update" } // Decode the TLV data into the appropriate type @@ -2152,10 +2186,10 @@ class CameraAvStreamManagementCluster( tlvReader.exitContainer() } - emit(FabricsUsingCameraAttributeSubscriptionState.Success(decodedValue)) + emit(SupportedStreamUsagesAttributeSubscriptionState.Success(decodedValue)) } SubscriptionState.SubscriptionEstablished -> { - emit(FabricsUsingCameraAttributeSubscriptionState.SubscriptionEstablished) + emit(SupportedStreamUsagesAttributeSubscriptionState.SubscriptionEstablished) } } } diff --git a/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt b/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt deleted file mode 100644 index 3e3f78187c7c50..00000000000000 --- a/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt +++ /dev/null @@ -1,144 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package matter.controller.cluster.eventstructs - -import java.util.Optional -import matter.controller.cluster.* -import matter.tlv.ContextSpecificTag -import matter.tlv.Tag -import matter.tlv.TlvReader -import matter.tlv.TlvWriter - -class CameraAvStreamManagementClusterAudioStreamChangedEvent( - val audioStreamID: UShort, - val streamUsage: Optional, - val audioCodec: Optional, - val channelCount: Optional, - val sampleRate: Optional, - val bitRate: Optional, - val bitDepth: Optional, -) { - override fun toString(): String = buildString { - append("CameraAvStreamManagementClusterAudioStreamChangedEvent {\n") - append("\taudioStreamID : $audioStreamID\n") - append("\tstreamUsage : $streamUsage\n") - append("\taudioCodec : $audioCodec\n") - append("\tchannelCount : $channelCount\n") - append("\tsampleRate : $sampleRate\n") - append("\tbitRate : $bitRate\n") - append("\tbitDepth : $bitDepth\n") - append("}\n") - } - - fun toTlv(tlvTag: Tag, tlvWriter: TlvWriter) { - tlvWriter.apply { - startStructure(tlvTag) - put(ContextSpecificTag(TAG_AUDIO_STREAM_ID), audioStreamID) - if (streamUsage.isPresent) { - val optstreamUsage = streamUsage.get() - put(ContextSpecificTag(TAG_STREAM_USAGE), optstreamUsage) - } - if (audioCodec.isPresent) { - val optaudioCodec = audioCodec.get() - put(ContextSpecificTag(TAG_AUDIO_CODEC), optaudioCodec) - } - if (channelCount.isPresent) { - val optchannelCount = channelCount.get() - put(ContextSpecificTag(TAG_CHANNEL_COUNT), optchannelCount) - } - if (sampleRate.isPresent) { - val optsampleRate = sampleRate.get() - put(ContextSpecificTag(TAG_SAMPLE_RATE), optsampleRate) - } - if (bitRate.isPresent) { - val optbitRate = bitRate.get() - put(ContextSpecificTag(TAG_BIT_RATE), optbitRate) - } - if (bitDepth.isPresent) { - val optbitDepth = bitDepth.get() - put(ContextSpecificTag(TAG_BIT_DEPTH), optbitDepth) - } - endStructure() - } - } - - companion object { - private const val TAG_AUDIO_STREAM_ID = 0 - private const val TAG_STREAM_USAGE = 1 - private const val TAG_AUDIO_CODEC = 2 - private const val TAG_CHANNEL_COUNT = 3 - private const val TAG_SAMPLE_RATE = 4 - private const val TAG_BIT_RATE = 5 - private const val TAG_BIT_DEPTH = 6 - - fun fromTlv( - tlvTag: Tag, - tlvReader: TlvReader, - ): CameraAvStreamManagementClusterAudioStreamChangedEvent { - tlvReader.enterStructure(tlvTag) - val audioStreamID = tlvReader.getUShort(ContextSpecificTag(TAG_AUDIO_STREAM_ID)) - val streamUsage = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_STREAM_USAGE))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_STREAM_USAGE))) - } else { - Optional.empty() - } - val audioCodec = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_AUDIO_CODEC))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_AUDIO_CODEC))) - } else { - Optional.empty() - } - val channelCount = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_CHANNEL_COUNT))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_CHANNEL_COUNT))) - } else { - Optional.empty() - } - val sampleRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_SAMPLE_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_SAMPLE_RATE))) - } else { - Optional.empty() - } - val bitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_BIT_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_BIT_RATE))) - } else { - Optional.empty() - } - val bitDepth = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_BIT_DEPTH))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_BIT_DEPTH))) - } else { - Optional.empty() - } - - tlvReader.exitContainer() - - return CameraAvStreamManagementClusterAudioStreamChangedEvent( - audioStreamID, - streamUsage, - audioCodec, - channelCount, - sampleRate, - bitRate, - bitDepth, - ) - } - } -} diff --git a/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt b/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt deleted file mode 100644 index 074df191c914fd..00000000000000 --- a/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt +++ /dev/null @@ -1,156 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package matter.controller.cluster.eventstructs - -import java.util.Optional -import matter.controller.cluster.* -import matter.tlv.ContextSpecificTag -import matter.tlv.Tag -import matter.tlv.TlvReader -import matter.tlv.TlvWriter - -class CameraAvStreamManagementClusterSnapshotStreamChangedEvent( - val snapshotStreamID: UShort, - val imageCodec: Optional, - val frameRate: Optional, - val bitRate: Optional, - val minResolution: - Optional< - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val maxResolution: - Optional< - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val quality: Optional, -) { - override fun toString(): String = buildString { - append("CameraAvStreamManagementClusterSnapshotStreamChangedEvent {\n") - append("\tsnapshotStreamID : $snapshotStreamID\n") - append("\timageCodec : $imageCodec\n") - append("\tframeRate : $frameRate\n") - append("\tbitRate : $bitRate\n") - append("\tminResolution : $minResolution\n") - append("\tmaxResolution : $maxResolution\n") - append("\tquality : $quality\n") - append("}\n") - } - - fun toTlv(tlvTag: Tag, tlvWriter: TlvWriter) { - tlvWriter.apply { - startStructure(tlvTag) - put(ContextSpecificTag(TAG_SNAPSHOT_STREAM_ID), snapshotStreamID) - if (imageCodec.isPresent) { - val optimageCodec = imageCodec.get() - put(ContextSpecificTag(TAG_IMAGE_CODEC), optimageCodec) - } - if (frameRate.isPresent) { - val optframeRate = frameRate.get() - put(ContextSpecificTag(TAG_FRAME_RATE), optframeRate) - } - if (bitRate.isPresent) { - val optbitRate = bitRate.get() - put(ContextSpecificTag(TAG_BIT_RATE), optbitRate) - } - if (minResolution.isPresent) { - val optminResolution = minResolution.get() - optminResolution.toTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), this) - } - if (maxResolution.isPresent) { - val optmaxResolution = maxResolution.get() - optmaxResolution.toTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), this) - } - if (quality.isPresent) { - val optquality = quality.get() - put(ContextSpecificTag(TAG_QUALITY), optquality) - } - endStructure() - } - } - - companion object { - private const val TAG_SNAPSHOT_STREAM_ID = 0 - private const val TAG_IMAGE_CODEC = 1 - private const val TAG_FRAME_RATE = 2 - private const val TAG_BIT_RATE = 3 - private const val TAG_MIN_RESOLUTION = 4 - private const val TAG_MAX_RESOLUTION = 5 - private const val TAG_QUALITY = 6 - - fun fromTlv( - tlvTag: Tag, - tlvReader: TlvReader, - ): CameraAvStreamManagementClusterSnapshotStreamChangedEvent { - tlvReader.enterStructure(tlvTag) - val snapshotStreamID = tlvReader.getUShort(ContextSpecificTag(TAG_SNAPSHOT_STREAM_ID)) - val imageCodec = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_IMAGE_CODEC))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_IMAGE_CODEC))) - } else { - Optional.empty() - } - val frameRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_FRAME_RATE))) { - Optional.of(tlvReader.getUShort(ContextSpecificTag(TAG_FRAME_RATE))) - } else { - Optional.empty() - } - val bitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_BIT_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_BIT_RATE))) - } else { - Optional.empty() - } - val minResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_RESOLUTION))) { - Optional.of( - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val maxResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_RESOLUTION))) { - Optional.of( - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val quality = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_QUALITY))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_QUALITY))) - } else { - Optional.empty() - } - - tlvReader.exitContainer() - - return CameraAvStreamManagementClusterSnapshotStreamChangedEvent( - snapshotStreamID, - imageCodec, - frameRate, - bitRate, - minResolution, - maxResolution, - quality, - ) - } - } -} diff --git a/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt b/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt deleted file mode 100644 index e365197fee4a8c..00000000000000 --- a/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt +++ /dev/null @@ -1,212 +0,0 @@ -/* - * - * Copyright (c) 2023 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package matter.controller.cluster.eventstructs - -import java.util.Optional -import matter.controller.cluster.* -import matter.tlv.ContextSpecificTag -import matter.tlv.Tag -import matter.tlv.TlvReader -import matter.tlv.TlvWriter - -class CameraAvStreamManagementClusterVideoStreamChangedEvent( - val videoStreamID: UShort, - val streamUsage: Optional, - val videoCodec: Optional, - val minFrameRate: Optional, - val maxFrameRate: Optional, - val minResolution: - Optional< - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val maxResolution: - Optional< - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - >, - val minBitRate: Optional, - val maxBitRate: Optional, - val minFragmentLen: Optional, - val maxFragmentLen: Optional, -) { - override fun toString(): String = buildString { - append("CameraAvStreamManagementClusterVideoStreamChangedEvent {\n") - append("\tvideoStreamID : $videoStreamID\n") - append("\tstreamUsage : $streamUsage\n") - append("\tvideoCodec : $videoCodec\n") - append("\tminFrameRate : $minFrameRate\n") - append("\tmaxFrameRate : $maxFrameRate\n") - append("\tminResolution : $minResolution\n") - append("\tmaxResolution : $maxResolution\n") - append("\tminBitRate : $minBitRate\n") - append("\tmaxBitRate : $maxBitRate\n") - append("\tminFragmentLen : $minFragmentLen\n") - append("\tmaxFragmentLen : $maxFragmentLen\n") - append("}\n") - } - - fun toTlv(tlvTag: Tag, tlvWriter: TlvWriter) { - tlvWriter.apply { - startStructure(tlvTag) - put(ContextSpecificTag(TAG_VIDEO_STREAM_ID), videoStreamID) - if (streamUsage.isPresent) { - val optstreamUsage = streamUsage.get() - put(ContextSpecificTag(TAG_STREAM_USAGE), optstreamUsage) - } - if (videoCodec.isPresent) { - val optvideoCodec = videoCodec.get() - put(ContextSpecificTag(TAG_VIDEO_CODEC), optvideoCodec) - } - if (minFrameRate.isPresent) { - val optminFrameRate = minFrameRate.get() - put(ContextSpecificTag(TAG_MIN_FRAME_RATE), optminFrameRate) - } - if (maxFrameRate.isPresent) { - val optmaxFrameRate = maxFrameRate.get() - put(ContextSpecificTag(TAG_MAX_FRAME_RATE), optmaxFrameRate) - } - if (minResolution.isPresent) { - val optminResolution = minResolution.get() - optminResolution.toTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), this) - } - if (maxResolution.isPresent) { - val optmaxResolution = maxResolution.get() - optmaxResolution.toTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), this) - } - if (minBitRate.isPresent) { - val optminBitRate = minBitRate.get() - put(ContextSpecificTag(TAG_MIN_BIT_RATE), optminBitRate) - } - if (maxBitRate.isPresent) { - val optmaxBitRate = maxBitRate.get() - put(ContextSpecificTag(TAG_MAX_BIT_RATE), optmaxBitRate) - } - if (minFragmentLen.isPresent) { - val optminFragmentLen = minFragmentLen.get() - put(ContextSpecificTag(TAG_MIN_FRAGMENT_LEN), optminFragmentLen) - } - if (maxFragmentLen.isPresent) { - val optmaxFragmentLen = maxFragmentLen.get() - put(ContextSpecificTag(TAG_MAX_FRAGMENT_LEN), optmaxFragmentLen) - } - endStructure() - } - } - - companion object { - private const val TAG_VIDEO_STREAM_ID = 0 - private const val TAG_STREAM_USAGE = 1 - private const val TAG_VIDEO_CODEC = 2 - private const val TAG_MIN_FRAME_RATE = 3 - private const val TAG_MAX_FRAME_RATE = 4 - private const val TAG_MIN_RESOLUTION = 5 - private const val TAG_MAX_RESOLUTION = 6 - private const val TAG_MIN_BIT_RATE = 7 - private const val TAG_MAX_BIT_RATE = 8 - private const val TAG_MIN_FRAGMENT_LEN = 9 - private const val TAG_MAX_FRAGMENT_LEN = 10 - - fun fromTlv( - tlvTag: Tag, - tlvReader: TlvReader, - ): CameraAvStreamManagementClusterVideoStreamChangedEvent { - tlvReader.enterStructure(tlvTag) - val videoStreamID = tlvReader.getUShort(ContextSpecificTag(TAG_VIDEO_STREAM_ID)) - val streamUsage = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_STREAM_USAGE))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_STREAM_USAGE))) - } else { - Optional.empty() - } - val videoCodec = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_VIDEO_CODEC))) { - Optional.of(tlvReader.getUByte(ContextSpecificTag(TAG_VIDEO_CODEC))) - } else { - Optional.empty() - } - val minFrameRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_FRAME_RATE))) { - Optional.of(tlvReader.getUShort(ContextSpecificTag(TAG_MIN_FRAME_RATE))) - } else { - Optional.empty() - } - val maxFrameRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_FRAME_RATE))) { - Optional.of(tlvReader.getUShort(ContextSpecificTag(TAG_MAX_FRAME_RATE))) - } else { - Optional.empty() - } - val minResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_RESOLUTION))) { - Optional.of( - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MIN_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val maxResolution = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_RESOLUTION))) { - Optional.of( - matter.controller.cluster.structs.CameraAvStreamManagementClusterVideoResolutionStruct - .fromTlv(ContextSpecificTag(TAG_MAX_RESOLUTION), tlvReader) - ) - } else { - Optional.empty() - } - val minBitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_BIT_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MIN_BIT_RATE))) - } else { - Optional.empty() - } - val maxBitRate = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_BIT_RATE))) { - Optional.of(tlvReader.getUInt(ContextSpecificTag(TAG_MAX_BIT_RATE))) - } else { - Optional.empty() - } - val minFragmentLen = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MIN_FRAGMENT_LEN))) { - Optional.of(tlvReader.getUShort(ContextSpecificTag(TAG_MIN_FRAGMENT_LEN))) - } else { - Optional.empty() - } - val maxFragmentLen = - if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_FRAGMENT_LEN))) { - Optional.of(tlvReader.getUShort(ContextSpecificTag(TAG_MAX_FRAGMENT_LEN))) - } else { - Optional.empty() - } - - tlvReader.exitContainer() - - return CameraAvStreamManagementClusterVideoStreamChangedEvent( - videoStreamID, - streamUsage, - videoCodec, - minFrameRate, - maxFrameRate, - minResolution, - maxResolution, - minBitRate, - maxBitRate, - minFragmentLen, - maxFragmentLen, - ) - } - } -} diff --git a/src/controller/java/generated/java/matter/controller/cluster/files.gni b/src/controller/java/generated/java/matter/controller/cluster/files.gni index 9cf22185f9a8d5..e25dcf66937659 100644 --- a/src/controller/java/generated/java/matter/controller/cluster/files.gni +++ b/src/controller/java/generated/java/matter/controller/cluster/files.gni @@ -210,9 +210,6 @@ matter_eventstructs_sources = [ "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/BridgedDeviceBasicInformationClusterActiveChangedEvent.kt", "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/BridgedDeviceBasicInformationClusterReachableChangedEvent.kt", "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/BridgedDeviceBasicInformationClusterStartUpEvent.kt", - "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt", - "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt", - "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt", "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CommissionerControlClusterCommissioningRequestResultEvent.kt", "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/DemandResponseLoadControlClusterLoadControlEventStatusChangeEvent.kt", "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/DeviceEnergyManagementClusterPowerAdjustEndEvent.kt", diff --git a/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt b/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt index 5cf6052a753999..cf8b78d722eb9f 100644 --- a/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt +++ b/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt @@ -16,6 +16,7 @@ */ package matter.controller.cluster.structs +import java.util.Optional import matter.controller.cluster.* import matter.tlv.ContextSpecificTag import matter.tlv.Tag @@ -25,15 +26,13 @@ import matter.tlv.TlvWriter class CameraAvStreamManagementClusterVideoSensorParamsStruct( val sensorWidth: UShort, val sensorHeight: UShort, - val HDRCapable: Boolean, val maxFPS: UShort, - val maxHDRFPS: UShort, + val maxHDRFPS: Optional, ) { override fun toString(): String = buildString { append("CameraAvStreamManagementClusterVideoSensorParamsStruct {\n") append("\tsensorWidth : $sensorWidth\n") append("\tsensorHeight : $sensorHeight\n") - append("\tHDRCapable : $HDRCapable\n") append("\tmaxFPS : $maxFPS\n") append("\tmaxHDRFPS : $maxHDRFPS\n") append("}\n") @@ -44,9 +43,11 @@ class CameraAvStreamManagementClusterVideoSensorParamsStruct( startStructure(tlvTag) put(ContextSpecificTag(TAG_SENSOR_WIDTH), sensorWidth) put(ContextSpecificTag(TAG_SENSOR_HEIGHT), sensorHeight) - put(ContextSpecificTag(TAG_HDR_CAPABLE), HDRCapable) put(ContextSpecificTag(TAG_MAX_FPS), maxFPS) - put(ContextSpecificTag(TAG_MAX_HDRFPS), maxHDRFPS) + if (maxHDRFPS.isPresent) { + val optmaxHDRFPS = maxHDRFPS.get() + put(ContextSpecificTag(TAG_MAX_HDRFPS), optmaxHDRFPS) + } endStructure() } } @@ -54,9 +55,8 @@ class CameraAvStreamManagementClusterVideoSensorParamsStruct( companion object { private const val TAG_SENSOR_WIDTH = 0 private const val TAG_SENSOR_HEIGHT = 1 - private const val TAG_HDR_CAPABLE = 2 - private const val TAG_MAX_FPS = 3 - private const val TAG_MAX_HDRFPS = 4 + private const val TAG_MAX_FPS = 2 + private const val TAG_MAX_HDRFPS = 3 fun fromTlv( tlvTag: Tag, @@ -65,16 +65,19 @@ class CameraAvStreamManagementClusterVideoSensorParamsStruct( tlvReader.enterStructure(tlvTag) val sensorWidth = tlvReader.getUShort(ContextSpecificTag(TAG_SENSOR_WIDTH)) val sensorHeight = tlvReader.getUShort(ContextSpecificTag(TAG_SENSOR_HEIGHT)) - val HDRCapable = tlvReader.getBoolean(ContextSpecificTag(TAG_HDR_CAPABLE)) val maxFPS = tlvReader.getUShort(ContextSpecificTag(TAG_MAX_FPS)) - val maxHDRFPS = tlvReader.getUShort(ContextSpecificTag(TAG_MAX_HDRFPS)) + val maxHDRFPS = + if (tlvReader.isNextTag(ContextSpecificTag(TAG_MAX_HDRFPS))) { + Optional.of(tlvReader.getUShort(ContextSpecificTag(TAG_MAX_HDRFPS))) + } else { + Optional.empty() + } tlvReader.exitContainer() return CameraAvStreamManagementClusterVideoSensorParamsStruct( sensorWidth, sensorHeight, - HDRCapable, maxFPS, maxHDRFPS, ) diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp index 588d3c6120b139..e9712a8a4676cc 100644 --- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp @@ -40413,12 +40413,6 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR chip::JniReferences::GetInstance().CreateBoxedObject(value_sensorHeightClassName.c_str(), value_sensorHeightCtorSignature.c_str(), jnivalue_sensorHeight, value_sensorHeight); - jobject value_HDRCapable; - std::string value_HDRCapableClassName = "java/lang/Boolean"; - std::string value_HDRCapableCtorSignature = "(Z)V"; - jboolean jnivalue_HDRCapable = static_cast(cppValue.HDRCapable); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_HDRCapableClassName.c_str(), value_HDRCapableCtorSignature.c_str(), jnivalue_HDRCapable, value_HDRCapable); jobject value_maxFPS; std::string value_maxFPSClassName = "java/lang/Integer"; std::string value_maxFPSCtorSignature = "(I)V"; @@ -40426,11 +40420,21 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR chip::JniReferences::GetInstance().CreateBoxedObject( value_maxFPSClassName.c_str(), value_maxFPSCtorSignature.c_str(), jnivalue_maxFPS, value_maxFPS); jobject value_maxHDRFPS; - std::string value_maxHDRFPSClassName = "java/lang/Integer"; - std::string value_maxHDRFPSCtorSignature = "(I)V"; - jint jnivalue_maxHDRFPS = static_cast(cppValue.maxHDRFPS); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxHDRFPSClassName.c_str(), value_maxHDRFPSCtorSignature.c_str(), jnivalue_maxHDRFPS, value_maxHDRFPS); + if (!cppValue.maxHDRFPS.HasValue()) + { + chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxHDRFPS); + } + else + { + jobject value_maxHDRFPSInsideOptional; + std::string value_maxHDRFPSInsideOptionalClassName = "java/lang/Integer"; + std::string value_maxHDRFPSInsideOptionalCtorSignature = "(I)V"; + jint jnivalue_maxHDRFPSInsideOptional = static_cast(cppValue.maxHDRFPS.Value()); + chip::JniReferences::GetInstance().CreateBoxedObject( + value_maxHDRFPSInsideOptionalClassName.c_str(), value_maxHDRFPSInsideOptionalCtorSignature.c_str(), + jnivalue_maxHDRFPSInsideOptional, value_maxHDRFPSInsideOptional); + chip::JniReferences::GetInstance().CreateOptional(value_maxHDRFPSInsideOptional, value_maxHDRFPS); + } { jclass videoSensorParamsStructStructClass_0; @@ -40446,7 +40450,7 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR jmethodID videoSensorParamsStructStructCtor_0; err = chip::JniReferences::GetInstance().FindMethod( env, videoSensorParamsStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;)V", + "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V", &videoSensorParamsStructStructCtor_0); if (err != CHIP_NO_ERROR || videoSensorParamsStructStructCtor_0 == nullptr) { @@ -40456,7 +40460,7 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR } value = env->NewObject(videoSensorParamsStructStructClass_0, videoSensorParamsStructStructCtor_0, value_sensorWidth, - value_sensorHeight, value_HDRCapable, value_maxFPS, value_maxHDRFPS); + value_sensorHeight, value_maxFPS, value_maxHDRFPS); } return value; } @@ -40997,8 +41001,8 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR jnivalue, value); return value; } - case Attributes::FabricsUsingCamera::Id: { - using TypeInfo = Attributes::FabricsUsingCamera::TypeInfo; + case Attributes::SupportedStreamUsages::Id: { + using TypeInfo = Attributes::SupportedStreamUsages::TypeInfo; TypeInfo::DecodableType cppValue; *aError = app::DataModel::Decode(aReader, cppValue); if (*aError != CHIP_NO_ERROR) diff --git a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp index a1c8b6472cb929..606e7a760061ee 100644 --- a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp @@ -8437,662 +8437,6 @@ jobject DecodeEventValue(const app::ConcreteEventPath & aPath, TLV::TLVReader & using namespace app::Clusters::CameraAvStreamManagement; switch (aPath.mEventId) { - case Events::VideoStreamChanged::Id: { - Events::VideoStreamChanged::DecodableType cppValue; - *aError = app::DataModel::Decode(aReader, cppValue); - if (*aError != CHIP_NO_ERROR) - { - return nullptr; - } - jobject value_videoStreamID; - std::string value_videoStreamIDClassName = "java/lang/Integer"; - std::string value_videoStreamIDCtorSignature = "(I)V"; - jint jnivalue_videoStreamID = static_cast(cppValue.videoStreamID); - chip::JniReferences::GetInstance().CreateBoxedObject(value_videoStreamIDClassName.c_str(), - value_videoStreamIDCtorSignature.c_str(), - jnivalue_videoStreamID, value_videoStreamID); - - jobject value_streamUsage; - if (!cppValue.streamUsage.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_streamUsage); - } - else - { - jobject value_streamUsageInsideOptional; - std::string value_streamUsageInsideOptionalClassName = "java/lang/Integer"; - std::string value_streamUsageInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_streamUsageInsideOptional = static_cast(cppValue.streamUsage.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_streamUsageInsideOptionalClassName.c_str(), value_streamUsageInsideOptionalCtorSignature.c_str(), - jnivalue_streamUsageInsideOptional, value_streamUsageInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_streamUsageInsideOptional, value_streamUsage); - } - - jobject value_videoCodec; - if (!cppValue.videoCodec.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_videoCodec); - } - else - { - jobject value_videoCodecInsideOptional; - std::string value_videoCodecInsideOptionalClassName = "java/lang/Integer"; - std::string value_videoCodecInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_videoCodecInsideOptional = static_cast(cppValue.videoCodec.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_videoCodecInsideOptionalClassName.c_str(), value_videoCodecInsideOptionalCtorSignature.c_str(), - jnivalue_videoCodecInsideOptional, value_videoCodecInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_videoCodecInsideOptional, value_videoCodec); - } - - jobject value_minFrameRate; - if (!cppValue.minFrameRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minFrameRate); - } - else - { - jobject value_minFrameRateInsideOptional; - std::string value_minFrameRateInsideOptionalClassName = "java/lang/Integer"; - std::string value_minFrameRateInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_minFrameRateInsideOptional = static_cast(cppValue.minFrameRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minFrameRateInsideOptionalClassName.c_str(), value_minFrameRateInsideOptionalCtorSignature.c_str(), - jnivalue_minFrameRateInsideOptional, value_minFrameRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_minFrameRateInsideOptional, value_minFrameRate); - } - - jobject value_maxFrameRate; - if (!cppValue.maxFrameRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxFrameRate); - } - else - { - jobject value_maxFrameRateInsideOptional; - std::string value_maxFrameRateInsideOptionalClassName = "java/lang/Integer"; - std::string value_maxFrameRateInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_maxFrameRateInsideOptional = static_cast(cppValue.maxFrameRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxFrameRateInsideOptionalClassName.c_str(), value_maxFrameRateInsideOptionalCtorSignature.c_str(), - jnivalue_maxFrameRateInsideOptional, value_maxFrameRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_maxFrameRateInsideOptional, value_maxFrameRate); - } - - jobject value_minResolution; - if (!cppValue.minResolution.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minResolution); - } - else - { - jobject value_minResolutionInsideOptional; - jobject value_minResolutionInsideOptional_width; - std::string value_minResolutionInsideOptional_widthClassName = "java/lang/Integer"; - std::string value_minResolutionInsideOptional_widthCtorSignature = "(I)V"; - jint jnivalue_minResolutionInsideOptional_width = static_cast(cppValue.minResolution.Value().width); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minResolutionInsideOptional_widthClassName.c_str(), - value_minResolutionInsideOptional_widthCtorSignature.c_str(), jnivalue_minResolutionInsideOptional_width, - value_minResolutionInsideOptional_width); - jobject value_minResolutionInsideOptional_height; - std::string value_minResolutionInsideOptional_heightClassName = "java/lang/Integer"; - std::string value_minResolutionInsideOptional_heightCtorSignature = "(I)V"; - jint jnivalue_minResolutionInsideOptional_height = static_cast(cppValue.minResolution.Value().height); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minResolutionInsideOptional_heightClassName.c_str(), - value_minResolutionInsideOptional_heightCtorSignature.c_str(), jnivalue_minResolutionInsideOptional_height, - value_minResolutionInsideOptional_height); - - { - jclass videoResolutionStructStructClass_1; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct", - videoResolutionStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct"); - return nullptr; - } - - jmethodID videoResolutionStructStructCtor_1; - err = chip::JniReferences::GetInstance().FindMethod(env, videoResolutionStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &videoResolutionStructStructCtor_1); - if (err != CHIP_NO_ERROR || videoResolutionStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, - "Could not find ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct constructor"); - return nullptr; - } - - value_minResolutionInsideOptional = - env->NewObject(videoResolutionStructStructClass_1, videoResolutionStructStructCtor_1, - value_minResolutionInsideOptional_width, value_minResolutionInsideOptional_height); - } - chip::JniReferences::GetInstance().CreateOptional(value_minResolutionInsideOptional, value_minResolution); - } - - jobject value_maxResolution; - if (!cppValue.maxResolution.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxResolution); - } - else - { - jobject value_maxResolutionInsideOptional; - jobject value_maxResolutionInsideOptional_width; - std::string value_maxResolutionInsideOptional_widthClassName = "java/lang/Integer"; - std::string value_maxResolutionInsideOptional_widthCtorSignature = "(I)V"; - jint jnivalue_maxResolutionInsideOptional_width = static_cast(cppValue.maxResolution.Value().width); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxResolutionInsideOptional_widthClassName.c_str(), - value_maxResolutionInsideOptional_widthCtorSignature.c_str(), jnivalue_maxResolutionInsideOptional_width, - value_maxResolutionInsideOptional_width); - jobject value_maxResolutionInsideOptional_height; - std::string value_maxResolutionInsideOptional_heightClassName = "java/lang/Integer"; - std::string value_maxResolutionInsideOptional_heightCtorSignature = "(I)V"; - jint jnivalue_maxResolutionInsideOptional_height = static_cast(cppValue.maxResolution.Value().height); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxResolutionInsideOptional_heightClassName.c_str(), - value_maxResolutionInsideOptional_heightCtorSignature.c_str(), jnivalue_maxResolutionInsideOptional_height, - value_maxResolutionInsideOptional_height); - - { - jclass videoResolutionStructStructClass_1; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct", - videoResolutionStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct"); - return nullptr; - } - - jmethodID videoResolutionStructStructCtor_1; - err = chip::JniReferences::GetInstance().FindMethod(env, videoResolutionStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &videoResolutionStructStructCtor_1); - if (err != CHIP_NO_ERROR || videoResolutionStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, - "Could not find ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct constructor"); - return nullptr; - } - - value_maxResolutionInsideOptional = - env->NewObject(videoResolutionStructStructClass_1, videoResolutionStructStructCtor_1, - value_maxResolutionInsideOptional_width, value_maxResolutionInsideOptional_height); - } - chip::JniReferences::GetInstance().CreateOptional(value_maxResolutionInsideOptional, value_maxResolution); - } - - jobject value_minBitRate; - if (!cppValue.minBitRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minBitRate); - } - else - { - jobject value_minBitRateInsideOptional; - std::string value_minBitRateInsideOptionalClassName = "java/lang/Long"; - std::string value_minBitRateInsideOptionalCtorSignature = "(J)V"; - jlong jnivalue_minBitRateInsideOptional = static_cast(cppValue.minBitRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minBitRateInsideOptionalClassName.c_str(), value_minBitRateInsideOptionalCtorSignature.c_str(), - jnivalue_minBitRateInsideOptional, value_minBitRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_minBitRateInsideOptional, value_minBitRate); - } - - jobject value_maxBitRate; - if (!cppValue.maxBitRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxBitRate); - } - else - { - jobject value_maxBitRateInsideOptional; - std::string value_maxBitRateInsideOptionalClassName = "java/lang/Long"; - std::string value_maxBitRateInsideOptionalCtorSignature = "(J)V"; - jlong jnivalue_maxBitRateInsideOptional = static_cast(cppValue.maxBitRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxBitRateInsideOptionalClassName.c_str(), value_maxBitRateInsideOptionalCtorSignature.c_str(), - jnivalue_maxBitRateInsideOptional, value_maxBitRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_maxBitRateInsideOptional, value_maxBitRate); - } - - jobject value_minFragmentLen; - if (!cppValue.minFragmentLen.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minFragmentLen); - } - else - { - jobject value_minFragmentLenInsideOptional; - std::string value_minFragmentLenInsideOptionalClassName = "java/lang/Integer"; - std::string value_minFragmentLenInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_minFragmentLenInsideOptional = static_cast(cppValue.minFragmentLen.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minFragmentLenInsideOptionalClassName.c_str(), value_minFragmentLenInsideOptionalCtorSignature.c_str(), - jnivalue_minFragmentLenInsideOptional, value_minFragmentLenInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_minFragmentLenInsideOptional, value_minFragmentLen); - } - - jobject value_maxFragmentLen; - if (!cppValue.maxFragmentLen.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxFragmentLen); - } - else - { - jobject value_maxFragmentLenInsideOptional; - std::string value_maxFragmentLenInsideOptionalClassName = "java/lang/Integer"; - std::string value_maxFragmentLenInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_maxFragmentLenInsideOptional = static_cast(cppValue.maxFragmentLen.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxFragmentLenInsideOptionalClassName.c_str(), value_maxFragmentLenInsideOptionalCtorSignature.c_str(), - jnivalue_maxFragmentLenInsideOptional, value_maxFragmentLenInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_maxFragmentLenInsideOptional, value_maxFragmentLen); - } - - jclass videoStreamChangedStructClass; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipEventStructs$CameraAvStreamManagementClusterVideoStreamChangedEvent", - videoStreamChangedStructClass); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipEventStructs$CameraAvStreamManagementClusterVideoStreamChangedEvent"); - return nullptr; - } - - jmethodID videoStreamChangedStructCtor; - err = chip::JniReferences::GetInstance().FindMethod( - env, videoStreamChangedStructClass, "", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" - "Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V", - &videoStreamChangedStructCtor); - if (err != CHIP_NO_ERROR || videoStreamChangedStructCtor == nullptr) - { - ChipLogError(Zcl, - "Could not find ChipEventStructs$CameraAvStreamManagementClusterVideoStreamChangedEvent constructor"); - return nullptr; - } - - jobject value = - env->NewObject(videoStreamChangedStructClass, videoStreamChangedStructCtor, value_videoStreamID, value_streamUsage, - value_videoCodec, value_minFrameRate, value_maxFrameRate, value_minResolution, value_maxResolution, - value_minBitRate, value_maxBitRate, value_minFragmentLen, value_maxFragmentLen); - - return value; - } - case Events::AudioStreamChanged::Id: { - Events::AudioStreamChanged::DecodableType cppValue; - *aError = app::DataModel::Decode(aReader, cppValue); - if (*aError != CHIP_NO_ERROR) - { - return nullptr; - } - jobject value_audioStreamID; - std::string value_audioStreamIDClassName = "java/lang/Integer"; - std::string value_audioStreamIDCtorSignature = "(I)V"; - jint jnivalue_audioStreamID = static_cast(cppValue.audioStreamID); - chip::JniReferences::GetInstance().CreateBoxedObject(value_audioStreamIDClassName.c_str(), - value_audioStreamIDCtorSignature.c_str(), - jnivalue_audioStreamID, value_audioStreamID); - - jobject value_streamUsage; - if (!cppValue.streamUsage.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_streamUsage); - } - else - { - jobject value_streamUsageInsideOptional; - std::string value_streamUsageInsideOptionalClassName = "java/lang/Integer"; - std::string value_streamUsageInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_streamUsageInsideOptional = static_cast(cppValue.streamUsage.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_streamUsageInsideOptionalClassName.c_str(), value_streamUsageInsideOptionalCtorSignature.c_str(), - jnivalue_streamUsageInsideOptional, value_streamUsageInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_streamUsageInsideOptional, value_streamUsage); - } - - jobject value_audioCodec; - if (!cppValue.audioCodec.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_audioCodec); - } - else - { - jobject value_audioCodecInsideOptional; - std::string value_audioCodecInsideOptionalClassName = "java/lang/Integer"; - std::string value_audioCodecInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_audioCodecInsideOptional = static_cast(cppValue.audioCodec.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_audioCodecInsideOptionalClassName.c_str(), value_audioCodecInsideOptionalCtorSignature.c_str(), - jnivalue_audioCodecInsideOptional, value_audioCodecInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_audioCodecInsideOptional, value_audioCodec); - } - - jobject value_channelCount; - if (!cppValue.channelCount.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_channelCount); - } - else - { - jobject value_channelCountInsideOptional; - std::string value_channelCountInsideOptionalClassName = "java/lang/Integer"; - std::string value_channelCountInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_channelCountInsideOptional = static_cast(cppValue.channelCount.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_channelCountInsideOptionalClassName.c_str(), value_channelCountInsideOptionalCtorSignature.c_str(), - jnivalue_channelCountInsideOptional, value_channelCountInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_channelCountInsideOptional, value_channelCount); - } - - jobject value_sampleRate; - if (!cppValue.sampleRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_sampleRate); - } - else - { - jobject value_sampleRateInsideOptional; - std::string value_sampleRateInsideOptionalClassName = "java/lang/Long"; - std::string value_sampleRateInsideOptionalCtorSignature = "(J)V"; - jlong jnivalue_sampleRateInsideOptional = static_cast(cppValue.sampleRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_sampleRateInsideOptionalClassName.c_str(), value_sampleRateInsideOptionalCtorSignature.c_str(), - jnivalue_sampleRateInsideOptional, value_sampleRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_sampleRateInsideOptional, value_sampleRate); - } - - jobject value_bitRate; - if (!cppValue.bitRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_bitRate); - } - else - { - jobject value_bitRateInsideOptional; - std::string value_bitRateInsideOptionalClassName = "java/lang/Long"; - std::string value_bitRateInsideOptionalCtorSignature = "(J)V"; - jlong jnivalue_bitRateInsideOptional = static_cast(cppValue.bitRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_bitRateInsideOptionalClassName.c_str(), value_bitRateInsideOptionalCtorSignature.c_str(), - jnivalue_bitRateInsideOptional, value_bitRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_bitRateInsideOptional, value_bitRate); - } - - jobject value_bitDepth; - if (!cppValue.bitDepth.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_bitDepth); - } - else - { - jobject value_bitDepthInsideOptional; - std::string value_bitDepthInsideOptionalClassName = "java/lang/Integer"; - std::string value_bitDepthInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_bitDepthInsideOptional = static_cast(cppValue.bitDepth.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_bitDepthInsideOptionalClassName.c_str(), value_bitDepthInsideOptionalCtorSignature.c_str(), - jnivalue_bitDepthInsideOptional, value_bitDepthInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_bitDepthInsideOptional, value_bitDepth); - } - - jclass audioStreamChangedStructClass; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipEventStructs$CameraAvStreamManagementClusterAudioStreamChangedEvent", - audioStreamChangedStructClass); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipEventStructs$CameraAvStreamManagementClusterAudioStreamChangedEvent"); - return nullptr; - } - - jmethodID audioStreamChangedStructCtor; - err = chip::JniReferences::GetInstance().FindMethod( - env, audioStreamChangedStructClass, "", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" - "Optional;Ljava/util/Optional;)V", - &audioStreamChangedStructCtor); - if (err != CHIP_NO_ERROR || audioStreamChangedStructCtor == nullptr) - { - ChipLogError(Zcl, - "Could not find ChipEventStructs$CameraAvStreamManagementClusterAudioStreamChangedEvent constructor"); - return nullptr; - } - - jobject value = - env->NewObject(audioStreamChangedStructClass, audioStreamChangedStructCtor, value_audioStreamID, value_streamUsage, - value_audioCodec, value_channelCount, value_sampleRate, value_bitRate, value_bitDepth); - - return value; - } - case Events::SnapshotStreamChanged::Id: { - Events::SnapshotStreamChanged::DecodableType cppValue; - *aError = app::DataModel::Decode(aReader, cppValue); - if (*aError != CHIP_NO_ERROR) - { - return nullptr; - } - jobject value_snapshotStreamID; - std::string value_snapshotStreamIDClassName = "java/lang/Integer"; - std::string value_snapshotStreamIDCtorSignature = "(I)V"; - jint jnivalue_snapshotStreamID = static_cast(cppValue.snapshotStreamID); - chip::JniReferences::GetInstance().CreateBoxedObject(value_snapshotStreamIDClassName.c_str(), - value_snapshotStreamIDCtorSignature.c_str(), - jnivalue_snapshotStreamID, value_snapshotStreamID); - - jobject value_imageCodec; - if (!cppValue.imageCodec.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_imageCodec); - } - else - { - jobject value_imageCodecInsideOptional; - std::string value_imageCodecInsideOptionalClassName = "java/lang/Integer"; - std::string value_imageCodecInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_imageCodecInsideOptional = static_cast(cppValue.imageCodec.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_imageCodecInsideOptionalClassName.c_str(), value_imageCodecInsideOptionalCtorSignature.c_str(), - jnivalue_imageCodecInsideOptional, value_imageCodecInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_imageCodecInsideOptional, value_imageCodec); - } - - jobject value_frameRate; - if (!cppValue.frameRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_frameRate); - } - else - { - jobject value_frameRateInsideOptional; - std::string value_frameRateInsideOptionalClassName = "java/lang/Integer"; - std::string value_frameRateInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_frameRateInsideOptional = static_cast(cppValue.frameRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_frameRateInsideOptionalClassName.c_str(), value_frameRateInsideOptionalCtorSignature.c_str(), - jnivalue_frameRateInsideOptional, value_frameRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_frameRateInsideOptional, value_frameRate); - } - - jobject value_bitRate; - if (!cppValue.bitRate.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_bitRate); - } - else - { - jobject value_bitRateInsideOptional; - std::string value_bitRateInsideOptionalClassName = "java/lang/Long"; - std::string value_bitRateInsideOptionalCtorSignature = "(J)V"; - jlong jnivalue_bitRateInsideOptional = static_cast(cppValue.bitRate.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_bitRateInsideOptionalClassName.c_str(), value_bitRateInsideOptionalCtorSignature.c_str(), - jnivalue_bitRateInsideOptional, value_bitRateInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_bitRateInsideOptional, value_bitRate); - } - - jobject value_minResolution; - if (!cppValue.minResolution.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minResolution); - } - else - { - jobject value_minResolutionInsideOptional; - jobject value_minResolutionInsideOptional_width; - std::string value_minResolutionInsideOptional_widthClassName = "java/lang/Integer"; - std::string value_minResolutionInsideOptional_widthCtorSignature = "(I)V"; - jint jnivalue_minResolutionInsideOptional_width = static_cast(cppValue.minResolution.Value().width); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minResolutionInsideOptional_widthClassName.c_str(), - value_minResolutionInsideOptional_widthCtorSignature.c_str(), jnivalue_minResolutionInsideOptional_width, - value_minResolutionInsideOptional_width); - jobject value_minResolutionInsideOptional_height; - std::string value_minResolutionInsideOptional_heightClassName = "java/lang/Integer"; - std::string value_minResolutionInsideOptional_heightCtorSignature = "(I)V"; - jint jnivalue_minResolutionInsideOptional_height = static_cast(cppValue.minResolution.Value().height); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_minResolutionInsideOptional_heightClassName.c_str(), - value_minResolutionInsideOptional_heightCtorSignature.c_str(), jnivalue_minResolutionInsideOptional_height, - value_minResolutionInsideOptional_height); - - { - jclass videoResolutionStructStructClass_1; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct", - videoResolutionStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct"); - return nullptr; - } - - jmethodID videoResolutionStructStructCtor_1; - err = chip::JniReferences::GetInstance().FindMethod(env, videoResolutionStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &videoResolutionStructStructCtor_1); - if (err != CHIP_NO_ERROR || videoResolutionStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, - "Could not find ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct constructor"); - return nullptr; - } - - value_minResolutionInsideOptional = - env->NewObject(videoResolutionStructStructClass_1, videoResolutionStructStructCtor_1, - value_minResolutionInsideOptional_width, value_minResolutionInsideOptional_height); - } - chip::JniReferences::GetInstance().CreateOptional(value_minResolutionInsideOptional, value_minResolution); - } - - jobject value_maxResolution; - if (!cppValue.maxResolution.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxResolution); - } - else - { - jobject value_maxResolutionInsideOptional; - jobject value_maxResolutionInsideOptional_width; - std::string value_maxResolutionInsideOptional_widthClassName = "java/lang/Integer"; - std::string value_maxResolutionInsideOptional_widthCtorSignature = "(I)V"; - jint jnivalue_maxResolutionInsideOptional_width = static_cast(cppValue.maxResolution.Value().width); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxResolutionInsideOptional_widthClassName.c_str(), - value_maxResolutionInsideOptional_widthCtorSignature.c_str(), jnivalue_maxResolutionInsideOptional_width, - value_maxResolutionInsideOptional_width); - jobject value_maxResolutionInsideOptional_height; - std::string value_maxResolutionInsideOptional_heightClassName = "java/lang/Integer"; - std::string value_maxResolutionInsideOptional_heightCtorSignature = "(I)V"; - jint jnivalue_maxResolutionInsideOptional_height = static_cast(cppValue.maxResolution.Value().height); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_maxResolutionInsideOptional_heightClassName.c_str(), - value_maxResolutionInsideOptional_heightCtorSignature.c_str(), jnivalue_maxResolutionInsideOptional_height, - value_maxResolutionInsideOptional_height); - - { - jclass videoResolutionStructStructClass_1; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct", - videoResolutionStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct"); - return nullptr; - } - - jmethodID videoResolutionStructStructCtor_1; - err = chip::JniReferences::GetInstance().FindMethod(env, videoResolutionStructStructClass_1, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;)V", - &videoResolutionStructStructCtor_1); - if (err != CHIP_NO_ERROR || videoResolutionStructStructCtor_1 == nullptr) - { - ChipLogError(Zcl, - "Could not find ChipStructs$CameraAvStreamManagementClusterVideoResolutionStruct constructor"); - return nullptr; - } - - value_maxResolutionInsideOptional = - env->NewObject(videoResolutionStructStructClass_1, videoResolutionStructStructCtor_1, - value_maxResolutionInsideOptional_width, value_maxResolutionInsideOptional_height); - } - chip::JniReferences::GetInstance().CreateOptional(value_maxResolutionInsideOptional, value_maxResolution); - } - - jobject value_quality; - if (!cppValue.quality.HasValue()) - { - chip::JniReferences::GetInstance().CreateOptional(nullptr, value_quality); - } - else - { - jobject value_qualityInsideOptional; - std::string value_qualityInsideOptionalClassName = "java/lang/Integer"; - std::string value_qualityInsideOptionalCtorSignature = "(I)V"; - jint jnivalue_qualityInsideOptional = static_cast(cppValue.quality.Value()); - chip::JniReferences::GetInstance().CreateBoxedObject( - value_qualityInsideOptionalClassName.c_str(), value_qualityInsideOptionalCtorSignature.c_str(), - jnivalue_qualityInsideOptional, value_qualityInsideOptional); - chip::JniReferences::GetInstance().CreateOptional(value_qualityInsideOptional, value_quality); - } - - jclass snapshotStreamChangedStructClass; - err = chip::JniReferences::GetInstance().GetLocalClassRef( - env, "chip/devicecontroller/ChipEventStructs$CameraAvStreamManagementClusterSnapshotStreamChangedEvent", - snapshotStreamChangedStructClass); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, - "Could not find class ChipEventStructs$CameraAvStreamManagementClusterSnapshotStreamChangedEvent"); - return nullptr; - } - - jmethodID snapshotStreamChangedStructCtor; - err = chip::JniReferences::GetInstance().FindMethod( - env, snapshotStreamChangedStructClass, "", - "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/" - "Optional;Ljava/util/Optional;)V", - &snapshotStreamChangedStructCtor); - if (err != CHIP_NO_ERROR || snapshotStreamChangedStructCtor == nullptr) - { - ChipLogError( - Zcl, "Could not find ChipEventStructs$CameraAvStreamManagementClusterSnapshotStreamChangedEvent constructor"); - return nullptr; - } - - jobject value = env->NewObject(snapshotStreamChangedStructClass, snapshotStreamChangedStructCtor, - value_snapshotStreamID, value_imageCodec, value_frameRate, value_bitRate, - value_minResolution, value_maxResolution, value_quality); - - return value; - } default: *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB; break; diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py index c98aa4714c3a82..b42181bf43e452 100644 --- a/src/controller/python/chip/clusters/CHIPClusters.py +++ b/src/controller/python/chip/clusters/CHIPClusters.py @@ -12603,24 +12603,35 @@ class ChipClusters: "minResolution": "VideoResolutionStruct", "maxResolution": "VideoResolutionStruct", "quality": "int", + "watermarkEnabled": "bool", + "OSDEnabled": "bool", }, }, 0x00000009: { "commandId": 0x00000009, - "commandName": "SnapshotStreamDeallocate", + "commandName": "SnapshotStreamModify", "args": { "snapshotStreamID": "int", + "watermarkEnabled": "bool", + "OSDEnabled": "bool", }, }, 0x0000000A: { "commandId": 0x0000000A, - "commandName": "SetStreamPriorities", + "commandName": "SnapshotStreamDeallocate", "args": { - "streamPriorities": "int", + "snapshotStreamID": "int", }, }, 0x0000000B: { "commandId": 0x0000000B, + "commandName": "SetStreamPriorities", + "args": { + "streamPriorities": "int", + }, + }, + 0x0000000C: { + "commandId": 0x0000000C, "commandName": "CaptureSnapshot", "args": { "snapshotStreamID": "int", @@ -12715,7 +12726,7 @@ class ChipClusters: "writable": True, }, 0x0000000E: { - "attributeName": "FabricsUsingCamera", + "attributeName": "SupportedStreamUsages", "attributeId": 0x0000000E, "type": "int", "reportable": True, diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index b5f3a3bd560926..a7a05609f0ee3a 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -45365,7 +45365,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="nightVisionCapable", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="minViewport", Tag=0x00000004, Type=typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct]), ClusterObjectFieldDescriptor(Label="rateDistortionTradeOffPoints", Tag=0x00000005, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.RateDistortionTradeOffPointsStruct]]), - ClusterObjectFieldDescriptor(Label="maxContentBufferSize", Tag=0x00000006, Type=typing.Optional[uint]), + ClusterObjectFieldDescriptor(Label="maxContentBufferSize", Tag=0x00000006, Type=uint), ClusterObjectFieldDescriptor(Label="microphoneCapabilities", Tag=0x00000007, Type=typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]), ClusterObjectFieldDescriptor(Label="speakerCapabilities", Tag=0x00000008, Type=typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]), ClusterObjectFieldDescriptor(Label="twoWayTalkSupport", Tag=0x00000009, Type=typing.Optional[CameraAvStreamManagement.Enums.TwoWayTalkSupportTypeEnum]), @@ -45373,7 +45373,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="maxNetworkBandwidth", Tag=0x0000000B, Type=uint), ClusterObjectFieldDescriptor(Label="currentFrameRate", Tag=0x0000000C, Type=typing.Optional[uint]), ClusterObjectFieldDescriptor(Label="HDRModeEnabled", Tag=0x0000000D, Type=typing.Optional[bool]), - ClusterObjectFieldDescriptor(Label="fabricsUsingCamera", Tag=0x0000000E, Type=typing.List[uint]), + ClusterObjectFieldDescriptor(Label="supportedStreamUsages", Tag=0x0000000E, Type=typing.List[CameraAvStreamManagement.Enums.StreamUsageEnum]), ClusterObjectFieldDescriptor(Label="allocatedVideoStreams", Tag=0x0000000F, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.VideoStreamStruct]]), ClusterObjectFieldDescriptor(Label="allocatedAudioStreams", Tag=0x00000010, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.AudioStreamStruct]]), ClusterObjectFieldDescriptor(Label="allocatedSnapshotStreams", Tag=0x00000011, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotStreamStruct]]), @@ -45413,7 +45413,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: nightVisionCapable: typing.Optional[bool] = None minViewport: typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct] = None rateDistortionTradeOffPoints: typing.Optional[typing.List[CameraAvStreamManagement.Structs.RateDistortionTradeOffPointsStruct]] = None - maxContentBufferSize: typing.Optional[uint] = None + maxContentBufferSize: uint = 0 microphoneCapabilities: typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct] = None speakerCapabilities: typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct] = None twoWayTalkSupport: typing.Optional[CameraAvStreamManagement.Enums.TwoWayTalkSupportTypeEnum] = None @@ -45421,7 +45421,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: maxNetworkBandwidth: uint = 0 currentFrameRate: typing.Optional[uint] = None HDRModeEnabled: typing.Optional[bool] = None - fabricsUsingCamera: typing.List[uint] = field(default_factory=lambda: []) + supportedStreamUsages: typing.List[CameraAvStreamManagement.Enums.StreamUsageEnum] = field(default_factory=lambda: []) allocatedVideoStreams: typing.Optional[typing.List[CameraAvStreamManagement.Structs.VideoStreamStruct]] = None allocatedAudioStreams: typing.Optional[typing.List[CameraAvStreamManagement.Structs.AudioStreamStruct]] = None allocatedSnapshotStreams: typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotStreamStruct]] = None @@ -45525,6 +45525,7 @@ class Feature(IntFlag): kWatermark = 0x40 kOnScreenDisplay = 0x80 kLocalStorage = 0x100 + kHighDynamicRange = 0x200 class Structs: @dataclass @@ -45682,16 +45683,14 @@ def descriptor(cls) -> ClusterObjectDescriptor: Fields=[ ClusterObjectFieldDescriptor(Label="sensorWidth", Tag=0, Type=uint), ClusterObjectFieldDescriptor(Label="sensorHeight", Tag=1, Type=uint), - ClusterObjectFieldDescriptor(Label="HDRCapable", Tag=2, Type=bool), - ClusterObjectFieldDescriptor(Label="maxFPS", Tag=3, Type=uint), - ClusterObjectFieldDescriptor(Label="maxHDRFPS", Tag=4, Type=uint), + ClusterObjectFieldDescriptor(Label="maxFPS", Tag=2, Type=uint), + ClusterObjectFieldDescriptor(Label="maxHDRFPS", Tag=3, Type=typing.Optional[uint]), ]) sensorWidth: 'uint' = 0 sensorHeight: 'uint' = 0 - HDRCapable: 'bool' = False maxFPS: 'uint' = 0 - maxHDRFPS: 'uint' = 0 + maxHDRFPS: 'typing.Optional[uint]' = None @dataclass class ViewportStruct(ClusterObject): @@ -45876,6 +45875,8 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="minResolution", Tag=3, Type=CameraAvStreamManagement.Structs.VideoResolutionStruct), ClusterObjectFieldDescriptor(Label="maxResolution", Tag=4, Type=CameraAvStreamManagement.Structs.VideoResolutionStruct), ClusterObjectFieldDescriptor(Label="quality", Tag=5, Type=uint), + ClusterObjectFieldDescriptor(Label="watermarkEnabled", Tag=6, Type=typing.Optional[bool]), + ClusterObjectFieldDescriptor(Label="OSDEnabled", Tag=7, Type=typing.Optional[bool]), ]) imageCodec: CameraAvStreamManagement.Enums.ImageCodecEnum = 0 @@ -45884,6 +45885,8 @@ def descriptor(cls) -> ClusterObjectDescriptor: minResolution: CameraAvStreamManagement.Structs.VideoResolutionStruct = field(default_factory=lambda: CameraAvStreamManagement.Structs.VideoResolutionStruct()) maxResolution: CameraAvStreamManagement.Structs.VideoResolutionStruct = field(default_factory=lambda: CameraAvStreamManagement.Structs.VideoResolutionStruct()) quality: uint = 0 + watermarkEnabled: typing.Optional[bool] = None + OSDEnabled: typing.Optional[bool] = None @dataclass class SnapshotStreamAllocateResponse(ClusterCommand): @@ -45902,7 +45905,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: snapshotStreamID: uint = 0 @dataclass - class SnapshotStreamDeallocate(ClusterCommand): + class SnapshotStreamModify(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x00000551 command_id: typing.ClassVar[int] = 0x00000009 is_client: typing.ClassVar[bool] = True @@ -45913,17 +45916,37 @@ def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( Fields=[ ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint), + ClusterObjectFieldDescriptor(Label="watermarkEnabled", Tag=1, Type=typing.Optional[bool]), + ClusterObjectFieldDescriptor(Label="OSDEnabled", Tag=2, Type=typing.Optional[bool]), ]) snapshotStreamID: uint = 0 + watermarkEnabled: typing.Optional[bool] = None + OSDEnabled: typing.Optional[bool] = None @dataclass - class SetStreamPriorities(ClusterCommand): + class SnapshotStreamDeallocate(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x00000551 command_id: typing.ClassVar[int] = 0x0000000A is_client: typing.ClassVar[bool] = True response_type: typing.ClassVar[typing.Optional[str]] = None + @ChipUtility.classproperty + def descriptor(cls) -> ClusterObjectDescriptor: + return ClusterObjectDescriptor( + Fields=[ + ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint), + ]) + + snapshotStreamID: uint = 0 + + @dataclass + class SetStreamPriorities(ClusterCommand): + cluster_id: typing.ClassVar[int] = 0x00000551 + command_id: typing.ClassVar[int] = 0x0000000B + is_client: typing.ClassVar[bool] = True + response_type: typing.ClassVar[typing.Optional[str]] = None + @ChipUtility.classproperty def descriptor(cls) -> ClusterObjectDescriptor: return ClusterObjectDescriptor( @@ -45936,7 +45959,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: @dataclass class CaptureSnapshot(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x00000551 - command_id: typing.ClassVar[int] = 0x0000000B + command_id: typing.ClassVar[int] = 0x0000000C is_client: typing.ClassVar[bool] = True response_type: typing.ClassVar[str] = 'CaptureSnapshotResponse' @@ -45954,7 +45977,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: @dataclass class CaptureSnapshotResponse(ClusterCommand): cluster_id: typing.ClassVar[int] = 0x00000551 - command_id: typing.ClassVar[int] = 0x0000000C + command_id: typing.ClassVar[int] = 0x0000000D is_client: typing.ClassVar[bool] = False response_type: typing.ClassVar[typing.Optional[str]] = None @@ -46080,9 +46103,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[uint]) + return ClusterObjectFieldDescriptor(Type=uint) - value: typing.Optional[uint] = None + value: uint = 0 @dataclass class MicrophoneCapabilities(ClusterAttributeDescriptor): @@ -46197,7 +46220,7 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor: value: typing.Optional[bool] = None @dataclass - class FabricsUsingCamera(ClusterAttributeDescriptor): + class SupportedStreamUsages(ClusterAttributeDescriptor): @ChipUtility.classproperty def cluster_id(cls) -> int: return 0x00000551 @@ -46208,9 +46231,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.List[uint]) + return ClusterObjectFieldDescriptor(Type=typing.List[CameraAvStreamManagement.Enums.StreamUsageEnum]) - value: typing.List[uint] = field(default_factory=lambda: []) + value: typing.List[CameraAvStreamManagement.Enums.StreamUsageEnum] = field(default_factory=lambda: []) @dataclass class AllocatedVideoStreams(ClusterAttributeDescriptor): @@ -46708,108 +46731,6 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor: value: uint = 0 - class Events: - @dataclass - class VideoStreamChanged(ClusterEvent): - @ChipUtility.classproperty - def cluster_id(cls) -> int: - return 0x00000551 - - @ChipUtility.classproperty - def event_id(cls) -> int: - return 0x00000000 - - @ChipUtility.classproperty - def descriptor(cls) -> ClusterObjectDescriptor: - return ClusterObjectDescriptor( - Fields=[ - ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint), - ClusterObjectFieldDescriptor(Label="streamUsage", Tag=1, Type=typing.Optional[CameraAvStreamManagement.Enums.StreamUsageEnum]), - ClusterObjectFieldDescriptor(Label="videoCodec", Tag=2, Type=typing.Optional[CameraAvStreamManagement.Enums.VideoCodecEnum]), - ClusterObjectFieldDescriptor(Label="minFrameRate", Tag=3, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="maxFrameRate", Tag=4, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="minResolution", Tag=5, Type=typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct]), - ClusterObjectFieldDescriptor(Label="maxResolution", Tag=6, Type=typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct]), - ClusterObjectFieldDescriptor(Label="minBitRate", Tag=7, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="maxBitRate", Tag=8, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="minFragmentLen", Tag=9, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="maxFragmentLen", Tag=10, Type=typing.Optional[uint]), - ]) - - videoStreamID: uint = 0 - streamUsage: typing.Optional[CameraAvStreamManagement.Enums.StreamUsageEnum] = None - videoCodec: typing.Optional[CameraAvStreamManagement.Enums.VideoCodecEnum] = None - minFrameRate: typing.Optional[uint] = None - maxFrameRate: typing.Optional[uint] = None - minResolution: typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct] = None - maxResolution: typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct] = None - minBitRate: typing.Optional[uint] = None - maxBitRate: typing.Optional[uint] = None - minFragmentLen: typing.Optional[uint] = None - maxFragmentLen: typing.Optional[uint] = None - - @dataclass - class AudioStreamChanged(ClusterEvent): - @ChipUtility.classproperty - def cluster_id(cls) -> int: - return 0x00000551 - - @ChipUtility.classproperty - def event_id(cls) -> int: - return 0x00000001 - - @ChipUtility.classproperty - def descriptor(cls) -> ClusterObjectDescriptor: - return ClusterObjectDescriptor( - Fields=[ - ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=0, Type=uint), - ClusterObjectFieldDescriptor(Label="streamUsage", Tag=1, Type=typing.Optional[CameraAvStreamManagement.Enums.StreamUsageEnum]), - ClusterObjectFieldDescriptor(Label="audioCodec", Tag=2, Type=typing.Optional[CameraAvStreamManagement.Enums.AudioCodecEnum]), - ClusterObjectFieldDescriptor(Label="channelCount", Tag=3, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="sampleRate", Tag=4, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="bitRate", Tag=5, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="bitDepth", Tag=6, Type=typing.Optional[uint]), - ]) - - audioStreamID: uint = 0 - streamUsage: typing.Optional[CameraAvStreamManagement.Enums.StreamUsageEnum] = None - audioCodec: typing.Optional[CameraAvStreamManagement.Enums.AudioCodecEnum] = None - channelCount: typing.Optional[uint] = None - sampleRate: typing.Optional[uint] = None - bitRate: typing.Optional[uint] = None - bitDepth: typing.Optional[uint] = None - - @dataclass - class SnapshotStreamChanged(ClusterEvent): - @ChipUtility.classproperty - def cluster_id(cls) -> int: - return 0x00000551 - - @ChipUtility.classproperty - def event_id(cls) -> int: - return 0x00000002 - - @ChipUtility.classproperty - def descriptor(cls) -> ClusterObjectDescriptor: - return ClusterObjectDescriptor( - Fields=[ - ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint), - ClusterObjectFieldDescriptor(Label="imageCodec", Tag=1, Type=typing.Optional[CameraAvStreamManagement.Enums.ImageCodecEnum]), - ClusterObjectFieldDescriptor(Label="frameRate", Tag=2, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="bitRate", Tag=3, Type=typing.Optional[uint]), - ClusterObjectFieldDescriptor(Label="minResolution", Tag=4, Type=typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct]), - ClusterObjectFieldDescriptor(Label="maxResolution", Tag=5, Type=typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct]), - ClusterObjectFieldDescriptor(Label="quality", Tag=6, Type=typing.Optional[uint]), - ]) - - snapshotStreamID: uint = 0 - imageCodec: typing.Optional[CameraAvStreamManagement.Enums.ImageCodecEnum] = None - frameRate: typing.Optional[uint] = None - bitRate: typing.Optional[uint] = None - minResolution: typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct] = None - maxResolution: typing.Optional[CameraAvStreamManagement.Structs.VideoResolutionStruct] = None - quality: typing.Optional[uint] = None - @dataclass class CameraAvSettingsUserLevelManagement(Cluster): diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm index 9a16fb4d530724..a0d78718c7b685 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm @@ -5667,7 +5667,7 @@ static BOOL AttributeIsSpecifiedInCameraAVStreamManagementCluster(AttributeId aA case Attributes::HDRModeEnabled::Id: { return YES; } - case Attributes::FabricsUsingCamera::Id: { + case Attributes::SupportedStreamUsages::Id: { return YES; } case Attributes::AllocatedVideoStreams::Id: { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm index baf2956fd5e3b5..f4b46bbafcd6ce 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm @@ -17022,9 +17022,12 @@ static id _Nullable DecodeAttributeValueForCameraAVStreamManagementCluster(Attri value = [MTRCameraAVStreamManagementClusterVideoSensorParamsStruct new]; value.sensorWidth = [NSNumber numberWithUnsignedShort:cppValue.sensorWidth]; value.sensorHeight = [NSNumber numberWithUnsignedShort:cppValue.sensorHeight]; - value.hdrCapable = [NSNumber numberWithBool:cppValue.HDRCapable]; value.maxFPS = [NSNumber numberWithUnsignedShort:cppValue.maxFPS]; - value.maxHDRFPS = [NSNumber numberWithUnsignedShort:cppValue.maxHDRFPS]; + if (cppValue.maxHDRFPS.HasValue()) { + value.maxHDRFPS = [NSNumber numberWithUnsignedShort:cppValue.maxHDRFPS.Value()]; + } else { + value.maxHDRFPS = nil; + } return value; } case Attributes::NightVisionCapable::Id: { @@ -17288,8 +17291,8 @@ static id _Nullable DecodeAttributeValueForCameraAVStreamManagementCluster(Attri value = [NSNumber numberWithBool:cppValue]; return value; } - case Attributes::FabricsUsingCamera::Id: { - using TypeInfo = Attributes::FabricsUsingCamera::TypeInfo; + case Attributes::SupportedStreamUsages::Id: { + using TypeInfo = Attributes::SupportedStreamUsages::TypeInfo; TypeInfo::DecodableType cppValue; *aError = DataModel::Decode(aReader, cppValue); if (*aError != CHIP_NO_ERROR) { @@ -17302,7 +17305,7 @@ static id _Nullable DecodeAttributeValueForCameraAVStreamManagementCluster(Attri while (iter_0.Next()) { auto & entry_0 = iter_0.GetValue(); NSNumber * newElement_0; - newElement_0 = [NSNumber numberWithUnsignedChar:entry_0]; + newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)]; [array_0 addObject:newElement_0]; } CHIP_ERROR err = iter_0.GetStatus(); diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index 7e721836dbf58b..958cbb8c8bc12a 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -14271,6 +14271,12 @@ MTR_PROVISIONALLY_AVAILABLE * This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier. */ - (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; +/** + * Command SnapshotStreamModify + * + * This command SHALL be used to modify a stream specified by the VideoStreamID. + */ +- (void)snapshotStreamModifyWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; /** * Command SnapshotStreamDeallocate * @@ -14376,11 +14382,11 @@ MTR_PROVISIONALLY_AVAILABLE reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE; + (void)readAttributeHDRModeEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; -- (void)readAttributeFabricsUsingCameraWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; -- (void)subscribeAttributeFabricsUsingCameraWithParams:(MTRSubscribeParams *)params - subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished - reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE; -+ (void)readAttributeFabricsUsingCameraWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; +- (void)readAttributeSupportedStreamUsagesWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; +- (void)subscribeAttributeSupportedStreamUsagesWithParams:(MTRSubscribeParams *)params + subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished + reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE; ++ (void)readAttributeSupportedStreamUsagesWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; - (void)readAttributeAllocatedVideoStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; - (void)subscribeAttributeAllocatedVideoStreamsWithParams:(MTRSubscribeParams *)params @@ -20671,6 +20677,7 @@ typedef NS_OPTIONS(uint32_t, MTRCameraAVStreamManagementFeature) { MTRCameraAVStreamManagementFeatureWatermark MTR_PROVISIONALLY_AVAILABLE = 0x40, MTRCameraAVStreamManagementFeatureOnScreenDisplay MTR_PROVISIONALLY_AVAILABLE = 0x80, MTRCameraAVStreamManagementFeatureLocalStorage MTR_PROVISIONALLY_AVAILABLE = 0x100, + MTRCameraAVStreamManagementFeatureHighDynamicRange MTR_PROVISIONALLY_AVAILABLE = 0x200, } MTR_PROVISIONALLY_AVAILABLE; typedef NS_OPTIONS(uint32_t, MTRCameraAVSettingsUserLevelManagementFeature) { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm index 4353b0c45d6963..c09c7b5d1f0f0e 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm @@ -98404,6 +98404,30 @@ - (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnap queue:self.callbackQueue completion:responseHandler]; } +- (void)snapshotStreamModifyWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams *)params completion:(MTRStatusCompletion)completion +{ + if (params == nil) { + params = [[MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams + alloc] init]; + } + + auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) { + completion(error); + }; + + auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; + + using RequestType = CameraAvStreamManagement::Commands::SnapshotStreamModify::Type; + [self.device _invokeKnownCommandWithEndpointID:self.endpointID + clusterID:@(RequestType::GetClusterId()) + commandID:@(RequestType::GetCommandId()) + commandPayload:params + timedInvokeTimeout:timedInvokeTimeoutMs + serverSideProcessingTimeout:params.serverSideProcessingTimeout + responseClass:nil + queue:self.callbackQueue + completion:responseHandler]; +} - (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion { if (params == nil) { @@ -99009,9 +99033,9 @@ + (void)readAttributeHDRModeEnabledWithClusterStateCache:(MTRClusterStateCacheCo completion:completion]; } -- (void)readAttributeFabricsUsingCameraWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion +- (void)readAttributeSupportedStreamUsagesWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion { - using TypeInfo = CameraAvStreamManagement::Attributes::FabricsUsingCamera::TypeInfo; + using TypeInfo = CameraAvStreamManagement::Attributes::SupportedStreamUsages::TypeInfo; [self.device _readKnownAttributeWithEndpointID:self.endpointID clusterID:@(TypeInfo::GetClusterId()) attributeID:@(TypeInfo::GetAttributeId()) @@ -99020,11 +99044,11 @@ - (void)readAttributeFabricsUsingCameraWithCompletion:(void (^)(NSArray * _Nulla completion:completion]; } -- (void)subscribeAttributeFabricsUsingCameraWithParams:(MTRSubscribeParams * _Nonnull)params - subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished - reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler +- (void)subscribeAttributeSupportedStreamUsagesWithParams:(MTRSubscribeParams * _Nonnull)params + subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished + reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler { - using TypeInfo = CameraAvStreamManagement::Attributes::FabricsUsingCamera::TypeInfo; + using TypeInfo = CameraAvStreamManagement::Attributes::SupportedStreamUsages::TypeInfo; [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID clusterID:@(TypeInfo::GetClusterId()) attributeID:@(TypeInfo::GetAttributeId()) @@ -99034,9 +99058,9 @@ - (void)subscribeAttributeFabricsUsingCameraWithParams:(MTRSubscribeParams * _No subscriptionEstablished:subscriptionEstablished]; } -+ (void)readAttributeFabricsUsingCameraWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion ++ (void)readAttributeSupportedStreamUsagesWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion { - using TypeInfo = CameraAvStreamManagement::Attributes::FabricsUsingCamera::TypeInfo; + using TypeInfo = CameraAvStreamManagement::Attributes::SupportedStreamUsages::TypeInfo; [clusterStateCacheContainer _readKnownCachedAttributeWithEndpointID:static_cast([endpoint unsignedShortValue]) clusterID:TypeInfo::GetClusterId() diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h index 4ee7dc5ca8779e..9c64027af3ada6 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h @@ -4662,7 +4662,7 @@ typedef NS_ENUM(uint32_t, MTRAttributeIDType) { MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxNetworkBandwidthID MTR_PROVISIONALLY_AVAILABLE = 0x0000000B, MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentFrameRateID MTR_PROVISIONALLY_AVAILABLE = 0x0000000C, MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRModeEnabledID MTR_PROVISIONALLY_AVAILABLE = 0x0000000D, - MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFabricsUsingCameraID MTR_PROVISIONALLY_AVAILABLE = 0x0000000E, + MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSupportedStreamUsagesID MTR_PROVISIONALLY_AVAILABLE = 0x0000000E, MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedVideoStreamsID MTR_PROVISIONALLY_AVAILABLE = 0x0000000F, MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedAudioStreamsID MTR_PROVISIONALLY_AVAILABLE = 0x00000010, MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedSnapshotStreamsID MTR_PROVISIONALLY_AVAILABLE = 0x00000011, @@ -6973,10 +6973,11 @@ typedef NS_ENUM(uint32_t, MTRCommandIDType) { MTRCommandIDTypeClusterCameraAVStreamManagementCommandVideoStreamDeallocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000006, MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamAllocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000007, MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamAllocateResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000008, - MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamDeallocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000009, - MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetStreamPrioritiesID MTR_PROVISIONALLY_AVAILABLE = 0x0000000A, - MTRCommandIDTypeClusterCameraAVStreamManagementCommandCaptureSnapshotID MTR_PROVISIONALLY_AVAILABLE = 0x0000000B, - MTRCommandIDTypeClusterCameraAVStreamManagementCommandCaptureSnapshotResponseID MTR_PROVISIONALLY_AVAILABLE = 0x0000000C, + MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamModifyID MTR_PROVISIONALLY_AVAILABLE = 0x00000009, + MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamDeallocateID MTR_PROVISIONALLY_AVAILABLE = 0x0000000A, + MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetStreamPrioritiesID MTR_PROVISIONALLY_AVAILABLE = 0x0000000B, + MTRCommandIDTypeClusterCameraAVStreamManagementCommandCaptureSnapshotID MTR_PROVISIONALLY_AVAILABLE = 0x0000000C, + MTRCommandIDTypeClusterCameraAVStreamManagementCommandCaptureSnapshotResponseID MTR_PROVISIONALLY_AVAILABLE = 0x0000000D, // Cluster CameraAVSettingsUserLevelManagement commands MTRCommandIDTypeClusterCameraAVSettingsUserLevelManagementCommandMPTZSetPositionID MTR_PROVISIONALLY_AVAILABLE = 0x00000000, @@ -7618,11 +7619,6 @@ typedef NS_ENUM(uint32_t, MTREventIDType) { MTREventIDTypeClusterZoneManagementEventZoneTriggeredID MTR_PROVISIONALLY_AVAILABLE = 0x00000000, MTREventIDTypeClusterZoneManagementEventZoneStoppedID MTR_PROVISIONALLY_AVAILABLE = 0x00000001, - // Cluster CameraAVStreamManagement events - MTREventIDTypeClusterCameraAVStreamManagementEventVideoStreamChangedID MTR_PROVISIONALLY_AVAILABLE = 0x00000000, - MTREventIDTypeClusterCameraAVStreamManagementEventAudioStreamChangedID MTR_PROVISIONALLY_AVAILABLE = 0x00000001, - MTREventIDTypeClusterCameraAVStreamManagementEventSnapshotStreamChangedID MTR_PROVISIONALLY_AVAILABLE = 0x00000002, - // Cluster PushAVStreamTransport events MTREventIDTypeClusterPushAVStreamTransportEventPushTransportBeginID MTR_PROVISIONALLY_AVAILABLE = 0x00000000, MTREventIDTypeClusterPushAVStreamTransportEventPushTransportEndID MTR_PROVISIONALLY_AVAILABLE = 0x00000001, diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm index 06c29da02b80e4..9ebe0fbc8e8a8c 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm @@ -7834,8 +7834,8 @@ result = @"HDRModeEnabled"; break; - case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFabricsUsingCameraID: - result = @"FabricsUsingCamera"; + case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSupportedStreamUsagesID: + result = @"SupportedStreamUsages"; break; case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedVideoStreamsID: @@ -11034,6 +11034,10 @@ result = @"SnapshotStreamAllocate"; break; + case MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamModifyID: + result = @"SnapshotStreamModify"; + break; + case MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamDeallocateID: result = @"SnapshotStreamDeallocate"; break; @@ -14784,19 +14788,6 @@ switch (eventID) { - // Cluster CameraAVStreamManagement events - case MTREventIDTypeClusterCameraAVStreamManagementEventVideoStreamChangedID: - result = @"VideoStreamChanged"; - break; - - case MTREventIDTypeClusterCameraAVStreamManagementEventAudioStreamChangedID: - result = @"AudioStreamChanged"; - break; - - case MTREventIDTypeClusterCameraAVStreamManagementEventSnapshotStreamChangedID: - result = @"SnapshotStreamChanged"; - break; - default: result = [NSString stringWithFormat:@"", eventID]; break; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h index d880c329d4bc4a..d29ea5c453ffbd 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h @@ -6676,6 +6676,7 @@ MTR_PROVISIONALLY_AVAILABLE - (void)videoStreamModifyWithParams:(MTRCameraAVStreamManagementClusterVideoStreamModifyParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; - (void)videoStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; - (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; +- (void)snapshotStreamModifyWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; - (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; - (void)setStreamPrioritiesWithParams:(MTRCameraAVStreamManagementClusterSetStreamPrioritiesParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; - (void)captureSnapshotWithParams:(MTRCameraAVStreamManagementClusterCaptureSnapshotParams *)params expectedValues:(NSArray *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; @@ -6710,7 +6711,7 @@ MTR_PROVISIONALLY_AVAILABLE - (void)writeAttributeHDRModeEnabledWithValue:(NSDictionary *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE; - (void)writeAttributeHDRModeEnabledWithValue:(NSDictionary *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE; -- (NSDictionary * _Nullable)readAttributeFabricsUsingCameraWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE; +- (NSDictionary * _Nullable)readAttributeSupportedStreamUsagesWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE; - (NSDictionary * _Nullable)readAttributeAllocatedVideoStreamsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm index 0653ffec5aaf1c..b66d783aeac97b 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm @@ -19337,6 +19337,33 @@ - (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnap completion:responseHandler]; } +- (void)snapshotStreamModifyWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams *)params expectedValues:(NSArray *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion +{ + if (params == nil) { + params = [[MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams + alloc] init]; + } + + auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) { + completion(error); + }; + + auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs; + + using RequestType = CameraAvStreamManagement::Commands::SnapshotStreamModify::Type; + [self.device _invokeKnownCommandWithEndpointID:self.endpointID + clusterID:@(RequestType::GetClusterId()) + commandID:@(RequestType::GetCommandId()) + commandPayload:params + expectedValues:expectedValues + expectedValueInterval:expectedValueIntervalMs + timedInvokeTimeout:timedInvokeTimeoutMs + serverSideProcessingTimeout:params.serverSideProcessingTimeout + responseClass:nil + queue:self.callbackQueue + completion:responseHandler]; +} + - (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params expectedValues:(NSArray *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion { if (params == nil) { @@ -19499,9 +19526,9 @@ - (void)writeAttributeHDRModeEnabledWithValue:(NSDictionary *)da [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRModeEnabledID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout]; } -- (NSDictionary * _Nullable)readAttributeFabricsUsingCameraWithParams:(MTRReadParams * _Nullable)params +- (NSDictionary * _Nullable)readAttributeSupportedStreamUsagesWithParams:(MTRReadParams * _Nullable)params { - return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFabricsUsingCameraID) params:params]; + return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSupportedStreamUsagesID) params:params]; } - (NSDictionary * _Nullable)readAttributeAllocatedVideoStreamsWithParams:(MTRReadParams * _Nullable)params diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h index fd088cd1556906..10096511ed8123 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h @@ -11420,6 +11420,10 @@ MTR_PROVISIONALLY_AVAILABLE @property (nonatomic, copy) MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nonnull maxResolution MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull quality MTR_PROVISIONALLY_AVAILABLE; + +@property (nonatomic, copy) NSNumber * _Nullable watermarkEnabled MTR_PROVISIONALLY_AVAILABLE; + +@property (nonatomic, copy) NSNumber * _Nullable osdEnabled MTR_PROVISIONALLY_AVAILABLE; /** * Controls whether the command is a timed command (using Timed Invoke). * @@ -11465,6 +11469,40 @@ MTR_PROVISIONALLY_AVAILABLE error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE; @end +MTR_PROVISIONALLY_AVAILABLE +@interface MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams : NSObject + +@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE; + +@property (nonatomic, copy) NSNumber * _Nullable watermarkEnabled MTR_PROVISIONALLY_AVAILABLE; + +@property (nonatomic, copy) NSNumber * _Nullable osdEnabled MTR_PROVISIONALLY_AVAILABLE; +/** + * Controls whether the command is a timed command (using Timed Invoke). + * + * If nil (the default value), a regular invoke is done for commands that do + * not require a timed invoke and a timed invoke with some default timed request + * timeout is done for commands that require a timed invoke. + * + * If not nil, a timed invoke is done, with the provided value used as the timed + * request timeout. The value should be chosen small enough to provide the + * desired security properties but large enough that it will allow a round-trip + * from the sever to the client (for the status response and actual invoke + * request) within the timeout window. + * + */ +@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs; + +/** + * Controls how much time, in seconds, we will allow for the server to process the command. + * + * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes. + * + * If nil, the framework will try to select an appropriate timeout value itself. + */ +@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout; +@end + MTR_PROVISIONALLY_AVAILABLE @interface MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams : NSObject diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm index f4b10c6d5eb930..572c76423538c4 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm @@ -33206,6 +33206,10 @@ - (instancetype)init _maxResolution = [MTRCameraAVStreamManagementClusterVideoResolutionStruct new]; _quality = @(0); + + _watermarkEnabled = nil; + + _osdEnabled = nil; _timedInvokeTimeoutMs = nil; _serverSideProcessingTimeout = nil; } @@ -33222,6 +33226,8 @@ - (id)copyWithZone:(NSZone * _Nullable)zone; other.minResolution = self.minResolution; other.maxResolution = self.maxResolution; other.quality = self.quality; + other.watermarkEnabled = self.watermarkEnabled; + other.osdEnabled = self.osdEnabled; other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs; other.serverSideProcessingTimeout = self.serverSideProcessingTimeout; @@ -33230,7 +33236,7 @@ - (id)copyWithZone:(NSZone * _Nullable)zone; - (NSString *)description { - NSString * descriptionString = [NSString stringWithFormat:@"<%@: imageCodec:%@; maxFrameRate:%@; bitRate:%@; minResolution:%@; maxResolution:%@; quality:%@; >", NSStringFromClass([self class]), _imageCodec, _maxFrameRate, _bitRate, _minResolution, _maxResolution, _quality]; + NSString * descriptionString = [NSString stringWithFormat:@"<%@: imageCodec:%@; maxFrameRate:%@; bitRate:%@; minResolution:%@; maxResolution:%@; quality:%@; watermarkEnabled:%@; osdEnabled:%@; >", NSStringFromClass([self class]), _imageCodec, _maxFrameRate, _bitRate, _minResolution, _maxResolution, _quality, _watermarkEnabled, _osdEnabled]; return descriptionString; } @@ -33262,6 +33268,18 @@ - (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader { encodableStruct.quality = self.quality.unsignedCharValue; } + { + if (self.watermarkEnabled != nil) { + auto & definedValue_0 = encodableStruct.watermarkEnabled.Emplace(); + definedValue_0 = self.watermarkEnabled.boolValue; + } + } + { + if (self.osdEnabled != nil) { + auto & definedValue_0 = encodableStruct.OSDEnabled.Emplace(); + definedValue_0 = self.osdEnabled.boolValue; + } + } auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0); if (buffer.IsNull()) { @@ -33380,6 +33398,103 @@ - (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAv @end +@implementation MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams +- (instancetype)init +{ + if (self = [super init]) { + + _snapshotStreamID = @(0); + + _watermarkEnabled = nil; + + _osdEnabled = nil; + _timedInvokeTimeoutMs = nil; + _serverSideProcessingTimeout = nil; + } + return self; +} + +- (id)copyWithZone:(NSZone * _Nullable)zone; +{ + auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams alloc] init]; + + other.snapshotStreamID = self.snapshotStreamID; + other.watermarkEnabled = self.watermarkEnabled; + other.osdEnabled = self.osdEnabled; + other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs; + other.serverSideProcessingTimeout = self.serverSideProcessingTimeout; + + return other; +} + +- (NSString *)description +{ + NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; watermarkEnabled:%@; osdEnabled:%@; >", NSStringFromClass([self class]), _snapshotStreamID, _watermarkEnabled, _osdEnabled]; + return descriptionString; +} + +@end + +@implementation MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams (InternalMethods) + +- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader +{ + chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Type encodableStruct; + ListFreer listFreer; + { + encodableStruct.snapshotStreamID = self.snapshotStreamID.unsignedShortValue; + } + { + if (self.watermarkEnabled != nil) { + auto & definedValue_0 = encodableStruct.watermarkEnabled.Emplace(); + definedValue_0 = self.watermarkEnabled.boolValue; + } + } + { + if (self.osdEnabled != nil) { + auto & definedValue_0 = encodableStruct.OSDEnabled.Emplace(); + definedValue_0 = self.osdEnabled.boolValue; + } + } + + auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0); + if (buffer.IsNull()) { + return CHIP_ERROR_NO_MEMORY; + } + + chip::System::PacketBufferTLVWriter writer; + // Commands never need chained buffers, since they cannot be chunked. + writer.Init(std::move(buffer), /* useChainedBuffers = */ false); + + ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct)); + + ReturnErrorOnFailure(writer.Finalize(&buffer)); + + reader.Init(std::move(buffer)); + return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag()); +} + +- (NSDictionary * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error +{ + chip::System::PacketBufferTLVReader reader; + CHIP_ERROR err = [self _encodeToTLVReader:reader]; + if (err != CHIP_NO_ERROR) { + if (error) { + *error = [MTRError errorForCHIPErrorCode:err]; + } + return nil; + } + + auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader); + if (decodedObj == nil) { + if (error) { + *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE]; + } + } + return decodedObj; +} +@end + @implementation MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams - (instancetype)init { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h index f2583c00fea18f..06566c224b02de 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h @@ -2158,6 +2158,12 @@ NS_ASSUME_NONNULL_BEGIN @end +@interface MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams (InternalMethods) + +- (NSDictionary * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error; + +@end + @interface MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams (InternalMethods) - (NSDictionary * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm index 539e850e5aaec3..e6b4ca1917dc17 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm @@ -4645,263 +4645,6 @@ static id _Nullable DecodeEventPayloadForCameraAVStreamManagementCluster(EventId { using namespace Clusters::CameraAvStreamManagement; switch (aEventId) { - case Events::VideoStreamChanged::Id: { - Events::VideoStreamChanged::DecodableType cppValue; - *aError = DataModel::Decode(aReader, cppValue); - if (*aError != CHIP_NO_ERROR) { - return nil; - } - - __auto_type * value = [MTRCameraAVStreamManagementClusterVideoStreamChangedEvent new]; - - do { - NSNumber * _Nonnull memberValue; - memberValue = [NSNumber numberWithUnsignedShort:cppValue.videoStreamID]; - value.videoStreamID = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.streamUsage.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.streamUsage.Value())]; - } else { - memberValue = nil; - } - value.streamUsage = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.videoCodec.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.videoCodec.Value())]; - } else { - memberValue = nil; - } - value.videoCodec = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.minFrameRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedShort:cppValue.minFrameRate.Value()]; - } else { - memberValue = nil; - } - value.minFrameRate = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.maxFrameRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedShort:cppValue.maxFrameRate.Value()]; - } else { - memberValue = nil; - } - value.maxFrameRate = memberValue; - } while (0); - do { - MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable memberValue; - if (cppValue.minResolution.HasValue()) { - memberValue = [MTRCameraAVStreamManagementClusterVideoResolutionStruct new]; - memberValue.width = [NSNumber numberWithUnsignedShort:cppValue.minResolution.Value().width]; - memberValue.height = [NSNumber numberWithUnsignedShort:cppValue.minResolution.Value().height]; - } else { - memberValue = nil; - } - value.minResolution = memberValue; - } while (0); - do { - MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable memberValue; - if (cppValue.maxResolution.HasValue()) { - memberValue = [MTRCameraAVStreamManagementClusterVideoResolutionStruct new]; - memberValue.width = [NSNumber numberWithUnsignedShort:cppValue.maxResolution.Value().width]; - memberValue.height = [NSNumber numberWithUnsignedShort:cppValue.maxResolution.Value().height]; - } else { - memberValue = nil; - } - value.maxResolution = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.minBitRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedInt:cppValue.minBitRate.Value()]; - } else { - memberValue = nil; - } - value.minBitRate = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.maxBitRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedInt:cppValue.maxBitRate.Value()]; - } else { - memberValue = nil; - } - value.maxBitRate = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.minFragmentLen.HasValue()) { - memberValue = [NSNumber numberWithUnsignedShort:cppValue.minFragmentLen.Value()]; - } else { - memberValue = nil; - } - value.minFragmentLen = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.maxFragmentLen.HasValue()) { - memberValue = [NSNumber numberWithUnsignedShort:cppValue.maxFragmentLen.Value()]; - } else { - memberValue = nil; - } - value.maxFragmentLen = memberValue; - } while (0); - - return value; - } - case Events::AudioStreamChanged::Id: { - Events::AudioStreamChanged::DecodableType cppValue; - *aError = DataModel::Decode(aReader, cppValue); - if (*aError != CHIP_NO_ERROR) { - return nil; - } - - __auto_type * value = [MTRCameraAVStreamManagementClusterAudioStreamChangedEvent new]; - - do { - NSNumber * _Nonnull memberValue; - memberValue = [NSNumber numberWithUnsignedShort:cppValue.audioStreamID]; - value.audioStreamID = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.streamUsage.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.streamUsage.Value())]; - } else { - memberValue = nil; - } - value.streamUsage = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.audioCodec.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.audioCodec.Value())]; - } else { - memberValue = nil; - } - value.audioCodec = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.channelCount.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:cppValue.channelCount.Value()]; - } else { - memberValue = nil; - } - value.channelCount = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.sampleRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedInt:cppValue.sampleRate.Value()]; - } else { - memberValue = nil; - } - value.sampleRate = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.bitRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedInt:cppValue.bitRate.Value()]; - } else { - memberValue = nil; - } - value.bitRate = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.bitDepth.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:cppValue.bitDepth.Value()]; - } else { - memberValue = nil; - } - value.bitDepth = memberValue; - } while (0); - - return value; - } - case Events::SnapshotStreamChanged::Id: { - Events::SnapshotStreamChanged::DecodableType cppValue; - *aError = DataModel::Decode(aReader, cppValue); - if (*aError != CHIP_NO_ERROR) { - return nil; - } - - __auto_type * value = [MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent new]; - - do { - NSNumber * _Nonnull memberValue; - memberValue = [NSNumber numberWithUnsignedShort:cppValue.snapshotStreamID]; - value.snapshotStreamID = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.imageCodec.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.imageCodec.Value())]; - } else { - memberValue = nil; - } - value.imageCodec = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.frameRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedShort:cppValue.frameRate.Value()]; - } else { - memberValue = nil; - } - value.frameRate = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.bitRate.HasValue()) { - memberValue = [NSNumber numberWithUnsignedInt:cppValue.bitRate.Value()]; - } else { - memberValue = nil; - } - value.bitRate = memberValue; - } while (0); - do { - MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable memberValue; - if (cppValue.minResolution.HasValue()) { - memberValue = [MTRCameraAVStreamManagementClusterVideoResolutionStruct new]; - memberValue.width = [NSNumber numberWithUnsignedShort:cppValue.minResolution.Value().width]; - memberValue.height = [NSNumber numberWithUnsignedShort:cppValue.minResolution.Value().height]; - } else { - memberValue = nil; - } - value.minResolution = memberValue; - } while (0); - do { - MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable memberValue; - if (cppValue.maxResolution.HasValue()) { - memberValue = [MTRCameraAVStreamManagementClusterVideoResolutionStruct new]; - memberValue.width = [NSNumber numberWithUnsignedShort:cppValue.maxResolution.Value().width]; - memberValue.height = [NSNumber numberWithUnsignedShort:cppValue.maxResolution.Value().height]; - } else { - memberValue = nil; - } - value.maxResolution = memberValue; - } while (0); - do { - NSNumber * _Nullable memberValue; - if (cppValue.quality.HasValue()) { - memberValue = [NSNumber numberWithUnsignedChar:cppValue.quality.Value()]; - } else { - memberValue = nil; - } - value.quality = memberValue; - } while (0); - - return value; - } default: { break; } diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h index d79edaec9e3b16..0743ee3958e2e6 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h @@ -2250,9 +2250,8 @@ MTR_PROVISIONALLY_AVAILABLE @interface MTRCameraAVStreamManagementClusterVideoSensorParamsStruct : NSObject @property (nonatomic, copy) NSNumber * _Nonnull sensorWidth MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull sensorHeight MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nonnull hdrCapable MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull maxFPS MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nonnull maxHDRFPS MTR_PROVISIONALLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nullable maxHDRFPS MTR_PROVISIONALLY_AVAILABLE; @end MTR_PROVISIONALLY_AVAILABLE @@ -2263,43 +2262,6 @@ MTR_PROVISIONALLY_AVAILABLE @property (nonatomic, copy) NSNumber * _Nonnull y2 MTR_PROVISIONALLY_AVAILABLE; @end -MTR_PROVISIONALLY_AVAILABLE -@interface MTRCameraAVStreamManagementClusterVideoStreamChangedEvent : NSObject -@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable streamUsage MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable videoCodec MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable minFrameRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable maxFrameRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable minResolution MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable maxResolution MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable minBitRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable maxBitRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable minFragmentLen MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable maxFragmentLen MTR_PROVISIONALLY_AVAILABLE; -@end - -MTR_PROVISIONALLY_AVAILABLE -@interface MTRCameraAVStreamManagementClusterAudioStreamChangedEvent : NSObject -@property (nonatomic, copy) NSNumber * _Nonnull audioStreamID MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable streamUsage MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable audioCodec MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable channelCount MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable sampleRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable bitRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable bitDepth MTR_PROVISIONALLY_AVAILABLE; -@end - -MTR_PROVISIONALLY_AVAILABLE -@interface MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent : NSObject -@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable imageCodec MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable frameRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable bitRate MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable minResolution MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) MTRCameraAVStreamManagementClusterVideoResolutionStruct * _Nullable maxResolution MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nullable quality MTR_PROVISIONALLY_AVAILABLE; -@end - MTR_PROVISIONALLY_AVAILABLE @interface MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct : NSObject @property (nonatomic, copy) NSNumber * _Nullable pan MTR_PROVISIONALLY_AVAILABLE; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm index b9a6b60e3ab770..7cc93dcaa7afc0 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm @@ -9344,11 +9344,9 @@ - (instancetype)init _sensorHeight = @(0); - _hdrCapable = @(0); - _maxFPS = @(0); - _maxHDRFPS = @(0); + _maxHDRFPS = nil; } return self; } @@ -9359,7 +9357,6 @@ - (id)copyWithZone:(NSZone * _Nullable)zone other.sensorWidth = self.sensorWidth; other.sensorHeight = self.sensorHeight; - other.hdrCapable = self.hdrCapable; other.maxFPS = self.maxFPS; other.maxHDRFPS = self.maxHDRFPS; @@ -9368,7 +9365,7 @@ - (id)copyWithZone:(NSZone * _Nullable)zone - (NSString *)description { - NSString * descriptionString = [NSString stringWithFormat:@"<%@: sensorWidth:%@; sensorHeight:%@; hdrCapable:%@; maxFPS:%@; maxHDRFPS:%@; >", NSStringFromClass([self class]), _sensorWidth, _sensorHeight, _hdrCapable, _maxFPS, _maxHDRFPS]; + NSString * descriptionString = [NSString stringWithFormat:@"<%@: sensorWidth:%@; sensorHeight:%@; maxFPS:%@; maxHDRFPS:%@; >", NSStringFromClass([self class]), _sensorWidth, _sensorHeight, _maxFPS, _maxHDRFPS]; return descriptionString; } @@ -9410,153 +9407,6 @@ - (NSString *)description @end -@implementation MTRCameraAVStreamManagementClusterVideoStreamChangedEvent -- (instancetype)init -{ - if (self = [super init]) { - - _videoStreamID = @(0); - - _streamUsage = nil; - - _videoCodec = nil; - - _minFrameRate = nil; - - _maxFrameRate = nil; - - _minResolution = nil; - - _maxResolution = nil; - - _minBitRate = nil; - - _maxBitRate = nil; - - _minFragmentLen = nil; - - _maxFragmentLen = nil; - } - return self; -} - -- (id)copyWithZone:(NSZone * _Nullable)zone -{ - auto other = [[MTRCameraAVStreamManagementClusterVideoStreamChangedEvent alloc] init]; - - other.videoStreamID = self.videoStreamID; - other.streamUsage = self.streamUsage; - other.videoCodec = self.videoCodec; - other.minFrameRate = self.minFrameRate; - other.maxFrameRate = self.maxFrameRate; - other.minResolution = self.minResolution; - other.maxResolution = self.maxResolution; - other.minBitRate = self.minBitRate; - other.maxBitRate = self.maxBitRate; - other.minFragmentLen = self.minFragmentLen; - other.maxFragmentLen = self.maxFragmentLen; - - return other; -} - -- (NSString *)description -{ - NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; streamUsage:%@; videoCodec:%@; minFrameRate:%@; maxFrameRate:%@; minResolution:%@; maxResolution:%@; minBitRate:%@; maxBitRate:%@; minFragmentLen:%@; maxFragmentLen:%@; >", NSStringFromClass([self class]), _videoStreamID, _streamUsage, _videoCodec, _minFrameRate, _maxFrameRate, _minResolution, _maxResolution, _minBitRate, _maxBitRate, _minFragmentLen, _maxFragmentLen]; - return descriptionString; -} - -@end - -@implementation MTRCameraAVStreamManagementClusterAudioStreamChangedEvent -- (instancetype)init -{ - if (self = [super init]) { - - _audioStreamID = @(0); - - _streamUsage = nil; - - _audioCodec = nil; - - _channelCount = nil; - - _sampleRate = nil; - - _bitRate = nil; - - _bitDepth = nil; - } - return self; -} - -- (id)copyWithZone:(NSZone * _Nullable)zone -{ - auto other = [[MTRCameraAVStreamManagementClusterAudioStreamChangedEvent alloc] init]; - - other.audioStreamID = self.audioStreamID; - other.streamUsage = self.streamUsage; - other.audioCodec = self.audioCodec; - other.channelCount = self.channelCount; - other.sampleRate = self.sampleRate; - other.bitRate = self.bitRate; - other.bitDepth = self.bitDepth; - - return other; -} - -- (NSString *)description -{ - NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioStreamID:%@; streamUsage:%@; audioCodec:%@; channelCount:%@; sampleRate:%@; bitRate:%@; bitDepth:%@; >", NSStringFromClass([self class]), _audioStreamID, _streamUsage, _audioCodec, _channelCount, _sampleRate, _bitRate, _bitDepth]; - return descriptionString; -} - -@end - -@implementation MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent -- (instancetype)init -{ - if (self = [super init]) { - - _snapshotStreamID = @(0); - - _imageCodec = nil; - - _frameRate = nil; - - _bitRate = nil; - - _minResolution = nil; - - _maxResolution = nil; - - _quality = nil; - } - return self; -} - -- (id)copyWithZone:(NSZone * _Nullable)zone -{ - auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent alloc] init]; - - other.snapshotStreamID = self.snapshotStreamID; - other.imageCodec = self.imageCodec; - other.frameRate = self.frameRate; - other.bitRate = self.bitRate; - other.minResolution = self.minResolution; - other.maxResolution = self.maxResolution; - other.quality = self.quality; - - return other; -} - -- (NSString *)description -{ - NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; imageCodec:%@; frameRate:%@; bitRate:%@; minResolution:%@; maxResolution:%@; quality:%@; >", NSStringFromClass([self class]), _snapshotStreamID, _imageCodec, _frameRate, _bitRate, _minResolution, _maxResolution, _quality]; - return descriptionString; -} - -@end - @implementation MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct - (instancetype)init { diff --git a/zzz_generated/app-common/app-common/zap-generated/callback.h b/zzz_generated/app-common/app-common/zap-generated/callback.h index 9fa94b0c282a0e..9af167eb6067ec 100644 --- a/zzz_generated/app-common/app-common/zap-generated/callback.h +++ b/zzz_generated/app-common/app-common/zap-generated/callback.h @@ -6876,6 +6876,12 @@ bool emberAfCameraAvStreamManagementClusterVideoStreamDeallocateCallback( bool emberAfCameraAvStreamManagementClusterSnapshotStreamAllocateCallback( chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::DecodableType & commandData); +/** + * @brief Camera AV Stream Management Cluster SnapshotStreamModify Command callback (from client) + */ +bool emberAfCameraAvStreamManagementClusterSnapshotStreamModifyCallback( + chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath, + const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::DecodableType & commandData); /** * @brief Camera AV Stream Management Cluster SnapshotStreamDeallocate Command callback (from client) */ diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 5fed7680990392..06e421bd4bf2d9 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -5750,15 +5750,16 @@ enum class VideoCodecEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kAudio = 0x1, - kVideo = 0x2, - kSnapshot = 0x4, - kPrivacy = 0x8, - kSpeaker = 0x10, - kImageControl = 0x20, - kWatermark = 0x40, - kOnScreenDisplay = 0x80, - kLocalStorage = 0x100, + kAudio = 0x1, + kVideo = 0x2, + kSnapshot = 0x4, + kPrivacy = 0x8, + kSpeaker = 0x10, + kImageControl = 0x20, + kWatermark = 0x40, + kOnScreenDisplay = 0x80, + kLocalStorage = 0x100, + kHighDynamicRange = 0x200, }; } // namespace CameraAvStreamManagement diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp index 5c3c082e5f4d9a..320e97547382f6 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp @@ -29790,7 +29790,6 @@ CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; encoder.Encode(to_underlying(Fields::kSensorWidth), sensorWidth); encoder.Encode(to_underlying(Fields::kSensorHeight), sensorHeight); - encoder.Encode(to_underlying(Fields::kHDRCapable), HDRCapable); encoder.Encode(to_underlying(Fields::kMaxFPS), maxFPS); encoder.Encode(to_underlying(Fields::kMaxHDRFPS), maxHDRFPS); return encoder.Finalize(); @@ -29818,10 +29817,6 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) { err = DataModel::Decode(reader, sensorHeight); } - else if (__context_tag == to_underlying(Fields::kHDRCapable)) - { - err = DataModel::Decode(reader, HDRCapable); - } else if (__context_tag == to_underlying(Fields::kMaxFPS)) { err = DataModel::Decode(reader, maxFPS); @@ -30180,6 +30175,8 @@ CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const encoder.Encode(to_underlying(Fields::kMinResolution), minResolution); encoder.Encode(to_underlying(Fields::kMaxResolution), maxResolution); encoder.Encode(to_underlying(Fields::kQuality), quality); + encoder.Encode(to_underlying(Fields::kWatermarkEnabled), watermarkEnabled); + encoder.Encode(to_underlying(Fields::kOSDEnabled), OSDEnabled); return encoder.Finalize(); } @@ -30221,6 +30218,14 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) { err = DataModel::Decode(reader, quality); } + else if (__context_tag == to_underlying(Fields::kWatermarkEnabled)) + { + err = DataModel::Decode(reader, watermarkEnabled); + } + else if (__context_tag == to_underlying(Fields::kOSDEnabled)) + { + err = DataModel::Decode(reader, OSDEnabled); + } else { } @@ -30263,6 +30268,50 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) } } } // namespace SnapshotStreamAllocateResponse. +namespace SnapshotStreamModify { +CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const +{ + DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; + encoder.Encode(to_underlying(Fields::kSnapshotStreamID), snapshotStreamID); + encoder.Encode(to_underlying(Fields::kWatermarkEnabled), watermarkEnabled); + encoder.Encode(to_underlying(Fields::kOSDEnabled), OSDEnabled); + return encoder.Finalize(); +} + +CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) +{ + detail::StructDecodeIterator __iterator(reader); + while (true) + { + auto __element = __iterator.Next(); + if (std::holds_alternative(__element)) + { + return std::get(__element); + } + + CHIP_ERROR err = CHIP_NO_ERROR; + const uint8_t __context_tag = std::get(__element); + + if (__context_tag == to_underlying(Fields::kSnapshotStreamID)) + { + err = DataModel::Decode(reader, snapshotStreamID); + } + else if (__context_tag == to_underlying(Fields::kWatermarkEnabled)) + { + err = DataModel::Decode(reader, watermarkEnabled); + } + else if (__context_tag == to_underlying(Fields::kOSDEnabled)) + { + err = DataModel::Decode(reader, OSDEnabled); + } + else + { + } + + ReturnErrorOnFailure(err); + } +} +} // namespace SnapshotStreamModify. namespace SnapshotStreamDeallocate { CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const { @@ -30449,8 +30498,8 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre return DataModel::Decode(reader, currentFrameRate); case Attributes::HDRModeEnabled::TypeInfo::GetAttributeId(): return DataModel::Decode(reader, HDRModeEnabled); - case Attributes::FabricsUsingCamera::TypeInfo::GetAttributeId(): - return DataModel::Decode(reader, fabricsUsingCamera); + case Attributes::SupportedStreamUsages::TypeInfo::GetAttributeId(): + return DataModel::Decode(reader, supportedStreamUsages); case Attributes::AllocatedVideoStreams::TypeInfo::GetAttributeId(): return DataModel::Decode(reader, allocatedVideoStreams); case Attributes::AllocatedAudioStreams::TypeInfo::GetAttributeId(): @@ -30519,223 +30568,7 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre } } // namespace Attributes -namespace Events { -namespace VideoStreamChanged { -CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const -{ - TLV::TLVType outer; - ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kVideoStreamID), videoStreamID)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kStreamUsage), streamUsage)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kVideoCodec), videoCodec)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinFrameRate), minFrameRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxFrameRate), maxFrameRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinResolution), minResolution)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxResolution), maxResolution)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinBitRate), minBitRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxBitRate), maxBitRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinFragmentLen), minFragmentLen)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxFragmentLen), maxFragmentLen)); - return aWriter.EndContainer(outer); -} - -CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) -{ - detail::StructDecodeIterator __iterator(reader); - while (true) - { - auto __element = __iterator.Next(); - if (std::holds_alternative(__element)) - { - return std::get(__element); - } - - CHIP_ERROR err = CHIP_NO_ERROR; - const uint8_t __context_tag = std::get(__element); - - if (__context_tag == to_underlying(Fields::kVideoStreamID)) - { - err = DataModel::Decode(reader, videoStreamID); - } - else if (__context_tag == to_underlying(Fields::kStreamUsage)) - { - err = DataModel::Decode(reader, streamUsage); - } - else if (__context_tag == to_underlying(Fields::kVideoCodec)) - { - err = DataModel::Decode(reader, videoCodec); - } - else if (__context_tag == to_underlying(Fields::kMinFrameRate)) - { - err = DataModel::Decode(reader, minFrameRate); - } - else if (__context_tag == to_underlying(Fields::kMaxFrameRate)) - { - err = DataModel::Decode(reader, maxFrameRate); - } - else if (__context_tag == to_underlying(Fields::kMinResolution)) - { - err = DataModel::Decode(reader, minResolution); - } - else if (__context_tag == to_underlying(Fields::kMaxResolution)) - { - err = DataModel::Decode(reader, maxResolution); - } - else if (__context_tag == to_underlying(Fields::kMinBitRate)) - { - err = DataModel::Decode(reader, minBitRate); - } - else if (__context_tag == to_underlying(Fields::kMaxBitRate)) - { - err = DataModel::Decode(reader, maxBitRate); - } - else if (__context_tag == to_underlying(Fields::kMinFragmentLen)) - { - err = DataModel::Decode(reader, minFragmentLen); - } - else if (__context_tag == to_underlying(Fields::kMaxFragmentLen)) - { - err = DataModel::Decode(reader, maxFragmentLen); - } - else - { - } - - ReturnErrorOnFailure(err); - } -} -} // namespace VideoStreamChanged. -namespace AudioStreamChanged { -CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const -{ - TLV::TLVType outer; - ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kAudioStreamID), audioStreamID)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kStreamUsage), streamUsage)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kAudioCodec), audioCodec)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kChannelCount), channelCount)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kSampleRate), sampleRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kBitRate), bitRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kBitDepth), bitDepth)); - return aWriter.EndContainer(outer); -} - -CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) -{ - detail::StructDecodeIterator __iterator(reader); - while (true) - { - auto __element = __iterator.Next(); - if (std::holds_alternative(__element)) - { - return std::get(__element); - } - - CHIP_ERROR err = CHIP_NO_ERROR; - const uint8_t __context_tag = std::get(__element); - - if (__context_tag == to_underlying(Fields::kAudioStreamID)) - { - err = DataModel::Decode(reader, audioStreamID); - } - else if (__context_tag == to_underlying(Fields::kStreamUsage)) - { - err = DataModel::Decode(reader, streamUsage); - } - else if (__context_tag == to_underlying(Fields::kAudioCodec)) - { - err = DataModel::Decode(reader, audioCodec); - } - else if (__context_tag == to_underlying(Fields::kChannelCount)) - { - err = DataModel::Decode(reader, channelCount); - } - else if (__context_tag == to_underlying(Fields::kSampleRate)) - { - err = DataModel::Decode(reader, sampleRate); - } - else if (__context_tag == to_underlying(Fields::kBitRate)) - { - err = DataModel::Decode(reader, bitRate); - } - else if (__context_tag == to_underlying(Fields::kBitDepth)) - { - err = DataModel::Decode(reader, bitDepth); - } - else - { - } - - ReturnErrorOnFailure(err); - } -} -} // namespace AudioStreamChanged. -namespace SnapshotStreamChanged { -CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const -{ - TLV::TLVType outer; - ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kSnapshotStreamID), snapshotStreamID)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kImageCodec), imageCodec)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kFrameRate), frameRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kBitRate), bitRate)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinResolution), minResolution)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxResolution), maxResolution)); - ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kQuality), quality)); - return aWriter.EndContainer(outer); -} - -CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) -{ - detail::StructDecodeIterator __iterator(reader); - while (true) - { - auto __element = __iterator.Next(); - if (std::holds_alternative(__element)) - { - return std::get(__element); - } - - CHIP_ERROR err = CHIP_NO_ERROR; - const uint8_t __context_tag = std::get(__element); - - if (__context_tag == to_underlying(Fields::kSnapshotStreamID)) - { - err = DataModel::Decode(reader, snapshotStreamID); - } - else if (__context_tag == to_underlying(Fields::kImageCodec)) - { - err = DataModel::Decode(reader, imageCodec); - } - else if (__context_tag == to_underlying(Fields::kFrameRate)) - { - err = DataModel::Decode(reader, frameRate); - } - else if (__context_tag == to_underlying(Fields::kBitRate)) - { - err = DataModel::Decode(reader, bitRate); - } - else if (__context_tag == to_underlying(Fields::kMinResolution)) - { - err = DataModel::Decode(reader, minResolution); - } - else if (__context_tag == to_underlying(Fields::kMaxResolution)) - { - err = DataModel::Decode(reader, maxResolution); - } - else if (__context_tag == to_underlying(Fields::kQuality)) - { - err = DataModel::Decode(reader, quality); - } - else - { - } - - ReturnErrorOnFailure(err); - } -} -} // namespace SnapshotStreamChanged. -} // namespace Events +namespace Events {} // namespace Events } // namespace CameraAvStreamManagement namespace CameraAvSettingsUserLevelManagement { diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h index 09167426d29f51..7d2bf1fd79f021 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h @@ -41729,9 +41729,8 @@ enum class Fields : uint8_t { kSensorWidth = 0, kSensorHeight = 1, - kHDRCapable = 2, - kMaxFPS = 3, - kMaxHDRFPS = 4, + kMaxFPS = 2, + kMaxHDRFPS = 3, }; struct Type @@ -41739,9 +41738,8 @@ struct Type public: uint16_t sensorWidth = static_cast(0); uint16_t sensorHeight = static_cast(0); - bool HDRCapable = static_cast(0); uint16_t maxFPS = static_cast(0); - uint16_t maxHDRFPS = static_cast(0); + Optional maxHDRFPS; CHIP_ERROR Decode(TLV::TLVReader & reader); @@ -41804,6 +41802,11 @@ struct Type; struct DecodableType; } // namespace SnapshotStreamAllocateResponse +namespace SnapshotStreamModify { +struct Type; +struct DecodableType; +} // namespace SnapshotStreamModify + namespace SnapshotStreamDeallocate { struct Type; struct DecodableType; @@ -42108,12 +42111,14 @@ struct DecodableType namespace SnapshotStreamAllocate { enum class Fields : uint8_t { - kImageCodec = 0, - kMaxFrameRate = 1, - kBitRate = 2, - kMinResolution = 3, - kMaxResolution = 4, - kQuality = 5, + kImageCodec = 0, + kMaxFrameRate = 1, + kBitRate = 2, + kMinResolution = 3, + kMaxResolution = 4, + kQuality = 5, + kWatermarkEnabled = 6, + kOSDEnabled = 7, }; struct Type @@ -42129,6 +42134,8 @@ struct Type Structs::VideoResolutionStruct::Type minResolution; Structs::VideoResolutionStruct::Type maxResolution; uint8_t quality = static_cast(0); + Optional watermarkEnabled; + Optional OSDEnabled; CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; @@ -42149,6 +42156,8 @@ struct DecodableType Structs::VideoResolutionStruct::DecodableType minResolution; Structs::VideoResolutionStruct::DecodableType maxResolution; uint8_t quality = static_cast(0); + Optional watermarkEnabled; + Optional OSDEnabled; CHIP_ERROR Decode(TLV::TLVReader & reader); }; }; // namespace SnapshotStreamAllocate @@ -42184,6 +42193,44 @@ struct DecodableType CHIP_ERROR Decode(TLV::TLVReader & reader); }; }; // namespace SnapshotStreamAllocateResponse +namespace SnapshotStreamModify { +enum class Fields : uint8_t +{ + kSnapshotStreamID = 0, + kWatermarkEnabled = 1, + kOSDEnabled = 2, +}; + +struct Type +{ +public: + // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand + static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamModify::Id; } + static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } + + uint16_t snapshotStreamID = static_cast(0); + Optional watermarkEnabled; + Optional OSDEnabled; + + CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; + + using ResponseType = DataModel::NullObjectType; + + static constexpr bool MustUseTimedInvoke() { return false; } +}; + +struct DecodableType +{ +public: + static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamModify::Id; } + static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } + + uint16_t snapshotStreamID = static_cast(0); + Optional watermarkEnabled; + Optional OSDEnabled; + CHIP_ERROR Decode(TLV::TLVReader & reader); +}; +}; // namespace SnapshotStreamModify namespace SnapshotStreamDeallocate { enum class Fields : uint8_t { @@ -42499,18 +42546,19 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace HDRModeEnabled -namespace FabricsUsingCamera { +namespace SupportedStreamUsages { struct TypeInfo { - using Type = chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList; - using DecodableArgType = const chip::app::DataModel::DecodableList &; + using Type = chip::app::DataModel::List; + using DecodableType = chip::app::DataModel::DecodableList; + using DecodableArgType = + const chip::app::DataModel::DecodableList &; static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - static constexpr AttributeId GetAttributeId() { return Attributes::FabricsUsingCamera::Id; } + static constexpr AttributeId GetAttributeId() { return Attributes::SupportedStreamUsages::Id; } static constexpr bool MustUseTimedWrite() { return false; } }; -} // namespace FabricsUsingCamera +} // namespace SupportedStreamUsages namespace AllocatedVideoStreams { struct TypeInfo { @@ -42885,7 +42933,7 @@ struct TypeInfo Attributes::MaxNetworkBandwidth::TypeInfo::DecodableType maxNetworkBandwidth = static_cast(0); Attributes::CurrentFrameRate::TypeInfo::DecodableType currentFrameRate = static_cast(0); Attributes::HDRModeEnabled::TypeInfo::DecodableType HDRModeEnabled = static_cast(0); - Attributes::FabricsUsingCamera::TypeInfo::DecodableType fabricsUsingCamera; + Attributes::SupportedStreamUsages::TypeInfo::DecodableType supportedStreamUsages; Attributes::AllocatedVideoStreams::TypeInfo::DecodableType allocatedVideoStreams; Attributes::AllocatedAudioStreams::TypeInfo::DecodableType allocatedAudioStreams; Attributes::AllocatedSnapshotStreams::TypeInfo::DecodableType allocatedSnapshotStreams; @@ -42924,173 +42972,6 @@ struct TypeInfo }; }; } // namespace Attributes -namespace Events { -namespace VideoStreamChanged { -static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info; - -enum class Fields : uint8_t -{ - kVideoStreamID = 0, - kStreamUsage = 1, - kVideoCodec = 2, - kMinFrameRate = 3, - kMaxFrameRate = 4, - kMinResolution = 5, - kMaxResolution = 6, - kMinBitRate = 7, - kMaxBitRate = 8, - kMinFragmentLen = 9, - kMaxFragmentLen = 10, -}; - -struct Type -{ -public: - static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; } - static constexpr EventId GetEventId() { return Events::VideoStreamChanged::Id; } - static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - static constexpr bool kIsFabricScoped = false; - - uint16_t videoStreamID = static_cast(0); - Optional streamUsage; - Optional videoCodec; - Optional minFrameRate; - Optional maxFrameRate; - Optional minResolution; - Optional maxResolution; - Optional minBitRate; - Optional maxBitRate; - Optional minFragmentLen; - Optional maxFragmentLen; - - CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; -}; - -struct DecodableType -{ -public: - static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; } - static constexpr EventId GetEventId() { return Events::VideoStreamChanged::Id; } - static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - - uint16_t videoStreamID = static_cast(0); - Optional streamUsage; - Optional videoCodec; - Optional minFrameRate; - Optional maxFrameRate; - Optional minResolution; - Optional maxResolution; - Optional minBitRate; - Optional maxBitRate; - Optional minFragmentLen; - Optional maxFragmentLen; - - CHIP_ERROR Decode(TLV::TLVReader & reader); -}; -} // namespace VideoStreamChanged -namespace AudioStreamChanged { -static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info; - -enum class Fields : uint8_t -{ - kAudioStreamID = 0, - kStreamUsage = 1, - kAudioCodec = 2, - kChannelCount = 3, - kSampleRate = 4, - kBitRate = 5, - kBitDepth = 6, -}; - -struct Type -{ -public: - static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; } - static constexpr EventId GetEventId() { return Events::AudioStreamChanged::Id; } - static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - static constexpr bool kIsFabricScoped = false; - - uint16_t audioStreamID = static_cast(0); - Optional streamUsage; - Optional audioCodec; - Optional channelCount; - Optional sampleRate; - Optional bitRate; - Optional bitDepth; - - CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; -}; - -struct DecodableType -{ -public: - static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; } - static constexpr EventId GetEventId() { return Events::AudioStreamChanged::Id; } - static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - - uint16_t audioStreamID = static_cast(0); - Optional streamUsage; - Optional audioCodec; - Optional channelCount; - Optional sampleRate; - Optional bitRate; - Optional bitDepth; - - CHIP_ERROR Decode(TLV::TLVReader & reader); -}; -} // namespace AudioStreamChanged -namespace SnapshotStreamChanged { -static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info; - -enum class Fields : uint8_t -{ - kSnapshotStreamID = 0, - kImageCodec = 1, - kFrameRate = 2, - kBitRate = 3, - kMinResolution = 4, - kMaxResolution = 5, - kQuality = 6, -}; - -struct Type -{ -public: - static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; } - static constexpr EventId GetEventId() { return Events::SnapshotStreamChanged::Id; } - static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - static constexpr bool kIsFabricScoped = false; - - uint16_t snapshotStreamID = static_cast(0); - Optional imageCodec; - Optional frameRate; - Optional bitRate; - Optional minResolution; - Optional maxResolution; - Optional quality; - - CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; -}; - -struct DecodableType -{ -public: - static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; } - static constexpr EventId GetEventId() { return Events::SnapshotStreamChanged::Id; } - static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; } - - uint16_t snapshotStreamID = static_cast(0); - Optional imageCodec; - Optional frameRate; - Optional bitRate; - Optional minResolution; - Optional maxResolution; - Optional quality; - - CHIP_ERROR Decode(TLV::TLVReader & reader); -}; -} // namespace SnapshotStreamChanged -} // namespace Events } // namespace CameraAvStreamManagement namespace CameraAvSettingsUserLevelManagement { namespace Structs { diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h index 5b07520dfb7ab7..7654c036a2d72c 100644 --- a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h +++ b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h @@ -6988,9 +6988,9 @@ namespace HDRModeEnabled { static constexpr AttributeId Id = 0x0000000D; } // namespace HDRModeEnabled -namespace FabricsUsingCamera { +namespace SupportedStreamUsages { static constexpr AttributeId Id = 0x0000000E; -} // namespace FabricsUsingCamera +} // namespace SupportedStreamUsages namespace AllocatedVideoStreams { static constexpr AttributeId Id = 0x0000000F; diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h b/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h index 959a27bbcf6434..6105bbc65c0a6d 100644 --- a/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h +++ b/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h @@ -1910,20 +1910,24 @@ namespace SnapshotStreamAllocateResponse { static constexpr CommandId Id = 0x00000008; } // namespace SnapshotStreamAllocateResponse -namespace SnapshotStreamDeallocate { +namespace SnapshotStreamModify { static constexpr CommandId Id = 0x00000009; +} // namespace SnapshotStreamModify + +namespace SnapshotStreamDeallocate { +static constexpr CommandId Id = 0x0000000A; } // namespace SnapshotStreamDeallocate namespace SetStreamPriorities { -static constexpr CommandId Id = 0x0000000A; +static constexpr CommandId Id = 0x0000000B; } // namespace SetStreamPriorities namespace CaptureSnapshot { -static constexpr CommandId Id = 0x0000000B; +static constexpr CommandId Id = 0x0000000C; } // namespace CaptureSnapshot namespace CaptureSnapshotResponse { -static constexpr CommandId Id = 0x0000000C; +static constexpr CommandId Id = 0x0000000D; } // namespace CaptureSnapshotResponse } // namespace Commands diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Events.h b/zzz_generated/app-common/app-common/zap-generated/ids/Events.h index a9a1adab1fda5d..8cc6d0e02a0636 100644 --- a/zzz_generated/app-common/app-common/zap-generated/ids/Events.h +++ b/zzz_generated/app-common/app-common/zap-generated/ids/Events.h @@ -697,24 +697,6 @@ static constexpr EventId Id = 0x00000001; } // namespace Events } // namespace ZoneManagement -namespace CameraAvStreamManagement { -namespace Events { - -namespace VideoStreamChanged { -static constexpr EventId Id = 0x00000000; -} // namespace VideoStreamChanged - -namespace AudioStreamChanged { -static constexpr EventId Id = 0x00000001; -} // namespace AudioStreamChanged - -namespace SnapshotStreamChanged { -static constexpr EventId Id = 0x00000002; -} // namespace SnapshotStreamChanged - -} // namespace Events -} // namespace CameraAvStreamManagement - namespace PushAvStreamTransport { namespace Events { diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h index 8c7105dfdd73f2..a37faf7f65bf87 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h @@ -14023,9 +14023,10 @@ class ZoneManagementRemoveZone : public ClusterCommand | * VideoStreamModify | 0x05 | | * VideoStreamDeallocate | 0x06 | | * SnapshotStreamAllocate | 0x07 | -| * SnapshotStreamDeallocate | 0x09 | -| * SetStreamPriorities | 0x0A | -| * CaptureSnapshot | 0x0B | +| * SnapshotStreamModify | 0x09 | +| * SnapshotStreamDeallocate | 0x0A | +| * SetStreamPriorities | 0x0B | +| * CaptureSnapshot | 0x0C | |------------------------------------------------------------------------------| | Attributes: | | | * MaxConcurrentVideoEncoders | 0x0000 | @@ -14042,7 +14043,7 @@ class ZoneManagementRemoveZone : public ClusterCommand | * MaxNetworkBandwidth | 0x000B | | * CurrentFrameRate | 0x000C | | * HDRModeEnabled | 0x000D | -| * FabricsUsingCamera | 0x000E | +| * SupportedStreamUsages | 0x000E | | * AllocatedVideoStreams | 0x000F | | * AllocatedAudioStreams | 0x0010 | | * AllocatedSnapshotStreams | 0x0011 | @@ -14076,9 +14077,6 @@ class ZoneManagementRemoveZone : public ClusterCommand | * ClusterRevision | 0xFFFD | |------------------------------------------------------------------------------| | Events: | | -| * VideoStreamChanged | 0x0000 | -| * AudioStreamChanged | 0x0001 | -| * SnapshotStreamChanged | 0x0002 | \*----------------------------------------------------------------------------*/ /* @@ -14310,6 +14308,8 @@ class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand AddArgument("MinResolution", &mComplex_MinResolution); AddArgument("MaxResolution", &mComplex_MaxResolution); AddArgument("Quality", 0, UINT8_MAX, &mRequest.quality); + AddArgument("WatermarkEnabled", 0, 1, &mRequest.watermarkEnabled); + AddArgument("OSDEnabled", 0, 1, &mRequest.OSDEnabled); ClusterCommand::AddArguments(); } @@ -14342,6 +14342,46 @@ class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand mComplex_MaxResolution; }; +/* + * Command SnapshotStreamModify + */ +class CameraAvStreamManagementSnapshotStreamModify : public ClusterCommand +{ +public: + CameraAvStreamManagementSnapshotStreamModify(CredentialIssuerCommands * credsIssuerConfig) : + ClusterCommand("snapshot-stream-modify", credsIssuerConfig) + { + AddArgument("SnapshotStreamID", 0, UINT16_MAX, &mRequest.snapshotStreamID); + AddArgument("WatermarkEnabled", 0, 1, &mRequest.watermarkEnabled); + AddArgument("OSDEnabled", 0, 1, &mRequest.OSDEnabled); + ClusterCommand::AddArguments(); + } + + CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector endpointIds) override + { + constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id; + constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Id; + + ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, + commandId, endpointIds.at(0)); + return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest); + } + + CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override + { + constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id; + constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Id; + + ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId, + groupId); + + return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest); + } + +private: + chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Type mRequest; +}; + /* * Command SnapshotStreamDeallocate */ @@ -28113,6 +28153,7 @@ void registerClusterCameraAvStreamManagement(Commands & commands, CredentialIssu make_unique(credsIssuerConfig), // make_unique(credsIssuerConfig), // make_unique(credsIssuerConfig), // + make_unique(credsIssuerConfig), // make_unique(credsIssuerConfig), // make_unique(credsIssuerConfig), // make_unique(credsIssuerConfig), // @@ -28136,7 +28177,7 @@ void registerClusterCameraAvStreamManagement(Commands & commands, CredentialIssu make_unique(Id, "max-network-bandwidth", Attributes::MaxNetworkBandwidth::Id, credsIssuerConfig), // make_unique(Id, "current-frame-rate", Attributes::CurrentFrameRate::Id, credsIssuerConfig), // make_unique(Id, "hdrmode-enabled", Attributes::HDRModeEnabled::Id, credsIssuerConfig), // - make_unique(Id, "fabrics-using-camera", Attributes::FabricsUsingCamera::Id, credsIssuerConfig), // + make_unique(Id, "supported-stream-usages", Attributes::SupportedStreamUsages::Id, credsIssuerConfig), // make_unique(Id, "allocated-video-streams", Attributes::AllocatedVideoStreams::Id, credsIssuerConfig), // make_unique(Id, "allocated-audio-streams", Attributes::AllocatedAudioStreams::Id, credsIssuerConfig), // make_unique(Id, "allocated-snapshot-streams", Attributes::AllocatedSnapshotStreams::Id, @@ -28210,8 +28251,10 @@ void registerClusterCameraAvStreamManagement(Commands & commands, CredentialIssu WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>(Id, "hdrmode-enabled", 0, 1, Attributes::HDRModeEnabled::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( - Id, "fabrics-using-camera", Attributes::FabricsUsingCamera::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // + make_unique>>( + Id, "supported-stream-usages", Attributes::SupportedStreamUsages::Id, WriteCommandType::kForceWrite, + credsIssuerConfig), // make_unique>>( Id, "allocated-video-streams", Attributes::AllocatedVideoStreams::Id, WriteCommandType::kForceWrite, @@ -28307,7 +28350,7 @@ void registerClusterCameraAvStreamManagement(Commands & commands, CredentialIssu make_unique(Id, "max-network-bandwidth", Attributes::MaxNetworkBandwidth::Id, credsIssuerConfig), // make_unique(Id, "current-frame-rate", Attributes::CurrentFrameRate::Id, credsIssuerConfig), // make_unique(Id, "hdrmode-enabled", Attributes::HDRModeEnabled::Id, credsIssuerConfig), // - make_unique(Id, "fabrics-using-camera", Attributes::FabricsUsingCamera::Id, credsIssuerConfig), // + make_unique(Id, "supported-stream-usages", Attributes::SupportedStreamUsages::Id, credsIssuerConfig), // make_unique(Id, "allocated-video-streams", Attributes::AllocatedVideoStreams::Id, credsIssuerConfig), // make_unique(Id, "allocated-audio-streams", Attributes::AllocatedAudioStreams::Id, credsIssuerConfig), // make_unique(Id, "allocated-snapshot-streams", Attributes::AllocatedSnapshotStreams::Id, @@ -28348,14 +28391,8 @@ void registerClusterCameraAvStreamManagement(Commands & commands, CredentialIssu // // Events // - make_unique(Id, credsIssuerConfig), // - make_unique(Id, "video-stream-changed", Events::VideoStreamChanged::Id, credsIssuerConfig), // - make_unique(Id, "audio-stream-changed", Events::AudioStreamChanged::Id, credsIssuerConfig), // - make_unique(Id, "snapshot-stream-changed", Events::SnapshotStreamChanged::Id, credsIssuerConfig), // - make_unique(Id, credsIssuerConfig), // - make_unique(Id, "video-stream-changed", Events::VideoStreamChanged::Id, credsIssuerConfig), // - make_unique(Id, "audio-stream-changed", Events::AudioStreamChanged::Id, credsIssuerConfig), // - make_unique(Id, "snapshot-stream-changed", Events::SnapshotStreamChanged::Id, credsIssuerConfig), // + make_unique(Id, credsIssuerConfig), // + make_unique(Id, credsIssuerConfig), // }; commands.RegisterCluster(clusterName, clusterCommands); diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp index 4121c85cf30051..fa29a0dfde5c6d 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp @@ -6543,12 +6543,8 @@ ComplexArgumentParser::Setup(const char * label, value.isMember("sensorWidth"))); ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.sensorHeight", "sensorHeight", value.isMember("sensorHeight"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.HDRCapable", "HDRCapable", value.isMember("HDRCapable"))); ReturnErrorOnFailure( ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.maxFPS", "maxFPS", value.isMember("maxFPS"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.maxHDRFPS", "maxHDRFPS", value.isMember("maxHDRFPS"))); char labelWithMember[kMaxLabelLength]; snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "sensorWidth"); @@ -6559,16 +6555,15 @@ ComplexArgumentParser::Setup(const char * label, ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.sensorHeight, value["sensorHeight"])); valueCopy.removeMember("sensorHeight"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "HDRCapable"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.HDRCapable, value["HDRCapable"])); - valueCopy.removeMember("HDRCapable"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxFPS"); ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxFPS, value["maxFPS"])); valueCopy.removeMember("maxFPS"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxHDRFPS"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxHDRFPS, value["maxHDRFPS"])); + if (value.isMember("maxHDRFPS")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxHDRFPS"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxHDRFPS, value["maxHDRFPS"])); + } valueCopy.removeMember("maxHDRFPS"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); @@ -6579,7 +6574,6 @@ void ComplexArgumentParser::Finalize( { ComplexArgumentParser::Finalize(request.sensorWidth); ComplexArgumentParser::Finalize(request.sensorHeight); - ComplexArgumentParser::Finalize(request.HDRCapable); ComplexArgumentParser::Finalize(request.maxFPS); ComplexArgumentParser::Finalize(request.maxHDRFPS); } diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index cb33c79471bbcd..ba112e5b44b896 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -5813,14 +5813,6 @@ CHIP_ERROR DataModelLogger::LogValue( return err; } } - { - CHIP_ERROR err = LogValue("HDRCapable", indent + 1, value.HDRCapable); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'HDRCapable'"); - return err; - } - } { CHIP_ERROR err = LogValue("MaxFPS", indent + 1, value.maxFPS); if (err != CHIP_NO_ERROR) @@ -9278,230 +9270,6 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const CameraAvStreamManagement::Events::VideoStreamChanged::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); - { - CHIP_ERROR err = DataModelLogger::LogValue("VideoStreamID", indent + 1, value.videoStreamID); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'VideoStreamID'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("StreamUsage", indent + 1, value.streamUsage); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StreamUsage'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("VideoCodec", indent + 1, value.videoCodec); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'VideoCodec'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MinFrameRate", indent + 1, value.minFrameRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinFrameRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MaxFrameRate", indent + 1, value.maxFrameRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxFrameRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MinResolution", indent + 1, value.minResolution); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinResolution'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MaxResolution", indent + 1, value.maxResolution); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxResolution'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MinBitRate", indent + 1, value.minBitRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinBitRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MaxBitRate", indent + 1, value.maxBitRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxBitRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MinFragmentLen", indent + 1, value.minFragmentLen); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinFragmentLen'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MaxFragmentLen", indent + 1, value.maxFragmentLen); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxFragmentLen'"); - return err; - } - } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const CameraAvStreamManagement::Events::AudioStreamChanged::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); - { - CHIP_ERROR err = DataModelLogger::LogValue("AudioStreamID", indent + 1, value.audioStreamID); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AudioStreamID'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("StreamUsage", indent + 1, value.streamUsage); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StreamUsage'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("AudioCodec", indent + 1, value.audioCodec); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AudioCodec'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("ChannelCount", indent + 1, value.channelCount); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ChannelCount'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("SampleRate", indent + 1, value.sampleRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SampleRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("BitRate", indent + 1, value.bitRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BitRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("BitDepth", indent + 1, value.bitDepth); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BitDepth'"); - return err; - } - } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const CameraAvStreamManagement::Events::SnapshotStreamChanged::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); - { - CHIP_ERROR err = DataModelLogger::LogValue("SnapshotStreamID", indent + 1, value.snapshotStreamID); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SnapshotStreamID'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("ImageCodec", indent + 1, value.imageCodec); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ImageCodec'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("FrameRate", indent + 1, value.frameRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FrameRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("BitRate", indent + 1, value.bitRate); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BitRate'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MinResolution", indent + 1, value.minResolution); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinResolution'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("MaxResolution", indent + 1, value.maxResolution); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxResolution'"); - return err; - } - } - { - CHIP_ERROR err = DataModelLogger::LogValue("Quality", indent + 1, value.quality); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Quality'"); - return err; - } - } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const PushAvStreamTransport::Events::PushTransportBegin::DecodableType & value) { @@ -19351,10 +19119,10 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("HDRModeEnabled", 1, value); } - case CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id: { - chip::app::DataModel::DecodableList value; + case CameraAvStreamManagement::Attributes::SupportedStreamUsages::Id: { + chip::app::DataModel::DecodableList value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); - return DataModelLogger::LogValue("FabricsUsingCamera", 1, value); + return DataModelLogger::LogValue("SupportedStreamUsages", 1, value); } case CameraAvStreamManagement::Attributes::AllocatedVideoStreams::Id: { chip::app::DataModel::DecodableList< @@ -22098,27 +21866,6 @@ CHIP_ERROR DataModelLogger::LogEvent(const chip::app::EventHeader & header, chip } break; } - case CameraAvStreamManagement::Id: { - switch (header.mPath.mEventId) - { - case CameraAvStreamManagement::Events::VideoStreamChanged::Id: { - chip::app::Clusters::CameraAvStreamManagement::Events::VideoStreamChanged::DecodableType value; - ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); - return DataModelLogger::LogValue("VideoStreamChanged", 1, value); - } - case CameraAvStreamManagement::Events::AudioStreamChanged::Id: { - chip::app::Clusters::CameraAvStreamManagement::Events::AudioStreamChanged::DecodableType value; - ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); - return DataModelLogger::LogValue("AudioStreamChanged", 1, value); - } - case CameraAvStreamManagement::Events::SnapshotStreamChanged::Id: { - chip::app::Clusters::CameraAvStreamManagement::Events::SnapshotStreamChanged::DecodableType value; - ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); - return DataModelLogger::LogValue("SnapshotStreamChanged", 1, value); - } - } - break; - } case PushAvStreamTransport::Id: { switch (header.mPath.mEventId) { diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h index c4b3a233a0e468..20c205ec11a8b8 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h @@ -782,13 +782,6 @@ static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::ZoneManagement::Events::ZoneTriggered::DecodableType & value); static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::ZoneManagement::Events::ZoneStopped::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::CameraAvStreamManagement::Events::VideoStreamChanged::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::CameraAvStreamManagement::Events::AudioStreamChanged::DecodableType & value); -static CHIP_ERROR -LogValue(const char * label, size_t indent, - const chip::app::Clusters::CameraAvStreamManagement::Events::SnapshotStreamChanged::DecodableType & value); static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::PushAvStreamTransport::Events::PushTransportBegin::DecodableType & value); static CHIP_ERROR LogValue(const char * label, size_t indent, diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp index 1d14563a3de866..e58a675c4addb7 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp @@ -4242,8 +4242,8 @@ char const * AttributeIdToText(chip::ClusterId cluster, chip::AttributeId id) return "CurrentFrameRate"; case chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRModeEnabled::Id: return "HDRModeEnabled"; - case chip::app::Clusters::CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id: - return "FabricsUsingCamera"; + case chip::app::Clusters::CameraAvStreamManagement::Attributes::SupportedStreamUsages::Id: + return "SupportedStreamUsages"; case chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedVideoStreams::Id: return "AllocatedVideoStreams"; case chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedAudioStreams::Id: @@ -5821,6 +5821,8 @@ char const * AcceptedCommandIdToText(chip::ClusterId cluster, chip::CommandId id return "VideoStreamDeallocate"; case chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Id: return "SnapshotStreamAllocate"; + case chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Id: + return "SnapshotStreamModify"; case chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Id: return "SnapshotStreamDeallocate"; case chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriorities::Id: diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h index aa1be9936b043e..5e325adfd52549 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h @@ -149777,9 +149777,10 @@ class SubscribeAttributeZoneManagementClusterRevision : public SubscribeAttribut | * VideoStreamModify | 0x05 | | * VideoStreamDeallocate | 0x06 | | * SnapshotStreamAllocate | 0x07 | -| * SnapshotStreamDeallocate | 0x09 | -| * SetStreamPriorities | 0x0A | -| * CaptureSnapshot | 0x0B | +| * SnapshotStreamModify | 0x09 | +| * SnapshotStreamDeallocate | 0x0A | +| * SetStreamPriorities | 0x0B | +| * CaptureSnapshot | 0x0C | |------------------------------------------------------------------------------| | Attributes: | | | * MaxConcurrentVideoEncoders | 0x0000 | @@ -149796,7 +149797,7 @@ class SubscribeAttributeZoneManagementClusterRevision : public SubscribeAttribut | * MaxNetworkBandwidth | 0x000B | | * CurrentFrameRate | 0x000C | | * HDRModeEnabled | 0x000D | -| * FabricsUsingCamera | 0x000E | +| * SupportedStreamUsages | 0x000E | | * AllocatedVideoStreams | 0x000F | | * AllocatedAudioStreams | 0x0010 | | * AllocatedSnapshotStreams | 0x0011 | @@ -149830,9 +149831,6 @@ class SubscribeAttributeZoneManagementClusterRevision : public SubscribeAttribut | * ClusterRevision | 0xFFFD | |------------------------------------------------------------------------------| | Events: | | -| * VideoStreamChanged | 0x0000 | -| * AudioStreamChanged | 0x0001 | -| * SnapshotStreamChanged | 0x0002 | \*----------------------------------------------------------------------------*/ #if MTR_ENABLE_PROVISIONAL @@ -150272,6 +150270,12 @@ class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand { #endif // MTR_ENABLE_PROVISIONAL #if MTR_ENABLE_PROVISIONAL AddArgument("Quality", 0, UINT8_MAX, &mRequest.quality); +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + AddArgument("WatermarkEnabled", 0, 1, &mRequest.watermarkEnabled); +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + AddArgument("OSDEnabled", 0, 1, &mRequest.OSDEnabled); #endif // MTR_ENABLE_PROVISIONAL ClusterCommand::AddArguments(); } @@ -150308,6 +150312,20 @@ class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand { #endif // MTR_ENABLE_PROVISIONAL #if MTR_ENABLE_PROVISIONAL params.quality = [NSNumber numberWithUnsignedChar:mRequest.quality]; +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + if (mRequest.watermarkEnabled.HasValue()) { + params.watermarkEnabled = [NSNumber numberWithBool:mRequest.watermarkEnabled.Value()]; + } else { + params.watermarkEnabled = nil; + } +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + if (mRequest.OSDEnabled.HasValue()) { + params.osdEnabled = [NSNumber numberWithBool:mRequest.OSDEnabled.Value()]; + } else { + params.osdEnabled = nil; + } #endif // MTR_ENABLE_PROVISIONAL uint16_t repeatCount = mRepeatCount.ValueOr(1); uint16_t __block responsesNeeded = repeatCount; @@ -150340,6 +150358,79 @@ class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand { TypedComplexArgument mComplex_MaxResolution; }; +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL +/* + * Command SnapshotStreamModify + */ +class CameraAvStreamManagementSnapshotStreamModify : public ClusterCommand { +public: + CameraAvStreamManagementSnapshotStreamModify() + : ClusterCommand("snapshot-stream-modify") + { +#if MTR_ENABLE_PROVISIONAL + AddArgument("SnapshotStreamID", 0, UINT16_MAX, &mRequest.snapshotStreamID); +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + AddArgument("WatermarkEnabled", 0, 1, &mRequest.watermarkEnabled); +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + AddArgument("OSDEnabled", 0, 1, &mRequest.OSDEnabled); +#endif // MTR_ENABLE_PROVISIONAL + ClusterCommand::AddArguments(); + } + + CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override + { + constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id; + constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Id; + + ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId); + + dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL); + __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue]; + __auto_type * params = [[MTRCameraAVStreamManagementClusterSnapshotStreamModifyParams alloc] init]; + params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil; +#if MTR_ENABLE_PROVISIONAL + params.snapshotStreamID = [NSNumber numberWithUnsignedShort:mRequest.snapshotStreamID]; +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + if (mRequest.watermarkEnabled.HasValue()) { + params.watermarkEnabled = [NSNumber numberWithBool:mRequest.watermarkEnabled.Value()]; + } else { + params.watermarkEnabled = nil; + } +#endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + if (mRequest.OSDEnabled.HasValue()) { + params.osdEnabled = [NSNumber numberWithBool:mRequest.OSDEnabled.Value()]; + } else { + params.osdEnabled = nil; + } +#endif // MTR_ENABLE_PROVISIONAL + uint16_t repeatCount = mRepeatCount.ValueOr(1); + uint16_t __block responsesNeeded = repeatCount; + while (repeatCount--) { + [cluster snapshotStreamModifyWithParams:params completion: + ^(NSError * _Nullable error) { + responsesNeeded--; + if (error != nil) { + mError = error; + LogNSError("Error", error); + RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error); + } + if (responsesNeeded == 0) { + SetCommandExitStatus(mError); + } + }]; + } + return CHIP_NO_ERROR; + } + +private: + chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamModify::Type mRequest; +}; + #endif // MTR_ENABLE_PROVISIONAL #if MTR_ENABLE_PROVISIONAL /* @@ -151761,34 +151852,34 @@ class SubscribeAttributeCameraAvStreamManagementHDRModeEnabled : public Subscrib #if MTR_ENABLE_PROVISIONAL /* - * Attribute FabricsUsingCamera + * Attribute SupportedStreamUsages */ -class ReadCameraAvStreamManagementFabricsUsingCamera : public ReadAttribute { +class ReadCameraAvStreamManagementSupportedStreamUsages : public ReadAttribute { public: - ReadCameraAvStreamManagementFabricsUsingCamera() - : ReadAttribute("fabrics-using-camera") + ReadCameraAvStreamManagementSupportedStreamUsages() + : ReadAttribute("supported-stream-usages") { } - ~ReadCameraAvStreamManagementFabricsUsingCamera() + ~ReadCameraAvStreamManagementSupportedStreamUsages() { } CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override { constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id; - constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id; + constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SupportedStreamUsages::Id; ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId); dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL); __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue]; - [cluster readAttributeFabricsUsingCameraWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) { - NSLog(@"CameraAVStreamManagement.FabricsUsingCamera response %@", [value description]); + [cluster readAttributeSupportedStreamUsagesWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) { + NSLog(@"CameraAVStreamManagement.SupportedStreamUsages response %@", [value description]); if (error == nil) { RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value); } else { - LogNSError("CameraAVStreamManagement FabricsUsingCamera read Error", error); + LogNSError("CameraAVStreamManagement SupportedStreamUsages read Error", error); RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error); } SetCommandExitStatus(error); @@ -151797,21 +151888,21 @@ class ReadCameraAvStreamManagementFabricsUsingCamera : public ReadAttribute { } }; -class SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera : public SubscribeAttribute { +class SubscribeAttributeCameraAvStreamManagementSupportedStreamUsages : public SubscribeAttribute { public: - SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera() - : SubscribeAttribute("fabrics-using-camera") + SubscribeAttributeCameraAvStreamManagementSupportedStreamUsages() + : SubscribeAttribute("supported-stream-usages") { } - ~SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera() + ~SubscribeAttributeCameraAvStreamManagementSupportedStreamUsages() { } CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override { constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id; - constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id; + constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SupportedStreamUsages::Id; ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId); dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL); @@ -151826,10 +151917,10 @@ class SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera : public Subs if (mAutoResubscribe.HasValue()) { params.resubscribeAutomatically = mAutoResubscribe.Value(); } - [cluster subscribeAttributeFabricsUsingCameraWithParams:params + [cluster subscribeAttributeSupportedStreamUsagesWithParams:params subscriptionEstablished:^() { mSubscriptionEstablished = YES; } reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) { - NSLog(@"CameraAVStreamManagement.FabricsUsingCamera response %@", [value description]); + NSLog(@"CameraAVStreamManagement.SupportedStreamUsages response %@", [value description]); if (error == nil) { RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value); } else { @@ -183691,6 +183782,9 @@ void registerClusterCameraAvStreamManagement(Commands & commands) #if MTR_ENABLE_PROVISIONAL make_unique(), // #endif // MTR_ENABLE_PROVISIONAL +#if MTR_ENABLE_PROVISIONAL + make_unique(), // +#endif // MTR_ENABLE_PROVISIONAL #if MTR_ENABLE_PROVISIONAL make_unique(), // #endif // MTR_ENABLE_PROVISIONAL @@ -183761,8 +183855,8 @@ void registerClusterCameraAvStreamManagement(Commands & commands) make_unique(), // #endif // MTR_ENABLE_PROVISIONAL #if MTR_ENABLE_PROVISIONAL - make_unique(), // - make_unique(), // + make_unique(), // + make_unique(), // #endif // MTR_ENABLE_PROVISIONAL #if MTR_ENABLE_PROVISIONAL make_unique(), // @@ -183905,8 +183999,6 @@ void registerClusterCameraAvStreamManagement(Commands & commands) make_unique(), // make_unique(), // #endif // MTR_ENABLE_PROVISIONAL - make_unique(Id), // - make_unique(Id), // }; commands.RegisterCluster(clusterName, clusterCommands);