| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2013 Apple Computer, Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 { | 35 { |
| 36 OwnPtr<PlatformSpeechSynthesizerMock> synthesizer = adoptPtr(new PlatformSpe
echSynthesizerMock(client)); | 36 OwnPtr<PlatformSpeechSynthesizerMock> synthesizer = adoptPtr(new PlatformSpe
echSynthesizerMock(client)); |
| 37 synthesizer->initializeVoiceList(); | 37 synthesizer->initializeVoiceList(); |
| 38 client->voicesDidChange(); | 38 client->voicesDidChange(); |
| 39 return synthesizer.release(); | 39 return synthesizer.release(); |
| 40 } | 40 } |
| 41 | 41 |
| 42 PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock(PlatformSpeechSynth
esizerClient* client) | 42 PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock(PlatformSpeechSynth
esizerClient* client) |
| 43 : PlatformSpeechSynthesizer(client) | 43 : PlatformSpeechSynthesizer(client) |
| 44 , m_speakingFinishedTimer(this, &PlatformSpeechSynthesizerMock::speakingFini
shed) | 44 , m_speakingFinishedTimer(this, &PlatformSpeechSynthesizerMock::speakingFini
shed) |
| 45 , m_speakingErrorOccurredTimer(this, &PlatformSpeechSynthesizerMock::speakin
gErrorOccurred) |
| 45 { | 46 { |
| 46 } | 47 } |
| 47 | 48 |
| 48 PlatformSpeechSynthesizerMock::~PlatformSpeechSynthesizerMock() | 49 PlatformSpeechSynthesizerMock::~PlatformSpeechSynthesizerMock() |
| 49 { | 50 { |
| 50 m_speakingFinishedTimer.stop(); | 51 m_speakingFinishedTimer.stop(); |
| 52 m_speakingErrorOccurredTimer.stop(); |
| 51 } | 53 } |
| 52 | 54 |
| 53 void PlatformSpeechSynthesizerMock::speakingFinished(Timer<PlatformSpeechSynthes
izerMock>*) | 55 void PlatformSpeechSynthesizerMock::speakingFinished(Timer<PlatformSpeechSynthes
izerMock>*) |
| 54 { | 56 { |
| 55 ASSERT(m_utterance.get()); | 57 ASSERT(m_utterance.get()); |
| 56 client()->didFinishSpeaking(m_utterance); | 58 client()->didFinishSpeaking(m_utterance); |
| 57 m_utterance = nullptr; | 59 m_utterance = nullptr; |
| 58 } | 60 } |
| 59 | 61 |
| 62 void PlatformSpeechSynthesizerMock::speakingErrorOccurred(Timer<PlatformSpeechSy
nthesizerMock>*) |
| 63 { |
| 64 ASSERT(m_utterance.get()); |
| 65 client()->speakingErrorOccurred(m_utterance); |
| 66 m_utterance = nullptr; |
| 67 } |
| 68 |
| 60 void PlatformSpeechSynthesizerMock::initializeVoiceList() | 69 void PlatformSpeechSynthesizerMock::initializeVoiceList() |
| 61 { | 70 { |
| 62 m_voiceList.clear(); | 71 m_voiceList.clear(); |
| 63 m_voiceList.append(PlatformSpeechSynthesisVoice::create(String("mock.voice.b
ruce"), String("bruce"), String("en-US"), true, true)); | 72 m_voiceList.append(PlatformSpeechSynthesisVoice::create(String("mock.voice.b
ruce"), String("bruce"), String("en-US"), true, true)); |
| 64 m_voiceList.append(PlatformSpeechSynthesisVoice::create(String("mock.voice.c
lark"), String("clark"), String("en-US"), true, false)); | 73 m_voiceList.append(PlatformSpeechSynthesisVoice::create(String("mock.voice.c
lark"), String("clark"), String("en-US"), true, false)); |
| 65 m_voiceList.append(PlatformSpeechSynthesisVoice::create(String("mock.voice.l
ogan"), String("logan"), String("fr-CA"), true, true)); | 74 m_voiceList.append(PlatformSpeechSynthesisVoice::create(String("mock.voice.l
ogan"), String("logan"), String("fr-CA"), true, true)); |
| 66 } | 75 } |
| 67 | 76 |
| 68 void PlatformSpeechSynthesizerMock::speak(PassRefPtr<PlatformSpeechSynthesisUtte
rance> utterance) | 77 void PlatformSpeechSynthesizerMock::speak(PassRefPtr<PlatformSpeechSynthesisUtte
rance> utterance) |
| 69 { | 78 { |
| 70 ASSERT(!m_utterance); | 79 ASSERT(!m_utterance); |
| 71 m_utterance = utterance; | 80 m_utterance = utterance; |
| 72 client()->didStartSpeaking(m_utterance); | 81 client()->didStartSpeaking(m_utterance); |
| 73 | 82 |
| 74 // Fire a fake word and then sentence boundary event. | 83 // Fire a fake word and then sentence boundary event. |
| 75 client()->boundaryEventOccurred(m_utterance, SpeechWordBoundary, 0); | 84 client()->boundaryEventOccurred(m_utterance, SpeechWordBoundary, 0); |
| 76 client()->boundaryEventOccurred(m_utterance, SpeechSentenceBoundary, m_utter
ance->text().length()); | 85 client()->boundaryEventOccurred(m_utterance, SpeechSentenceBoundary, m_utter
ance->text().length()); |
| 77 | 86 |
| 78 // Give the fake speech job some time so that pause and other functions have
time to be called. | 87 // Give the fake speech job some time so that pause and other functions have
time to be called. |
| 79 m_speakingFinishedTimer.startOneShot(.1); | 88 m_speakingFinishedTimer.startOneShot(.1); |
| 80 } | 89 } |
| 81 | 90 |
| 82 void PlatformSpeechSynthesizerMock::cancel() | 91 void PlatformSpeechSynthesizerMock::cancel() |
| 83 { | 92 { |
| 84 if (!m_utterance) | 93 if (!m_utterance) |
| 85 return; | 94 return; |
| 86 | 95 |
| 87 m_speakingFinishedTimer.stop(); | 96 m_speakingFinishedTimer.stop(); |
| 88 client()->speakingErrorOccurred(m_utterance); | 97 m_speakingErrorOccurredTimer.startOneShot(.1); |
| 89 m_utterance = nullptr; | |
| 90 } | 98 } |
| 91 | 99 |
| 92 void PlatformSpeechSynthesizerMock::pause() | 100 void PlatformSpeechSynthesizerMock::pause() |
| 93 { | 101 { |
| 94 client()->didPauseSpeaking(m_utterance); | 102 client()->didPauseSpeaking(m_utterance); |
| 95 } | 103 } |
| 96 | 104 |
| 97 void PlatformSpeechSynthesizerMock::resume() | 105 void PlatformSpeechSynthesizerMock::resume() |
| 98 { | 106 { |
| 99 client()->didResumeSpeaking(m_utterance); | 107 client()->didResumeSpeaking(m_utterance); |
| 100 } | 108 } |
| 101 | 109 |
| 102 | 110 |
| 103 } // namespace WebCore | 111 } // namespace WebCore |
| OLD | NEW |