isConsumingTranslationForSpeaker function
- String speakerId,
- List<
TransportType> consumerTransports, - Map<
String, dynamic> translationProducerMap
Check if we're currently consuming a translation for a given speaker. Looks for consumers that have translation metadata attached.
Implementation
TranslationConsumptionStatus isConsumingTranslationForSpeaker(
String speakerId,
List<TransportType> consumerTransports,
Map<String, dynamic> translationProducerMap,
) {
// Check our translation map for this speaker
for (final entry in translationProducerMap.entries) {
final producerId = entry.key;
final meta = entry.value;
if (meta is TranslationMeta) {
if (meta.speakerId == speakerId) {
// Verify we have a consumer for this translation producer
final hasConsumer = consumerTransports.any(
(t) => t.producerId == producerId,
);
if (hasConsumer) {
return TranslationConsumptionStatus(
consuming: true,
language: meta.language,
translationProducerId: producerId,
originalProducerId: meta.originalProducerId,
);
}
}
}
}
return TranslationConsumptionStatus(consuming: false);
}