#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/modules/speech/speech_recognition.h"
#include <algorithm>
#include "base/feature_list.h"
#include "build/build_config.h"
#include "media/base/audio_parameters.h"
#include "media/base/media_switches.h"
#include "media/mojo/mojom/speech_recognition.mojom-blink.h"
#include "media/mojo/mojom/speech_recognition_audio_forwarder.mojom-blink.h"
#include "media/mojo/mojom/speech_recognition_error.mojom-blink.h"
#include "media/mojo/mojom/speech_recognition_result.mojom-blink.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_sink.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_track.h"
#include "third_party/blink/renderer/modules/speech/speech_recognition_controller.h"
#include "third_party/blink/renderer/modules/speech/speech_recognition_error_event.h"
#include "third_party/blink/renderer/modules/speech/speech_recognition_event.h"
#include "third_party/blink/renderer/modules/speech/speech_recognition_media_stream_audio_sink.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
namespace blink {
SpeechRecognition* SpeechRecognition::Create(ExecutionContext* context) { … }
void SpeechRecognition::start(ExceptionState& exception_state) { … }
void SpeechRecognition::start(MediaStreamTrack* media_stream_track,
ExceptionState& exception_state) { … }
void SpeechRecognition::stopFunction() { … }
void SpeechRecognition::abort() { … }
ScriptPromise<IDLBoolean> SpeechRecognition::onDeviceWebSpeechAvailable(
ScriptState* script_state,
const String& lang,
ExceptionState& exception_state) { … }
ScriptPromise<IDLBoolean> SpeechRecognition::installOnDeviceSpeechRecognition(
ScriptState* script_state,
const String& lang,
ExceptionState& exception_state) { … }
void SpeechRecognition::ResultRetrieved(
WTF::Vector<media::mojom::blink::WebSpeechRecognitionResultPtr> results) { … }
void SpeechRecognition::ErrorOccurred(
media::mojom::blink::SpeechRecognitionErrorPtr error) { … }
void SpeechRecognition::Started() { … }
void SpeechRecognition::AudioStarted() { … }
void SpeechRecognition::SoundStarted() { … }
void SpeechRecognition::SoundEnded() { … }
void SpeechRecognition::AudioEnded() { … }
void SpeechRecognition::Ended() { … }
const AtomicString& SpeechRecognition::InterfaceName() const { … }
ExecutionContext* SpeechRecognition::GetExecutionContext() const { … }
void SpeechRecognition::ContextDestroyed() { … }
bool SpeechRecognition::HasPendingActivity() const { … }
void SpeechRecognition::PageVisibilityChanged() { … }
void SpeechRecognition::OnConnectionError() { … }
void SpeechRecognition::StartInternal(ExceptionState* exception_state) { … }
SpeechRecognition::SpeechRecognition(LocalDOMWindow* window)
: … { … }
SpeechRecognition::~SpeechRecognition() = default;
void SpeechRecognition::Trace(Visitor* visitor) const { … }
}