📄 dc550_phonesm_display12.c
字号:
/*****************************************************************************/
/* CONFIDENTIAL */
/* Sigpro Copyright 2003, All rights reserved */
/*****************************************************************************/
/* CLIENT: Telematrix */
/* PROJECT: DC550 Digital Centrex Phone */
/* FILE: dc550_phonesm_display12.c */
/*****************************************************************************/
/* The Display 12 State displays a message for an amount of time that can */
/* be specified by the user. In general, this state will display a message */
/* for 12 seconds. */
/*****************************************************************************/
#define __DC550_PHONESM_DISPLAY12_EXTERN__
#include "dc550_phonesm_display12.h"
#include "dc550_phonesm_active.h"
#include "dc550_phonesm_idle.h"
#include "dc550_phonesm_memory.h"
#include "dc550_phonesm_predial.h"
#include "dc550_phonesm_program.h"
#include "dc550_phonesm_infodisplay12.h"
#include "dc550_phonesm_infoaudio.h"
#include "dc550_display.h"
#include "dc550_usartdriver.h"
#include "dc550_leddriver.h"
/******************************************************************************
* GLOBAL VARIABLES
*****************************************************************************/
PHONESM_STATE_E phonesm_display12_exitstate;
DC550InterruptCounter phonesm_display12_periodtimeout;
/******************************************************************************
* FUNCTION: void phonesm_display12_init(void) {
******************************************************************************
* DESCRIPTION:
* This function is called to initialize all of the Display 12 State
* variables.
*****************************************************************************/
void phonesm_display12_init(void) {
phonesm_display12_exitstate = PHONESM_STATE_IDLE;
phonesm_display12_periodtimeout = 0;
}
/******************************************************************************
* FUNCTION: void phonesm_display12_state_enter(void)
******************************************************************************
* DESCRIPTION:
* This function is called whenever the telephone enters the Display 12 State.
*****************************************************************************/
void phonesm_display12_state_enter(void) {
if(phonesm_display12_periodtimeout == 0)
phonesm_display12_periodtimeout = phonesm_infodisplay12_getperiods();
display_writelineone(0, phonesm_infodisplay12_getlineone() );
display_writelinetwo(0, phonesm_infodisplay12_getlinetwo() );
// Turn on LCD Backlight
leddriver_setstate(LED_INDICATOR_BACKLIGHT, LED_STATE_ON);
}
/******************************************************************************
* FUNCTION: void phonesm_display12_state_exit(void)
******************************************************************************
* DESCRIPTION:
* This function is called whenever the telephone enters the Display 12 State.
*****************************************************************************/
void phonesm_display12_state_exit(void) {
phonesm_display12_periodtimeout = 0;
}
/******************************************************************************
* FUNCTION: BOOL phonesm_display12_exec_hookswitch(BOOL updown)
******************************************************************************
* DESCRIPTION:
* This function is called when the hookswitch goes up or down while the
* phone is in Display 12 state.
*****************************************************************************/
BOOL phonesm_display12_exec_hookswitch(BOOL updown) {
// Hookswitch went up
if(updown == HOOKSTATE_UP) {
switch(phonesm_infoaudio_getspeakingdevice()) {
case PHONESM_SPEAKINGDEVICE_HANDSET:
case PHONESM_SPEAKINGDEVICE_HEADSET:
case PHONESM_SPEAKINGDEVICE_SPEAKERPHONE:
if(phonesm_display12_exitstate == PHONESM_STATE_ACTIVE) {
phonesm_active_exec_hookswitch(updown);
return 0;
}
else {
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
case PHONESM_SPEAKINGDEVICE_NONE:
case PHONESM_SPEAKINGDEVICE_ALERTER:
default:
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
}
// Hookswitch went down
else {
switch(phonesm_display12_exitstate) {
case PHONESM_STATE_IDLE:
phonesm_idle_exec_hookswitch(updown);
break;
case PHONESM_STATE_ACTIVE:
phonesm_active_exec_hookswitch(updown);
break;
case PHONESM_STATE_PROGRAM:
phonesm_program_exec_hookswitch(updown);
return 0;
case PHONESM_STATE_MEMORY:
phonesm_memory_exec_hookswitch(updown);
return 0;
case PHONESM_STATE_PREDIAL:
phonesm_predial_exec_hookswitch(updown);
return 0;
case PHONESM_STATE_INIT:
case PHONESM_STATE_DISPLAY12:
case PHONESM_STATE_VOLUME:
case PHONESM_STATE_CONTRAST:
default:
// These should never happen
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
}
// This is just to eliminate a compiler warning
return 0;
}
/******************************************************************************
* FUNCTION:
* BOOL phonesm_display12_exec_keypress(unsigned int key, BOOL updown)
******************************************************************************
* DESCRIPTION:
* This function is called whenever a key goes up or down while the phone
* is in the Display 12 State. Some keys do nothing; other keys exit the
* Display 12 State.
*****************************************************************************/
BOOL phonesm_display12_exec_keypress(unsigned int key, BOOL updown) {
// Currently the Display 12 State will only respond to key down messages
if(updown == KEYSTATE_DOWN) {
switch(key) {
// The Scroll Keys activate the Contrast State
case KEYPAD_SCROLL_UP:
case KEYPAD_SCROLL_DOWN:
phonesm_activate_state(PHONESM_STATE_CONTRAST);
return 1;
// These keys deactivate the Display 12 State
case KEYPAD_DIGIT_0:
case KEYPAD_DIGIT_1:
case KEYPAD_DIGIT_2:
case KEYPAD_DIGIT_3:
case KEYPAD_DIGIT_4:
case KEYPAD_DIGIT_5:
case KEYPAD_DIGIT_6:
case KEYPAD_DIGIT_7:
case KEYPAD_DIGIT_8:
case KEYPAD_DIGIT_9:
case KEYPAD_DIGIT_STAR:
case KEYPAD_DIGIT_POUND:
case KEYPAD_LOCAL_STORENUM:
case KEYPAD_LOCAL_PAUSE:
case KEYPAD_LOCAL_PROGRAM:
case KEYPAD_LOCAL_MEMORY:
case KEYPAD_LOCAL_SELECT:
case KEYPAD_LOCAL_SAVE:
case KEYPAD_FEATURE_HOLD:
case KEYPAD_AUDIO_MUTE:
case KEYPAD_FEATURE_01:
case KEYPAD_AUDIO_HEADSET:
case KEYPAD_AUDIO_SPEAKER:
case KEYPAD_FEATURE_VOICEMAIL:
case KEYPAD_FEATURE_02:
case KEYPAD_FEATURE_03:
case KEYPAD_FEATURE_04:
case KEYPAD_FEATURE_05:
case KEYPAD_FEATURE_06:
case KEYPAD_FEATURE_07:
case KEYPAD_FEATURE_08:
case KEYPAD_FEATURE_09:
case KEYPAD_FEATURE_10:
case KEYPAD_FEATURE_11:
case KEYPAD_FEATURE_RELEASE:
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
// The Volume Keys activates the Volume State
case KEYPAD_VOLUME_UP:
case KEYPAD_VOLUME_DOWN:
phonesm_activate_state(PHONESM_STATE_VOLUME);
return 1;
// The Exit key just exits the Display 12 State
case KEYPAD_LOCAL_EXIT:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -