diff options
Diffstat (limited to 'ext/mixed/js')
| -rw-r--r-- | ext/mixed/js/audio-system.js | 52 | ||||
| -rw-r--r-- | ext/mixed/js/text-to-speech-audio.js | 66 | 
2 files changed, 69 insertions, 49 deletions
| diff --git a/ext/mixed/js/audio-system.js b/ext/mixed/js/audio-system.js index 4a49c135..a8226820 100644 --- a/ext/mixed/js/audio-system.js +++ b/ext/mixed/js/audio-system.js @@ -15,55 +15,9 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -class TextToSpeechAudio { -    constructor(text, voice) { -        this.text = text; -        this.voice = voice; -        this._utterance = null; -        this._volume = 1; -    } - -    get currentTime() { -        return 0; -    } -    set currentTime(value) { -        // NOP -    } - -    get volume() { -        return this._volume; -    } -    set volume(value) { -        this._volume = value; -        if (this._utterance !== null) { -            this._utterance.volume = value; -        } -    } - -    async play() { -        try { -            if (this._utterance === null) { -                this._utterance = new SpeechSynthesisUtterance(this.text || ''); -                this._utterance.lang = 'ja-JP'; -                this._utterance.volume = this._volume; -                this._utterance.voice = this.voice; -            } - -            speechSynthesis.cancel(); -            speechSynthesis.speak(this._utterance); -        } catch (e) { -            // NOP -        } -    } - -    pause() { -        try { -            speechSynthesis.cancel(); -        } catch (e) { -            // NOP -        } -    } -} +/* global + * TextToSpeechAudio + */  class AudioSystem {      constructor({audioUriBuilder, requestBuilder=null, useCache}) { diff --git a/ext/mixed/js/text-to-speech-audio.js b/ext/mixed/js/text-to-speech-audio.js new file mode 100644 index 00000000..701933aa --- /dev/null +++ b/ext/mixed/js/text-to-speech-audio.js @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2020  Yomichan Authors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <https://www.gnu.org/licenses/>. + */ + +class TextToSpeechAudio { +    constructor(text, voice) { +        this.text = text; +        this.voice = voice; +        this._utterance = null; +        this._volume = 1; +    } + +    get currentTime() { +        return 0; +    } +    set currentTime(value) { +        // NOP +    } + +    get volume() { +        return this._volume; +    } +    set volume(value) { +        this._volume = value; +        if (this._utterance !== null) { +            this._utterance.volume = value; +        } +    } + +    async play() { +        try { +            if (this._utterance === null) { +                this._utterance = new SpeechSynthesisUtterance(this.text || ''); +                this._utterance.lang = 'ja-JP'; +                this._utterance.volume = this._volume; +                this._utterance.voice = this.voice; +            } + +            speechSynthesis.cancel(); +            speechSynthesis.speak(this._utterance); +        } catch (e) { +            // NOP +        } +    } + +    pause() { +        try { +            speechSynthesis.cancel(); +        } catch (e) { +            // NOP +        } +    } +} |