/* Begin PBXBuildFile section */
180E7AAA2BD7BB12008558E8 /* AiMouseSdk.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AA92BD7BB12008558E8 /* AiMouseSdk.h */; settings = {ATTRIBUTES = (Public, ); }; };
180E7AAC2BD7BB12008558E8 /* AiMouseSdk.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7AAB2BD7BB12008558E8 /* AiMouseSdk.m */; };
- 180E7B542BD7BD83008558E8 /* AiFrameManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AB42BD7BD7D008558E8 /* AiFrameManager.h */; };
180E7B552BD7BD83008558E8 /* AiAudioDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7AB52BD7BD7D008558E8 /* AiAudioDecoder.m */; };
180E7B562BD7BD83008558E8 /* AiMouseConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AB62BD7BD7D008558E8 /* AiMouseConfig.h */; };
- 180E7B572BD7BD83008558E8 /* AiAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AB72BD7BD7D008558E8 /* AiAudioConverter.h */; };
180E7B582BD7BD83008558E8 /* AiRecordManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AB82BD7BD7D008558E8 /* AiRecordManager.h */; };
180E7BDD2BD7BD84008558E8 /* AiAuthManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7B472BD7BD7F008558E8 /* AiAuthManager.h */; };
180E7BDE2BD7BD84008558E8 /* AiMouseTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7B482BD7BD7F008558E8 /* AiMouseTools.h */; };
180E7BDF2BD7BD84008558E8 /* AiMouseConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B492BD7BD80008558E8 /* AiMouseConfig.m */; };
180E7BE02BD7BD84008558E8 /* AiMouseTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4A2BD7BD80008558E8 /* AiMouseTools.m */; };
- 180E7BE12BD7BD84008558E8 /* AiAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4B2BD7BD80008558E8 /* AiAudioConverter.m */; };
180E7BE22BD7BD84008558E8 /* AiAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7B4C2BD7BD81008558E8 /* AiAudioManager.h */; };
- 180E7BE32BD7BD84008558E8 /* AiFrameManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4D2BD7BD81008558E8 /* AiFrameManager.m */; };
180E7BE42BD7BD84008558E8 /* AiRecordManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4E2BD7BD81008558E8 /* AiRecordManager.m */; };
180E7BE52BD7BD84008558E8 /* AiMouseTools2.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4F2BD7BD81008558E8 /* AiMouseTools2.m */; };
180E7BE62BD7BD84008558E8 /* AiAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7B502BD7BD82008558E8 /* AiAudioDecoder.h */; };
18862B172C806BD900D3564D /* ac3_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C752BD8FC4E008558E8 /* ac3_parser.h */; };
18862B182C806BD900D3564D /* opt.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C352BD8FC4E008558E8 /* opt.h */; };
18862B192C806BD900D3564D /* AFCompatibilityMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 184A71002BDA4C040025A332 /* AFCompatibilityMacros.h */; };
- 18862B1A2C806BD900D3564D /* AiAudioConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AB72BD7BD7D008558E8 /* AiAudioConverter.h */; };
18862B1B2C806BD900D3564D /* attributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C232BD8FC4E008558E8 /* attributes.h */; };
18862B1C2C806BD900D3564D /* AiDeviceInfoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18AD83232BFAE8B9009BDE3B /* AiDeviceInfoManager.h */; };
18862B1D2C806BD900D3564D /* murmur3.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C092BD8FC4E008558E8 /* murmur3.h */; };
18862B632C806BD900D3564D /* spherical.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C1D2BD8FC4E008558E8 /* spherical.h */; };
18862B642C806BD900D3564D /* hwcontext_opencl.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C1F2BD8FC4E008558E8 /* hwcontext_opencl.h */; };
18862B652C806BD900D3564D /* TlwMouseSdk.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF42C7603E800AC5223 /* TlwMouseSdk.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 18862B662C806BD900D3564D /* AiFrameManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7AB42BD7BD7D008558E8 /* AiFrameManager.h */; };
18862B672C806BD900D3564D /* parseutils.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C472BD8FC4E008558E8 /* parseutils.h */; };
18862B682C806BD900D3564D /* codec_par.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C662BD8FC4E008558E8 /* codec_par.h */; };
18862B692C806BD900D3564D /* AiAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7B4C2BD7BD81008558E8 /* AiAudioManager.h */; };
18862B752C806BD900D3564D /* hdr_dynamic_metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C4A2BD8FC4E008558E8 /* hdr_dynamic_metadata.h */; };
18862B762C806BD900D3564D /* hwcontext_drm.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C2F2BD8FC4E008558E8 /* hwcontext_drm.h */; };
18862B772C806BD900D3564D /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C5A2BD8FC4E008558E8 /* version.h */; };
- 18862B782C806BD900D3564D /* AiConnectManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 189C15842C05726600676A80 /* AiConnectManager.h */; };
18862B792C806BD900D3564D /* TlwAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */; };
18862B7A2C806BD900D3564D /* time.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7BFF2BD8FC4E008558E8 /* time.h */; };
18862B7B2C806BD900D3564D /* bprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 180E7C492BD8FC4E008558E8 /* bprint.h */; };
18862BB42C806BD900D3564D /* AiSender.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AD83282BFB22DE009BDE3B /* AiSender.m */; };
18862BB52C806BD900D3564D /* AiTrippleModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 184A711E2BDD11C70025A332 /* AiTrippleModel.m */; };
18862BB62C806BD900D3564D /* AiMouseSdk.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7AAB2BD7BB12008558E8 /* AiMouseSdk.m */; };
- 18862BB72C806BD900D3564D /* AiAudioConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4B2BD7BD80008558E8 /* AiAudioConverter.m */; };
18862BB82C806BD900D3564D /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 184A70F92BDA4C040025A332 /* AFHTTPSessionManager.m */; };
18862BB92C806BD900D3564D /* AiMouseTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4A2BD7BD80008558E8 /* AiMouseTools.m */; };
18862BBA2C806BD900D3564D /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 184A70FC2BDA4C040025A332 /* AFURLRequestSerialization.m */; };
18862BBC2C806BD900D3564D /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 184A70FE2BDA4C040025A332 /* AFNetworkReachabilityManager.m */; };
18862BBD2C806BD900D3564D /* AiRecordManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4E2BD7BD81008558E8 /* AiRecordManager.m */; };
18862BBE2C806BD900D3564D /* TlwAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AF52C7603E800AC5223 /* TlwAudioManager.m */; };
- 18862BC02C806BD900D3564D /* AiFrameManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B4D2BD7BD81008558E8 /* AiFrameManager.m */; };
18862BC12C806BD900D3564D /* AiAudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 180E7B512BD7BD82008558E8 /* AiAudioManager.m */; };
- 18862BC22C806BD900D3564D /* AiConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 189C15852C05726600676A80 /* AiConnectManager.m */; };
18862BC32C806BD900D3564D /* TlwTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEC2C7603E800AC5223 /* TlwTools.m */; };
18862BC42C806BD900D3564D /* TlwMouseSdk.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */; };
18862BC52C806BD900D3564D /* BleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18862A1E2C8064E300D3564D /* BleManager.m */; };
1888148F2C85766B009299A9 /* AiDeviceAuthManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1888148C2C85766B009299A9 /* AiDeviceAuthManager.h */; };
188814902C85766B009299A9 /* AiDeviceAuthManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1888148D2C85766B009299A9 /* AiDeviceAuthManager.m */; };
188814912C85766B009299A9 /* AiDeviceAuthManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1888148D2C85766B009299A9 /* AiDeviceAuthManager.m */; };
- 189C15862C05726600676A80 /* AiConnectManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 189C15842C05726600676A80 /* AiConnectManager.h */; };
- 189C15872C05726600676A80 /* AiConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 189C15852C05726600676A80 /* AiConnectManager.m */; };
18AD83252BFAE8B9009BDE3B /* AiDeviceInfoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18AD83232BFAE8B9009BDE3B /* AiDeviceInfoManager.h */; };
18AD83262BFAE8B9009BDE3B /* AiDeviceInfoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AD83242BFAE8B9009BDE3B /* AiDeviceInfoManager.m */; };
18AD83292BFB22DE009BDE3B /* AiSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 18AD83272BFB22DE009BDE3B /* AiSender.h */; };
180E7AA62BD7BB12008558E8 /* libAiMouseManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAiMouseManager.a; sourceTree = BUILT_PRODUCTS_DIR; };
180E7AA92BD7BB12008558E8 /* AiMouseSdk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiMouseSdk.h; sourceTree = "<group>"; };
180E7AAB2BD7BB12008558E8 /* AiMouseSdk.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiMouseSdk.m; sourceTree = "<group>"; };
- 180E7AB42BD7BD7D008558E8 /* AiFrameManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiFrameManager.h; sourceTree = "<group>"; };
180E7AB52BD7BD7D008558E8 /* AiAudioDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiAudioDecoder.m; sourceTree = "<group>"; };
180E7AB62BD7BD7D008558E8 /* AiMouseConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiMouseConfig.h; sourceTree = "<group>"; };
- 180E7AB72BD7BD7D008558E8 /* AiAudioConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiAudioConverter.h; sourceTree = "<group>"; };
180E7AB82BD7BD7D008558E8 /* AiRecordManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiRecordManager.h; sourceTree = "<group>"; };
180E7B472BD7BD7F008558E8 /* AiAuthManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiAuthManager.h; sourceTree = "<group>"; };
180E7B482BD7BD7F008558E8 /* AiMouseTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiMouseTools.h; sourceTree = "<group>"; };
180E7B492BD7BD80008558E8 /* AiMouseConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiMouseConfig.m; sourceTree = "<group>"; };
180E7B4A2BD7BD80008558E8 /* AiMouseTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiMouseTools.m; sourceTree = "<group>"; };
- 180E7B4B2BD7BD80008558E8 /* AiAudioConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiAudioConverter.m; sourceTree = "<group>"; };
180E7B4C2BD7BD81008558E8 /* AiAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiAudioManager.h; sourceTree = "<group>"; };
- 180E7B4D2BD7BD81008558E8 /* AiFrameManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiFrameManager.m; sourceTree = "<group>"; };
180E7B4E2BD7BD81008558E8 /* AiRecordManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiRecordManager.m; sourceTree = "<group>"; };
180E7B4F2BD7BD81008558E8 /* AiMouseTools2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiMouseTools2.m; sourceTree = "<group>"; };
180E7B502BD7BD82008558E8 /* AiAudioDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiAudioDecoder.h; sourceTree = "<group>"; };
18862A212C8064E300D3564D /* HidManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HidManager.h; sourceTree = "<group>"; };
1888148C2C85766B009299A9 /* AiDeviceAuthManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiDeviceAuthManager.h; sourceTree = "<group>"; };
1888148D2C85766B009299A9 /* AiDeviceAuthManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiDeviceAuthManager.m; sourceTree = "<group>"; };
- 189C15842C05726600676A80 /* AiConnectManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiConnectManager.h; sourceTree = "<group>"; };
- 189C15852C05726600676A80 /* AiConnectManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiConnectManager.m; sourceTree = "<group>"; };
18AD83232BFAE8B9009BDE3B /* AiDeviceInfoManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiDeviceInfoManager.h; sourceTree = "<group>"; };
18AD83242BFAE8B9009BDE3B /* AiDeviceInfoManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiDeviceInfoManager.m; sourceTree = "<group>"; };
18AD83272BFB22DE009BDE3B /* AiSender.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiSender.h; sourceTree = "<group>"; };
180E7BF62BD8FC4E008558E8 /* ffmpeg */,
180E7AA92BD7BB12008558E8 /* AiMouseSdk.h */,
180E7AAB2BD7BB12008558E8 /* AiMouseSdk.m */,
+ 180E7B472BD7BD7F008558E8 /* AiAuthManager.h */,
+ 180E7B522BD7BD82008558E8 /* AiAuthManager.m */,
+ 181CE5BF2C6EED9900EF8D07 /* AiAliAuthManager.h */,
+ 181CE5C02C6EED9900EF8D07 /* AiAliAuthManager.m */,
18FCA3952C7F2AD100C44A37 /* AiMouseAuth.h */,
18FCA3962C7F2AD100C44A37 /* AiMouseAuth.m */,
18AD83232BFAE8B9009BDE3B /* AiDeviceInfoManager.h */,
18AD83242BFAE8B9009BDE3B /* AiDeviceInfoManager.m */,
- 189C15842C05726600676A80 /* AiConnectManager.h */,
- 189C15852C05726600676A80 /* AiConnectManager.m */,
18AD83272BFB22DE009BDE3B /* AiSender.h */,
18AD83282BFB22DE009BDE3B /* AiSender.m */,
- 180E7AB42BD7BD7D008558E8 /* AiFrameManager.h */,
- 180E7B4D2BD7BD81008558E8 /* AiFrameManager.m */,
- 180E7B472BD7BD7F008558E8 /* AiAuthManager.h */,
- 180E7B522BD7BD82008558E8 /* AiAuthManager.m */,
- 181CE5BF2C6EED9900EF8D07 /* AiAliAuthManager.h */,
- 181CE5C02C6EED9900EF8D07 /* AiAliAuthManager.m */,
184A711D2BDD11C70025A332 /* AiTrippleModel.h */,
184A711E2BDD11C70025A332 /* AiTrippleModel.m */,
184A71222BDE2DA60025A332 /* AiSecretModel.h */,
184A71232BDE2DA60025A332 /* AiSecretModel.m */,
- 180E7AB72BD7BD7D008558E8 /* AiAudioConverter.h */,
- 180E7B4B2BD7BD80008558E8 /* AiAudioConverter.m */,
180E7B502BD7BD82008558E8 /* AiAudioDecoder.h */,
180E7AB52BD7BD7D008558E8 /* AiAudioDecoder.m */,
180E7B4C2BD7BD81008558E8 /* AiAudioManager.h */,
180E7CFB2BD8FC4F008558E8 /* ac3_parser.h in Headers */,
180E7CBF2BD8FC4E008558E8 /* opt.h in Headers */,
184A710E2BDA4C050025A332 /* AFCompatibilityMacros.h in Headers */,
- 180E7B572BD7BD83008558E8 /* AiAudioConverter.h in Headers */,
180E7CAD2BD8FC4E008558E8 /* attributes.h in Headers */,
18AD83252BFAE8B9009BDE3B /* AiDeviceInfoManager.h in Headers */,
180E7C932BD8FC4E008558E8 /* murmur3.h in Headers */,
180E7CA72BD8FC4E008558E8 /* spherical.h in Headers */,
180E7CA92BD8FC4E008558E8 /* hwcontext_opencl.h in Headers */,
18EF7B032C7603E800AC5223 /* TlwMouseSdk.h in Headers */,
- 180E7B542BD7BD83008558E8 /* AiFrameManager.h in Headers */,
180E7CD12BD8FC4E008558E8 /* parseutils.h in Headers */,
180E7CEC2BD8FC4E008558E8 /* codec_par.h in Headers */,
180E7BE22BD7BD84008558E8 /* AiAudioManager.h in Headers */,
180E7CD42BD8FC4E008558E8 /* hdr_dynamic_metadata.h in Headers */,
180E7CB92BD8FC4E008558E8 /* hwcontext_drm.h in Headers */,
180E7CE22BD8FC4E008558E8 /* version.h in Headers */,
- 189C15862C05726600676A80 /* AiConnectManager.h in Headers */,
18EF7AFD2C7603E800AC5223 /* TlwAudioManager.h in Headers */,
180E7C892BD8FC4E008558E8 /* time.h in Headers */,
180E7CD32BD8FC4E008558E8 /* bprint.h in Headers */,
18862B172C806BD900D3564D /* ac3_parser.h in Headers */,
18862B182C806BD900D3564D /* opt.h in Headers */,
18862B192C806BD900D3564D /* AFCompatibilityMacros.h in Headers */,
- 18862B1A2C806BD900D3564D /* AiAudioConverter.h in Headers */,
18862B1B2C806BD900D3564D /* attributes.h in Headers */,
18862B1C2C806BD900D3564D /* AiDeviceInfoManager.h in Headers */,
18862B1D2C806BD900D3564D /* murmur3.h in Headers */,
18862B632C806BD900D3564D /* spherical.h in Headers */,
18862B642C806BD900D3564D /* hwcontext_opencl.h in Headers */,
18862B652C806BD900D3564D /* TlwMouseSdk.h in Headers */,
- 18862B662C806BD900D3564D /* AiFrameManager.h in Headers */,
18862B672C806BD900D3564D /* parseutils.h in Headers */,
18862B682C806BD900D3564D /* codec_par.h in Headers */,
18862B692C806BD900D3564D /* AiAudioManager.h in Headers */,
18862B752C806BD900D3564D /* hdr_dynamic_metadata.h in Headers */,
18862B762C806BD900D3564D /* hwcontext_drm.h in Headers */,
18862B772C806BD900D3564D /* version.h in Headers */,
- 18862B782C806BD900D3564D /* AiConnectManager.h in Headers */,
18862B792C806BD900D3564D /* TlwAudioManager.h in Headers */,
18862B7A2C806BD900D3564D /* time.h in Headers */,
18862B7B2C806BD900D3564D /* bprint.h in Headers */,
18AD832A2BFB22DE009BDE3B /* AiSender.m in Sources */,
184A71202BDD11C70025A332 /* AiTrippleModel.m in Sources */,
180E7AAC2BD7BB12008558E8 /* AiMouseSdk.m in Sources */,
- 180E7BE12BD7BD84008558E8 /* AiAudioConverter.m in Sources */,
188814902C85766B009299A9 /* AiDeviceAuthManager.m in Sources */,
184A71072BDA4C050025A332 /* AFHTTPSessionManager.m in Sources */,
180E7BE02BD7BD84008558E8 /* AiMouseTools.m in Sources */,
184A710C2BDA4C050025A332 /* AFNetworkReachabilityManager.m in Sources */,
180E7BE42BD7BD84008558E8 /* AiRecordManager.m in Sources */,
18EF7B042C7603E800AC5223 /* TlwAudioManager.m in Sources */,
- 180E7BE32BD7BD84008558E8 /* AiFrameManager.m in Sources */,
180E7BE72BD7BD84008558E8 /* AiAudioManager.m in Sources */,
- 189C15872C05726600676A80 /* AiConnectManager.m in Sources */,
18EF7AFB2C7603E800AC5223 /* TlwTools.m in Sources */,
18EF7AFA2C7603E800AC5223 /* TlwMouseSdk.m in Sources */,
18862A282C8064E300D3564D /* BleManager.m in Sources */,
18862BB42C806BD900D3564D /* AiSender.m in Sources */,
18862BB52C806BD900D3564D /* AiTrippleModel.m in Sources */,
18862BB62C806BD900D3564D /* AiMouseSdk.m in Sources */,
- 18862BB72C806BD900D3564D /* AiAudioConverter.m in Sources */,
188814912C85766B009299A9 /* AiDeviceAuthManager.m in Sources */,
18862BB82C806BD900D3564D /* AFHTTPSessionManager.m in Sources */,
18862BB92C806BD900D3564D /* AiMouseTools.m in Sources */,
18862BBC2C806BD900D3564D /* AFNetworkReachabilityManager.m in Sources */,
18862BBD2C806BD900D3564D /* AiRecordManager.m in Sources */,
18862BBE2C806BD900D3564D /* TlwAudioManager.m in Sources */,
- 18862BC02C806BD900D3564D /* AiFrameManager.m in Sources */,
18862BC12C806BD900D3564D /* AiAudioManager.m in Sources */,
- 18862BC22C806BD900D3564D /* AiConnectManager.m in Sources */,
18862BC32C806BD900D3564D /* TlwTools.m in Sources */,
18862BC42C806BD900D3564D /* TlwMouseSdk.m in Sources */,
18862BC52C806BD900D3564D /* BleManager.m in Sources */,
//
// Created by incar on 2024/7/29.
//
+//阿里服务器
#import "AiAliAuthManager.h"
#import "AiMouseTools.h"
+++ /dev/null
-
-
-#import <Foundation/Foundation.h>
-@interface AiAudioConverter : NSObject
-
-
-
-@end
+++ /dev/null
-
-
-#import "AiAudioConverter.h"
-#import <Foundation/Foundation.h>
-#import <AudioToolbox/AudioToolbox.h>
-
-static void CheckError(OSStatus error, const char *operation)
-{
- if (error == noErr) return;
- char errorString[20];
- // See if it appears to be a 4-char-code
- *(UInt32 *)(errorString + 1) = CFSwapInt32HostToBig(error);
- if (isprint(errorString[1]) && isprint(errorString[2]) && isprint(errorString[3]) && isprint(errorString[4])) {
- errorString[0] = errorString[5] = '\'';
- errorString[6] = '\0';
- } else {
- // No, format it as an integer
- sprintf(errorString, "%d", (int)error);
- fprintf(stderr, "Error: %s (%s)\n", operation, errorString);
- }
-}
-
-
-//AudioConverterConvertBuffer
-@interface AiAudioConverter()
-
-//@property (nonatomic) AudioStreamBasicDescription inputFormat;
-//@property (nonatomic) AudioStreamBasicDescription *outputFormat;
-@end
-
-@implementation AiAudioConverter
-
-
-- (void)convert{
-
- AudioStreamBasicDescription inFmt;
- {
- AudioStreamBasicDescription fmt = {};
- fmt.mFormatID = kAudioFormatLinearPCM;
- fmt.mSampleRate = 16000;
- fmt.mChannelsPerFrame = 1;
- fmt.mBitsPerChannel = 16;
- fmt.mBytesPerPacket = 1 * sizeof(SInt16);
- fmt.mBytesPerFrame = 1 * sizeof(SInt16);
- fmt.mFramesPerPacket = 1;
- fmt.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger;
- inFmt = fmt;
- }
- AudioStreamBasicDescription *outFmt;
-// {
-// AudioStreamBasicDescription fmt = {};
-// fmt.mFormatID = kAudioFormatLinearPCM;
-// fmt.mSampleRate = 16000;
-// fmt.mChannelsPerFrame = 1;
-// fmt.mBitsPerChannel = 16;
-// fmt.mBytesPerPacket = 1 * sizeof(SInt16);
-// fmt.mBytesPerFrame = 1 * sizeof(SInt16);
-// fmt.mFramesPerPacket = 1;
-// fmt.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger;
-// outFmt = fmt;
-// }
-
-
- AudioConverterRef audioConverter;
- OSStatus status = AudioConverterNew(&inFmt,
- outFmt,
- &audioConverter);
- CheckError(status, "AudioConveterNew failed");
-
-
-// AudioStreamPacketDescription outputPacketDesc;
-// status = AudioConverterFillComplexBuffer(audioConverter,
-// DecodeConverterComplexInputDataProc,
-// &userInfo,
-// &ioOutputDataPackets,
-// &fillBufferList,
-// &outputPacketDesc);
-//
-// // if interrupted in the process of the conversion call, we must handle the error appropriately
-// if (status != noErr) {
-// if (status == kAudioConverterErr_HardwareInUse) {
-// printf("Audio Converter returned kAudioConverterErr_HardwareInUse!\n");
-// } else {
-// if (![self checkError:status withErrorString:@"AudioConverterFillComplexBuffer error!"]) {
-// return;
-// }
-// }
-// } else {
-// if (ioOutputDataPackets == 0) {
-// // This is the EOF condition.
-// status = noErr;
-// }
-//
-// if (completeHandler) {
-// completeHandler(&fillBufferList, ioOutputDataPackets, &outputPacketDesc);
-// }
-// }
-}
-
-#pragma mark - Decode Callback
-//OSStatus DecodeConverterComplexInputDataProc(AudioConverterRef inAudioConverter,
-// UInt32 *ioNumberDataPackets,
-// AudioBufferList *ioData,
-// AudioStreamPacketDescription **outDataPacketDescription,
-// void *inUserData) {
-// XDXConverterInfoType *info = (XDXConverterInfoType *)inUserData;
-//
-// if (info->sourceDataSize <= 0) {
-// ioNumberDataPackets = 0;
-// return -1;
-// }
-//
-// *outDataPacketDescription = &info->packetDesc;
-// (*outDataPacketDescription)[0].mStartOffset = 0;
-// (*outDataPacketDescription)[0].mDataByteSize = info->sourceDataSize;
-// (*outDataPacketDescription)[0].mVariableFramesInPacket = 0;
-//
-// ioData->mNumberBuffers = 1;
-// ioData->mBuffers[0].mData = info->sourceBuffer;
-// ioData->mBuffers[0].mNumberChannels = info->sourceChannelsPerFrame;
-// ioData->mBuffers[0].mDataByteSize = info->sourceDataSize;
-//
-// return noErr;
-//}
-//-(AudioStreamBasicDescription)getAudioFormatWithFormatID:(UInt32)formatID sampleRate:(Float64)sampleRate channelCount:(UInt32)channelCount {
-// AudioStreamBasicDescription dataFormat = {0};
-//
-// UInt32 size = sizeof(dataFormat.mSampleRate);
-// // Get hardware origin sample rate. (Recommended it)
-// Float64 hardwareSampleRate = 0;
-// AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate,
-// &size,
-// &hardwareSampleRate);
-// // Manual set sample rate
-// dataFormat.mSampleRate = sampleRate;
-//
-// size = sizeof(dataFormat.mChannelsPerFrame);
-// // Get hardware origin channels number. (Must refer to it)
-// UInt32 hardwareNumberChannels = 0;
-// AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareInputNumberChannels,
-// &size,
-// &hardwareNumberChannels);
-// dataFormat.mChannelsPerFrame = channelCount;
-//
-// // Set audio format
-// dataFormat.mFormatID = formatID;
-//
-// // Set detail audio format params
-// if (formatID == kAudioFormatLinearPCM) {
-// dataFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
-// dataFormat.mBitsPerChannel = kXDXAudioPCMBitsPerChannel;
-// dataFormat.mBytesPerPacket = dataFormat.mBytesPerFrame = (dataFormat.mBitsPerChannel / 8) * dataFormat.mChannelsPerFrame;
-// dataFormat.mFramesPerPacket = kXDXAudioPCMFramesPerPacket;
-// }else if (formatID == kAudioFormatMPEG4AAC) {
-// dataFormat.mFormatFlags = kMPEG4Object_AAC_Main;
-// }
-//
-// NSLog(@"Audio Recorder: starup PCM audio encoder:%f,%d",sampleRate,channelCount);
-// return dataFormat;
-//}
-@end
//
// Created by incar on 2024/2/28.
//
+//大锤的服务器
#import "AiAuthManager.h"
#import "AiMouseTools.h"
+++ /dev/null
-//
-// AiConnectManager.h
-// AiMouseSdk
-//
-// Created by incar on 2024/5/28.
-//
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-@class AiConnectManager;
-@protocol AiConnectManagerDelegate <NSObject>
-
-- (void)aiConnectManager:(AiConnectManager *)manager connectStateDidChange:(BOOL)connected;
-
-- (void)aiConnectManagerReSendData:(AiConnectManager *)manager;
-
-- (void)aiConnectManager:(AiConnectManager *)manager outputLog:(NSString *)log;
-
-@end
-@interface AiConnectManager : NSObject
-@property (nonatomic, weak) id<AiConnectManagerDelegate> delegate;
-
-- (void)start;
-
-//重置
-- (void)resetTimeOut;
-
-/// 增加超时
-- (void)addTimeOut;
-
-- (void)disConnected;
-@end
-
-NS_ASSUME_NONNULL_END
+++ /dev/null
-//
-// AiConnectManager.m
-// AiMouseSdk
-//
-// Created by incar on 2024/5/28.
-//
-
-#import "AiConnectManager.h"
-
-@interface AiConnectManager()
-@property (nonatomic, assign) NSInteger currentValue;//当前计数
-@property (nonatomic, assign) NSInteger timeOut;//超时次数
-@property (nonatomic, strong) NSTimer *timer;
-@property (nonatomic, assign) int connecteState;//连接状态0未知,1连上,2断开连接
-@end
-
-@implementation AiConnectManager
--(instancetype)init{
- if (self = [super init]) {
-
- }
- return self;
-}
-
-- (void)start{
- self.timeOut = 0;
- self.connecteState = 0;
-
- [self addSendTimer];
-}
-
-- (void)resetTimeOut{
- self.timeOut = 0;
- self.currentValue = 0;
-
- if (self.connecteState != 1) {
- [self showLog:@"连上设备。。。"];
- [self.delegate aiConnectManager:self connectStateDidChange:true];
- }
- self.connecteState = 1;
-}
-
-- (void)addTimeOut{
- self.timeOut++;
-
- if (self.timeOut >= 3) {
- if (self.connecteState != 2) {
- [self showLog:@"设备断开连接!!!"];
- [self.delegate aiConnectManager:self connectStateDidChange:false];
- }
- self.connecteState = 2;
- }
-}
-
-- (void)disConnected{
- [self showLog:@"设备断开连接!!!"];
- [self.delegate aiConnectManager:self connectStateDidChange:false];
- self.connecteState = 2;
-}
-#pragma mark - timer
-- (void)addSendTimer{
- dispatch_async(dispatch_queue_create("timeoutQueue", DISPATCH_QUEUE_SERIAL), ^{
- self.timer = [NSTimer timerWithTimeInterval:10000000 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
- [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
- [[NSRunLoop currentRunLoop] run];
- });
-// self.timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
-// [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
-}
-
-//- (void)removeSendTimer{
-// if (self.timer && [self.timer isValid]) {
-// [self.timer invalidate];
-// }
-//}
-
-- (void)timerAction{
- self.currentValue++;
-// [self showLog:[NSString stringWithFormat:@"time = %ld",self.currentValue]];
- if (self.currentValue >= 3) {
- self.currentValue = 0;
- if (self.delegate && [self.delegate respondsToSelector:@selector(aiConnectManagerReSendData:)]) {
-// [self showLog:@"检查是否断开连接"];
- [self.delegate aiConnectManagerReSendData:self];
- }
- }
-}
-
-- (void)showLog:(NSString *)log{
- if (self.delegate && [self.delegate respondsToSelector:@selector(aiConnectManager:outputLog:)]) {
- [self.delegate aiConnectManager:self outputLog:log];
- }
-}
-@end
+++ /dev/null
-//
-// AiFrameManager.h
-// AiMouse
-//
-// Created by incar on 2024/3/7.
-//
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface AiFrameManager : NSObject
-@property (nonatomic,strong)void (^didReceiveFullData)(NSData *data);/// 输出接收完整的一个数据包
-
-/// 接收到数据帧
-- (void)didReceiveFrameData:(NSData *)data;
-
-/// 收到hid鉴权收据
-- (void)didReceiveHidAuthData:(NSData *)data;
-@end
-
-NS_ASSUME_NONNULL_END
+++ /dev/null
-//
-// AiFrameManager.m
-// AiMouse
-//
-// Created by incar on 2024/3/7.
-//
-
-#import "AiFrameManager.h"
-#import "AiMouseTools.h"
-#import "AiMouseConfig.h"
-@interface AiFrameManager()
-
-@property (nonatomic,strong)NSMutableData *recvData;
-@end
-
-@implementation AiFrameManager
-- (void)didReceiveFrameData:(NSData *)data{
- NSString *str = [[AiMouseTools dataToHexString:data] uppercaseString];
- [self showLog:[NSString stringWithFormat:@"分段 = %@ 内容 = %@",str,[AiMouseTools dataToUtf8String:data]]];
- if ([str hasPrefix:@"2D242400"]) {
- //开始
- self.recvData = [[NSMutableData alloc] init];
- }
- else if([str hasSuffix:@"24242D0A00"]){
- NSString *str1 = [AiMouseTools dataToHexString:self.recvData];
- [self showLog:[NSString stringWithFormat:@"完整数据 = %@",str1]];
- //结束
- if(self.didReceiveFullData){
- self.didReceiveFullData(self.recvData);
- }
- }
- else{
- //数据
- NSData *subData;
- if([str hasSuffix:@"00"]){
- subData = [data subdataWithRange:NSMakeRange(0, data.length - 1)];
- }
- else{
- subData = data;
- }
- [self showLog:[NSString stringWithFormat:@"拼接数据 = %@",[AiMouseTools dataToHexString:subData]]];
- [self.recvData appendData:subData];
- }
-}
-
-- (void)didReceiveHidAuthData:(NSData *)data{
- NSString *str = [[AiMouseTools dataToHexString:data] uppercaseString];
- [self showLog:[NSString stringWithFormat:@"分段 = %@ 内容 = %@",str,[AiMouseTools dataToUtf8String:data]]];
- if ([str hasPrefix:@"2D2424"]) {
- self.recvData = [[NSMutableData alloc] init];
- //开始
- NSData *subData = [data subdataWithRange:NSMakeRange(3, data.length - 3)];
- if(subData.length > 0){
- [self showLog:[NSString stringWithFormat:@"拼接数据 = %@",[AiMouseTools dataToHexString:subData]]];
- [self.recvData appendData:subData];
- }
-
- }
- else if([str hasSuffix:@"24242D0A"]){
- NSData *subData = [data subdataWithRange:NSMakeRange(0, data.length - 4)];
- if(subData.length > 0){
- [self showLog:[NSString stringWithFormat:@"拼接数据 = %@",[AiMouseTools dataToHexString:subData]]];
- [self.recvData appendData:subData];
- }
- NSString *str1 = [AiMouseTools dataToHexString:self.recvData];
- [self showLog:[NSString stringWithFormat:@"完整数据 = %@",str1]];
- //结束
- if(self.didReceiveFullData){
- self.didReceiveFullData(self.recvData);
- }
- }
- else{
- //数据
- NSData *subData;
- if([str hasSuffix:@"00"]){
- subData = [data subdataWithRange:NSMakeRange(0, data.length - 1)];
- }
- else{
- subData = data;
- }
- [self showLog:[NSString stringWithFormat:@"拼接数据 = %@",[AiMouseTools dataToHexString:subData]]];
- [self.recvData appendData:subData];
- }
-}
-
-- (void)showLog:(NSString *)log{
-// NSLog(@"%@",log);
-}
-@end
@property (nonatomic, strong) NSString *mac;///设备MAC地址
@end
+typedef NS_ENUM(NSInteger,AiMouseAuthType) {
+ AiMouseAuthType_none = 0,///不鉴权
+ AiMouseAuthType_BeiKeZhiHui = 1,/// 北科智慧
+ AiMouseAuthType_Ali = 2,/// 阿里
+};
+
typedef NS_ENUM(NSInteger,AiMouseErrorCode) {
AiMouseErrorCode_timeOut = 1001,///请求超时
AiMouseErrorCode_busy = 1002,/// 繁忙,有命令未执行完
@property (nonatomic, weak) id<AiMouseDelegate> delegate;/// 代理
@property (nonatomic, readonly) AiMouseConnectType connectType;//连接类型
@property (nonatomic, assign) BOOL connected;//是否已连接
-@property (nonatomic, readonly) AiMouseAuthState authState;/// 鉴权状态,默认是Unknow。所以必须在连上蓝牙设备找到鉴权特征后,需要主动调用startAuthentication方法去鉴权。(只有鉴权成功,AI功能才可用)
/// 单利
+(AiMouse *)shared;
#import "AiMouseTools2.h"
#import "AiMouseConfig.h"
#import "AiRecordManager.h"
-#import "AiConnectManager.h"
-#define kIsAliChannal true
-
-#define kIsNeedAuth false
@interface AiMouseDeviceInfo()
@property (nonatomic, strong) NSString *productKey;/// 品牌key
-(instancetype)init{
if (self = [super init]) {
_logLevel = AiMouseLogLevel_none;
- _authState = kIsNeedAuth ? AiMouseAuthState_Unknow:AiMouseAuthState_Success;
_connectType = AiMouseConnectType_bluetooth;
// NSLog(@"[AiMouseSdk]%@",[NSString stringWithFormat:@"AiMouseSdk_v%@",self.version]);
[self.recordManager checkPermissions];
__weak typeof(self) ws = self;
_deviceInfoManager.sendToBleBlock = ^(NSData * _Nonnull data) {
if (ws.delegate) {
- [ws showLog:[NSString stringWithFormat:@"[send][info] %@",data]];
+ [ws showLog:[NSString stringWithFormat:@"[send][info][json] %@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]]];
+ [ws showLog:[NSString stringWithFormat:@"[send][info][byte] %@",[AiMouseTools dataToHexString:data]]];
[ws.delegate aiMouseSendDeviceInfoData:data];
}
};
_connected = true;
_connectType = type;
[self showLog:type == AiMouseConnectType_bluetooth?@"sdk切换到蓝牙模式":@"sdk切换到usb模式"];
- [self aiConnectManager:nil connectStateDidChange:true];
-// if (type == AiMouseConnectType_hid ) {
-// [self.recordManager checkPermissions];
-// }
+
+ if (type == AiMouseConnectType_hid ) {
+ [self.recordManager checkPermissions];
+ }
+ if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:self.connected];
+ [self checkAuthState];
}
else{
if (self.connected) {
[self stopRecord:true];
_connected = false;
- [self aiConnectManager:nil connectStateDidChange:false];
+ if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:self.connected];
}
}
}
//开始鉴权
-- (void)startAuthentication:(void (^)(AiMouseAuthState))complete{
-// [self showLog:@"获取设备信息"];
-// _authState = AiMouseAuthState_Unknow;
+- (void)startAuthentication:(AiMouseAuthType)type finished:(void (^)(AiMouseAuthState))complete{
+ if (type == AiMouseAuthType_none){
+ complete(AiMouseAuthState_Success);
+ return;
+ }
[self showLog:@"开始鉴权"];
self.authBlock = complete;
__block typeof(self) ws = self;
ws.authBlock(AiMouseAuthState_Failure);
}
else{
- if(kIsAliChannal){
+ if(type == AiMouseAuthType_Ali){
[ws.aliAuthManager loginWith:deviceInfo];
}
+ else if(type == AiMouseAuthType_BeiKeZhiHui){
+ [ws.authManager loginWith:deviceInfo];
+ }
else{
[ws.authManager loginWith:deviceInfo];
}
}
- (void)sendAiDataToSdk:(NSData *)data{
- _authState = AiMouseAuthState_Success;
-
[self showLog:[NSString stringWithFormat:@"[receive][Voice] %@",data]];
if(self.connectType == AiMouseConnectType_hid){
// [self switchConnect:self.connectType isConnected:false];
return;
}
- _authState = AiMouseAuthState_Success;
- [self showLog:[NSString stringWithFormat:@"[receive][info] %@",data]];
+ [self showLog:[NSString stringWithFormat:@"[receive][info][json] %@",[AiMouseTools dataToHexString:data]]];
+ [self showLog:[NSString stringWithFormat:@"[receive][info][byte] %@",[AiMouseTools dataToUtf8String:data]]];
if (self.connected == false) {
if([AiMouseTools dataToHexString:data].length < 10){
// [self switchConnect:AiMouseConnectType_hid isConnected:false ];
}
[self.deviceInfoManager receiveData:data];
- [self checkAuthState];
}
- (void)setDeviceSecret:(NSString *)value completation:(AiCmdFinishBlock)complete{
self.updateDeviceSecret = value;
}
- (void)authResult:(BOOL)isSuccess{
- _authState = isSuccess ? AiMouseAuthState_Success:AiMouseAuthState_Failure;
[self.deviceInfoManager setAuthStateToDevice:isSuccess];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- if(self.authBlock) self.authBlock(self->_authState);
+ if(self.authBlock) self.authBlock(isSuccess);
});
}
- (void)showLog:(NSString *)log{
if (self.delegate && [self.delegate respondsToSelector:@selector(aiMouseAddLog:)]) {
- [self.delegate aiMouseAddLog:[NSString stringWithFormat:@"[AiMouseSdk][frk]%@",log]];
+ [self.delegate aiMouseAddLog:[NSString stringWithFormat:@"[frk]%@",log]];
}
// if(self.logLevel == AiMouseLogLevel_info){
-// NSLog(@"[AiMouseSdk][frk]%@",log);
+// NSLog(@"[frk]%@",log);
// }
}
- (void)checkAuthState{
- if (self.authState != AiMouseAuthState_Success) {
- if (self.isAuthing) {
- return;
- }
- self.isAuthing = true;
- __weak typeof(self) ws = self;
- [self startAuthentication:^(AiMouseAuthState state) {
- ws.isAuthing = false;
- [ws showLog:state == AiMouseAuthState_Success? @"鉴权成功":@"鉴权失败"];
- if(ws.delegate) [ws.delegate aiMouseAuthenticationResult:state];
- }];
+ if (self.isAuthing) {
+ return;
}
+ self.isAuthing = true;
+ __weak typeof(self) ws = self;
+ [self startAuthentication:AiMouseAuthType_Ali finished:^(AiMouseAuthState state) {
+ ws.isAuthing = false;
+ [ws showLog:state == AiMouseAuthState_Success? @"鉴权成功":@"鉴权失败"];
+ if(ws.delegate) [ws.delegate aiMouseAuthenticationResult:state];
+ }];
}
#pragma mark - deviceInfo
- (void)startRecord{
// [self showLog:@"结束录音"];
}
-#pragma mark - AiConnectManagerDelegate
--(void)aiConnectManager:(AiConnectManager *)manager connectStateDidChange:(BOOL)connected{
- _connected = connected;
- if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:connected];
-}
-
@end
else{
[ws.frkSdk switchConnect:AiMouseConnectType_hid isConnected:false];
[ws.frkSdk didDisconnect];
-
}
}
};
if (self.aiMouseConnectStateDidChangeCallBack) {
self.aiMouseConnectStateDidChangeCallBack(self.frkSdk.connectType == AiMouseConnectType_bluetooth ? 0:1,connected);
}
- if(self.authCallBack && connected)self.authCallBack(connected);
}
/// 鉴权结果返回
/// - Parameter authState: 鉴权状态
- (void)aiMouseAuthenticationResult:(AiMouseAuthState)authState{
- //千寻暂时去掉鉴权
+ if(self.authCallBack )self.authCallBack(AiMouseAuthState_Success == true);
}
/// 设备信息数据回调,需要将此数据通过设备信息特征转发给蓝牙设备
- (void)showLog:(NSString *)log{
if (self.delegate && [self.delegate respondsToSelector:@selector(tlwMouseAddLog:)]) {
- [self.delegate tlwMouseAddLog:[NSString stringWithFormat:@"[AiMouseSdk][tlw] %@",log]];
+ [self.delegate tlwMouseAddLog:[NSString stringWithFormat:@"[tlw] %@",log]];
}
// if(self.logLevel == TlwMouseLogLevel_info){
- // NSLog(@"[AiMouseSdk][tlw]%@",log);
+ // NSLog(@"[tlw]%@",log);
// }
}
endingColumnNumber = "9223372036854775807"
startingLineNumber = "656"
endingLineNumber = "656"
- landmarkName = "TlwMouse"
- landmarkType = "3">
+ landmarkName = "-getFullBrand:"
+ landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
// btn.state = 1;
// [self.view addSubview:btn];
// }
- {
- NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(50, self.view.bounds.size.height - 100, 100, 45)];
- btn.bordered = true;
- btn.title = @"获取设备信息";
- [btn setTarget:self];
- [btn setAction:@selector(geviceInfoAction)];
- btn.state = 1;
- [self.view addSubview:btn];
- }
+// {
+// NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(50, self.view.bounds.size.height - 100, 100, 45)];
+// btn.bordered = true;
+// btn.title = @"获取设备信息";
+// [btn setTarget:self];
+// [btn setAction:@selector(geviceInfoAction)];
+// btn.state = 1;
+// [self.view addSubview:btn];
+// }
{
NSButton *btn = [[NSButton alloc]initWithFrame:NSMakeRect(50, self.view.bounds.size.height - 200, 100, 45)];
btn.bordered = true;
[self.view addSubview:label];
}
{
- NSTextField *label = [[NSTextField alloc] initWithFrame:CGRectMake(180, self.view.bounds.size.height - 360, 300, 200)];
+ NSTextField *label = [[NSTextField alloc] initWithFrame:CGRectMake(180, self.view.bounds.size.height - 360, 400, 200)];
label.editable = NO;
label.bordered = NO;
label.stringValue = @"";
ScanVC *vc = [[ScanVC alloc] initWithNibName:nil bundle:nil];
[self presentViewControllerAsModalWindow:vc];
}
-
-- (void)geviceInfoAction{
-// [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"]];
-// return;
- [[DeviceManger shared] getDeviceInfo:^(AiMouseDeviceInfo *deviceInfo, NSError *error) {
- if (deviceInfo) {
- NSString *info = deviceInfo.description;
- dispatch_async(dispatch_get_main_queue(), ^{
- self.deviceInfoLabel.stringValue = info;
- });
- }
- else{
- NSString *info = [NSString stringWithFormat:@"error == %@",error.description];
- NSLog(@"%@",info);
- dispatch_async(dispatch_get_main_queue(), ^{
- self.deviceInfoLabel.stringValue = info;
- });
- }
- }];
-}
-
- (void)setupDeviceManger{
// [AiHidManager shared];
DeviceManger *manager = [DeviceManger shared];
}];
}
- (void)searchState:(NSMenuItem*)sender {
+ [self geviceInfoAction];
+}
+- (void)geviceInfoAction{
+// [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"]];
+// return;
[[DeviceManger shared] getDeviceInfo:^(AiMouseDeviceInfo *deviceInfo, NSError *error) {
if (deviceInfo) {
NSString *info = deviceInfo.description;