getActiveTranslationConsumers function

List<ActiveTranslationConsumer> getActiveTranslationConsumers(
  1. Map<String, dynamic> translationProducerMap,
  2. List<TransportType> consumerTransports,
  3. Map<String, String> speakerIdByProducerId
)

Get all active translation consumers from the map.

Implementation

List<ActiveTranslationConsumer> getActiveTranslationConsumers(
  Map<String, dynamic> translationProducerMap,
  List<TransportType> consumerTransports,
  Map<String, String> speakerIdByProducerId,
) {
  final results = <ActiveTranslationConsumer>[];

  for (final entry in translationProducerMap.entries) {
    final producerId = entry.key;
    final meta = entry.value;

    if (meta is TranslationMeta) {
      // Verify we have an active consumer
      final hasConsumer = consumerTransports.any(
        (t) => t.producerId == producerId,
      );

      if (hasConsumer) {
        results.add(ActiveTranslationConsumer(
          speakerId: meta.speakerId,
          translationProducerId: producerId,
          originalProducerId: meta.originalProducerId,
          language: meta.language,
        ));
      }
    }
  }

  return results;
}