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

📄 fmradiosrc.c

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