private void OnButtonEvent(JA.IDevice device, JA.ButtonEvent button, bool value)
{
try {
switch (button) {
case JA.ButtonEvent.HookSwitch:
if (value) {
if (!hook_enabled)
StatusChanged(this, new StatusEventArgs(HEADSET_EVENT_TYPE.Talk));
hook_enabled = true;
}
else {
if (hook_enabled) {
StatusChanged(this, new StatusEventArgs(HEADSET_EVENT_TYPE.Hangup));
device.SetHookState(false);
}
hook_enabled = false;
}
break;
case JA.ButtonEvent.MicMute:
if (!ignore_next_mute)
StatusChanged(this, new StatusEventArgs(HEADSET_EVENT_TYPE.ToggleMute));
ignore_next_mute = false;
break;
case JA.ButtonEvent.Flash:
StatusChanged(this, new StatusEventArgs(HEADSET_EVENT_TYPE.Flash));
break;
case JA.ButtonEvent.RejectCall:
StatusChanged(this, new StatusEventArgs(HEADSET_EVENT_TYPE.Hangup));
break;
case JA.ButtonEvent.FireAlarm:
throw new Exception("WTF");
case JA.ButtonEvent.Redial:
StatusChanged(this, new StatusEventArgs(HEADSET_EVENT_TYPE.Redial));
break;
}
}
catch (Exception){}
}