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

📄 fmtuner_presetstore.c

📁 这是一款聚电视和收音为一体的微处理器 C++ 源代码,成果奉献,供广大的底层软件开发者学习和参考
💻 C
字号:
//-----------------------------------------------------------------------------
// (C) Copyright 2003 Philips Semiconductors, All rights reserved
//
// This source code and any compilation or derivative thereof is the sole
// property of Philips Corporation and is provided pursuant to a Software
// License Agreement.  This code is the proprietary information of Philips
// Corporation and is confidential in nature.  Its use and dissemination by
// any party other than Philips Corporation is strictly limited by the
// confidential information provisions of the Agreement referenced above.
//-----------------------------------------------------------------------------
// FILE NAME:    fmTuner_Key.c
//
// VERSION:      <1.00.00.0000>
//
// DESCRIPTION:  This module handles the keyboard event process
//               This virsion has no local variables, using global variables for key
//               process,pointer structure for function of key process  is not modified,
//               return value is replaced with fuzhi yuju.
//
// DOCUMENT REF: SZLAB/PRS0001 SZLAB/PRS0003
// NOTES:        <File notes>
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// Standard include files:
//-----------------------------------------------------------------------------
//
#include "common.h"
#include "cmd_glb.h"
#include "global.h"
#include "PSA_API.h"

//-----------------------------------------------------------------------------
// Project include files:
//-----------------------------------------------------------------------------
//
#include "fmTuner.h"
#include "fmTuner_DrvFunction.h"
#include "fmTuner_PresetStore.h"
#include "fmDisplay.h"
//-----------------------------------------------------------------------------
// Types and defines:
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Global data:
//-----------------------------------------------------------------------------
U8 gfmTuner_u8ManualPreset;
U8 gfmTuner_u8PresetIndex;
U8 gfmTuner_u8PresetFirst;
fmTuner_RuningParameter_t gfmTuner_sRuningParameter;


fmTuner_RuningParameter_t *gfmTuner_pPointer;


