/usr/include/thunderbird/mozilla/dom/nsSpeechTask.h is in thunderbird-dev 1:52.8.0-1~deb8u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_dom_nsSpeechTask_h
#define mozilla_dom_nsSpeechTask_h
#include "MediaStreamGraph.h"
#include "SpeechSynthesisUtterance.h"
#include "nsIAudioChannelAgent.h"
#include "nsISpeechService.h"
namespace mozilla {
class SharedBuffer;
namespace dom {
class SpeechSynthesisUtterance;
class SpeechSynthesis;
class SynthStreamListener;
class nsSpeechTask : public nsISpeechTask
, public nsIAudioChannelAgentCallback
, public nsSupportsWeakReference
{
friend class SynthStreamListener;
public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsSpeechTask, nsISpeechTask)
NS_DECL_NSISPEECHTASK
NS_DECL_NSIAUDIOCHANNELAGENTCALLBACK
explicit nsSpeechTask(SpeechSynthesisUtterance* aUtterance);
nsSpeechTask(float aVolume, const nsAString& aText);
virtual void Pause();
virtual void Resume();
virtual void Cancel();
virtual void ForceEnd();
float GetCurrentTime();
uint32_t GetCurrentCharOffset();
void SetSpeechSynthesis(SpeechSynthesis* aSpeechSynthesis);
void InitDirectAudio();
void InitIndirectAudio();
void SetChosenVoiceURI(const nsAString& aUri);
virtual void SetAudioOutputVolume(float aVolume);
bool IsPreCanceled()
{
return mPreCanceled;
};
bool IsPrePaused()
{
return mPrePaused;
}
protected:
virtual ~nsSpeechTask();
nsresult DispatchStartImpl();
virtual nsresult DispatchStartImpl(const nsAString& aUri);
virtual nsresult DispatchEndImpl(float aElapsedTime, uint32_t aCharIndex);
virtual nsresult DispatchPauseImpl(float aElapsedTime, uint32_t aCharIndex);
virtual nsresult DispatchResumeImpl(float aElapsedTime, uint32_t aCharIndex);
virtual nsresult DispatchErrorImpl(float aElapsedTime, uint32_t aCharIndex);
virtual nsresult DispatchBoundaryImpl(const nsAString& aName,
float aElapsedTime,
uint32_t aCharIndex);
virtual nsresult DispatchMarkImpl(const nsAString& aName,
float aElapsedTime, uint32_t aCharIndex);
RefPtr<SpeechSynthesisUtterance> mUtterance;
float mVolume;
nsString mText;
bool mInited;
bool mPrePaused;
bool mPreCanceled;
private:
void End();
void SendAudioImpl(RefPtr<mozilla::SharedBuffer>& aSamples, uint32_t aDataLen);
nsresult DispatchStartInner();
nsresult DispatchEndInner(float aElapsedTime, uint32_t aCharIndex);
void CreateAudioChannelAgent();
void DestroyAudioChannelAgent();
RefPtr<SourceMediaStream> mStream;
RefPtr<MediaInputPort> mPort;
nsCOMPtr<nsISpeechTaskCallback> mCallback;
nsCOMPtr<nsIAudioChannelAgent> mAudioChannelAgent;
uint32_t mChannels;
RefPtr<SpeechSynthesis> mSpeechSynthesis;
bool mIndirectAudio;
nsString mChosenVoiceURI;
};
} // namespace dom
} // namespace mozilla
#endif
|