Add TurnOffRequest class and turn off command do deactivate and deinitialize 43/282043/1
author이다예 <dyamy.lee@samsung.com>
Thu, 22 Sep 2022 06:32:47 +0000 (15:32 +0900)
committerdyamy-lee <dyamy.lee@samsung.com>
Mon, 26 Sep 2022 10:07:07 +0000 (19:07 +0900)
Add TurnOffRequest class for parsing voice touch turn off command.
When outputEvent type is turnOffRequest, do deactivate and deinitialize mmi

Change-Id: Id6153298db45652627d6e23b45898d4da8e521b4

voice-touch/Interop/Interop.Mmi.cs
voice-touch/VoiceTouch.cs
voice-touch/VoiceTouchEventManager.cs
voice-touch/VoiceTouchMmi/VoiceTouchMmiManager.cs
voice-touch/VoiceTouchMmi/VoiceTouchResult.cs

index 4bd0aa60e0ff8092f527a11e5543756190a3adc4..5197e5d824eb4fdf4113fc661d730740ae6a2450 100644 (file)
@@ -50,6 +50,9 @@ internal static partial class Interop
         [DllImport(Libraries.Mmi, EntryPoint = "mmi_activate_input_event")]
         internal static extern MmiError MmiActivateInputEvent(int input_event_type);
 
+        [DllImport(Libraries.Mmi, EntryPoint = "mmi_deactivate_input_event")]
+        internal static extern MmiError MmiDeactivateInputEvent(int input_event_type);
+
         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
         internal delegate void MMIResult(IntPtr user_data, int input_event_type, IntPtr result_out);
     }
index 2a6bc037dc09cf511900f3341efcc45a56a22132..cfb765047d675de6a1b97643e3aac056fae164ab 100644 (file)
@@ -47,7 +47,7 @@ namespace VoiceTouch
             window.SetAcceptFocus(false);
             window.SetInputRegion(new Rectangle(0, 0, 0, 0));
 
-            mVoiceTouchMmiManager = new VoiceTouchMmiManager();
+            mVoiceTouchMmiManager = VoiceTouchMmiManager.Instance;
             mVtObject = new VoiceTouchEventManager();
             mVoiceTouchViewManager = VoiceTouchViewManager.Instance;
 
index ab567fe1d0ec7f5b28116dff60f359f3f78b18d7..536db46c60a0f75d5a82f4e1655088e98757da97 100644 (file)
@@ -34,10 +34,12 @@ namespace VoiceTouch
         public const string UI_OBJECT_RESULT_BY_GRID = "showGrids";
         public const string REJECT = "reject";
         public const string ERROR = "error";
+        public const string TURN_OFF_REQUEST = "turnOffRequest";
 
         public string previousTooltipType = "None";
 
         protected VoiceTouchViewManager mVoiceTouchViewManager = VoiceTouchViewManager.Instance;
+        protected VoiceTouchMmiManager mVoiceTouchMmiManager = VoiceTouchMmiManager.Instance;
 
         public void VoiceTouchResult(object sender, SetResultEventArgs e)
         {
@@ -84,6 +86,10 @@ namespace VoiceTouch
                     case ERROR:
                         mVoiceTouchViewManager.ShowAsrFinalResult(voiceTouchResult.error.reason);
                         return;
+                    case TURN_OFF_REQUEST:
+                        mVoiceTouchMmiManager.VoiceTouchDeactivate();
+                        mVoiceTouchMmiManager.VoiceTouchMmiDeinitialize();
+                        return;
                     default:
                         Tizen.Log.Error(LogTag, "No Matched outputEvent type.");
                         return;
index b32d8fc412778c01cb2681930febdac4733ad431..3ed7acc645e62abb594b923a585b9fc558270314 100644 (file)
@@ -85,9 +85,22 @@ namespace VoiceTouch.VoiceTouchMmi
             MMI_INPUT_EVENT_TYPE_VOICE_RECOGNITION
         };
 
+        private static VoiceTouchMmiManager instance = null;
         private MMIResult _resultDelegate;
         private event EventHandler<SetResultEventArgs> _mmiResultVoiceTouch;
+        private int _input_event_type;
 
+        public static VoiceTouchMmiManager Instance
+        {
+            get
+            {
+                if (instance == null)
+                {
+                    instance = new VoiceTouchMmiManager();
+                }
+                return instance;
+            }
+        }
         public void VoiceTouchMmiIinitialize()
         {
             Tizen.Log.Debug(LogTag, "Enter Init");
@@ -127,6 +140,19 @@ namespace VoiceTouch.VoiceTouchMmi
                 Tizen.Log.Error(LogTag, "Activate InputEvent with error " + error);
                 //throw ExceptionFactory.CreationException(error);
             }
+            _input_event_type = input_event_type;
+            return 0;
+        }
+
+        public int VoiceTouchDeactivate()
+        {
+            MmiError error = MmiDeactivateInputEvent(_input_event_type);
+            if (error != MmiError.None)
+            {
+                Tizen.Log.Error(LogTag, "Deactivate InputEvent with error " + error);
+                //throw ExceptionFactory.CreationException(error);
+            }
+            _input_event_type = 0;
             return 0;
         }
 
index fa199eaaccfac82d9c55287187b668a1e114d893..cf649cc7429c9ab888f91f6aa325347c7ee0650d 100644 (file)
@@ -32,6 +32,7 @@ namespace VoiceTouch.VoiceTouchMmi
         public ASRResult asrFinalResult;
         public Reject reject;
         public Error error;
+        public TurnOffRequest turnOffRequest;
     }
     class UiClickableObject
     {
@@ -66,4 +67,8 @@ namespace VoiceTouch.VoiceTouchMmi
         public string reason;
         public int timestamp;
     }
+    class TurnOffRequest
+    {
+        public int timestamp;
+    }
 }
\ No newline at end of file