runMediaControl function

Future<HeadlessActionResult> runMediaControl(
  1. RoomActionsParameters parameters,
  2. FutureOr<void> action()
)

Implementation

Future<HeadlessActionResult> runMediaControl(
  RoomActionsParameters parameters,
  FutureOr<void> Function() action,
) async {
  final previousAlert = parameters.alertMessage;
  try {
    await action();
    final refused = parameters.alertVisible &&
        parameters.alertMessage != previousAlert &&
        (parameters.alertType == 'danger' || parameters.alertType == 'warning');
    return refused
        ? HeadlessActionResult.failure(parameters.alertMessage)
        : const HeadlessActionResult.success();
  } catch (error) {
    return HeadlessActionResult.failure('$error');
  }
}