implementAsBlocking static method

CAMediaTiming implementAsBlocking({
  1. required double beginTime(),
  2. required void setBeginTime_(
    1. double
    ),
  3. required double duration(),
  4. required void setDuration_(
    1. double
    ),
  5. required double speed(),
  6. required void setSpeed_(
    1. double
    ),
  7. required double timeOffset(),
  8. required void setTimeOffset_(
    1. double
    ),
  9. required double repeatCount(),
  10. required void setRepeatCount_(
    1. double
    ),
  11. required double repeatDuration(),
  12. required void setRepeatDuration_(
    1. double
    ),
  13. required bool autoreverses(),
  14. required void setAutoreverses_(
    1. bool restartFlag
    ),
  15. required DartCADynamicRange fillMode(),
  16. required void setFillMode_(
    1. NSString format
    ),
  17. bool $keepIsolateAlive = true,
})

Builds an object that implements the CAMediaTiming protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All methods that can be implemented as blocking listeners will be.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

static CAMediaTiming implementAsBlocking({
  required DartCFTimeInterval Function() beginTime,
  required void Function(DartCFTimeInterval) setBeginTime_,
  required DartCFTimeInterval Function() duration,
  required void Function(DartCFTimeInterval) setDuration_,
  required double Function() speed,
  required void Function(double) setSpeed_,
  required DartCFTimeInterval Function() timeOffset,
  required void Function(DartCFTimeInterval) setTimeOffset_,
  required double Function() repeatCount,
  required void Function(double) setRepeatCount_,
  required DartCFTimeInterval Function() repeatDuration,
  required void Function(DartCFTimeInterval) setRepeatDuration_,
  required bool Function() autoreverses,
  required void Function(bool) setAutoreverses_,
  required objc.NSString Function() fillMode,
  required void Function(DartCAMediaTimingFillMode) setFillMode_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'CAMediaTiming');
  CAMediaTiming.beginTime.implement(builder, beginTime);
  CAMediaTiming.setBeginTime_.implementAsBlocking(builder, setBeginTime_);
  CAMediaTiming.duration.implement(builder, duration);
  CAMediaTiming.setDuration_.implementAsBlocking(builder, setDuration_);
  CAMediaTiming.speed.implement(builder, speed);
  CAMediaTiming.setSpeed_.implementAsBlocking(builder, setSpeed_);
  CAMediaTiming.timeOffset.implement(builder, timeOffset);
  CAMediaTiming.setTimeOffset_.implementAsBlocking(builder, setTimeOffset_);
  CAMediaTiming.repeatCount.implement(builder, repeatCount);
  CAMediaTiming.setRepeatCount_.implementAsBlocking(builder, setRepeatCount_);
  CAMediaTiming.repeatDuration.implement(builder, repeatDuration);
  CAMediaTiming.setRepeatDuration_.implementAsBlocking(
    builder,
    setRepeatDuration_,
  );
  CAMediaTiming.autoreverses.implement(builder, autoreverses);
  CAMediaTiming.setAutoreverses_.implementAsBlocking(
    builder,
    setAutoreverses_,
  );
  CAMediaTiming.fillMode.implement(builder, fillMode);
  CAMediaTiming.setFillMode_.implementAsBlocking(builder, setFillMode_);
  builder.addProtocol($protocol);
  return CAMediaTiming.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}