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

📄 fmradiosrc.c

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