📄 dc550_phonesm_active.c
字号:
case MDC_DMS_VOICE_ON:
case MDC_DMS_HANDSFREE_ON:
// These will probably only come when the DMS switch thinks that the
// CPE is on hook
switch(phonesm_infoaudio_speakingdevice) {
case PHONESM_SPEAKINGDEVICE_NONE:
phonesm_active_pendingoffhook = PHONESM_ACTIVE_OFFHOOK_PENDING;
phonesm_active_pendingonhook = 0;
phonesm_active_pendingdevice = PHONESM_SPEAKINGDEVICE_NONE;
modemcontroller_send_modemmessage(MDC_CPE_HOOKSTATE_UP);
if( controller_gethookswitchstate() == HOOKSTATE_UP )
phonesm_infoaudio_set_speakingdevice(PHONESM_SPEAKINGDEVICE_HANDSET);
else if( phonesm_infosettings_getdefaultdevice() ==
PHONESM_SPEAKINGDEVICE_HEADSET ) {
phonesm_infoaudio_set_speakingdevice(PHONESM_SPEAKINGDEVICE_HEADSET);
leddriver_setstate(LED_INDICATOR_HEADSET, LED_STATE_ON);
}
else {
phonesm_infoaudio_set_speakingdevice(
PHONESM_SPEAKINGDEVICE_SPEAKERPHONE);
leddriver_setstate(LED_INDICATOR_SPEAKERPHONE, LED_STATE_ON);
}
break;
case PHONESM_SPEAKINGDEVICE_ALERTER:
audio_ringer(FALSE);
phonesm_active_pendingoffhook = PHONESM_ACTIVE_OFFHOOK_PENDING;
phonesm_active_pendingonhook = 0;
phonesm_active_pendingdevice = PHONESM_SPEAKINGDEVICE_NONE;
modemcontroller_send_modemmessage(MDC_CPE_HOOKSTATE_UP);
if( controller_gethookswitchstate() == HOOKSTATE_UP )
phonesm_infoaudio_set_speakingdevice(PHONESM_SPEAKINGDEVICE_HANDSET);
else if( phonesm_infosettings_getdefaultdevice() ==
PHONESM_SPEAKINGDEVICE_HEADSET ) {
phonesm_infoaudio_set_speakingdevice(PHONESM_SPEAKINGDEVICE_HEADSET);
leddriver_setstate(LED_INDICATOR_HEADSET, LED_STATE_ON);
}
else {
phonesm_infoaudio_set_speakingdevice(
PHONESM_SPEAKINGDEVICE_SPEAKERPHONE);
leddriver_setstate(LED_INDICATOR_SPEAKERPHONE, LED_STATE_ON);
}
break;
case PHONESM_SPEAKINGDEVICE_HEADSET:
case PHONESM_SPEAKINGDEVICE_SPEAKERPHONE:
case PHONESM_SPEAKINGDEVICE_HANDSET:
// These should never happen unless messages got crossed. Nevertheless,
// a Hookstate Up message should be sent (perhaps again)
// modemcontroller_send_modemmessage(MDC_CPE_HOOKSTATE_UP);
break;
}
return 0;
case MDC_DMS_VOICE_OFF:
case MDC_DMS_HANDSFREE_OFF:
// Since nothing is done when a Handsfree On or Voice On are received,
// nothing will be done when a Handsfree Off or Voice Off are received
return 0;
case MDC_DMS_BUZZER_OFF:
phonesm_active_buzzeron = FALSE;
audio_buzzer(FALSE);
if( phonesm_infoaudio_muteon == PHONESM_ACTIVE_MUTE_AUTO ) {
phonesm_infoaudio_muteon = FALSE;
leddriver_setstate(LED_INDICATOR_MUTE, LED_STATE_OFF);
audio_mute(FALSE);
}
return 0;
case MDC_DMS_BUZZER_ON:
phonesm_active_buzzeron = TRUE;
switch(phonesm_infoaudio_speakingdevice) {
case PHONESM_SPEAKINGDEVICE_NONE:
case PHONESM_SPEAKINGDEVICE_HANDSET:
case PHONESM_SPEAKINGDEVICE_HEADSET:
case PHONESM_SPEAKINGDEVICE_ALERTER:
audio_buzzer(TRUE);
break;
case PHONESM_SPEAKINGDEVICE_SPEAKERPHONE:
audio_buzzer(TRUE);
if( !phonesm_infoaudio_muteon ) {
phonesm_infoaudio_muteon = PHONESM_ACTIVE_MUTE_AUTO;
leddriver_setstate(LED_INDICATOR_MUTE, LED_STATE_ON);
audio_mute(TRUE);
}
break;
}
return 0;
/***** DMS Indicator Commands ********************************************/
// None of the LED commands cause a state change
case MDC_DMS_INDICATOR_KEY01_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_OFF);
// Clear Call Timer
switch(phonesm_active_timerstate) {
case TIMERSTATE_ON:
case TIMERSTATE_INVISIBLE:
// Put the Call Timer in Display 12 Holder
phonesm_infodisplay12_cleardisplay();
phonesm_infodisplay12_writelinetwo(13, phonesm_active_timer_display);
phonesm_infodisplay12_setperiods(60);
// Clear Call Timer
phonesm_active_timerstate = TIMERSTATE_OFF;
phonesm_active_timer_periods = 0;
phonesm_active_timer_display[1] = '0';
phonesm_active_timer_display[2] = '0';
phonesm_active_timer_display[4] = '0';
phonesm_active_timer_display[5] = '0';
phonesm_active_timer_display[7] = '0';
phonesm_active_timer_display[8] = '0';
if(phonesm_active_timerwinkon || phonesm_active_timerwinkoff) {
phonesm_active_timerwinkon = 0;
phonesm_active_timerwinkoff =
(PHONESM_ACTIVE_TIMER_OFFTIME + phonesm_active_timer_periods);
display_writelinetwo(0, phonesm_active_buffer_linetwo);
}
// Activate Display 12 State
phonesm_activate_state(PHONESM_STATE_DISPLAY12);
break;
case TIMERSTATE_AWAITINGHANDSETON:
phonesm_active_timerstate = TIMERSTATE_OFF;
break;
}
return 0;
case MDC_DMS_INDICATOR_KEY01_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_WINK);
// Make Call Timer Invisible
switch(phonesm_active_timerstate) {
case TIMERSTATE_ON:
phonesm_active_timerstate = TIMERSTATE_INVISIBLE;
if(phonesm_active_displayenabled)
display_writelinetwo(0, phonesm_active_buffer_linetwo);
else
display_cleardisplay();
if(phonesm_active_timerwinkon || phonesm_active_timerwinkoff) {
phonesm_active_timerwinkon = 0;
phonesm_active_timerwinkoff =
(PHONESM_ACTIVE_TIMER_OFFTIME + phonesm_active_timer_periods);
}
break;
case TIMERSTATE_AWAITINGHANDSETON:
phonesm_active_timerstate = TIMERSTATE_OFF;
break;
case TIMERSTATE_INVISIBLE:
case TIMERSTATE_OFF:
// Nothing has to be done here
break;
}
return 0;
case MDC_DMS_INDICATOR_KEY01_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_FLASH);
// Make Call Timer Invisible
switch(phonesm_active_timerstate) {
case TIMERSTATE_ON:
phonesm_active_timerstate = TIMERSTATE_INVISIBLE;
if(phonesm_active_displayenabled)
display_writelinetwo(0, phonesm_active_buffer_linetwo);
else
display_cleardisplay();
if(phonesm_active_timerwinkon || phonesm_active_timerwinkoff) {
phonesm_active_timerwinkon = 0;
phonesm_active_timerwinkoff =
(PHONESM_ACTIVE_TIMER_OFFTIME + phonesm_active_timer_periods);
}
break;
case TIMERSTATE_AWAITINGHANDSETON:
phonesm_active_timerstate = TIMERSTATE_OFF;
break;
case TIMERSTATE_INVISIBLE:
case TIMERSTATE_OFF:
// Nothing has to be done here
break;
}
return 0;
case MDC_DMS_INDICATOR_KEY01_ON:
leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_ON);
switch(phonesm_active_timerstate) {
case TIMERSTATE_OFF:
if(phonesm_infosettings_getcalltimerenabled()) {
if(phonesm_active_handsetactivated) {
phonesm_active_timerstate = TIMERSTATE_ON;
phonesm_active_timer_periods = PHONESM_ACTIVE_TIMER_SECOND;
if(phonesm_active_timerwinkoff == 0)
display_writelinetwo(13, phonesm_active_timer_display);
}
else
phonesm_active_timerstate = TIMERSTATE_AWAITINGHANDSETON;
}
break;
case TIMERSTATE_INVISIBLE:
phonesm_active_timerstate = TIMERSTATE_ON;
if(phonesm_active_timerwinkoff == 0)
display_writelinetwo(13, phonesm_active_timer_display);
break;
case TIMERSTATE_ON:
case TIMERSTATE_AWAITINGHANDSETON:
// These should never happen
break;
}
return 0;
case MDC_DMS_INDICATOR_KEY02_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY02_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY02_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY02_ON:
leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY03_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY03_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY03_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY03_ON:
leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY04_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY04_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY04_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY04_ON:
leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY05_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY05_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY05_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY05_ON:
leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY06_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY06_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY06_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY06_ON:
leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY07_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY07_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY07_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY07_ON:
leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY08_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY08_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY08_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY08_ON:
leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY09_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY09_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY09_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_FLASH);
return 0;
case MDC_DMS_INDICATOR_KEY09_ON:
leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_ON);
return 0;
case MDC_DMS_INDICATOR_KEY10_OFF:
leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STATE_OFF);
return 0;
case MDC_DMS_INDICATOR_KEY10_WINK:
leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STATE_WINK);
return 0;
case MDC_DMS_INDICATOR_KEY10_FLASH:
leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STAT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -