Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / 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     /// <since_tizen> 3 </since_tizen>
31     public class RecognitionResult
32     {
33         private ResultEvent _resultEvent;
34         private VoiceCommandList _list;
35         private string _result;
36
37         internal RecognitionResult(ResultEvent evt, IntPtr cmdList, IntPtr result)
38         {
39             _resultEvent = evt;
40             SafeCommandListHandle handle = new SafeCommandListHandle(cmdList);
41             handle._ownership = false;
42             _list = new VoiceCommandList(handle);
43             _result = Marshal.PtrToStringAnsi(result);
44         }
45
46         /// <summary>
47         /// The result event
48         /// </summary>
49         /// <since_tizen> 3 </since_tizen>
50         public ResultEvent Result
51         {
52             get
53             {
54                 return _resultEvent;
55             }
56         }
57
58         /// <summary>
59         /// The spoken text
60         /// </summary>
61         /// <since_tizen> 3 </since_tizen>
62         public string ResultMessage
63         {
64             get
65             {
66                 return _result;
67             }
68         }
69
70
71         /// <summary>
72         /// The recognized command list
73         /// </summary>
74         /// <since_tizen> 3 </since_tizen>
75         public VoiceCommandList CommandList
76         {
77             get
78             {
79                 return _list;
80             }
81         }
82     }
83 }