configureWindow method

  1. @override
Future<void> configureWindow(
  1. String windowId,
  2. MiniAVVideoInfo format, {
  3. bool captureAudio = false,
})
override

Configure the screen context with a window and format.

Implementation

@override
Future<void> configureWindow(
  String windowId,
  MiniAVVideoInfo format, {
  bool captureAudio = false,
}) async {
  _ensureNotDestroyed();

  final windowIdPtr = windowId.toNativeUtf8();
  final nativeFormatPtr = calloc<bindings.MiniAVVideoInfo>();
  try {
    VideoFormatInfoFFIToPlatform.copyToNative(format, nativeFormatPtr.ref);
    final result = bindings.MiniAV_Screen_ConfigureWindow(
      _context!,
      windowIdPtr.cast(),
      nativeFormatPtr,
      captureAudio,
    );
    if (result != bindings.MiniAVResultCode.MINIAV_SUCCESS) {
      throw Exception('Failed to configure window: ${result.name}');
    }
  } finally {
    calloc.free(windowIdPtr);
    calloc.free(nativeFormatPtr);
  }
}