chromium/chrome/browser/ash/extensions/speech/speech_recognition_private_delegate.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_ASH_EXTENSIONS_SPEECH_SPEECH_RECOGNITION_PRIVATE_DELEGATE_H_
#define CHROME_BROWSER_ASH_EXTENSIONS_SPEECH_SPEECH_RECOGNITION_PRIVATE_DELEGATE_H_

namespace extensions {

// A delegate class that helps the SpeechRecognitionPrivateRecognizer handle
// speech recognition events.
class SpeechRecognitionPrivateDelegate {
 public:
  virtual ~SpeechRecognitionPrivateDelegate() {}

  // Below are methods to handle speech recognition events. `key` is used to
  // specify which SpeechRecognitionPrivateRecognizer this request came from.

  // Called whenever speech recognition stops.
  virtual void HandleSpeechRecognitionStopped(const std::string& key) = 0;
  // Called whenever speech recognition returns a result.
  virtual void HandleSpeechRecognitionResult(const std::string& key,
                                             const std::u16string& transcript,
                                             bool is_final) = 0;
  // Called whenever speech recognition encounters an error.
  virtual void HandleSpeechRecognitionError(const std::string& key,
                                            const std::string& error) = 0;
};

}  // namespace extensions

#endif  // CHROME_BROWSER_ASH_EXTENSIONS_SPEECH_SPEECH_RECOGNITION_PRIVATE_DELEGATE_H_