//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_SaveCurrentFrequency  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_SaveCurrentFrequency(U16 kFrequency)
{
    if(gfmTuner_u8PresetIndex<cFM_TUNER_PRESET_MAX)
    {
        gfmTuner_pPointer->PreSetChannel[gfmTuner_u8PresetIndex].PresetFrequency=kFrequency;
        gfmTuner_pPointer->PreSetChannel[gfmTuner_u8PresetIndex++].DisableEnable=TRUE;
    }
    
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_ClearPreset  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_ClearPreset(void)
{
    U32 i;
    for(i=0;i<cFM_TUNER_PRESET_MAX;i++)
    {
        gfmTuner_pPointer->PreSetChannel[i].DisableEnable=FALSE;
    }
}


//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_IsInPresetChannel  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
U8 fmTuner_IsInPresetChannel(U16 kFrequency)
{
    U8 PresetNumber=gfmTuner_u8PresetIndex;
    U32 times;
    U32 FindingResult=FALSE;
    for(times=0;times<cFM_TUNER_PRESET_MAX;times++)
    {
        if(gfmTuner_pPointer->PreSetChannel[PresetNumber].DisableEnable==TRUE)
        {
            if(gfmTuner_pPointer->PreSetChannel[PresetNumber].PresetFrequency==kFrequency)
            {
                times=255;
                FindingResult=TRUE;
            }
            else
            {
                PresetNumber++;
            }    
        }
        else
        {
            PresetNumber++;
        }
        if(PresetNumber>=cFM_TUNER_PRESET_MAX)
        {
            PresetNumber=0;
        }
    
    }
    if(FindingResult==TRUE)
    {
        PresetNumber++;
    }
    else
    {
        PresetNumber=0;
    }
    return PresetNumber; 
    
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_GetPresetNumber  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
U8 fmTuner_GetPresetNumber(fmTuner_TuningDirection_e kDirection)
{
    U8 number=0;
    U32 times;
    U32 FindingResult=FALSE;
    
    if(kDirection==fmTuner_TuningDirection_Up)
    {
        if(gfmTuner_u8PresetFirst)
        {
            gfmTuner_u8PresetIndex++;
            if(gfmTuner_u8PresetIndex>=cFM_TUNER_PRESET_MAX)
            {
                gfmTuner_u8PresetIndex=0;
            }
        }

        for(times=0;times<cFM_TUNER_PRESET_MAX;times++)
        {
            
            
                        
            if(gfmTuner_pPointer->PreSetChannel[gfmTuner_u8PresetIndex].DisableEnable==TRUE)
            {
                
                number=gfmTuner_u8PresetIndex;
                times=255;
                FindingResult=TRUE;
            }
            else
            {
                gfmTuner_u8PresetIndex++;
                if(gfmTuner_u8PresetIndex>=cFM_TUNER_PRESET_MAX)
                {
                    gfmTuner_u8PresetIndex=0;
                }
            }
       }
             
    }
    else
    {
        if(gfmTuner_u8PresetFirst)
        {
            if(gfmTuner_u8PresetIndex)
            {
                gfmTuner_u8PresetIndex--;
            }
            else
            {
                gfmTuner_u8PresetIndex=cFM_TUNER_PRESET_MAX-1;
            }
            
       }

        for(times=0;times<cFM_TUNER_PRESET_MAX;times++)
        {
            if(gfmTuner_pPointer->PreSetChannel[gfmTuner_u8PresetIndex].DisableEnable==TRUE)
            {
                
                number=gfmTuner_u8PresetIndex;
                times=255;
                FindingResult=TRUE;
            }
            else
            {
                if(gfmTuner_u8PresetIndex)
                {
                    gfmTuner_u8PresetIndex--;
                }
                else
                {
                    gfmTuner_u8PresetIndex=cFM_TUNER_PRESET_MAX-1;
                }
            }
        }

    }
    if(FindingResult==TRUE)
    {
        number++;
    }    
    return number;
              
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_FetchPresetChannel  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_FetchPresetChannel(U8 kPresetNumber)
{
    fmDisplay_RadioPutChannelNumber(kPresetNumber--,1);
    gfmTuner_u16TunerFrequency=gfmTuner_pPointer->PreSetChannel[kPresetNumber].PresetFrequency;
    fmTuner_TuneToFrequecy(gfmTuner_u16TunerFrequency);
    gfmTuner_u8InTune=TRUE;
    fmTuner_OsGenernalDelay(5);
    fmDisplay_RadioFrequency(gfmTuner_u16TunerFrequency);

}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_DeleteCurrentChannel  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_DeleteCurrentChannel(void)
{
    if(gfmTuner_u8PresetIndex<cFM_TUNER_PRESET_MAX)
    {
    
        gfmTuner_pPointer->PreSetChannel[gfmTuner_u8PresetIndex].DisableEnable=FALSE;
    }    
}

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_TogglePresetManual  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_TogglePresetManual(void)
{
    if(gfmTuner_u8ManualPreset==cFM_TUNER_MANUAL)
    {
        gfmTuner_u8ManualPreset=cFM_TUNER_PRESET;
    }
    else
    {
        gfmTuner_u8ManualPreset=cFM_TUNER_MANUAL;
    }
}
//-----------------------------------------------------------------------------
// FUNCTION:  fmTuner_StereoMonoDisplay  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_ToggleStereoMono
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_CheckSearch
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_InitiateSearch
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_ValidateTunedFrequency
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_GetMaxFrequency
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:    
//
// DESCRIPTION: <Function description/purpose>
//
//RETURN:      <return data type/description>
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
//
/*
<Return Type>
<Function Name> (
    <Parameter 1>,	// <[ I:| O:|IO:] Parameter 1 description (include domain
                      //              and/or constraints)>
    <Parameter 2>,	// <[ I:| O:|IO:] Parameter 2 description..>
    <Parameter n>	// <[ I:| O:|IO:] Parameter n description..>
    )
{

    <Code implementation here...>

} // <Function Name> ()

*/
/*============================ History List ================================
============================================================================*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -