aboutsummaryrefslogtreecommitdiff
path: root/ext/mixed
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mixed')
-rw-r--r--ext/mixed/js/audio-system.js22
-rw-r--r--ext/mixed/js/display.js3
2 files changed, 16 insertions, 9 deletions
diff --git a/ext/mixed/js/audio-system.js b/ext/mixed/js/audio-system.js
index 5366e3e0..255a96de 100644
--- a/ext/mixed/js/audio-system.js
+++ b/ext/mixed/js/audio-system.js
@@ -66,8 +66,8 @@ class TextToSpeechAudio {
}
class AudioSystem {
- constructor({audioUriBuilder}) {
- this._cache = new Map();
+ constructor({audioUriBuilder, useCache}) {
+ this._cache = useCache ? new Map() : null;
this._cacheSizeMaximum = 32;
this._audioUriBuilder = audioUriBuilder;
@@ -79,10 +79,14 @@ class AudioSystem {
async getDefinitionAudio(definition, sources, details) {
const key = `${definition.expression}:${definition.reading}`;
- const cacheValue = this._cache.get(definition);
- if (typeof cacheValue !== 'undefined') {
- const {audio, uri, source} = cacheValue;
- return {audio, uri, source};
+ const hasCache = (this._cache !== null);
+
+ if (hasCache) {
+ const cacheValue = this._cache.get(key);
+ if (typeof cacheValue !== 'undefined') {
+ const {audio, uri, source} = cacheValue;
+ return {audio, uri, source};
+ }
}
for (const source of sources) {
@@ -91,8 +95,10 @@ class AudioSystem {
try {
const audio = await this._createAudio(uri);
- this._cacheCheck();
- this._cache.set(key, {audio, uri, source});
+ if (hasCache) {
+ this._cacheCheck();
+ this._cache.set(key, {audio, uri, source});
+ }
return {audio, uri, source};
} catch (e) {
// NOP
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js
index 7f3ba859..8edae7c9 100644
--- a/ext/mixed/js/display.js
+++ b/ext/mixed/js/display.js
@@ -50,7 +50,8 @@ class Display {
async getUri(definition, source, details) {
return await apiAudioGetUri(definition, source, details);
}
- }
+ },
+ useCache: true
});
this.styleNode = null;