import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'chivox_aiengine_platform_interface.dart'; /// An implementation of [ChivoxAienginePlatform] that uses method channels. class MethodChannelChivoxAiengine extends ChivoxAienginePlatform { /// The method channel used to interact with the native platform. @visibleForTesting final methodChannel = const MethodChannel('com.chivox.aiengine/call'); @override Future getPlatformVersion() async { final version = await methodChannel.invokeMethod('getPlatformVersion'); return version; } @override Future aiengineNew(String cfg) async { final engineId = await methodChannel.invokeMethod('aiengineNew', [cfg]); return engineId; } @override Future aiengineDelete(String engineId) async { await methodChannel.invokeMethod('aiengineDelete', [engineId]); return; } @override Future aiengineStart(String engineId, Map audioSrc, String param, String callbackId) async { await methodChannel.invokeMethod( 'aiengineStart', [engineId, audioSrc, param, callbackId]); return; } @override Future aiengineFeed( String engineId, Uint8List bytes, int length) async { await methodChannel .invokeMethod('aiengineFeed', [engineId, bytes, length]); return; } @override Future aiengineStop(String engineId) async { await methodChannel.invokeMethod('aiengineStop', [engineId]); return; } @override Future aiengineCancel(String engineId) async { await methodChannel.invokeMethod('aiengineCancel', [engineId]); return; } @override Future getDeviceId() async { final devId = await methodChannel.invokeMethod( 'getDeviceId', ); return devId; } @override Future getSerialNumber(String? engineId, Map input) async { final output = await methodChannel .invokeMethod('getSerialNumber', [engineId, input]); return output; } @override Future clearSavedSerialNumber(String appKey) async { final ret = await methodChannel .invokeMethod('clearSavedSerialNumber', [appKey]); return ret; } @override Future getProvision(String? engineId, Map input) async { final output = await methodChannel .invokeMethod('getProvision', [engineId, input]); return output; } @override Future extractRes(String assetPrefix, List assetNames, String targetDir, String callbackId) async { await methodChannel.invokeMethod( 'extractRes', [assetPrefix, assetNames, targetDir, callbackId]); return; } @override Future loadNativeCfg( String resRootDir, List resNames) async { final cfgStr = await methodChannel .invokeMethod('loadNativeCfg', [resRootDir, resNames]); return cfgStr; } }