⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmradiosrc.c

📁 mtk平台的调频收音机的mmi部分,新的代码更新! 可以了解mtk调频收音机的用户界面!
💻 C
📖 第 1 页 / 共 5 页
字号:
 *  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 + -