📄 fmradiosrc.c
字号:
* void
* RETURNS
* void
*****************************************************************************/
void VerifyChannelNum(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 ChannelNum[3] = {0};
S16 error = 0;
S16 c_index;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* ChannelNum=gChannelNum[0]- '0'; */
UnicodeToAnsii((S8*) ChannelNum, (S8*) gChannelNum);
c_index = atoi((char*)ChannelNum);
g_fmrdo.channel_index = c_index - 1;
if ((g_fmrdo.channel_index >= 0) && (g_fmrdo.channel_index < NUM_OF_CHANNELS))
{
mmi_fmrdo_set_channel(
g_fmrdo.channel_index,
(U16) g_fmrdo.frequency,
(UI_string_type) GetString(STR_ID_FMRDO_NEW_CHANNEL));
WriteRecord(NVRAM_EF_FM_RADIO_LID, 1, (void*)&g_fmrdo.channel_list, NVRAM_EF_FM_RADIO_SIZE, &error);
IsChannelSaved = TRUE;
mmi_fmrdo_channel_list();
}
else
{
// memset((void*)gChannelNum, 0, 3 * ENCODING_LENGTH);
DisplayPopup((PU8) GetString(STR_ID_FMRDO_ENTER_VALID_CHANNEL), IMG_GLOBAL_WARNING, 1, 2000, (U8) WARNING_TONE);
return;
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_decrease_freq
* DESCRIPTION
* Decrease the Current Playing Frequency
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_decrease_freq(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 Freq = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.is_ready && g_fmrdo.state != FMRDO_STATE_SEARCH_ONE)
{
mmi_fmrdo_search_frequency_stop();
if (g_fmrdo.frequency > MIN_FM_FREQUENCY)
{
g_fmrdo.frequency = g_fmrdo.frequency - 1;
}
else
{
g_fmrdo.frequency = MAX_FM_FREQUENCY;
}
/* gui_cancel_timer(FMRDO_scrolling_text_timer_callback);
g_fmrdo.is_channel_name_scroll_ready=FALSE; */
g_fmrdo.is_direct_channel_play = FALSE;
Freq = g_fmrdo.frequency;
if (g_fmrdo.search_status == 0)
{
show_update_freq(Freq);
mmi_fmrdo_set_frequency(Freq);
}
else
{
mmi_fmrdo_search_frequency_start(Freq, FALSE);
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_increase_freq
* DESCRIPTION
* Increase the Current Playing Frequency
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_increase_freq(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 Freq;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (g_fmrdo.is_ready && g_fmrdo.state != FMRDO_STATE_SEARCH_ONE)
{
mmi_fmrdo_search_frequency_stop();
if (g_fmrdo.frequency < MAX_FM_FREQUENCY)
{
g_fmrdo.frequency = g_fmrdo.frequency + 1;
}
else
{
g_fmrdo.frequency = MIN_FM_FREQUENCY;
}
g_fmrdo.is_direct_channel_play = FALSE;
Freq = g_fmrdo.frequency;
if (g_fmrdo.search_status == 0)
{
show_update_freq(Freq);
if (g_fmrdo.is_power_on)
{
mdi_fmr_set_freq(Freq);
}
}
else
{
mmi_fmrdo_search_frequency_start(Freq, TRUE);
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_inc_volume
* DESCRIPTION
* Increase the FM Volume
* 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);
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_dec_volume
* DESCRIPTION
* Decrease the FM Volume
* 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);
}
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_set_volume
* DESCRIPTION
* Write the Volume Level in to NVRAM
* 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_highlight_channel_list
* DESCRIPTION
* Highlight Handler for Channel List
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_highlight_channel_list(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_channel_list,
GoBackHistory);
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_channel_list
* DESCRIPTION
* Entry Function for FM Radio Channel List
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
U16 highlighted_item=0;
void mmi_fmrdo_channel_list(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 *gui_buffer;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
EntryNewScreen(SCR_ID_FMRDO_CHANNEL_LIST, NULL, mmi_fmrdo_channel_list, NULL);
gui_buffer = GetCurrGuiBuffer(SCR_ID_FMRDO_CHANNEL_LIST);
if (IsChannelSaved)
{
highlighted_item = g_fmrdo.channel_index;
IsChannelSaved = FALSE;
}
/* else if(gui_buffer==NULL)
highlighted_item=0; */
//PMT START MAUI_00026504
/* If g_fmrdo.channel_index more than num of channels then last item highlighted */
else if (g_fmrdo.channel_index >= 0 && g_fmrdo.channel_index < NUM_OF_CHANNELS)
//PMT END MAUI_00026504
{
highlighted_item = g_fmrdo.channel_index;
}
else
{
highlighted_item = 0;
}
RegisterHighlightHandler(GetChannelIndex);
//PMT START MAUI_00026504
DeleteScreenIfPresent(SCR_ID_FMRDO_CHANNEL_PLAY_STOP);
//PMT END MAUI_00026504
DeleteScreenIfPresent(SCR_ID_FMRDO_CHANNEL_FREQUENCY_SAVE);
DeleteScreenIfPresent(SCR_ID_FMRDO_CHANNEL_PLAY_SAVE);
DeleteScreenIfPresent(SCR_ID_FMRDO_TUNE_FREQUENCY);
DisableCategory184Images();
ShowCategory184Screen(
STR_ID_FMRDO_CHANNEL_LIST,
0,
STR_GLOBAL_OPTIONS,
IMG_GLOBAL_OPTIONS,
STR_GLOBAL_BACK,
IMG_GLOBAL_BACK,
NUM_OF_CHANNELS,
(GetItemFuncPtr) mmi_fmrdo_channel_list_item,
NULL,
highlighted_item,
gui_buffer);
/* register LSK, RSK hanlders */
SetLeftSoftkeyFunction(mmi_fmrdo_entry_channel_option, KEY_EVENT_UP);
SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
}
/*****************************************************************************
* FUNCTION
* GetChannelIndex
* DESCRIPTION
* Save the Current Highlight Index
* PARAMETERS
* Index [IN]
* RETURNS
* void
*****************************************************************************/
void GetChannelIndex(S32 Index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
highlighted_item=(S16) Index;
/* g_fmrdo.channel_index = (S16) Index; */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_channel_list_item
* DESCRIPTION
* Put the value of channel Name and Frequency in to current Index for displaying
* PARAMETERS
* item_index [IN]
* str_buff [IN]
* img_buff_p [?]
* a(?) [IN] Item_index
* c(?) [IN/OUT] Img_buff_p
* b(?) [IN/OUT] Str_buff
* RETURNS
* TRUE
*****************************************************************************/
pBOOL mmi_fmrdo_channel_list_item(S32 item_index, UI_string_type str_buff, PU8 *img_buff_p)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 freq = 0;
S8 name[(MAX_NAME_INPUT_LEN * ENCODING_LENGTH) + 1];
S8 seperator[] = { ',', 0, 0, 0};
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if ((item_index < 0) || (item_index > NUM_OF_CHANNELS))
{
return FALSE;
}
freq = g_fmrdo.channel_list.freq[item_index];
if (!pfnUnicodeStrlen((PS8) g_fmrdo.channel_list.name[item_index]))
{
pfnUnicodeStrcpy((S8*) name, (S8*) GetString(STR_ID_FMRDO_EMPTY));
}
else if (g_fmrdo.channel_list.name_dcs[item_index])
{
pfnUnicodeStrcpy((PS8) name, (PS8) g_fmrdo.channel_list.name[item_index]);
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -