diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-01-23 22:46:00 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-23 22:46:00 -0500 |
commit | ebfef0c74858607d050da2cdc9046a681b133b25 (patch) | |
tree | 67a9a33edc447a95f59916e5851ef946199469e2 /ext/mixed | |
parent | ef577b88754523abeab3844115506a0b6e914874 (diff) |
Multiple custom audio sources (#1303)
* Fix label
* Fix icon size being flexible
* Add schema
* Add customSourceType option
* Update settings
* Pass customSourceType to the audio downloader
* Implement custom audio JSON mode
Diffstat (limited to 'ext/mixed')
-rw-r--r-- | ext/mixed/css/material.css | 1 | ||||
-rw-r--r-- | ext/mixed/js/display-audio.js | 8 | ||||
-rw-r--r-- | ext/mixed/js/display.js | 4 |
3 files changed, 7 insertions, 6 deletions
diff --git a/ext/mixed/css/material.css b/ext/mixed/css/material.css index ec55120b..d144937b 100644 --- a/ext/mixed/css/material.css +++ b/ext/mixed/css/material.css @@ -970,6 +970,7 @@ button.popup-menu-item:disabled { height: calc(16em / 14); background-color: var(--text-color); margin-right: 0.5em; + flex: 0 0 auto; } .popup-menu-item-icon:not([hidden]) { display: block; diff --git a/ext/mixed/js/display-audio.js b/ext/mixed/js/display-audio.js index c60831b1..f624d85b 100644 --- a/ext/mixed/js/display-audio.js +++ b/ext/mixed/js/display-audio.js @@ -112,7 +112,7 @@ class DisplayAudio { const {expression, reading} = expressionReading; const audioOptions = this._getAudioOptions(); - const {textToSpeechVoice, customSourceUrl, volume} = audioOptions; + const {textToSpeechVoice, customSourceUrl, customSourceType, volume} = audioOptions; if (!Array.isArray(sources)) { ({sources} = audioOptions); } @@ -126,7 +126,7 @@ class DisplayAudio { // Create audio let audio; let title; - const info = await this._createExpressionAudio(sources, sourceDetailsMap, expression, reading, {textToSpeechVoice, customSourceUrl}); + const info = await this._createExpressionAudio(sources, sourceDetailsMap, expression, reading, {textToSpeechVoice, customSourceUrl, customSourceType}); if (info !== null) { let source; ({audio, source} = info); @@ -520,13 +520,13 @@ class DisplayAudio { // Entry info entry.index = i; - const {audio, audioResolved, title} = infoList[i]; + const {audio, audioResolved, info: {name}} = infoList[i]; if (audioResolved) { entry.valid = (audio !== null); } const labelNode = entry.node.querySelector('.popup-menu-item-label'); let label = defaultLabel; if (ii > 1) { label = `${label} ${i + 1}`; } - if (typeof title === 'string' && title.length > 0) { label += `: ${title}`; } + if (typeof name === 'string' && name.length > 0) { label += `: ${name}`; } labelNode.textContent = label; } diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index eb8b2900..6c97cb84 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -1432,13 +1432,13 @@ class Display extends EventDispatcher { async _injectAnkiNoteMedia(definition, mode, options, fields) { const { anki: {screenshot: {format, quality}}, - audio: {sources, customSourceUrl} + audio: {sources, customSourceUrl, customSourceType} } = options; const timestamp = Date.now(); const ownerFrameId = this._ownerFrameId; const definitionDetails = this._getDefinitionDetailsForNote(definition); - const audioDetails = (mode !== 'kanji' && this._ankiNoteBuilder.containsMarker(fields, 'audio') ? {sources, customSourceUrl} : null); + const audioDetails = (mode !== 'kanji' && this._ankiNoteBuilder.containsMarker(fields, 'audio') ? {sources, customSourceUrl, customSourceType} : null); const screenshotDetails = (this._ankiNoteBuilder.containsMarker(fields, 'screenshot') ? {ownerFrameId, format, quality} : null); const clipboardDetails = { image: this._ankiNoteBuilder.containsMarker(fields, 'clipboard-image'), |