Initial Commit

This commit is contained in:
ImBenji
2024-02-26 14:45:45 +00:00
commit 72ef70901d
132 changed files with 5304 additions and 0 deletions

64
lib/audio_cache.dart Normal file
View File

@@ -0,0 +1,64 @@
import 'dart:typed_data';
import 'package:archive/archive.dart';
import 'package:flutter/services.dart';
class AudioCache {
// Filename, bytes
Map<String, Uint8List> _audioCache = {};
List<String> get keys {
return _audioCache.keys.toList();
}
Uint8List operator [](String key) {
return _audioCache[key]!;
}
}
class AnnouncementCache extends AudioCache {
String _assetLocation = "assets/ibus_recordings.zip";
Future<void> loadAnnouncements(List<String> Announcements) async {
final bytes = await rootBundle.load(_assetLocation);
final archive = ZipDecoder().decodeBytes(bytes.buffer.asUint8List());
for (final file in archive) {
if (Announcements.contains(file.name)) {
_audioCache[file.name] = file.content;
}
}
}
Future<void> loadAllAnnouncements() async {
print("Loading all announcements.");
final bytes = await rootBundle.load(_assetLocation);
final archive = ZipDecoder().decodeBytes(bytes.buffer.asUint8List());
print("Done decoding zip file.");
print("Number of files: ${archive.length}");
for (final file in archive) {
if (file.isFile == false) {
continue;
}
String filename = file.name;
if (filename.contains("/")) {
filename = filename.split("/").last;
}
_audioCache[filename] = file.content;
}
print("Done loading all announcements.");
}
}