📄 fmradiosrc.c
字号:
/* Code Body */
/*----------------------------------------------------------------*/
mmi_fmrdo_common_LSK_RSK_hdlr(
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
mmi_fmrdo_power_off,
GoBackHistory);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_power_off
* DESCRIPTION
* Power OFF the FM
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_power_off(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
// g_fmrdo.is_ready = FALSE;
g_fmrdo.is_still_playing = FALSE;
mmi_fmrdo_power_on(FALSE);
mmi_fmrdo_goback2_main_menu();
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_highlight_tune_freuency
* DESCRIPTION
* Highlight Handler for FM Tune Frequency
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_highlight_tune_freuency(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_fmrdo_common_LSK_RSK_hdlr(
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
mmi_fmrdo_tune_freq,
GoBackHistory);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_tune_freq
* DESCRIPTION
* Shows the FM Radio Tune Screen
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_tune_freq(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 *guiBuffer;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
EntryNewScreen(SCR_ID_FMRDO_TUNE_FREQUENCY, NULL, mmi_fmrdo_tune_freq, NULL);
guiBuffer = GetCurrGuiBuffer(SCR_ID_FMRDO_TUNE_FREQUENCY);
if (guiBuffer == NULL)
{
memset((void*)freq_tune_buffer, '\0', MAX_MANUAL_INPUT_LEN);
}
ShowCategory5Screen(
STR_ID_FMRDO_TUNE,
0 /* IMG_ID_FMRDO_TUNE */ ,
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
INPUT_TYPE_DECIMAL_NUMERIC,
(PU8) freq_tune_buffer,
MAX_MANUAL_INPUT_LEN,
guiBuffer);
SetLeftSoftkeyFunction(mmi_fmrdo_tune_freq_LSK, KEY_EVENT_UP);
SetCategory5RightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_tune_freq_LSK
* DESCRIPTION
* Check whether frequency is valid or not.
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_tune_freq_LSK(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 Freq = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
Freq = mmi_fmrdo_get_freq_from_buffer(freq_tune_buffer);
if (Freq < MIN_FM_FREQUENCY || Freq > MAX_FM_FREQUENCY)
{
DisplayPopup((PU8) GetString(STR_ID_FMRDO_VALID_FM_BANDWIDTH), IMG_GLOBAL_WARNING, 1, 2000, (U8) WARNING_TONE);
}
else
{
if (!g_fmrdo.is_power_on)
{
mmi_fmrdo_power_on(TRUE);
}
mmi_fmrdo_set_frequency(Freq);
g_fmrdo.is_direct_channel_play = FALSE;
mmi_fmrdo_channel_play_and_save();
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_get_freq_from_buffer
* DESCRIPTION
* Shows the FM Radio Main Menu
* PARAMETERS
* input_buff [IN]
* a(?) [IN] Input_buff
* RETURNS
* TRUE
*****************************************************************************/
U16 mmi_fmrdo_get_freq_from_buffer(UI_string_type input_buff)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 freq = 0, i;
BOOL fraction = FALSE, skip = FALSE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (i = 0; i < input_buff[i] != 0; i++)
{
if (input_buff[i] == L'.')
{
fraction = TRUE;
}
else if (!skip)
{
freq = freq * 10 + input_buff[i] - L'0';
if (fraction)
{
skip = TRUE;
}
}
}
if (freq != 0 && !skip)
{
freq *= 10;
}
return freq;
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_channel_play_and_save
* DESCRIPTION
* Shows the FM Radio Play Screen when User come from Tune Option
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_channel_play_and_save(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_fmrdo_common_play_entry(
SCR_ID_FMRDO_CHANNEL_PLAY_SAVE,
STR_GLOBAL_SAVE /* STR_ID_FMRDO_SAVE_FREQUENCY */ ,
STR_GLOBAL_BACK,
g_fmrdo.frequency,
mmi_fmrdo_channel_play_and_save,
mmi_fmrdo_channel_play_and_save_exit,
EntryChannelSave,
play_and_save_RSK,
UI_dummy_function/*mmi_fmrdo_long_press_number_key*/,
KEY_LONG_PRESS);
SetKeyHandler(mmi_fmrdo_decrease_freq, KEY_STAR, KEY_EVENT_DOWN);
SetKeyHandler(mmi_fmrdo_increase_freq, KEY_POUND, KEY_EVENT_DOWN);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_channel_play_and_save_exit
* DESCRIPTION
* Exit for Play Screen
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_channel_play_and_save_exit(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* g_fmrdo.is_still_playing=FALSE; */
g_fmrdo.is_playing_screen = FALSE;
mmi_fmrdo_search_frequency_stop();
}
/*****************************************************************************
* FUNCTION
* play_and_save_RSK
* DESCRIPTION
* From Play Screen go back to Freq Tune Screen
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void play_and_save_RSK(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_fmrdo.is_playing_screen = FALSE;
g_fmrdo.is_still_playing = FALSE;
g_fmrdo.state = FMRDO_STATE_READY;
//PMT START MAUI_00026509
mmi_fmrdo_power_on(FALSE);
//PMT END MAUI_00026509
/* mdi_audio_set_mute( AUD_VOLUME_FMR, TRUE ); */
GoBackHistory();
}
/*****************************************************************************
* FUNCTION
* EntryChannelSave
* DESCRIPTION
* Shows the Frequency Save Screen
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void EntryChannelSave(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 *guiBuffer;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
EntryNewScreen(SCR_ID_FMRDO_CHANNEL_FREQUENCY_SAVE, NULL, EntryChannelSave, NULL);
guiBuffer = GetCurrGuiBuffer(SCR_ID_FMRDO_CHANNEL_FREQUENCY_SAVE);
if (guiBuffer == NULL)
{
memset((void*)gChannelNum, 0, 3 * ENCODING_LENGTH);
}
RegisterInputBoxValidationFunction(RegisterSaveFreqKeyFunction);
g_fmrdo.is_still_playing = FALSE;
g_fmrdo.state = FMRDO_STATE_READY;
mmi_fmrdo_power_on(FALSE);
ShowCategory111Screen(
STR_GLOBAL_OK,
IMG_GLOBAL_OK,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
STR_ID_FMRDO_CHANNEL_NUMBER,
INPUT_TYPE_NUMERIC,
(U8*) gChannelNum,
1 + 2,
NULL,
guiBuffer);
SetCategory111RightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
SetLeftSoftkeyFunction(VerifyChannelNum, KEY_EVENT_UP);
/*ClearKeyHandler(KEY_0, KEY_EVENT_DOWN);
ClearKeyHandler(KEY_0, KEY_EVENT_UP); */
if (pfnUnicodeStrlen((S8*) gChannelNum) < 1)
{
ChangeLeftSoftkey(0, 0);
}
}
/*****************************************************************************
* FUNCTION
* RegisterSaveFreqKeyFunction
* DESCRIPTION
* CHange LSK depending upon the Length of Buffer
* PARAMETERS
* text [?]
* cursor [?]
* length [IN]
* a(?) [IN] Text
* c(?) [IN] Length
* b(?) [IN] Cursor
* RETURNS
* void
*****************************************************************************/
void RegisterSaveFreqKeyFunction(U8 *text, U8 *cursor, S32 length)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if ((length) < 1)
{
ChangeLeftSoftkey(0, 0);
}
else
{
EnableLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
}
}
/*****************************************************************************
* FUNCTION
* VerifyChannelNum
* DESCRIPTION
* Saves the Current Frequency in to Channel List
* PARAMETERS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -