paradigm shift

This commit is contained in:
ImBenji
2024-05-03 14:03:51 +01:00
parent 673891923d
commit 1f48f8f4b0
17 changed files with 2440 additions and 547 deletions

View File

@@ -74,7 +74,7 @@ class AnnouncementModule extends InfoModule {
final EventDelegate<AnnouncementQueueEntry> onAnnouncement = EventDelegate();
// Timer
Timer refreshTimer() => Timer.periodic(const Duration(milliseconds: 200), (timer) async {
Timer refreshTimer() => Timer.periodic(const Duration(milliseconds: 10), (timer) async {
if (!isPlaying) {
@@ -84,7 +84,7 @@ class AnnouncementModule extends InfoModule {
bool proceeding = await _internalAccountForInconsistentTime(
announcement: nextAnnouncement,
timerInterval: const Duration(milliseconds: 200),
timerInterval: const Duration(milliseconds: 10),
callback: () {
queue.removeAt(0);
print("Announcement proceeding");
@@ -105,35 +105,21 @@ class AnnouncementModule extends InfoModule {
if (currentAnnouncement!.audioSources.isNotEmpty) {
// audioPlayer.loadSource(AudioWrapperAssetSource("assets/audio/5-seconds-of-silence.mp3"));
// audioPlayer.play();
// await Future.delayed(const Duration(milliseconds: 300));
// audioPlayer.stop();
// Prime all of the audio sources to be ready to play
for (AudioWrapperSource source in currentAnnouncement!.audioSources) {
try {
await audioPlayer.loadSource(source);
await Future.delayed((await audioPlayer.play())!);
audioPlayer.stop();
// try {
for (AudioWrapperSource source in currentAnnouncement!.audioSources) {
try {
await audioPlayer.loadSource(source);
Duration? duration = await audioPlayer.play();
await Future.delayed(duration!);
audioPlayer.stop();
// await Future.delayed(const Duration(milliseconds: 100));
if (currentAnnouncement?.audioSources.last != source) {
await Future.delayed(const Duration(milliseconds: 100));
}
} catch (e) {
// Do nothing
// print("Error playing announcement: $e on ${currentAnnouncement?.displayText}");
await Future.delayed(const Duration(seconds: 1));
if (currentAnnouncement?.audioSources.last != source) {
await Future.delayed(const Duration(milliseconds: 100));
}
} catch (e) {
await Future.delayed(const Duration(seconds: 1));
}
// audioPlayer.stop();
}
// } catch (e) {
// // Do nothing
// print("Error playing announcement: $e on ${currentAnnouncement?.displayTex}");
// }
} else {
if (queue.isNotEmpty) {
await Future.delayed(const Duration(seconds: 5));
@@ -179,7 +165,7 @@ class AnnouncementModule extends InfoModule {
}
// Configuration
int get defaultAnnouncementDelay => liveInformation.auth.isAuthenticated() ? 2 : 0;
int get defaultAnnouncementDelay => liveInformation.auth.isAuthenticated() ? 1 : 0;
// Methods
Future<void> queueAnnounceByAudioName({
@@ -199,8 +185,12 @@ class AnnouncementModule extends InfoModule {
audioNamesString += "\"$audioName\" ";
}
liveInformation.commandModule.executeCommand(
"announce manual \"$displayText\" ${audioNamesString} ${scheduledTime?.millisecondsSinceEpoch ?? ""}"
liveInformation.SendCommand("announce manual \"$displayText\" $audioNamesString ${scheduledTime.millisecondsSinceEpoch}");
queueAnnounceByAudioName(
displayText: displayText,
audioNames: audioNames,
scheduledTime: scheduledTime,
sendToServer: false
);
return;
@@ -244,9 +234,13 @@ class AnnouncementModule extends InfoModule {
scheduledTime ??= liveInformation.syncedTimeModule.Now().add(Duration(seconds: defaultAnnouncementDelay));
liveInformation.commandModule.executeCommand(
"announce info $infoIndex ${scheduledTime?.millisecondsSinceEpoch ?? ""}"
liveInformation.SendCommand("announce info $infoIndex ${scheduledTime.millisecondsSinceEpoch}");
queueAnnounementByInfoIndex(
infoIndex: infoIndex,
scheduledTime: scheduledTime,
sendToServer: false
);
print("Announcement sent to server");
return;
}
@@ -270,9 +264,16 @@ class AnnouncementModule extends InfoModule {
scheduledTime ??= liveInformation.syncedTimeModule.Now().add(Duration(seconds: defaultAnnouncementDelay));
liveInformation.commandModule.executeCommand(
"announce dest \"${routeVariant.busRoute.routeNumber}\" ${routeVariant.busRoute.routeVariants.values.toList().indexOf(routeVariant)} ${scheduledTime?.millisecondsSinceEpoch ?? ""}"
String routeNumber = routeVariant.busRoute.routeNumber;
int routeVariantIndex = routeVariant.busRoute.routeVariants.values.toList().indexOf(routeVariant);
liveInformation.SendCommand("announce dest ${routeNumber} ${routeVariantIndex} ${scheduledTime.millisecondsSinceEpoch}");
queueAnnouncementByRouteVariant(
routeVariant: routeVariant,
scheduledTime: scheduledTime,
sendToServer: false
);
return;
}
print("Checkpoint 4");