• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "trigger_service.h"
17 
18 #include <malloc.h>
19 
20 #include "intell_voice_log.h"
21 
22 #define LOG_TAG "TriggerService"
23 using namespace std;
24 
25 namespace OHOS {
26 namespace IntellVoiceTrigger {
TriggerService()27 TriggerService::TriggerService()
28 {
29     triggerHelper_ = TriggerHelper::Create();
30     if (triggerHelper_ == nullptr) {
31         INTELL_VOICE_LOG_ERROR("triggerHelper_ is nullptr");
32     }
33 }
34 
~TriggerService()35 TriggerService::~TriggerService()
36 {}
37 
UpdateGenericTriggerModel(std::shared_ptr<GenericTriggerModel> model)38 void TriggerService::UpdateGenericTriggerModel(std::shared_ptr<GenericTriggerModel> model)
39 {
40     INTELL_VOICE_LOG_INFO("enter");
41     if (model == nullptr) {
42         INTELL_VOICE_LOG_ERROR("trigger model is null");
43         return;
44     }
45 
46     if (!TriggerDbHelper::GetInstance().UpdateGenericTriggerModel(model)) {
47         INTELL_VOICE_LOG_ERROR("failed to update generic model");
48     }
49 }
50 
DeleteGenericTriggerModel(int32_t uuid)51 void TriggerService::DeleteGenericTriggerModel(int32_t uuid)
52 {
53     INTELL_VOICE_LOG_INFO("enter");
54     TriggerDbHelper::GetInstance().DeleteGenericTriggerModel(uuid);
55 }
56 
GetGenericTriggerModel(int32_t uuid)57 std::shared_ptr<GenericTriggerModel> TriggerService::GetGenericTriggerModel(int32_t uuid)
58 {
59     INTELL_VOICE_LOG_INFO("enter");
60     auto model = TriggerDbHelper::GetInstance().GetGenericTriggerModel(uuid);
61     if (model == nullptr) {
62         INTELL_VOICE_LOG_ERROR("failed to get generic trigger model");
63         return nullptr;
64     }
65 
66     return model;
67 }
68 
StartRecognition(int32_t uuid,std::shared_ptr<IIntellVoiceTriggerRecognitionCallback> callback)69 int32_t TriggerService::StartRecognition(
70     int32_t uuid, std::shared_ptr<IIntellVoiceTriggerRecognitionCallback> callback)
71 {
72     if (triggerHelper_ == nullptr) {
73         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
74         return -1;
75     }
76 
77     auto model = GetGenericTriggerModel(uuid);
78     if (model == nullptr) {
79         INTELL_VOICE_LOG_ERROR("trigger model is nullptr, uuid:%{public}d", uuid);
80         return -1;
81     }
82 
83     return triggerHelper_->StartGenericRecognition(uuid, model, callback);
84 }
85 
StopRecognition(int32_t uuid,std::shared_ptr<IIntellVoiceTriggerRecognitionCallback> callback)86 int32_t TriggerService::StopRecognition(int32_t uuid, std::shared_ptr<IIntellVoiceTriggerRecognitionCallback> callback)
87 {
88     if (triggerHelper_ == nullptr) {
89         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
90         return -1;
91     }
92     return triggerHelper_->StopGenericRecognition(uuid, callback);
93 }
94 
UnloadTriggerModel(int32_t uuid)95 void TriggerService::UnloadTriggerModel(int32_t uuid)
96 {
97     if (triggerHelper_ == nullptr) {
98         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
99         return;
100     }
101 
102     triggerHelper_->UnloadGenericTriggerModel(uuid);
103 }
104 
SetParameter(const std::string & key,const std::string & value)105 int32_t TriggerService::SetParameter(const std::string &key, const std::string &value)
106 {
107     if (triggerHelper_ == nullptr) {
108         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
109         return -1;
110     }
111 
112     return triggerHelper_->SetParameter(key, value);
113 }
114 
GetParameter(const std::string & key)115 std::string TriggerService::GetParameter(const std::string &key)
116 {
117     if (triggerHelper_ == nullptr) {
118         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
119         return "";
120     }
121 
122     return triggerHelper_->GetParameter(key);
123 }
124 
125 #ifdef SUPPORT_TELEPHONY_SERVICE
AttachTelephonyObserver()126 void TriggerService::AttachTelephonyObserver()
127 {
128     if (triggerHelper_ == nullptr) {
129         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
130         return;
131     }
132     triggerHelper_->AttachTelephonyObserver();
133 }
134 
DetachTelephonyObserver()135 void TriggerService::DetachTelephonyObserver()
136 {
137     if (triggerHelper_ == nullptr) {
138         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
139         return;
140     }
141     triggerHelper_->DetachTelephonyObserver();
142 }
143 #endif
144 
AttachAudioCaptureListener()145 void TriggerService::AttachAudioCaptureListener()
146 {
147     if (triggerHelper_ == nullptr) {
148         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
149         return;
150     }
151     triggerHelper_->AttachAudioCaptureListener();
152 }
153 
DetachAudioCaptureListener()154 void TriggerService::DetachAudioCaptureListener()
155 {
156     if (triggerHelper_ == nullptr) {
157         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
158         return;
159     }
160     triggerHelper_->DetachAudioCaptureListener();
161 }
162 
AttachAudioRendererEventListener()163 void TriggerService::AttachAudioRendererEventListener()
164 {
165     if (triggerHelper_ == nullptr) {
166         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
167         return;
168     }
169     triggerHelper_->AttachAudioRendererEventListener();
170 }
171 
DetachAudioRendererEventListener()172 void TriggerService::DetachAudioRendererEventListener()
173 {
174     if (triggerHelper_ == nullptr) {
175         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
176         return;
177     }
178     triggerHelper_->DetachAudioRendererEventListener();
179 }
180 
AttachHibernateObserver()181 void TriggerService::AttachHibernateObserver()
182 {
183     if (triggerHelper_ == nullptr) {
184         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
185         return;
186     }
187     triggerHelper_->AttachHibernateObserver();
188 }
189 
DetachHibernateObserver()190 void TriggerService::DetachHibernateObserver()
191 {
192     if (triggerHelper_ == nullptr) {
193         INTELL_VOICE_LOG_ERROR("trigger helper is nullptr");
194         return;
195     }
196     triggerHelper_->DetachHibernateObserver();
197 }
198 }  // namespace IntellVoiceTrigger
199 }  // namespace OHOS
200