Update package version to 0.1.5
[platform/core/uifw/inputdelegator.git] / src / w-input-stt-engine.cpp
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <Elementary.h>
18 #include <gmodule.h>
19 #include <stdlib.h>
20 #include <string.h>
21 #include <vconf.h>
22 #include <feedback.h>
23 #include <wav_player.h>
24 #include <vconf-internal-keys.h>
25 #include <app.h>
26
27 #include "w-input-selector.h"
28 #include "w-input-stt-voice.h"
29 #include "w-input-stt-engine.h"
30 #include "Debug.h"
31
32 #define FREE(ptr)       \
33                 do { \
34                         if (ptr != NULL) { \
35                                 free(ptr); \
36                                 ptr = NULL; \
37                         } \
38                 } while (0);
39
40
41
42
43 ////////////////////////////////////////////////////////////////////////////////
44 // STT APIs callers
45 ////////////////////////////////////////////////////////////////////////////////
46
47 bool _app_stt_initialize(VoiceData *voice_data)
48 {
49         PRINTFUNC(NO_PRINT, "_app_stt_initialize");
50         VoiceData *vd = (VoiceData *)voice_data;
51
52         try {
53                 if(vd->sttmanager) {
54                         vd->sttmanager->Cancel();
55                         delete vd->sttmanager;
56                         vd->sttmanager = NULL;
57                 }
58
59                 if(vd->sttfeedback) {
60                         delete vd->sttfeedback;
61                         vd->sttfeedback = NULL;
62                 }
63
64                 vd->sttfeedback = new is::stt::SttFeedback();
65                 vd->sttfeedback->SetVoiceData(vd);
66
67                 vd->sttmanager = new is::stt::SttManager(*(vd->sttfeedback));
68                 vd->sttmanager->Prepare();
69         } catch(std::exception &e) {
70                 PRINTFUNC(DLOG_ERROR, "%s", e.what());
71                 return false;
72         }
73
74         return true;
75 }