📄 fmradiosrc.c
字号:
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_press_search_button
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_press_search_button(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.is_button_down)
{
return;
}
g_fmrdo.selected_button = FMRDO_BUTTON_SEARCH;
g_fmrdo.is_button_down = TRUE;
mmi_fmrdo_redraw_main_toggle_button(g_fmrdo.selected_button, g_fmrdo.is_button_down, g_fmrdo.is_search_on, TRUE);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_release_search_button
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_release_search_button(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.is_button_down && g_fmrdo.selected_button == FMRDO_BUTTON_SEARCH)
{
g_fmrdo.is_button_down = FALSE;
g_fmrdo.is_search_on = !g_fmrdo.is_search_on;
mmi_fmrdo_redraw_main_toggle_button(
g_fmrdo.selected_button,
g_fmrdo.is_button_down,
g_fmrdo.is_search_on,
TRUE);
/* stop if it's searching */
mmi_fmrdo_search_frequency_stop();
g_fmrdo.selected_button = FMRDO_BUTTON_NONE;
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_press_power_button
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_press_power_button(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.is_button_down)
{
return;
}
#ifdef __MMI_FM_RADIO_BIND_EARPHONE__
if (!isEarphonePlugged)
{
DisplayPopup(
(PU8) GetString(STR_ID_FMRDO_PLEASE_PLUG_IN_EARPHONE),
IMG_GLOBAL_WARNING,
1,
2000,
(U8) WARNING_TONE);
return;
}
#endif /* __MMI_FM_RADIO_BIND_EARPHONE__ */
g_fmrdo.selected_button = FMRDO_BUTTON_POWER;
g_fmrdo.is_button_down = TRUE;
mmi_fmrdo_redraw_main_toggle_button(g_fmrdo.selected_button, g_fmrdo.is_button_down, g_fmrdo.is_power_on, TRUE);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_release_power_button
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_release_power_button(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.is_button_down && g_fmrdo.selected_button == FMRDO_BUTTON_POWER)
{
g_fmrdo.is_button_down = FALSE;
/* stop if it's searching */
mmi_fmrdo_search_frequency_stop();
/* power off if it's on */
mmi_fmrdo_power_on((BOOL) ! g_fmrdo.is_power_on);
mmi_fmrdo_redraw_main_toggle_button(g_fmrdo.selected_button, g_fmrdo.is_button_down, g_fmrdo.is_power_on, TRUE);
g_fmrdo.selected_button = FMRDO_BUTTON_NONE;
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_exit_root
* DESCRIPTION
*
* PARAMETERS
* param_p [?]
* RETURNS
* U8
*****************************************************************************/
U8 mmi_fmrdo_exit_root(void *param_p)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (!g_fmrdo.is_background_play)
{
mmi_fmrdo_power_on(FALSE);
}
/* Keep frequency after exit FM radio */
WriteValue(NVRAM_FMRDO_LAST_CHANNEL, &g_fmrdo.frequency, DS_SHORT, &error);
return FALSE;
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_main_register_keys
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
#ifdef __MMI_TOUCH_SCREEN__
extern void mmi_fmrdo_pen_down_hdlr(mmi_pen_point_struct pos);
extern void mmi_fmrdo_pen_up_hdlr(mmi_pen_point_struct pos);
extern void mmi_fmrdo_pen_move_hdlr(mmi_pen_point_struct pos);
#endif /* __MMI_TOUCH_SCREEN__ */
void mmi_fmrdo_main_register_keys(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 number_keys[] = {KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9};
const mmi_fmrdo_skin_struct *skin_p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
void (*button_press_hdlr[]) (void) =
{
MMI_dummy_function, /* FMRDO_BUTTON_NONE */
mmi_fmrdo_press_power_button, /* FMRDO_BUTTON_POWER */
mmi_fmrdo_press_search_button, /* FMRDO_BUTTON_SEARCH */
mmi_fmrdo_press_step_up_button, /* FMRDO_BUTTON_STEP_UP */
mmi_fmrdo_press_step_down_button /* FMRDO_BUTTON_STEP_DOWN */
};
void (*button_release_hdlr[]) (void) =
{
MMI_dummy_function, /* FMRDO_BUTTON_NONE */
mmi_fmrdo_release_power_button, /* FMRDO_BUTTON_POWER */
mmi_fmrdo_release_search_button, /* FMRDO_BUTTON_SEARCH */
mmi_fmrdo_release_step_up_button, /* FMRDO_BUTTON_STEP_UP */
mmi_fmrdo_release_step_down_button /* FMRDO_BUTTON_STEP_DOWN */
};
/* associate button press, release handlers with skin settings and register arrow key handlers */
skin_p = &g_fmrdo_skins[g_fmrdo.skin_index];
SetKeyHandler(button_release_hdlr[skin_p->left_key_mapping], KEY_LEFT_ARROW, KEY_EVENT_UP);
SetKeyHandler(button_release_hdlr[skin_p->right_key_mapping], KEY_RIGHT_ARROW, KEY_EVENT_UP);
SetKeyHandler(button_release_hdlr[skin_p->up_key_mapping], KEY_UP_ARROW, KEY_EVENT_UP);
SetKeyHandler(button_release_hdlr[skin_p->down_key_mapping], KEY_DOWN_ARROW, KEY_EVENT_UP);
SetKeyHandler(button_press_hdlr[skin_p->left_key_mapping], KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(button_press_hdlr[skin_p->right_key_mapping], KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(button_press_hdlr[skin_p->up_key_mapping], KEY_UP_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(button_press_hdlr[skin_p->down_key_mapping], KEY_DOWN_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(MMI_dummy_function, KEY_UP_ARROW, KEY_EVENT_REPEAT);
SetKeyHandler(MMI_dummy_function, KEY_RIGHT_ARROW, KEY_EVENT_REPEAT);
SetKeyHandler(MMI_dummy_function, KEY_LEFT_ARROW, KEY_EVENT_REPEAT);
SetKeyHandler(MMI_dummy_function, KEY_DOWN_ARROW, KEY_EVENT_REPEAT);
/* register number key handlers */
SetGroupKeyHandler(mmi_fmrdo_release_number_key, number_keys, 9, KEY_EVENT_UP);
SetGroupKeyHandler(mmi_fmrdo_long_press_number_key, number_keys, 9, KEY_LONG_PRESS);
/* register LSK, RSK hanlders */
SetKeyHandler(mmi_fmrdo_entry_main_option, KEY_LSK, KEY_EVENT_UP);
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
/* register volume inc, dec handlers */
SetKeyHandler(mmi_fmrdo_inc_volume, KEY_VOL_UP, KEY_EVENT_DOWN);
SetKeyHandler(mmi_fmrdo_dec_volume, KEY_VOL_DOWN, KEY_EVENT_DOWN);
/* MTK Leo add 20050301, add touch screen support for FM Radio */
#ifdef __MMI_TOUCH_SCREEN__
mmi_pen_register_down_handler(mmi_fmrdo_pen_down_hdlr);
mmi_pen_register_up_handler(mmi_fmrdo_pen_up_hdlr);
mmi_pen_register_move_handler(mmi_fmrdo_pen_move_hdlr);
#endif /* __MMI_TOUCH_SCREEN__ */
/* MTK Leo end */
/* register FM record key handler */
#if defined(__MMI_FM_RADIO_RECORD__)
SetKeyHandler(mmi_fmrdo_release_record_button, KEY_ENTER, KEY_EVENT_UP);
#endif
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_entry_main
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_entry_main(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
EntryNewScreen(SCR_ID_FMRDO_MAIN, mmi_fmrdo_exit_main, mmi_fmrdo_entry_main, NULL);
entry_full_screen();
g_fmrdo.in_main_screen = TRUE;
/* button state */
g_fmrdo.selected_button = FMRDO_BUTTON_NONE;
g_fmrdo.is_button_down = FALSE;
g_fmrdo.normal_repeat_step_count = 0;
g_fmrdo.is_long_press_number_key = FALSE;
g_fmrdo.twinkle_frequency_count = 0;
/* draw main screen */
mmi_fmrdo_show_main(STR_GLOBAL_OPTIONS, STR_GLOBAL_BACK, g_fmrdo.skin_index);
/* Register all key handler */
mmi_fmrdo_main_register_keys();
SetDelScrnIDCallbackHandler(SCR_ID_FMRDO_MAIN, (HistoryDelCBPtr) mmi_fmrdo_exit_root);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_exit_main
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_exit_main(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_fmrdo.in_main_screen = FALSE;
/* stop timer and update frequency if we don't release step up/down button yet */
StopTimer(FMRDO_REPEAT_STEP_TIMER);
StopTimer(FMRDO_TWINKLE_FREQUENCY_TIMER);
if (g_fmrdo.normal_repeat_step_count != 0)
{
mmi_fmrdo_set_frequency(g_fmrdo.step_freq);
}
/* stop previous twinkle frequency if necessary */
mmi_fmrdo_stop_twinkle_frequency(FALSE);
/* stop if it's searching */
mmi_fmrdo_search_frequency_stop();
#if defined(__MMI_FM_RADIO_RECORD__)
/* Abort due to exit screen */
g_fmrdo.rec.user_abort = FALSE;
mmi_fmrdo_stop_record_on_exit();
mmi_fmrdo_util_stop_duration();
#endif /* defined(__MMI_FM_RADIO_RECORD__) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_entry_main_option
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_entry_main_option(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 item_texts[10];
U16 item_icons[10];
U16 item_count, i;
U8 *gui_buffer;
U8 *item_popups[10];
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
EntryNewScreen(SCR_ID_FMRDO_MAIN_OPTION, mmi_fmrdo_exit_main_option, mmi_fmrdo_entry_main_option, NULL);
gui_buffer = GetCurrGuiBuffer(SCR_ID_FMRDO_MAIN_OPTION);
item_count = GetNumOfChild(MENU_ID_FMRDO_MAIN_OPTION);
GetSequenceStringIds(MENU_ID_FMRDO_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -