| /* |
| * |
| * Copyright (c) 2021 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. |
| */ |
| |
| // THIS FILE IS GENERATED BY ZAP |
| |
| #import <Foundation/Foundation.h> |
| |
| #import "CHIPDevice.h" |
| #import "CHIPDevice_Internal.h" |
| #import "gen/CHIPClientCallbacks.h" |
| #import "gen/CHIPClustersObjc.h" |
| |
| #include <controller/CHIPClusters.h> |
| |
| using namespace ::chip; |
| |
| class CHIPDefaultSuccessCallbackBridge : public Callback::Callback<DefaultSuccessCallback> { |
| public: |
| CHIPDefaultSuccessCallbackBridge(ResponseHandler handler, dispatch_queue_t queue) |
| : Callback::Callback<DefaultSuccessCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| { |
| } |
| |
| ~CHIPDefaultSuccessCallbackBridge() {}; |
| |
| static void CallbackFn(void * context) |
| { |
| CHIPDefaultSuccessCallbackBridge * callback = reinterpret_cast<CHIPDefaultSuccessCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| callback->mHandler(nil, nil); |
| callback->Cancel(); |
| delete callback; |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| }; |
| |
| class CHIPDefaultFailureCallbackBridge : public Callback::Callback<DefaultFailureCallback> { |
| public: |
| CHIPDefaultFailureCallbackBridge(ResponseHandler handler, dispatch_queue_t queue) |
| : Callback::Callback<DefaultFailureCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| { |
| } |
| |
| ~CHIPDefaultFailureCallbackBridge() {}; |
| |
| static void CallbackFn(void * context, uint8_t status) |
| { |
| CHIPDefaultFailureCallbackBridge * callback = reinterpret_cast<CHIPDefaultFailureCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| NSError * error = [NSError errorWithDomain:@"ZCL" code:status userInfo:@ { NSLocalizedDescriptionKey : @"" }]; |
| callback->mHandler(error, nil); |
| callback->Cancel(); |
| delete callback; |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| }; |
| |
| class CHIPUnsupportedAttributeCallbackBridge : public Callback::Callback<DefaultSuccessCallback> { |
| public: |
| CHIPUnsupportedAttributeCallbackBridge(ResponseHandler handler, dispatch_queue_t queue) |
| : Callback::Callback<DefaultSuccessCallback>(CallbackFn, this) |
| { |
| } |
| |
| ~CHIPUnsupportedAttributeCallbackBridge() {}; |
| |
| static void CallbackFn(void * context) |
| { |
| CHIPUnsupportedAttributeCallbackBridge * callback = reinterpret_cast<CHIPUnsupportedAttributeCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| NSError * error = [NSError errorWithDomain:@"ZCL" |
| code:0 |
| userInfo:@ { NSLocalizedDescriptionKey : @"Unsuported attribute type" }]; |
| callback->mHandler(error, nil); |
| callback->Cancel(); |
| delete callback; |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| }; |
| |
| class CHIPBooleanAttributeCallbackBridge : public Callback::Callback<BooleanAttributeCallback> { |
| public: |
| CHIPBooleanAttributeCallbackBridge(ResponseHandler handler, dispatch_queue_t queue, bool keepAlive = false) |
| : Callback::Callback<BooleanAttributeCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| , mKeepAlive(keepAlive) |
| { |
| } |
| |
| ~CHIPBooleanAttributeCallbackBridge() {}; |
| |
| static void CallbackFn(void * context, bool value) |
| { |
| CHIPBooleanAttributeCallbackBridge * callback = reinterpret_cast<CHIPBooleanAttributeCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| callback->mHandler(nil, @ { @"value" : [NSNumber numberWithBool:value] }); |
| if (!callback->mKeepAlive) { |
| callback->Cancel(); |
| delete callback; |
| } |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| bool mKeepAlive; |
| }; |
| |
| class CHIPInt8uAttributeCallbackBridge : public Callback::Callback<Int8uAttributeCallback> { |
| public: |
| CHIPInt8uAttributeCallbackBridge(ResponseHandler handler, dispatch_queue_t queue, bool keepAlive = false) |
| : Callback::Callback<Int8uAttributeCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| , mKeepAlive(keepAlive) |
| { |
| } |
| |
| ~CHIPInt8uAttributeCallbackBridge() {}; |
| |
| static void CallbackFn(void * context, uint8_t value) |
| { |
| CHIPInt8uAttributeCallbackBridge * callback = reinterpret_cast<CHIPInt8uAttributeCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| callback->mHandler(nil, @ { @"value" : [NSNumber numberWithUnsignedChar:value] }); |
| if (!callback->mKeepAlive) { |
| callback->Cancel(); |
| delete callback; |
| } |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| bool mKeepAlive; |
| }; |
| |
| class CHIPInt8sAttributeCallbackBridge : public Callback::Callback<Int8sAttributeCallback> { |
| public: |
| CHIPInt8sAttributeCallbackBridge(ResponseHandler handler, dispatch_queue_t queue, bool keepAlive = false) |
| : Callback::Callback<Int8sAttributeCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| , mKeepAlive(keepAlive) |
| { |
| } |
| |
| ~CHIPInt8sAttributeCallbackBridge() {}; |
| |
| static void CallbackFn(void * context, int8_t value) |
| { |
| CHIPInt8sAttributeCallbackBridge * callback = reinterpret_cast<CHIPInt8sAttributeCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| callback->mHandler(nil, @ { @"value" : [NSNumber numberWithChar:value] }); |
| if (!callback->mKeepAlive) { |
| callback->Cancel(); |
| delete callback; |
| } |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| bool mKeepAlive; |
| }; |
| |
| class CHIPInt16uAttributeCallbackBridge : public Callback::Callback<Int16uAttributeCallback> { |
| public: |
| CHIPInt16uAttributeCallbackBridge(ResponseHandler handler, dispatch_queue_t queue, bool keepAlive = false) |
| : Callback::Callback<Int16uAttributeCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| , mKeepAlive(keepAlive) |
| { |
| } |
| |
| ~CHIPInt16uAttributeCallbackBridge() {}; |
| |
| static void CallbackFn(void * context, uint16_t value) |
| { |
| CHIPInt16uAttributeCallbackBridge * callback = reinterpret_cast<CHIPInt16uAttributeCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| callback->mHandler(nil, @ { @"value" : [NSNumber numberWithUnsignedShort:value] }); |
| if (!callback->mKeepAlive) { |
| callback->Cancel(); |
| delete callback; |
| } |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| bool mKeepAlive; |
| }; |
| |
| class CHIPInt16sAttributeCallbackBridge : public Callback::Callback<Int16sAttributeCallback> { |
| public: |
| CHIPInt16sAttributeCallbackBridge(ResponseHandler handler, dispatch_queue_t queue, bool keepAlive = false) |
| : Callback::Callback<Int16sAttributeCallback>(CallbackFn, this) |
| , mHandler(handler) |
| , mQueue(queue) |
| , mKeepAlive(keepAlive) |
| { |
| } |
| |
| ~CHIPInt16sAttributeCallbackBridge() {}; |
| |
| static void CallbackFn(void * context, int16_t value) |
| { |
| CHIPInt16sAttributeCallbackBridge * callback = reinterpret_cast<CHIPInt16sAttributeCallbackBridge *>(context); |
| if (callback && callback->mQueue) { |
| dispatch_async(callback->mQueue, ^{ |
| callback->mHandler(nil, @ { @"value" : [NSNumber numberWithShort:value] }); |
| if (!callback->mKeepAlive) { |
| callback->Cancel(); |
| delete callback; |
| } |
| }); |
| } |
| }; |
| |
| private: |
| ResponseHandler mHandler; |
| dispatch_queue_t mQueue; |
| bool mKeepAlive; |
| }; |
| |
| @interface CHIPBarrierControl () |
| |
| @property (readonly) Controller::BarrierControlCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPBarrierControl |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)barrierControlGoToPercent:(uint8_t)percentOpen completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.BarrierControlGoToPercent(onSuccess->Cancel(), onFailure->Cancel(), percentOpen); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)barrierControlStop:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.BarrierControlStop(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeBarrierMovingState:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeBarrierMovingState(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeBarrierSafetyStatus:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeBarrierSafetyStatus(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeBarrierCapabilities:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeBarrierCapabilities(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeBarrierPosition:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeBarrierPosition(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPBasic () |
| |
| @property (readonly) Controller::BasicCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPBasic |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)mfgSpecificPing:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MfgSpecificPing(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)resetToFactoryDefaults:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ResetToFactoryDefaults(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeZclVersion:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeZclVersion(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePowerSource:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePowerSource(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPBinding () |
| |
| @property (readonly) Controller::BindingCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPBinding |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)bind:(uint64_t)nodeId |
| groupId:(uint16_t)groupId |
| endpointId:(uint8_t)endpointId |
| clusterId:(uint16_t)clusterId |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Bind(onSuccess->Cancel(), onFailure->Cancel(), nodeId, groupId, endpointId, clusterId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)unbind:(uint64_t)nodeId |
| groupId:(uint16_t)groupId |
| endpointId:(uint8_t)endpointId |
| clusterId:(uint16_t)clusterId |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Unbind(onSuccess->Cancel(), onFailure->Cancel(), nodeId, groupId, endpointId, clusterId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPColorControl () |
| |
| @property (readonly) Controller::ColorControlCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPColorControl |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)moveColor:(int16_t)rateX |
| rateY:(int16_t)rateY |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.MoveColor(onSuccess->Cancel(), onFailure->Cancel(), rateX, rateY, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveColorTemperature:(uint8_t)moveMode |
| rate:(uint16_t)rate |
| colorTemperatureMinimum:(uint16_t)colorTemperatureMinimum |
| colorTemperatureMaximum:(uint16_t)colorTemperatureMaximum |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveColorTemperature(onSuccess->Cancel(), onFailure->Cancel(), moveMode, rate, |
| colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveHue:(uint8_t)moveMode |
| rate:(uint8_t)rate |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.MoveHue(onSuccess->Cancel(), onFailure->Cancel(), moveMode, rate, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveSaturation:(uint8_t)moveMode |
| rate:(uint8_t)rate |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.MoveSaturation(onSuccess->Cancel(), onFailure->Cancel(), moveMode, rate, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToColor:(uint16_t)colorX |
| colorY:(uint16_t)colorY |
| transitionTime:(uint16_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveToColor( |
| onSuccess->Cancel(), onFailure->Cancel(), colorX, colorY, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToColorTemperature:(uint16_t)colorTemperature |
| transitionTime:(uint16_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveToColorTemperature( |
| onSuccess->Cancel(), onFailure->Cancel(), colorTemperature, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToHue:(uint8_t)hue |
| direction:(uint8_t)direction |
| transitionTime:(uint16_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveToHue( |
| onSuccess->Cancel(), onFailure->Cancel(), hue, direction, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToHueAndSaturation:(uint8_t)hue |
| saturation:(uint8_t)saturation |
| transitionTime:(uint16_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveToHueAndSaturation( |
| onSuccess->Cancel(), onFailure->Cancel(), hue, saturation, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToSaturation:(uint8_t)saturation |
| transitionTime:(uint16_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveToSaturation( |
| onSuccess->Cancel(), onFailure->Cancel(), saturation, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stepColor:(int16_t)stepX |
| stepY:(int16_t)stepY |
| transitionTime:(uint16_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StepColor( |
| onSuccess->Cancel(), onFailure->Cancel(), stepX, stepY, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stepColorTemperature:(uint8_t)stepMode |
| stepSize:(uint16_t)stepSize |
| transitionTime:(uint16_t)transitionTime |
| colorTemperatureMinimum:(uint16_t)colorTemperatureMinimum |
| colorTemperatureMaximum:(uint16_t)colorTemperatureMaximum |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StepColorTemperature(onSuccess->Cancel(), onFailure->Cancel(), stepMode, stepSize, |
| transitionTime, colorTemperatureMinimum, colorTemperatureMaximum, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stepHue:(uint8_t)stepMode |
| stepSize:(uint8_t)stepSize |
| transitionTime:(uint8_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StepHue( |
| onSuccess->Cancel(), onFailure->Cancel(), stepMode, stepSize, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stepSaturation:(uint8_t)stepMode |
| stepSize:(uint8_t)stepSize |
| transitionTime:(uint8_t)transitionTime |
| optionsMask:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StepSaturation( |
| onSuccess->Cancel(), onFailure->Cancel(), stepMode, stepSize, transitionTime, optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stopMoveStep:(uint8_t)optionsMask |
| optionsOverride:(uint8_t)optionsOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StopMoveStep(onSuccess->Cancel(), onFailure->Cancel(), optionsMask, optionsOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentHue:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentHue(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeCurrentHue:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(uint8_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.ConfigureAttributeCurrentHue(onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeCurrentHue:(ResponseHandler)reportHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onReport = new CHIPInt8uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeCurrentHue(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentSaturation:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentSaturation(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeCurrentSaturation:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(uint8_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ConfigureAttributeCurrentSaturation( |
| onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeCurrentSaturation:(ResponseHandler)reportHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onReport = new CHIPInt8uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeCurrentSaturation(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeRemainingTime:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeRemainingTime(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentX:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentX(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeCurrentX:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(uint16_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.ConfigureAttributeCurrentX(onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeCurrentX:(ResponseHandler)reportHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onReport = new CHIPInt16uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeCurrentX(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentY:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentY(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeCurrentY:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(uint16_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.ConfigureAttributeCurrentY(onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeCurrentY:(ResponseHandler)reportHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onReport = new CHIPInt16uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeCurrentY(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeDriftCompensation:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeDriftCompensation(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCompensationText:(ResponseHandler)completionHandler |
| { |
| CHIPUnsupportedAttributeCallbackBridge * onSuccess |
| = new CHIPUnsupportedAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCompensationText(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorTemperature:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorTemperature(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeColorTemperature:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(uint16_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ConfigureAttributeColorTemperature( |
| onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeColorTemperature:(ResponseHandler)reportHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onReport = new CHIPInt16uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeColorTemperature(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorMode:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorMode(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorControlOptions:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorControlOptions(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorControlOptions:(uint8_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorControlOptions(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeNumberOfPrimaries:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeNumberOfPrimaries(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary1X:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary1X(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary1Y:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary1Y(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary1Intensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary1Intensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary2X:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary2X(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary2Y:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary2Y(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary2Intensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary2Intensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary3X:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary3X(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary3Y:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary3Y(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary3Intensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary3Intensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary4X:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary4X(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary4Y:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary4Y(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary4Intensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary4Intensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary5X:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary5X(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary5Y:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary5Y(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary5Intensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary5Intensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary6X:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary6X(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary6Y:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary6Y(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributePrimary6Intensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributePrimary6Intensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeWhitePointX:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeWhitePointX(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeWhitePointX:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeWhitePointX(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeWhitePointY:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeWhitePointY(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeWhitePointY:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeWhitePointY(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointRX:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointRX(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointRX:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointRX(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointRY:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointRY(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointRY:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointRY(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointRIntensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointRIntensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointRIntensity:(uint8_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointRIntensity(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointGX:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointGX(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointGX:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointGX(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointGY:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointGY(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointGY:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointGY(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointGIntensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointGIntensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointGIntensity:(uint8_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointGIntensity(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointBX:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointBX(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointBX:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointBX(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointBY:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointBY(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointBY:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointBY(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorPointBIntensity:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorPointBIntensity(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeColorPointBIntensity:(uint8_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeColorPointBIntensity(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeEnhancedCurrentHue:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeEnhancedCurrentHue(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeEnhancedColorMode:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeEnhancedColorMode(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorLoopActive:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorLoopActive(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorLoopDirection:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorLoopDirection(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorLoopTime:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorLoopTime(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorCapabilities:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorCapabilities(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorTempPhysicalMin:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorTempPhysicalMin(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeColorTempPhysicalMax:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeColorTempPhysicalMax(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCoupleColorTempToLevelMinMireds:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCoupleColorTempToLevelMinMireds(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeStartUpColorTemperatureMireds:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeStartUpColorTemperatureMireds(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeStartUpColorTemperatureMireds:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeStartUpColorTemperatureMireds(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPDoorLock () |
| |
| @property (readonly) Controller::DoorLockCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPDoorLock |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)clearAllPins:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearAllPins(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)clearAllRfids:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearAllRfids(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)clearHolidaySchedule:(uint8_t)scheduleId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearHolidaySchedule(onSuccess->Cancel(), onFailure->Cancel(), scheduleId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)clearPin:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearPin(onSuccess->Cancel(), onFailure->Cancel(), userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)clearRfid:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearRfid(onSuccess->Cancel(), onFailure->Cancel(), userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)clearWeekdaySchedule:(uint8_t)scheduleId userId:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearWeekdaySchedule(onSuccess->Cancel(), onFailure->Cancel(), scheduleId, userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)clearYeardaySchedule:(uint8_t)scheduleId userId:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ClearYeardaySchedule(onSuccess->Cancel(), onFailure->Cancel(), scheduleId, userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getHolidaySchedule:(uint8_t)scheduleId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetHolidaySchedule(onSuccess->Cancel(), onFailure->Cancel(), scheduleId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getLogRecord:(uint16_t)logIndex completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetLogRecord(onSuccess->Cancel(), onFailure->Cancel(), logIndex); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getPin:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetPin(onSuccess->Cancel(), onFailure->Cancel(), userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getRfid:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetRfid(onSuccess->Cancel(), onFailure->Cancel(), userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getUserType:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetUserType(onSuccess->Cancel(), onFailure->Cancel(), userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getWeekdaySchedule:(uint8_t)scheduleId userId:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetWeekdaySchedule(onSuccess->Cancel(), onFailure->Cancel(), scheduleId, userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getYeardaySchedule:(uint8_t)scheduleId userId:(uint16_t)userId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetYeardaySchedule(onSuccess->Cancel(), onFailure->Cancel(), scheduleId, userId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)lockDoor:(char *)pin completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDoorLockClusterLockDoorResponseCallbackBridge * onSuccess |
| = new CHIPDoorLockClusterLockDoorResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.LockDoor(onSuccess->Cancel(), onFailure->Cancel(), pin); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)setHolidaySchedule:(uint8_t)scheduleId |
| localStartTime:(uint32_t)localStartTime |
| localEndTime:(uint32_t)localEndTime |
| operatingModeDuringHoliday:(uint8_t)operatingModeDuringHoliday |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.SetHolidaySchedule( |
| onSuccess->Cancel(), onFailure->Cancel(), scheduleId, localStartTime, localEndTime, operatingModeDuringHoliday); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)setPin:(uint16_t)userId |
| userStatus:(uint8_t)userStatus |
| userType:(uint8_t)userType |
| pin:(char *)pin |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.SetPin(onSuccess->Cancel(), onFailure->Cancel(), userId, userStatus, userType, pin); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)setRfid:(uint16_t)userId |
| userStatus:(uint8_t)userStatus |
| userType:(uint8_t)userType |
| id:(char *)id |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.SetRfid(onSuccess->Cancel(), onFailure->Cancel(), userId, userStatus, userType, id); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)setUserType:(uint16_t)userId userType:(uint8_t)userType completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.SetUserType(onSuccess->Cancel(), onFailure->Cancel(), userId, userType); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)setWeekdaySchedule:(uint8_t)scheduleId |
| userId:(uint16_t)userId |
| daysMask:(uint8_t)daysMask |
| startHour:(uint8_t)startHour |
| startMinute:(uint8_t)startMinute |
| endHour:(uint8_t)endHour |
| endMinute:(uint8_t)endMinute |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.SetWeekdaySchedule( |
| onSuccess->Cancel(), onFailure->Cancel(), scheduleId, userId, daysMask, startHour, startMinute, endHour, endMinute); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)setYeardaySchedule:(uint8_t)scheduleId |
| userId:(uint16_t)userId |
| localStartTime:(uint32_t)localStartTime |
| localEndTime:(uint32_t)localEndTime |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.SetYeardaySchedule( |
| onSuccess->Cancel(), onFailure->Cancel(), scheduleId, userId, localStartTime, localEndTime); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)unlockDoor:(char *)pin completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDoorLockClusterUnlockDoorResponseCallbackBridge * onSuccess |
| = new CHIPDoorLockClusterUnlockDoorResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.UnlockDoor(onSuccess->Cancel(), onFailure->Cancel(), pin); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)unlockWithTimeout:(uint16_t)timeoutInSeconds pin:(char *)pin completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.UnlockWithTimeout(onSuccess->Cancel(), onFailure->Cancel(), timeoutInSeconds, pin); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeLockState:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeLockState(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeLockState:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.ConfigureAttributeLockState(onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeLockState:(ResponseHandler)reportHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onReport = new CHIPInt8uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeLockState(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeLockType:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeLockType(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeActuatorEnabled:(ResponseHandler)completionHandler |
| { |
| CHIPBooleanAttributeCallbackBridge * onSuccess = new CHIPBooleanAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeActuatorEnabled(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPGroups () |
| |
| @property (readonly) Controller::GroupsCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPGroups |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)addGroup:(uint16_t)groupId groupName:(char *)groupName completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPGroupsClusterAddGroupResponseCallbackBridge * onSuccess |
| = new CHIPGroupsClusterAddGroupResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.AddGroup(onSuccess->Cancel(), onFailure->Cancel(), groupId, groupName); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)addGroupIfIdentifying:(uint16_t)groupId groupName:(char *)groupName completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.AddGroupIfIdentifying(onSuccess->Cancel(), onFailure->Cancel(), groupId, groupName); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getGroupMembership:(uint8_t)groupCount groupList:(uint16_t)groupList completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPGroupsClusterGetGroupMembershipResponseCallbackBridge * onSuccess |
| = new CHIPGroupsClusterGetGroupMembershipResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetGroupMembership(onSuccess->Cancel(), onFailure->Cancel(), groupCount, groupList); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)removeAllGroups:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.RemoveAllGroups(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)removeGroup:(uint16_t)groupId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPGroupsClusterRemoveGroupResponseCallbackBridge * onSuccess |
| = new CHIPGroupsClusterRemoveGroupResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.RemoveGroup(onSuccess->Cancel(), onFailure->Cancel(), groupId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)viewGroup:(uint16_t)groupId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPGroupsClusterViewGroupResponseCallbackBridge * onSuccess |
| = new CHIPGroupsClusterViewGroupResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ViewGroup(onSuccess->Cancel(), onFailure->Cancel(), groupId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeNameSupport:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeNameSupport(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPIasZone () |
| |
| @property (readonly) Controller::IasZoneCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPIasZone |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)readAttributeZoneState:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeZoneState(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeZoneType:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeZoneType(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeZoneStatus:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeZoneStatus(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeIasCieAddress:(ResponseHandler)completionHandler |
| { |
| CHIPInt64uAttributeCallbackBridge * onSuccess = new CHIPInt64uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeIasCieAddress(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeIasCieAddress:(uint64_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeIasCieAddress(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeZoneId:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeZoneId(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPIdentify () |
| |
| @property (readonly) Controller::IdentifyCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPIdentify |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)identify:(uint16_t)identifyTime completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Identify(onSuccess->Cancel(), onFailure->Cancel(), identifyTime); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)identifyQuery:(ResponseHandler)completionHandler |
| { |
| CHIPIdentifyClusterIdentifyQueryResponseCallbackBridge * onSuccess |
| = new CHIPIdentifyClusterIdentifyQueryResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.IdentifyQuery(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeIdentifyTime:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeIdentifyTime(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)writeAttributeIdentifyTime:(uint16_t)value completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.WriteAttributeIdentifyTime(onSuccess->Cancel(), onFailure->Cancel(), value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPLevelControl () |
| |
| @property (readonly) Controller::LevelControlCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPLevelControl |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)move:(uint8_t)moveMode |
| rate:(uint8_t)rate |
| optionMask:(uint8_t)optionMask |
| optionOverride:(uint8_t)optionOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Move(onSuccess->Cancel(), onFailure->Cancel(), moveMode, rate, optionMask, optionOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToLevel:(uint8_t)level |
| transitionTime:(uint16_t)transitionTime |
| optionMask:(uint8_t)optionMask |
| optionOverride:(uint8_t)optionOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err |
| = self.cppCluster.MoveToLevel(onSuccess->Cancel(), onFailure->Cancel(), level, transitionTime, optionMask, optionOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveToLevelWithOnOff:(uint8_t)level |
| transitionTime:(uint16_t)transitionTime |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveToLevelWithOnOff(onSuccess->Cancel(), onFailure->Cancel(), level, transitionTime); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)moveWithOnOff:(uint8_t)moveMode rate:(uint8_t)rate completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.MoveWithOnOff(onSuccess->Cancel(), onFailure->Cancel(), moveMode, rate); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)step:(uint8_t)stepMode |
| stepSize:(uint8_t)stepSize |
| transitionTime:(uint16_t)transitionTime |
| optionMask:(uint8_t)optionMask |
| optionOverride:(uint8_t)optionOverride |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Step( |
| onSuccess->Cancel(), onFailure->Cancel(), stepMode, stepSize, transitionTime, optionMask, optionOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stepWithOnOff:(uint8_t)stepMode |
| stepSize:(uint8_t)stepSize |
| transitionTime:(uint16_t)transitionTime |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StepWithOnOff(onSuccess->Cancel(), onFailure->Cancel(), stepMode, stepSize, transitionTime); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stop:(uint8_t)optionMask optionOverride:(uint8_t)optionOverride completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Stop(onSuccess->Cancel(), onFailure->Cancel(), optionMask, optionOverride); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)stopWithOnOff:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StopWithOnOff(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentLevel:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentLevel(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeCurrentLevel:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(uint8_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ConfigureAttributeCurrentLevel( |
| onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeCurrentLevel:(ResponseHandler)reportHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onReport = new CHIPInt8uAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeCurrentLevel(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPOnOff () |
| |
| @property (readonly) Controller::OnOffCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPOnOff |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)off:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Off(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)on:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.On(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)toggle:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.Toggle(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeOnOff:(ResponseHandler)completionHandler |
| { |
| CHIPBooleanAttributeCallbackBridge * onSuccess = new CHIPBooleanAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeOnOff(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeOnOff:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ConfigureAttributeOnOff(onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeOnOff:(ResponseHandler)reportHandler |
| { |
| CHIPBooleanAttributeCallbackBridge * onReport = new CHIPBooleanAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeOnOff(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPScenes () |
| |
| @property (readonly) Controller::ScenesCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPScenes |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)addScene:(uint16_t)groupId |
| sceneId:(uint8_t)sceneId |
| transitionTime:(uint16_t)transitionTime |
| sceneName:(char *)sceneName |
| clusterId:(uint16_t)clusterId |
| length:(uint8_t)length |
| value:(uint8_t)value |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPScenesClusterAddSceneResponseCallbackBridge * onSuccess |
| = new CHIPScenesClusterAddSceneResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.AddScene( |
| onSuccess->Cancel(), onFailure->Cancel(), groupId, sceneId, transitionTime, sceneName, clusterId, length, value); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)getSceneMembership:(uint16_t)groupId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPScenesClusterGetSceneMembershipResponseCallbackBridge * onSuccess |
| = new CHIPScenesClusterGetSceneMembershipResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.GetSceneMembership(onSuccess->Cancel(), onFailure->Cancel(), groupId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)recallScene:(uint16_t)groupId |
| sceneId:(uint8_t)sceneId |
| transitionTime:(uint16_t)transitionTime |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.RecallScene(onSuccess->Cancel(), onFailure->Cancel(), groupId, sceneId, transitionTime); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)removeAllScenes:(uint16_t)groupId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPScenesClusterRemoveAllScenesResponseCallbackBridge * onSuccess |
| = new CHIPScenesClusterRemoveAllScenesResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.RemoveAllScenes(onSuccess->Cancel(), onFailure->Cancel(), groupId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)removeScene:(uint16_t)groupId sceneId:(uint8_t)sceneId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPScenesClusterRemoveSceneResponseCallbackBridge * onSuccess |
| = new CHIPScenesClusterRemoveSceneResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.RemoveScene(onSuccess->Cancel(), onFailure->Cancel(), groupId, sceneId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)storeScene:(uint16_t)groupId sceneId:(uint8_t)sceneId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPScenesClusterStoreSceneResponseCallbackBridge * onSuccess |
| = new CHIPScenesClusterStoreSceneResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.StoreScene(onSuccess->Cancel(), onFailure->Cancel(), groupId, sceneId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| - (BOOL)viewScene:(uint16_t)groupId sceneId:(uint8_t)sceneId completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPScenesClusterViewSceneResponseCallbackBridge * onSuccess |
| = new CHIPScenesClusterViewSceneResponseCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ViewScene(onSuccess->Cancel(), onFailure->Cancel(), groupId, sceneId); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeSceneCount:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeSceneCount(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentScene:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentScene(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeCurrentGroup:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeCurrentGroup(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeSceneValid:(ResponseHandler)completionHandler |
| { |
| CHIPBooleanAttributeCallbackBridge * onSuccess = new CHIPBooleanAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeSceneValid(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeNameSupport:(ResponseHandler)completionHandler |
| { |
| CHIPInt8uAttributeCallbackBridge * onSuccess = new CHIPInt8uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeNameSupport(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |
| |
| @interface CHIPTemperatureMeasurement () |
| |
| @property (readonly) Controller::TemperatureMeasurementCluster cppCluster; |
| @property (readonly, nonatomic) dispatch_queue_t callbackQueue; |
| @end |
| |
| @implementation CHIPTemperatureMeasurement |
| |
| - (instancetype)initWithDevice:(CHIPDevice *)device endpoint:(EndpointId)endpoint queue:(dispatch_queue_t)queue |
| { |
| CHIP_ERROR err = _cppCluster.Associate([device internalDevice], endpoint); |
| |
| if (err != CHIP_NO_ERROR) { |
| return nil; |
| } |
| |
| if (self = [super init]) { |
| _callbackQueue = queue; |
| } |
| |
| return self; |
| } |
| |
| - (BOOL)readAttributeMeasuredValue:(ResponseHandler)completionHandler |
| { |
| CHIPInt16sAttributeCallbackBridge * onSuccess = new CHIPInt16sAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeMeasuredValue(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)configureAttributeMeasuredValue:(uint16_t)minInterval |
| maxInterval:(uint16_t)maxInterval |
| change:(int16_t)change |
| completionHandler:(ResponseHandler)completionHandler |
| { |
| CHIPDefaultSuccessCallbackBridge * onSuccess = new CHIPDefaultSuccessCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ConfigureAttributeMeasuredValue( |
| onSuccess->Cancel(), onFailure->Cancel(), minInterval, maxInterval, change); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)reportAttributeMeasuredValue:(ResponseHandler)reportHandler |
| { |
| CHIPInt16sAttributeCallbackBridge * onReport = new CHIPInt16sAttributeCallbackBridge(reportHandler, _callbackQueue, true); |
| if (!onReport) { |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReportAttributeMeasuredValue(onReport->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onReport; |
| return NO; |
| } |
| |
| return YES; |
| } |
| |
| - (BOOL)readAttributeMinMeasuredValue:(ResponseHandler)completionHandler |
| { |
| CHIPInt16sAttributeCallbackBridge * onSuccess = new CHIPInt16sAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeMinMeasuredValue(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeMaxMeasuredValue:(ResponseHandler)completionHandler |
| { |
| CHIPInt16sAttributeCallbackBridge * onSuccess = new CHIPInt16sAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeMaxMeasuredValue(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| - (BOOL)readAttributeClusterRevision:(ResponseHandler)completionHandler |
| { |
| CHIPInt16uAttributeCallbackBridge * onSuccess = new CHIPInt16uAttributeCallbackBridge(completionHandler, _callbackQueue); |
| if (!onSuccess) { |
| return NO; |
| } |
| |
| CHIPDefaultFailureCallbackBridge * onFailure = new CHIPDefaultFailureCallbackBridge(completionHandler, _callbackQueue); |
| if (!onFailure) { |
| delete onSuccess; |
| return NO; |
| } |
| |
| CHIP_ERROR err = self.cppCluster.ReadAttributeClusterRevision(onSuccess->Cancel(), onFailure->Cancel()); |
| if (err != CHIP_NO_ERROR) { |
| delete onSuccess; |
| delete onFailure; |
| return NO; |
| } |
| return YES; |
| } |
| |
| @end |