package audio /** * Cache for audio content to avoid reloading from disk */ @Suppress("unused") class ContentCache { private val map: MutableMap = HashMap() /** * Clear the cache, but keep essential sounds : chimeup, chimedown, silence1s, silencehalf */ fun clear(){ // dont clear chimeup, chimedown, silence1s, silencehalf val keysToKeep = setOf("chimeup", "chimedown", "silence1s", "silencehalf") map.keys.retainAll(keysToKeep) } /** * Add an audio file to the cache * @param key The key to identify the audio file * @param audioFile The AudioFileInfo object */ fun addAudioFile(key: String, audioFile: AudioFileInfo) { map[key] = audioFile } /** * Retrieve an audio file from the cache * @param key The key to identify the audio file * @return The AudioFileInfo object, or null if not found */ fun getAudioFile(key: String): AudioFileInfo? { return map[key] } /** * Remove an audio file from the cache * @param key The key to identify the audio file */ fun removeAudioFile(key: String) { map.remove(key) } /** * Check if the cache contains the specified key * @param key The key to check in the cache * @return True if the key exists, false otherwise */ fun haveKey(key: String): Boolean { return map.containsKey(key) } }