/// <summary>
        /// Recognizes the gesture.
        /// </summary>
        /// <param name="sender">The sender.</param>
        private void recognizeGesture(IBrailleIOAdapter sender)
        {
            IClassificationResult gesture = null;

            if (sender != null)
            {
                if (sender == brailleDisAdapter && brailleDisGestureRecognizer != null)
                {
                    gesture = brailleDisGestureRecognizer.FinishEvaluation();
                }
                else if (sender == showOffAdapter && showOffGestureRecognizer != null)
                {
                    gesture = showOffGestureRecognizer.FinishEvaluation();
                }
            }

            //TODO: do whatever you want with this gesture result
            if (Monitor != null)
            {
                if (gesture != null)
                {
                    Monitor.SetStatusText("GESTURE form '" + sender + "' :" + gesture.ToString());
                }
                else
                {
                    Monitor.SetStatusText("No gesture recognized");
                }
            }
        }
        /// <summary>
        /// Gets the mediator related to the adapter. The mediator should interpret the adapters generic
        /// data and map them to the general event style of the interaction manager events.
        /// </summary>
        /// <param name="adapter">The adapter.</param>
        /// <returns>A mediator for interpreting the adapter buttons</returns>
        public static IBrailleIOButtonMediator GetMediator(IBrailleIOAdapter adapter)
        {
            if (adapter == null) return null;
            BrailleIODevice device = adapter.Device;
            IBrailleIOButtonMediator mediator;
            if (MediatorList.TryGetValue(device.Name, out mediator)) { return mediator; }

            Type mediatorType;
            if (MediatorClassList.TryGetValue(adapter.GetType().ToString(), out mediatorType))
            {
                if (mediatorType != null)
                {
                    try
                    {
                        var obj = (IBrailleIOButtonMediator)Activator.CreateInstance(mediatorType);
                        MediatorList.TryAdd(device.Name, obj);
                        if (obj is AbstractBrailleIOButtonMediatorBase)
                        {
                            ((AbstractBrailleIOButtonMediatorBase)obj).setDevice(device);
                        }
                        return obj;
                    }
                    catch (System.Exception) { }
                }
            }
            return null;
        }
        void init()
        {
            Monitor = new ShowOff();
            IBrailleIOAdapter showOffAdapter = Monitor.InitializeBrailleIO();

            ActiveAdapter = showOffAdapter;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Fires the adapter removed event.
 /// </summary>
 /// <param name="adapter">The adapter.</param>
 protected virtual void fire_AdapterRemoved(IBrailleIOAdapter adapter)
 {
     if (AdapterRemoved != null)
     {
         try
         {
             AdapterRemoved.Invoke(this, new IBrailleIOAdapterEventArgs(adapter));
         }
         catch (Exception ex) { System.Diagnostics.Debug.WriteLine("ERROR in AbstractBrailleIOAdapterManagerBase fire_AdapterRemoved:\r\n" + ex); }
     }
 }
 /// <summary>
 /// Removes a new adapter from the manager.
 /// </summary>
 /// <param name="adapter">The adapter.</param>
 /// <returns>True if the adapter could be removed from the manager otherwise false.</returns>
 public virtual bool RemoveAdapter(IBrailleIOAdapter adapter)
 {
     if (Adapters.Contains(adapter))
     {
         try
         {
             Adapters.TryTake(out adapter);
             return(true);
         }
         catch { }
     }
     return(false);
 }
 /// <summary>
 /// Adds a new adapter to the manager.
 /// </summary>
 /// <param name="adapter">The adapter.</param>
 /// <returns>True if the adapter could be added to the manager otherwise false. It also returns false if the adapter is already added.</returns>
 public virtual bool AddAdapter(IBrailleIOAdapter adapter)
 {
     if (Adapters.Contains(adapter))
     {
         return(false);
     }
     try
     {
         Adapters.Add(adapter);
     }
     catch { return(false); }
     return(true);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Loads the available <see cref="IBrailleIOAdapter"/> from the adapter extension folder.
        /// </summary>
        /// <param name="manager">The manager.</param>
        /// <param name="iniObjects">The objects sent for initialization.</param>
        /// <returns>List of <see cref="IBrailleIOAdapter"/> from the adapter extension folder.</returns>
        public List <IBrailleIOAdapter> LoadAvailableAdapters(IBrailleIOAdapterManager manager, params object[] iniObjects)
        {
            List <IBrailleIOAdapter> adapters = new List <IBrailleIOAdapter>();

            adapterSupplierExtensions = loadAllAdpaterSuppliers(GetAdapterDirectoryPath());

            if (adapterSupplierExtensions != null && adapterSupplierExtensions.Count > 0)
            {
                foreach (IBrailleIOAdapterSupplier adapterSupplier in adapterSupplierExtensions)
                {
                    if (adapterSupplier != null)
                    {
                        initializeExtensionInterfaces(adapterSupplier, iniObjects);

                        IBrailleIOAdapter adapter = adapterSupplier.GetAdapter(manager);

                        if (adapter != null && !adapters.Contains(adapter))
                        {
                            // add to the list of all available adapters
                            adapters.Add(adapter);

                            initializeExtensionInterfaces(adapter, iniObjects);
                            try
                            {
                                bool initialized = adapterSupplier.InitializeAdapter();
                                if (initialized && manager != null)
                                {
                                    if (adapterSupplier.IsMainAdapter())
                                    {
                                        manager.ActiveAdapter = adapter;
                                    }
                                    else
                                    {
                                        manager.AddAdapter(adapter);
                                    }
                                    InteractionManager.Instance.AddNewDevice(adapter);
                                }
                            }
                            catch (Exception e) {
                                Logger.Instance.Log(LogPriority.DEBUG, "LectorGUI", "[EEROR] can't initialize and register extension adapter:\n" + e);
                            }
                        }
                    }
                }
            }

            mapMonitors(adapters, adapterSupplierExtensions);

            return(adapters);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Synchronizes the specified matrix.
        /// </summary>
        /// <param name="matrix">The matrix.</param>
        /// <returns></returns>
        public bool Synchronize(bool[,] matrix)
        {
            bool success = true;

            if (ActiveAdapter != null)
            {
                System.Threading.Tasks.Task T = new System.Threading.Tasks.Task(() =>
                {
                    ActiveAdapter.Synchronize(matrix);
                });
                T.Start();
            }

            if (Adapters.Count > 0)
            {
                if (Adapters.Count > 1)
                {
                    System.Threading.Tasks.Parallel.ForEach <IBrailleIOAdapter>(Adapters, (item) =>
                    {
                        try
                        {
                            if (item != null && item != ActiveAdapter && item is AbstractBrailleIOAdapterBase && ((AbstractBrailleIOAdapterBase)item).Synch)
                            {
                                item.Synchronize(matrix);
                            }
                        }
                        catch { success = false; }
                    });
                }
                else if (ActiveAdapter == null)
                {
                    System.Threading.Tasks.Task T2 = new System.Threading.Tasks.Task(() =>
                    {
                        try
                        {
                            IBrailleIOAdapter item = null;
                            item = Adapters.ElementAt(0);

                            if (item != null && item != ActiveAdapter && item is AbstractBrailleIOAdapterBase && ((AbstractBrailleIOAdapterBase)item).Synch)
                            {
                                item.Synchronize(matrix);
                            }
                        }
                        catch { success = false; }
                    });
                    T2.Start();
                }
            }
            return(success);
        }
        private void zoomToRealSize(object sender)
        {
            IBrailleIOAdapter adapter = sender as IBrailleIOAdapter;

            if (adapter != null)
            {
                float adapterRes = Utils.GetResoultion(adapter.DpiX, adapter.DpiY);
                adapterRes = 10.0f;
                float screenRes = Utils.GetScreenDpi();

                float zoom = adapterRes / (float)Math.Max(screenRes, 0.0000001);
                zoom = 0.10561666418313964f;
                zoomTo(BS_MAIN_NAME, "center", zoom);
            }
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Unregsiter from device events to prevent a double registration or deactivate.
 /// </summary>
 /// <param name="adapter">The adapter to unregister from.</param>
 void unregsiterFromDeviceEvents(IBrailleIOAdapter adapter)
 {
     if (adapter != null)
     {
         try
         {
             adapter.initialized     -= adapter_initialized;
             adapter.keyStateChanged -= adapter_keyStateChanged;
         }
         catch (Exception ex)
         {
             // log the occurred exception to log file.
             if (logger != null)
             {
                 logger.Log(tud.mci.tangram.LogPriority.IMPORTANT, this, "Exception while unregister from device events.", ex);
             }
         }
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Registers to some important events from hardware devices.
        /// </summary>
        /// <param name="adapter">The adapter to register to.</param>
        void registerToDeviceEvents(IBrailleIOAdapter adapter)
        {
            if (adapter != null)
            {
                try
                {
                    // first unrgister to prevent double interpretation
                    unregsiterFromDeviceEvents(adapter);

                    adapter.initialized     += adapter_initialized;
                    adapter.keyStateChanged += adapter_keyStateChanged;
                }
                catch (Exception ex)
                {
                    // log the occurred exception to log file.
                    if (logger != null)
                    {
                        logger.Log(tud.mci.tangram.LogPriority.IMPORTANT, this, "Exception while register to device events.", ex);
                    }
                }
            }
        }
        private void interpretGeneralButtons(BrailleIO_DeviceButtonStates states, IBrailleIOAdapter sender)
        {
            if (states != BrailleIO_DeviceButtonStates.None)
            {
                if ((states & BrailleIO_DeviceButtonStates.AbortDown) == BrailleIO_DeviceButtonStates.AbortDown)
                {
                    invertImage(BS_MAIN_NAME, "center");
                }
                else if ((states & BrailleIO_DeviceButtonStates.AbortUp) == BrailleIO_DeviceButtonStates.AbortUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.DownDown) == BrailleIO_DeviceButtonStates.DownDown)
                {
                    moveVertical(BS_MAIN_NAME, "center", -5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.DownUp) == BrailleIO_DeviceButtonStates.DownUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.EnterDown) == BrailleIO_DeviceButtonStates.EnterDown)
                {
                }
                else if ((states & BrailleIO_DeviceButtonStates.EnterUp) == BrailleIO_DeviceButtonStates.EnterUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.GestureDown) == BrailleIO_DeviceButtonStates.GestureDown)
                {
                    /*if (io != null) { io.AllPinsDown(); }*/
                    if (sender == brailleDisAdapter)
                    {
                        interpretBrailleDisGesture = true;
                    }
                    if (sender == showOffAdapter)
                    {
                        interpretShowOfGesture = true;
                    }
                }
                else if ((states & BrailleIO_DeviceButtonStates.GestureUp) == BrailleIO_DeviceButtonStates.GestureUp)
                {
                    /*if (io != null) { io.RestoreLastRendering(); }*/
                    // evaluate the result
                    if (sender == brailleDisAdapter)
                    {
                        interpretBrailleDisGesture = false;
                    }
                    if (sender == showOffAdapter)
                    {
                        interpretShowOfGesture = false;
                    }
                    recognizeGesture(sender);
                }

                if ((states & BrailleIO_DeviceButtonStates.LeftDown) == BrailleIO_DeviceButtonStates.LeftDown)
                {
                    moveHorizontal(BS_MAIN_NAME, "center", 5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.LeftUp) == BrailleIO_DeviceButtonStates.LeftUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.RightDown) == BrailleIO_DeviceButtonStates.RightDown)
                {
                    moveHorizontal(BS_MAIN_NAME, "center", -5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.RightUp) == BrailleIO_DeviceButtonStates.RightUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.UpDown) == BrailleIO_DeviceButtonStates.UpDown)
                {
                    moveVertical(BS_MAIN_NAME, "center", 5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.UpUp) == BrailleIO_DeviceButtonStates.UpUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.ZoomInDown) == BrailleIO_DeviceButtonStates.ZoomInDown)
                {
                    zoom(BS_MAIN_NAME, "center", 1.3);
                    //zoomPlus(BS_MAIN_NAME, "center", 0.00005);
                }
                else if ((states & BrailleIO_DeviceButtonStates.ZoomInUp) == BrailleIO_DeviceButtonStates.ZoomInUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.ZoomOutDown) == BrailleIO_DeviceButtonStates.ZoomOutDown)
                {
                    //zoomPlus(BS_MAIN_NAME, "center", -0.00005);
                    zoom(BS_MAIN_NAME, "center", 0.6);
                }
                else if ((states & BrailleIO_DeviceButtonStates.ZoomOutUp) == BrailleIO_DeviceButtonStates.ZoomOutUp)
                {
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="IBrailleIOAdapterEventArgs"/> class.
 /// </summary>
 /// <param name="adapter">The adapter.</param>
 public IBrailleIOAdapterEventArgs(IBrailleIOAdapter adapter)
 {
     Adapter = adapter;
 }
 private void unregisterForEvents(IBrailleIOAdapter adapter)
 {
     try
     {
         adapter.initialized -= new EventHandler<BrailleIO_Initialized_EventArgs>(adapter_initialized);
         adapter.errorOccurred -= new EventHandler<BrailleIO_ErrorOccured_EventArgs>(adapter_errorOccured);
         adapter.inputChanged -= new EventHandler<BrailleIO_InputChanged_EventArgs>(adapter_inputChanged);
         adapter.keyPressed -= new EventHandler<BrailleIO_KeyPressed_EventArgs>(adapter_keyPressed);
         adapter.keyStateChanged -= new EventHandler<BrailleIO_KeyStateChanged_EventArgs>(adapter_keyStateChanged);
         adapter.touchValuesChanged -= new EventHandler<BrailleIO_TouchValuesChanged_EventArgs>(adapter_touchValuesChanged);
     }
     catch (Exception)
     { }
 }
        /// <summary>
        /// Adds a new device to the InteractionManger.
        /// </summary>
        /// <param name="device">The new device.</param>
        /// <returns>true if it could be added otherwise false</returns>
        public bool AddNewDevice(IBrailleIOAdapter device)
        {
            if (device != null)
            {
                registerForEvents(device);

                // gesture recognizer registration for the device
                initalizeGestureRecognition(device.Device);
                if (device.Connected)
                {
                    devices.Add(device.Device.Name, device);
                }
            }
            return false;
        }