destroy method

  1. @override
void destroy({
  1. Function? onDestroyed,
})
override

Implementation

@override
void destroy({Function? onDestroyed}) {
  if(onDestroyed != null) {
    onDestroyCallback = onDestroyed;
  }
  ReceivePort rPort = ReceivePort();
  rPort.listen((message) {
    csoundAndroidStop(_cs);
    csoundAndroidDestroy(_cs);
    _controlChannelCallbacks.forEach((key, value) {
      malloc.free(value.cName);
    });
    _audioChannelCallbacks.forEach((key, value) {
      if(value.cName != null && value.cName != nullptr) malloc.free(value.cName!);
    });
    _controlChannelCallbacks = {};
    _audioChannelCallbacks = {};
    _isolate.kill();
    onDestroyCallback.call();
  });
  _sendPort.send([{MessageTag.MESSAGE_TYPE: MessageType.DELETE}, rPort.sendPort]);
}