📄 fmtuner_presetstore.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 + -