setShuffleOrder method

  1. @override
Future<SetShuffleOrderResponse> setShuffleOrder(
  1. SetShuffleOrderRequest request
)
override

Sets the shuffle order.

Implementation

@override
Future<SetShuffleOrderResponse> setShuffleOrder(
    SetShuffleOrderRequest request) async {
  void internalSetShuffleOrder(AudioSourceMessage sourceMessage) {
    final audioSourcePlayer = _audioSourcePlayers[sourceMessage.id];
    if (audioSourcePlayer == null) return;
    if (sourceMessage is ConcatenatingAudioSourceMessage &&
        audioSourcePlayer is ConcatenatingAudioSourcePlayer) {
      audioSourcePlayer.setShuffleOrder(sourceMessage.shuffleOrder);
      for (var childMessage in sourceMessage.children) {
        internalSetShuffleOrder(childMessage);
      }
    } else if (sourceMessage is LoopingAudioSourceMessage) {
      internalSetShuffleOrder(sourceMessage.child);
    }
  }

  internalSetShuffleOrder(request.audioSourceMessage);
  return SetShuffleOrderResponse();
}