/// <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; }
/// <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); }
/// <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); }
/// <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); } }
/// <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); } } } }
/// <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; }