Modification of GetResult API
[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             _list = new VoiceCommandList(handle);
41             _result = Marshal.PtrToStringAnsi(result);
42         }
43
44         /// <summary>
45         /// The result event
46         /// </summary>
47         public ResultEvent Result
48         {
49             get
50             {
51                 return _resultEvent;
52             }
53         }
54
55         /// <summary>
56         /// The spoken text
57         /// </summary>
58         public string ResultMessage
59         {
60             get
61             {
62                 return _result;
63             }
64         }
65
66
67         /// <summary>
68         /// The recognized command list
69         /// </summary>
70         public VoiceCommandList CommandList
71         {
72             get
73             {
74                 return _list;
75             }
76         }
77     }
78 }