📄 philips_dtv_nim.c
字号:
return (rval);
}
static tmLibdevErr_t
nim_VI_Configure_2(UInt32 subaddr, UInt32 value)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
pboardVIDec_t pVD = &nim_vi_2.vDec;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114ConfigureM(pVD, subaddr, value);
}
else
{
rval = saa7112ConfigureM(pVD, subaddr, value);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t
nim_VI_SetContrast_1(UInt32 value)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
pboardVIDec_t pVD = &nim_vi_1.vDec;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114SetContrastM(pVD, value);
}
else
{
rval = saa7112SetContrastM(pVD, value);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t
nim_VI_SetContrast_2(UInt32 value)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
pboardVIDec_t pVD = &nim_vi_2.vDec;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114SetContrastM(pVD, value);
}
else
{
rval = saa7112SetContrastM(pVD, value);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t
nim_VI_SetBrightness_1(UInt value)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
pboardVIDec_t pVD = &nim_vi_1.vDec;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114SetBrightnessM(pVD, value);
}
else
{
rval = saa7112SetBrightnessM(pVD, value);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t
nim_VI_SetBrightness_2(UInt value)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
pboardVIDec_t pVD = &nim_vi_2.vDec;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114SetBrightnessM(pVD, value);
}
else
{
rval = saa7112SetBrightnessM(pVD, value);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t nim_VI_SetSourceType(pboardVIDec_t pVD, tmVideoSourceType_t type)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114SetSourceType(pVD, type);
}
else
{
rval = saa7112SetSourceType(pVD, type);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t nim_VI_GetVSyncFallingEdge(pboardVIDec_t pVD, UInt *lineNumber)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114GetVSyncFallingEdge(pVD, lineNumber);
}
else
{
rval = saa7112GetVSyncFallingEdge(pVD, lineNumber);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
static tmLibdevErr_t nim_VI_GetDefaultAcquisitionWnd(pboardVIDec_t pVD, UInt *beginX, UInt *beginY, UInt *endX, UInt *endY)
{
tmLibdevErr_t rval = TMLIBDEV_OK;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
/* Check if we have a 7114 connected, otherwise use 7112 */
if (* (UInt32 *) pVD->handle == id7114)
{
rval = saa7114GetDefaultAcquisitionWnd(pVD, beginX, beginY, endX, endY);
}
else
{
rval = saa7112GetDefaultAcquisitionWnd(pVD, beginX, beginY, endX, endY);
}
iicDirectionUnSelect(pVD->iicDirection);
return (rval);
}
/*****************************************************************************************/
static tmLibdevErr_t nim_VI_SetAnalogInput(pboardVIDec_t pVD, tmVideoAnalogAdapter_t adapter, UInt adapterInstance)
{
UInt mode;
tmLibdevErr_t rval;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
rval = mapAdapter2Mode(pVD, adapter, adapterInstance, &mode);
if (rval != TMLIBDEV_OK)
goto nim_VI_SetAnalogInputExit;
rval = saa7114SetAnalogInput(pVD, mode);
nim_VI_SetAnalogInputExit:
iicDirectionUnSelect(pVD->iicDirection);
return rval;
}
/*****************************************************************************************/
static tmLibdevErr_t nim_VI_GetAnalogInput(pboardVIDec_t pVD, tmVideoAnalogAdapter_t *adapter, UInt *adapterInstance)
{
tmLibdevErr_t rval;
UInt mode;
rval = iicDirectionSelect(pVD->iicDirection);
if (rval != TMLIBDEV_OK)
return rval;
rval = saa7114GetAnalogInput(pVD, &mode);
if (rval != TMLIBDEV_OK)
goto nim_VI_GetAnalogInputExit;
rval = mapMode2Adapter(pVD, mode, adapter, adapterInstance);
nim_VI_GetAnalogInputExit:
iicDirectionUnSelect(pVD->iicDirection);
return rval;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerInit_2(pboardTvTunerParameters_t params)
{
fi1236mk2Param_t tunerParams;
tmLibdevErr_t err;
err = iicDirectionSelect(IIC_DIRECTION_NIM2);
if (err != TMLIBDEV_OK)
return err;
tunerParams.iicAddress = NIM_TUNER_IIC_ADDRESS;
tunerParams.useInternalAGC = True;
tunerParams.iFreq = 44000000;
tunerParams.input = ttiAntennaNTSC;
if (params->stepSize != FI1236MK2_SUPPORTED_STEP_SIZES)
return TVTUNER_ERR_UNSUPPORTED_STEP_SIZE;
err = fi1236mk2Init(1, &tunerParams);
iicDirectionUnSelect(IIC_DIRECTION_NIM2);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerTerm_2(void)
{
return TMLIBDEV_OK;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerConfig_2(UInt32 command, Pointer value)
{
tmLibdevErr_t err = TMLIBDEV_OK;
err = iicDirectionSelect(IIC_DIRECTION_NIM2);
if (err != TMLIBDEV_OK)
return err;
switch (command)
{
case TVTUNER_CONFIG_GET_LOCK:
tmAssert(value, TMLIBDEV_ERR_NULL_PARAMETER);
err = fi1236mk2GetLock(1, (Bool *) value);
break;
default:
err = TVTUNER_ERR_UNSUPPORTED_CONFIG_COMMAND;
}
iicDirectionUnSelect(IIC_DIRECTION_NIM2);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerSetChannel_2(ptsaTvTunerChannelParams_t chanParams)
{
tmLibdevErr_t err = TMLIBDEV_OK;
err = iicDirectionSelect(IIC_DIRECTION_NIM2);
if (err != TMLIBDEV_OK)
return err;
err = fi1236mk2SetFrequency(1, chanParams);
iicDirectionUnSelect(IIC_DIRECTION_NIM2);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerConfigChannel_2(UInt32 command, Pointer value)
{
tmLibdevErr_t err = TMLIBDEV_OK;
err = iicDirectionSelect(IIC_DIRECTION_NIM2);
if (err != TMLIBDEV_OK)
return err;
switch (command)
{
case TVTUNER_CHAN_CONFIG_TWEAK_UP:
err = fi1236mk2Tweak(1, fi1236mk2TweakUp);
break;
case TVTUNER_CHAN_CONFIG_TWEAK_DOWN:
err = fi1236mk2Tweak(1, fi1236mk2TweakDown);
break;
case TVTUNER_CHAN_CONFIG_CENTER:
err = fi1236mk2Tweak(1, fi1236mk2TweakReset);
break;
case TVTUNER_CHAN_CONFIG_GET_CHAN_PARAMETERS:
tmAssert(value, TMLIBDEV_ERR_NULL_PARAMETER);
err = fi1236mk2GetChanParams(1, (ptsaTvTunerChannelParams_t) value);
break;
default:
err = TVTUNER_ERR_UNSUPPORTED_CONFIG_COMMAND;
break;
}
iicDirectionUnSelect(IIC_DIRECTION_NIM2);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerInit_1(pboardTvTunerParameters_t params)
{
fi1236mk2Param_t tunerParams;
tmLibdevErr_t err;
err = iicDirectionSelect(IIC_DIRECTION_NIM1);
if (err != TMLIBDEV_OK)
return err;
tunerParams.iicAddress = NIM_TUNER_IIC_ADDRESS;
tunerParams.useInternalAGC = True;
tunerParams.iFreq = 44000000;
tunerParams.input = ttiAntennaNTSC;
if (params->stepSize != FI1236MK2_SUPPORTED_STEP_SIZES)
return TVTUNER_ERR_UNSUPPORTED_STEP_SIZE;
err = fi1236mk2Init(0, &tunerParams);
iicDirectionUnSelect(IIC_DIRECTION_NIM1);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerTerm_1(void)
{
return TMLIBDEV_OK;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerConfig_1(UInt32 command, Pointer value)
{
tmLibdevErr_t err = TMLIBDEV_OK;
err = iicDirectionSelect(IIC_DIRECTION_NIM1);
if (err != TMLIBDEV_OK)
return err;
switch (command)
{
case TVTUNER_CONFIG_GET_LOCK:
tmAssert(value, TMLIBDEV_ERR_NULL_PARAMETER);
err = fi1236mk2GetLock(0, (Bool *) value);
break;
default:
err = TVTUNER_ERR_UNSUPPORTED_CONFIG_COMMAND;
}
iicDirectionUnSelect(IIC_DIRECTION_NIM1);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerSetChannel_1(ptsaTvTunerChannelParams_t chanParams)
{
tmLibdevErr_t err = TMLIBDEV_OK;
err = iicDirectionSelect(IIC_DIRECTION_NIM1);
if (err != TMLIBDEV_OK)
return err;
err = fi1236mk2SetFrequency(0, chanParams);
iicDirectionUnSelect(IIC_DIRECTION_NIM1);
return err;
}
/*****************************************************************************************/
static tmLibdevErr_t nimTunerConfigChannel_1(UInt32 command, Pointer value)
{
tmLibdevErr_t err = TMLIBDEV_OK;
err = iicDirectionSelect(IIC_DIRECTION_NIM1);
if (err != TMLIBDEV_OK)
return err;
switch (command)
{
case TVTUNER_CHAN_CONFIG_TWEAK_UP:
err = fi1236mk2Tweak(0, fi1236mk2TweakUp);
break;
case TVTUNER_CHAN_CONFIG_TWEAK_DOWN:
err = fi1236mk2Tweak(0, fi1236mk2TweakDown);
break;
case TVTUNER_CHAN_CONFIG_CENTER:
err = fi1236mk2Tweak(0, fi1236mk2TweakReset);
break;
case TVTUNER_CHAN_CONFIG_GET_CHAN_PARAMETERS:
tmAssert(value, TMLIBDEV_ERR_NULL_PARAMETER);
err = fi1236mk2GetChanParams(0, (ptsaTvTunerChannelParams_t) value);
break;
default:
err = TVTUNER_ERR_UNSUPPORTED_CONFIG_COMMAND;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -