📄 headset_event_handler.c
字号:
hfpCallTransferToggle ( lApp ) ;
break ;
case EventSCOLinkOpen :
EVENTS_DEBUG(("EventScoLinkOpen\n")) ;
break ;
case EventSCOLinkClose:
EVENTS_DEBUG(("EventScoLinkClose\n")) ;
break ;
case EventResetPairedDeviceList:
EVENTS_DEBUG(("EventResetPairedDeviceList\n")) ;
if ( stateManagerIsHfpConnected () )
{
/* Then we have an SLC active */
hfpSlcDisconnect( lApp );
}
if ( stateManagerIsA2dpConnected() )
{
a2dpDisconnectRequest( lApp );
}
configManagerReset ( lApp ) ;
break ;
case EventToggleMute:
EVENTS_DEBUG(("EventToggleMute\n")) ;
VolumeToggleMute( lApp ) ;
break ;
case EventMuteOn :
EVENTS_DEBUG(("EventMuteOn\n")) ;
VolumeMuteOn ( lApp ) ;
break ;
case EventMuteOff:
EVENTS_DEBUG(("EventMuteOff\n")) ;
VolumeMuteOff ( lApp ) ;
break ;
case EventMuteReminder :
EVENTS_DEBUG(("EventMuteReminder\n")) ;
MessageSendLater( &lApp->task , EventMuteReminder , 0 ,D_SEC(lApp->Timeouts.MuteRemindTime_s ) ) ;
break;
case EventVolumeDown:
EVENTS_DEBUG(("EventVolumeDown\n")) ;
VolumeDown( lApp ) ;
break;
case EventVolumeUp:
EVENTS_DEBUG(("EventVolumeUp\n")) ;
VolumeUp( lApp ) ;
break;
case EventEnterDutState :
EVENTS_DEBUG(("EnterDUTState\n")) ;
stateManagerEnterTestModeState ( lApp ) ;
break;
case EventEnterDutMode :
EVENTS_DEBUG(("EventEnterDutMode\n")) ;
if (lState != headsetTestMode)
MessageSend( &lApp->task , EventEnterDutState, 0 ) ;
ConnectionEnterDutMode();
break;
case (EventAutoSwitchOff):
EVENTS_DEBUG(("EventAutoSwitchOff [%d] sec elapsed\n" , lApp->Timeouts.AutoSwitchOffTime_s )) ;
switch ( lState )
{
case headsetHfpConnectable:
case headsetConnDiscoverable:
if (!stateManagerIsA2dpConnected() && !stateManagerIsAvrcpConnected())
MessageSend ( &lApp->task , EventPowerOff , 0) ;
break;
case headsetPoweringOn:
case headsetHfpConnected:
case headsetOutgoingCallEstablish:
case headsetIncomingCallEstablish:
case headsetActiveCall:
case headsetTestMode:
break ;
default:
EVENTS_DEBUG(("HS : UE ?s [%d]\n", lState));
break ;
}
break;
case EventResetComplete:
EVENTS_DEBUG(("EventResetComplete\n"));
break;
case EventError:
EVENTS_DEBUG(("EventError\n")) ;
break;
case EventEnableLEDS:
EVENTS_DEBUG(("EventEnableLEDS\n")) ;
LedManagerEnableLEDS ( &lApp->theLEDTask ) ;
break ;
case EventDisableLEDS:
EVENTS_DEBUG(("EventDisableLEDS\n")) ;
LedManagerDisableLEDS ( &lApp->theLEDTask ) ;
break ;
case EventEnablePowerOff:
EVENTS_DEBUG(("EventEnablePowerOff\n")) ;
break;
case EventChargeError:
EVENTS_DEBUG(("EventChargeError\n")) ;
break;
case EventEndOfCall :
EVENTS_DEBUG(("EventEndOfCall\n")) ;
break;
case EventEstablishA2dp:
EVENTS_DEBUG(("EventEstablishA2dp %d\n",lApp->slcConnectFromPowerOn)) ;
/* Don't indicate event if it's from power on */
if (lApp->slcConnectFromPowerOn)
lIndicateEvent = FALSE ;
/* Only send a connect request if the headset isn't currently connecting A2DP and the headset
is on and not in pairing mode.
*/
if ( (stateManagerGetHfpState() >= headsetHfpConnectable) && !a2dpIsConnecting(lApp) )
{
if ( !stateManagerIsA2dpConnected() || lApp->slcConnectFromPowerOn )
{
/* Use reconnect sequence */
a2dpReconnectProcedure(lApp);
}
else
{
/* Signalling is connected, but now check if the media is connected. */
if (lApp->a2dp.sink)
{
/* Signalling and media both connected */
EVENTS_DEBUG(("EventEstablishA2dp - Ignored as already connected\n")) ;
/*do not perform the action*/
lIndicateEvent = FALSE ;
}
else
{
/* Media not connected so do it now */
a2dpConnectRequest(lApp, TRUE);
}
}
}
else
{
EVENTS_DEBUG(("EventEstablishA2dp - Ignored\n")) ;
/*do not perform the action*/
lIndicateEvent = FALSE ;
}
lApp->slcConnectFromPowerOn = FALSE;
break;
case EventA2dpConnected:
EVENTS_DEBUG(("EventA2dpConnected\n")) ;
break;
case EventA2dpDisconnected:
EVENTS_DEBUG(("EventA2dpDisconnected\n")) ;
break;
case EventVolumeMax:
EVENTS_DEBUG(("EventVolumeMax\n"));
break;
case EventVolumeMin:
EVENTS_DEBUG(("EventVolumeMin\n"));
break;
case EventPlay:
EVENTS_DEBUG(("EventPlay\n"));
/* Always indicate play event as will try to connect A2DP if not already connected */
avrcpEventPlay(lApp);
break;
case EventPause:
EVENTS_DEBUG(("EventPause\n"));
/* Only indicate event if AVRCP connected */
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventPause(lApp);
}
else
{
EVENTS_DEBUG(("EventPause - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventStop:
EVENTS_DEBUG(("EventStop\n"));
/* Only indicate event if AVRCP connected */
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventStop(lApp);
}
else
{
EVENTS_DEBUG(("EventStop - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventSkipForward:
EVENTS_DEBUG(("EventSkipForward\n"));
/* Only indicate event if AVRCP connected */
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventSkipForward(lApp);
}
else
{
EVENTS_DEBUG(("EventSkipForward - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventSkipBackward:
EVENTS_DEBUG(("EventSkipBackward\n"));
/* Only indicate event if AVRCP connected */
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventSkipBackward(lApp);
}
else
{
EVENTS_DEBUG(("EventSkipBackward - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventFFWDPress:
EVENTS_DEBUG(("EventFFWDPress\n"));
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventFastForwardPress(lApp);
}
else
{
EVENTS_DEBUG(("EventFFWDPress - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventFFWDRelease:
EVENTS_DEBUG(("EventFFWDRelease\n"));
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventFastForwardRelease(lApp);
}
else
{
EVENTS_DEBUG(("EEventFFWDRelease - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventRWDPress:
EVENTS_DEBUG(("EventRWDPress\n"));
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventFastRewindPress(lApp);
}
else
{
EVENTS_DEBUG(("EventRWDPress - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
case EventRWDRelease:
EVENTS_DEBUG(("EventRWDRelease\n"));
if ( stateManagerIsAvrcpConnected() )
{
avrcpEventFastRewindRelease(lApp);
}
else
{
EVENTS_DEBUG(("EEventRWDRelease - Ignored\n")) ;
lIndicateEvent = FALSE ;
}
break;
default:
EVENTS_DEBUG(("UNHANDLED EVENT: 0x%x\n",id));
lIndicateEvent = FALSE ;
break;
}
if ( lIndicateEvent )
{
LEDManagerIndicateEvent ( &lApp->theLEDTask , id ) ;
TonesPlayEvent ( lApp , id ) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -