99469e9b70e07dc60e8836e28663685214be13ce
[platform/core/csapi/uix-voice-control.git] / Tizen.Uix.VoiceControl / Tizen.Uix.VoiceControl / RecognitionResult.cs
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 using System;
18 using System.Collections.Generic;
19 using System.Runtime.InteropServices;
20 using static Interop.VoiceControl;
21 using static Interop.VoiceControlCommand;
22
23 namespace Tizen.Uix.VoiceControl
24 {
25     /// <summary>
26     /// The recognition result from the engine.
27     /// If the duplicated commands are recognized, the event(e.g. Result.Rejected) of command may be rejected
28     /// for selecting command as priority.If you set similar or same commands or the recognized results are multi-results, CommandList has the multi commands.
29     /// </summary>
30     public class RecognitionResult
31     {
32         private ResultEvent _resultEvent;
33         private VoiceCommandList _list;
34         private string _result;
35
36         internal RecognitionResult(ResultEvent evt, IntPtr cmdList, IntPtr result)
37         {
38             _resultEvent = evt;
39             SafeCommandListHandle handle = new SafeCommandListHandle(cmdList);
40             handle._ownership = false;
41             _list = new VoiceCommandList(handle);
42             _result = Marshal.PtrToStringAnsi(result);
43         }
44
45         /// <summary>
46         /// The result event
47         /// </summary>
48         public ResultEvent Result
49         {
50             get
51             {
52                 return _resultEvent;
53             }
54         }
55
56         /// <summary>
57         /// The spoken text
58         /// </summary>
59         public string ResultMessage
60         {
61             get
62             {
63                 return _result;
64             }
65         }
66
67
68         /// <summary>
69         /// The recognized command list
70         /// </summary>
71         public VoiceCommandList CommandList
72         {
73             get
74             {
75                 return _list;
76             }
77         }
78     }
79 }