📄 fmradiosrc.c
字号:
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_step_up_timer
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_step_up_timer(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.step_freq < MAX_FM_FREQUENCY)
{
g_fmrdo.step_freq++;
}
else
{
g_fmrdo.step_freq = MIN_FM_FREQUENCY;
}
/* update display */
if (g_fmrdo.in_main_screen)
{
mmi_fmrdo_redraw_main_frequency(g_fmrdo.step_freq, TRUE);
mmi_fmrdo_redraw_main_channel_tuner(g_fmrdo.step_freq);
}
if (g_fmrdo.normal_repeat_step_count == 0 && g_fmrdo.is_power_on)
{
mdi_fmr_mute(1); /* mute in the begining of step up */
}
if (g_fmrdo.normal_repeat_step_count < NORMAL_REAPEAT_STEP_COUNT)
{
g_fmrdo.normal_repeat_step_count++;
StartTimer(FMRDO_REPEAT_STEP_TIMER, NORMAL_REAPEAT_STEP_PERIOD, mmi_fmrdo_step_up_timer);
}
else
{
StartTimer(FMRDO_REPEAT_STEP_TIMER, FAST_REAPEAT_STEP_PERIOD, mmi_fmrdo_step_up_timer);
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_is_stepping_up
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* BOOL
*****************************************************************************/
BOOL mmi_fmrdo_is_stepping_up(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
return (g_fmrdo.is_ready && g_fmrdo.selected_button == FMRDO_BUTTON_STEP_UP && g_fmrdo.is_button_down);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_is_stepping_down
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* BOOL
*****************************************************************************/
BOOL mmi_fmrdo_is_stepping_down(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
return (g_fmrdo.is_ready && g_fmrdo.selected_button == FMRDO_BUTTON_STEP_DOWN && g_fmrdo.is_button_down);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_get_freq_from_str
* DESCRIPTION
*
* PARAMETERS
* input_str [IN]
* RETURNS
* U16
*****************************************************************************/
U16 mmi_fmrdo_get_freq_from_str(UI_string_type input_str)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 freq = 0;
BOOL fraction = FALSE;
BOOL skip = FALSE;
BOOL one_digit_dicimal = TRUE;
S16 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (i = 0; input_str[i] != 0; i++)
{
if (input_str[i] == L'.')
{
if ((input_str[i + 1] != 0) && (input_str[i + 2] != 0))
{
one_digit_dicimal = FALSE;
}
fraction = TRUE;
}
else if (!skip)
{
freq = freq * 10 + input_str[i] - L'0';
if (fraction)
{
skip = TRUE;
}
}
}
if (freq != 0 && !skip)
{
freq *= 10;
}
if (!one_digit_dicimal)
{
freq = 0xffff; /* Only allow one digit after the '.' */
}
return freq;
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_set_channel
* DESCRIPTION
*
* PARAMETERS
* channel_index [IN]
* freq [IN]
* name [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_set_channel(S16 channel_index, U16 freq, UI_string_type name)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if ((g_fmrdo.channel_index == channel_index) && (g_fmrdo.channel_list.freq[g_fmrdo.channel_index] != freq))
{
g_fmrdo.channel_index = -1;
}
if ((g_fmrdo.channel_index == -1) && (freq == g_fmrdo.frequency))
{
g_fmrdo.channel_index = channel_index;
}
pfnUnicodeStrcpy((S8*) g_fmrdo.channel_list.name[channel_index], (S8*) name);
g_fmrdo.channel_list.freq[channel_index] = freq;
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_get_volume
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* U8
*****************************************************************************/
U8 mmi_fmrdo_get_volume(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (!g_fmrdo.is_ready)
{
ReadValue(NVRAM_FMRDO_VOLUME, &g_fmrdo.volume, DS_BYTE, &error);
}
return g_fmrdo.volume;
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_set_volume
* DESCRIPTION
*
* PARAMETERS
* volume [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_set_volume(U8 volume)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_fmrdo.volume = volume;
WriteValue(NVRAM_FMRDO_VOLUME, &g_fmrdo.volume, DS_BYTE, &error);
if (g_fmrdo.is_ready && g_fmrdo.state != FMRDO_STATE_SEARCH_ONE && g_fmrdo.state != FMRDO_STATE_SEARCH_ALL)
{
mdi_audio_set_volume(AUD_VOLUME_FMR, volume);
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_write_settings_to_nvram
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_write_settings_to_nvram(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
WriteValue(NVRAM_FMRDO_BACKGROUND_PLAY, &g_fmrdo.is_background_play, DS_BYTE, &error);
WriteValue(NVRAM_FMRDO_SKIN, &g_fmrdo.skin_index, DS_BYTE, &error);
#if defined(__MMI_FM_RADIO_RECORD__)
WriteValue(NVRAM_FMRDO_RECORD_FORMAT, &g_fmrdo.rec.format, DS_BYTE, &error);
WriteValue(NVRAM_FMRDO_RECORD_STORAGE, &g_fmrdo.rec.drive, DS_BYTE, &error);
#endif /* defined(__MMI_FM_RADIO_RECORD__) */
#if defined(__MMI_FM_RADIO_LOUD_SPEAK__)
WriteValue(NVRAM_FMRDO_SPEAKER_STATUS, &g_fmrdo.loud_speaker_on, DS_BYTE, &error);
#endif
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_inc_volume
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_inc_volume(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.volume < MAX_VOL_LEVEL - 1)
{
mmi_fmrdo_set_volume(++g_fmrdo.volume);
if (g_fmrdo.in_main_screen)
{
mmi_fmrdo_redraw_main_volume();
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_dec_volume
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_dec_volume(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.volume > 0)
{
mmi_fmrdo_set_volume(--g_fmrdo.volume);
if (g_fmrdo.in_main_screen)
{
mmi_fmrdo_redraw_main_volume();
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_init_app
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_init_app(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_FM_RADIO_CHECK_CHIP_OR_HIDE__
if (FMR_IsChipValid())
#endif
SetHiliteHandler(MENU_ID_FMRDO_MAIN, mmi_fmrdo_highlight_menu);
g_fmrdo.is_subLCD_shown = FALSE;
#if defined(__MMI_FM_RADIO_RECORD__)
SetHiliteHandler(MENU_ID_FMRDO_EDIT_FILENAME_SAVE, mmi_fmrdo_highlight_record_save_file);
SetHiliteHandler(MENU_ID_FMRDO_EDIT_FILENAME_INPUT_METHOD, mmi_fmrdo_highlight_record_input_method);
#endif /* defined(__MMI_FM_RADIO_RECORD__) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_run_app
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -