replaceWriteLogMessage function

void replaceWriteLogMessage({
  1. LogCallbackFunction? callback,
})

Implementation

void replaceWriteLogMessage({LogCallbackFunction? callback}) {
  if (callback == null) {
    cvRun(() => ccore.replaceWriteLogMessage(ffi.nullptr));
    _logCallback?.close();
    _logCallback = null;
  } else {
    void cCallback(int logLevel, ffi.Pointer<ffi.Char> message, int msgLen) {
      final messageStr = message.cast<Utf8>().toDartString(length: msgLen);
      callback(LogLevel.fromValue(logLevel), messageStr);
    }

    final fp = ffi.NativeCallable<cvg.LogCallbackFunction>.listener(cCallback);
    cvRun(() => ccore.replaceWriteLogMessage(fp.nativeFunction));
    _logCallback = fp;
  }
}