kodi
SpeechRecognitionAndroid.h
1 /*
2  * Copyright (C) 2012-2022 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "ISpeechRecognitionCallback.h"
12 #include "speech/ISpeechRecognition.h"
13 #include "threads/CriticalSection.h"
14 
15 #include <memory>
16 #include <vector>
17 
18 class CJNIContext;
19 
20 namespace jni
21 {
22 class CJNIXBMCSpeechRecognitionListener;
23 }
24 
27 {
28 public:
29  explicit CSpeechRecognitionAndroid(const CJNIContext& context);
30  ~CSpeechRecognitionAndroid() override;
31 
32  // ISpeechRecognition implementation
33  void StartSpeechRecognition(
34  const std::shared_ptr<speech::ISpeechRecognitionListener>& listener) override;
35 
36  // ISpeechRecognitionCallback implementation
37  void SpeechRecognitionDone(jni::CJNIXBMCSpeechRecognitionListener* listener) override;
38 
39 private:
40  CSpeechRecognitionAndroid() = delete;
41 
42  static void RegisterSpeechRecognitionListener(void* thiz);
43 
44  const CJNIContext& m_context;
45  CCriticalSection m_speechRecognitionListenersMutex;
46  std::vector<std::unique_ptr<jni::CJNIXBMCSpeechRecognitionListener>> m_speechRecognitionListeners;
47 };
Definition: JNIXBMCSpeechRecognitionListener.h:17
Definition: JNIMainActivity.h:15
Definition: ISpeechRecognition.h:17
Definition: ISpeechRecognitionCallback.h:16
Definition: SpeechRecognitionAndroid.h:25