static public void m_deviceButtonEvents(object sender, _DeviceListenerEventArgs e) { PlantronicsMessage eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_BUTTON_PRESS); switch (e.HeadsetButtonPressed) { case HeadsetButton.HeadsetButton_Talk: //WebSocket.buttonPressResponse(); eventMessage.AddToPayload("buttonName", "talk"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_Mute: eventMessage.AddToPayload("buttonName", "mute"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeUp: eventMessage.AddToPayload("buttonName", "volumeUp"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeDown: eventMessage.AddToPayload("buttonName", "volumeDown"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_MuteHeld: eventMessage.AddToPayload("buttonName", "muteHeld"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeUpHeld: eventMessage.AddToPayload("buttonName", "volumeUpHeld"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeDownHeld: eventMessage.AddToPayload("buttonName", "volumeDownHeld"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_Flash: eventMessage.AddToPayload("buttonName", "flash"); BroadcastMessage(eventMessage); break; } }
public static void m_deviceButtonEvents(object sender, _DeviceListenerEventArgs e) { PlantronicsMessage eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_BUTTON_PRESS); switch (e.HeadsetButtonPressed) { case HeadsetButton.HeadsetButton_Talk: //WebSocket.buttonPressResponse(); eventMessage.AddToPayload("buttonName", "talk"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_Mute: eventMessage.AddToPayload("buttonName", "mute"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeUp: eventMessage.AddToPayload("buttonName", "volumeUp"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeDown: eventMessage.AddToPayload("buttonName", "volumeDown"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_MuteHeld: eventMessage.AddToPayload("buttonName", "muteHeld"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeUpHeld: eventMessage.AddToPayload("buttonName", "volumeUpHeld"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_VolumeDownHeld: eventMessage.AddToPayload("buttonName", "volumeDownHeld"); BroadcastMessage(eventMessage); break; case HeadsetButton.HeadsetButton_Flash: eventMessage.AddToPayload("buttonName", "flash"); BroadcastMessage(eventMessage); break; } }
static void m_deviceListenerEvents_Handler(object sender, _DeviceListenerEventArgs e) { switch (e.DeviceEventType) { case DeviceEventType.DeviceEventType_ATDButtonPressed: case DeviceEventType.DeviceEventType_ATDStateChanged: // Console.WriteLine(string.Format("DL Event: ATDStateChanged:{0}", e.ATDStateChange)); break; case DeviceEventType.DeviceEventType_BaseButtonPressed: case DeviceEventType.DeviceEventType_BaseStateChanged: // Console.WriteLine(string.Format("DL Event: BaseButton:{0} BaseState:{1}", e.BaseButtonPressed, e.BaseStateChange)); break; case DeviceEventType.DeviceEventType_HeadsetButtonPressed: case DeviceEventType.DeviceEventType_HeadsetStateChanged: // Console.WriteLine(string.Format("DL Event: HeadsetButton:{0} HeadsetState:{1}", e.HeadsetButtonPressed, e.HeadsetButtonPressed)); break; default: // Console.WriteLine("DL Event"); break; } }
static void m_deviceListenerEvents_HandlerMethods(object sender, _DeviceListenerEventArgs e) { PlantronicsMessage eventMessage = null; switch (e.DeviceEventType) { case DeviceEventType.DeviceEventType_HeadsetStateChanged: switch (e.HeadsetStateChange) { case HeadsetStateChange.HeadsetStateChange_Don: eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_WEAR_STATE_CHANGED); eventMessage.Payload.Add("worn", "true"); BroadcastMessage(eventMessage); break; case HeadsetStateChange.HeadsetStateChange_Doff: eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_WEAR_STATE_CHANGED); eventMessage.Payload.Add("worn", "false"); BroadcastMessage(eventMessage); break; case HeadsetStateChange.HeadsetStateChange_Near: eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_PROXIMITY); eventMessage.Payload.Add("proximity", "near"); BroadcastMessage(eventMessage); break; case HeadsetStateChange.HeadsetStateChange_Far: eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_PROXIMITY); eventMessage.Payload.Add("proximity", "far"); BroadcastMessage(eventMessage); break; case HeadsetStateChange.HeadsetStateChange_ProximityDisabled: break; case HeadsetStateChange.HeadsetStateChange_ProximityEnabled: break; case HeadsetStateChange.HeadsetStateChange_ProximityUnknown: break; case HeadsetStateChange.HeadsetStateChange_InRange: RegisterForProximity(true); break; case HeadsetStateChange.HeadsetStateChange_OutofRange: break; case HeadsetStateChange.HeadsetStateChange_Docked: eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_DOCKED); eventMessage.Payload.Add("docked", "true"); BroadcastMessage(eventMessage); break; case HeadsetStateChange.HeadsetStateChange_UnDocked: eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_DOCKED); eventMessage.Payload.Add("docked", "false"); BroadcastMessage(eventMessage); break; default: break; } break; default: break; } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnHeadsetStateChanged(object sender, _DeviceListenerEventArgs e) { Debug.WriteLine("OnHeadsetStateChanged " + e.ToString()); _traceContext.Status("OnHeadsetStateChanged " + e.ToString()); if (e.HeadsetStateChange == HeadsetStateChange.HeadsetStateChange_InRange) { _notificationService.Notify("Headset in range", "Headset", NotificationType.Info, TimeSpan.FromSeconds(3)); _statusManager.SetLastStatus(); _interactionManager.PickupHeldCall(); } else if (e.HeadsetStateChange == HeadsetStateChange.HeadsetStateChange_OutofRange) { _notificationService.Notify("Headset out of range", "Headset", NotificationType.Warning, TimeSpan.FromSeconds(3)); _statusManager.SetToAwayFromDesk(); _interactionManager.HoldCall(); } }
void m_deviceListenerEvents_HandlerMethods(object sender, _DeviceListenerEventArgs e) { DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Received Spokes Event: " + e.ToString()); switch (e.DeviceEventType) { case DeviceEventType.DeviceEventType_HeadsetStateChanged: switch (e.HeadsetStateChange) { case HeadsetStateChange.HeadsetStateChange_Don: OnPutOn(new WearingStateArgs(true, false)); break; case HeadsetStateChange.HeadsetStateChange_Doff: OnTakenOff(new WearingStateArgs(false, false)); break; case HeadsetStateChange.HeadsetStateChange_Near: OnNear(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_Far: OnFar(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_ProximityDisabled: // Note: intepret this event as that the mobile phone has gone out of Bluetooth // range and is no longer paired to the headset. // Lock the PC, but immediately re-enable proximity OnProximityDisabled(EventArgs.Empty); // Immediately re-enable proximity RegisterForProximity(true); break; case HeadsetStateChange.HeadsetStateChange_ProximityEnabled: OnProximityEnabled(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_ProximityUnknown: OnProximityUnknown(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_InRange: OnInRange(EventArgs.Empty); //// Immediately re-enable proximity //RegisterForProximity(true); //// Request headset serial number (maybe user paired with another?) //RequestSingleSerialNumber(SerialNumberTypes.Headset); // New, get all the device state info on inrange trigger: // now poll for current state (proximity, mobile call status, donned status, mute status) GetInitialDeviceState(); // tell app to look again at battery level (headset in range) OnBatteryLevelChanged(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_OutofRange: OnOutOfRange(EventArgs.Empty); OnSerialNumber(new SerialNumberArgs("", SerialNumberTypes.Headset)); // tell app to look again at battery level (headset out of range / disconnected) OnBatteryLevelChanged(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_BatteryLevel: // note; on legend we always get a battery level when docking... // what is in this event, anything we can use to infer docked? DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("HeadsetStateChanged: BatteryLevel")); if (!m_ignorenextbattlevevent && (!m_lastdocked && m_battlevEventCount < 10)) // TEST, allow 10 of these thru so it gets docking more quickly on legend! { // Only if we were undocked and there were no battery level events // since we last undocked should we detect batt charge status (docking status). // This is so this only happens once, otherwise we get stuck in a loop // Because looking at the battery info triggers another batterylevel changed // event! m_ignorenextundockedevent = true; m_ignorenextbattlevevent = true; m_lastdocked = DetectLegendDockedState(false); // NOTE: will ALWAYS trigger another batterylevel change event // AND another UnDocked event if we are undocked! m_battlevEventCount++; } else { if (m_ignorenextbattlevevent) m_ignorenextbattlevevent = false; if (m_lastdocked) m_ignorenextundockedevent = false; } // tell app to look at battery level (it has changed) OnBatteryLevelChanged(EventArgs.Empty); break; case HeadsetStateChange.HeadsetStateChange_Docked: case HeadsetStateChange.HeadsetStateChange_DockedCharging: // new, for legend, but is v SLOW, sometimes never comes // only send to app the docked value if it is different to m_lastdocked (i.e. if it has changed) if (!m_lastdocked) OnDocked(new DockedStateArgs(true, false)); m_lastdocked = true; m_battlevEventCount = 0; break; case HeadsetStateChange.HeadsetStateChange_UnDocked: if (!m_ignorenextundockedevent) { // only send to app the docked value if it is different to m_lastdocked (i.e. if it has changed) if (m_lastdocked) OnUnDocked(new DockedStateArgs(false, false)); if (m_lastdocked) m_battlevEventCount = 0; // if we were docked before, set battlev event count to zero // i.e. we would like to check the next battery level event m_lastdocked = false; } m_ignorenextundockedevent = false; break; case HeadsetStateChange.HeadsetStateChange_MuteON: OnMuteChanged(new MuteChangedArgs(true)); break; case HeadsetStateChange.HeadsetStateChange_MuteOFF: OnMuteChanged(new MuteChangedArgs(false)); break; case HeadsetStateChange.HeadsetStateChange_MonoON: OnLineActiveChanged(new LineActiveChangedArgs(true)); break; case HeadsetStateChange.HeadsetStateChange_MonoOFF: OnLineActiveChanged(new LineActiveChangedArgs(false)); break; // LC add handler for headsetstate change serial number // We should be able to extract serial number at this point case HeadsetStateChange.HeadsetStateChange_SerialNumber: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("HeadsetStateChanged: SerialNumber")); ReadSerialNumber(SerialNumberTypes.Headset); break; default: break; } break; default: break; } }
// print device listner events void m_deviceListenerEvents_Handler(object sender, _DeviceListenerEventArgs e) { switch (e.DeviceEventType) { case DeviceEventType.DeviceEventType_ATDButtonPressed: break; case DeviceEventType.DeviceEventType_ATDStateChanged: DeviceListener_ATDStateChanged(sender, e); break; case DeviceEventType.DeviceEventType_BaseButtonPressed: DeviceListener_BaseButtonPressed(sender, e); break; case DeviceEventType.DeviceEventType_BaseStateChanged: DeviceListener_BaseStateChanged(sender, e); break; case DeviceEventType.DeviceEventType_HeadsetButtonPressed: DebugPrint(MethodInfo.GetCurrentMethod().Name, "DeviceEventType_HeadsetButtonPressed "+e.HeadsetButtonPressed.ToString()); break; case DeviceEventType.DeviceEventType_HeadsetStateChanged: default: break; } }
// Respond to various base state changes by updating our knowledge of multiline active/held states... void DeviceListener_BaseStateChanged(object sender, _DeviceListenerEventArgs e) { // write your own code to react to the state change switch (e.BaseStateChange) { case BaseStateChange.BaseStateChange_Unknown: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: Unknown")); break; case BaseStateChange.BaseStateChange_PstnLinkEstablished: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: PstnLinkEstablished")); GetActiveStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_PstnLinkDown: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: PstnLinkDown")); GetActiveStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_VoipLinkEstablished: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: VoipLinkEstablished")); GetActiveStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_VoipLinkDown: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: VoipLinkDown")); GetActiveStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_AudioMixer: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: AudioMixer")); break; case BaseStateChange.BaseStateChange_RFLinkWideBand: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: RFLinkWideBand")); break; case BaseStateChange.BaseStateChange_RFLinkNarrowBand: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: RFLinkNarrowBand")); break; case BaseStateChange.BaseStateChange_MobileLinkEstablished: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: MobileLinkEstablished")); GetActiveStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_MobileLinkDown: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: MobileLinkDown")); GetActiveStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_InterfaceStateChanged: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: InterfaceStateChanged")); GetHoldStates(); OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags)); break; case BaseStateChange.BaseStateChange_AudioLocationChanged: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: AudioLocationChanged")); break; // LC add handler for basestate change serial number // We should be able to extract serial number at this point case BaseStateChange.BaseStateChange_SerialNumber: DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: SerialNumber")); ReadSerialNumber(SerialNumberTypes.Base); break; } }
// Respond to various base button presses by passing button pressed event to app event handler private void DeviceListener_BaseButtonPressed(object sender, _DeviceListenerEventArgs e) { DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseButtonPressed: {0}", e.BaseButtonPressed.ToString())); OnBaseButtonPress(new BaseButtonPressArgs(e.BaseButtonPressed)); }
// #region DeviceListener events void DeviceListener_ATDStateChanged(object sender, _DeviceListenerEventArgs e) { //HANDLE ATD State changes switch (e.ATDStateChange) { case ATDStateChange.ATDStateChange_MobileInComing: m_mobIncoming = true; // set on call flag OnOnMobileCall(new OnMobileCallArgs(m_mobIncoming, MobileCallState.Ringing)); break; case ATDStateChange.ATDStateChange_MobileOnCall: OnOnMobileCall(new OnMobileCallArgs(m_mobIncoming, MobileCallState.OnCall)); break; case ATDStateChange.ATDStateChange_MobileCallEnded: m_mobIncoming = false; // clear mobile call direction flag OnNotOnMobileCall(EventArgs.Empty); break; case ATDStateChange.ATDStateChange_MobileCallerID: OnMobileCallerId(new MobileCallerIdArgs(GetMobileCallerID())); break; case ATDStateChange.ATDStateChange_MobileOutGoing: break; case ATDStateChange.ATDStateChange_PstnInComingCallRingOn: break; case ATDStateChange.ATDStateChange_PstnInComingCallRingOff: break; } }