onData method

  1. @override
void onData(
  1. IsolatePayload data,
  2. Object id
)
override

A callback that runs when data is sent by a child.

Implementation

@override
void onData(IsolatePayload data, Object id) {
  switch (data) {
    case DetailsPayload():
      collection.videoServer.sendMessage(VideoData(details: data.details));
    case FramePayload():
      final frame = data.frame;
      collection.videoServer.sendMessage(VideoData(frame: frame.data, details: data.details));
      frame.dispose();
    case DepthFramePayload():
      collection.videoServer.sendDepthFrame(VideoData(frame: data.frame.depthFrame));
      data.dispose();
    case LogPayload(): switch (data.level) {
      // Turns out using deprecated members when you *have* to still results in a lint.
      // See https://github.com/dart-lang/linter/issues/4852 for why we ignore it.
      case LogLevel.all: logger.info(data.message);
      // ignore: deprecated_member_use
      case LogLevel.verbose: logger.trace(data.message);
      case LogLevel.trace: logger.trace(data.message);
      case LogLevel.debug: logger.debug(data.message);
      case LogLevel.info: logger.info(data.message);
      case LogLevel.warning: logger.warning(data.message);
      case LogLevel.error: logger.error(data.message);
      // ignore: deprecated_member_use
      case LogLevel.wtf: logger.info(data.message);
      case LogLevel.fatal: logger.critical(data.message);
      // ignore: deprecated_member_use
      case LogLevel.nothing: logger.info(data.message);
      case LogLevel.off: logger.info(data.message);
    }
  }
}