tunsdrv.c
来自「st7710的tuner标准驱动」· C语言 代码 · 共 1,935 行 · 第 1/5 页
C
1,935 行
#ifdef STTUNER_DRV_SAT_TUN_DSF8910
case STTUNER_TUNER_DSF8910:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s installing sat:tuner:DSF8910...", identity));
#endif
if (Installed_DSF8910 == TRUE)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("fail already installed\n"));
#endif
return(STTUNER_ERROR_INITSTATE);
}
Tuner->ID = STTUNER_TUNER_DSF8910;
Tuner->tuner_Open = tuner_tunsdrv_Open_DSF8910;
Installed_DSF8910 = TRUE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_STB6000
case STTUNER_TUNER_STB6000:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s installing sat:tuner:STB6000...", identity));
#endif
if (Installed_STB6000 == TRUE)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("fail already installed\n"));
#endif
return(STTUNER_ERROR_INITSTATE);
}
Tuner->ID = STTUNER_TUNER_STB6000;
Tuner->tuner_Open = tuner_tunsdrv_Open_STB6000;
Installed_STB6000 = TRUE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_IX2476
case STTUNER_TUNER_IX2476:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s installing sat:tuner:IX2476...", identity));
#endif
if (Installed_IX2476 == TRUE)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("fail already installed\n"));
#endif
return(STTUNER_ERROR_INITSTATE);
}
Tuner->ID = STTUNER_TUNER_IX2476;
Tuner->tuner_Open = tuner_tunsdrv_Open_IX2476;
Installed_IX2476 = TRUE;
break;
#endif
#endif
#ifdef STTUNER_DRV_SAT_TUN_STB6100
case STTUNER_TUNER_STB6100:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s installing sat:tuner:STB6000...", identity));
#endif
if (Installed_STB6100 == TRUE)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("fail already installed\n"));
#endif
return(STTUNER_ERROR_INITSTATE);
}
Tuner->ID = STTUNER_TUNER_STB6100;
Tuner->tuner_Open = tuner_tunsdrv_Open_STB6100;
Installed_STB6100 = TRUE;
break;
#endif
default:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s incorrect tuner index", identity));
#endif
return(ST_ERROR_UNKNOWN_DEVICE);
break;
}
/* map rest of API */
Tuner->tuner_Init = tuner_tunsdrv_Init;
Tuner->tuner_Term = tuner_tunsdrv_Term;
Tuner->tuner_Close = tuner_tunsdrv_Close;
Tuner->tuner_SetFrequency = tuner_tunsdrv_SetFrequency;
Tuner->tuner_GetStatus = tuner_tunsdrv_GetStatus;
Tuner->tuner_IsTunerLocked = tuner_tunsdrv_IsTunerLocked;
Tuner->tuner_SetBandWidth = tuner_tunsdrv_SetBandWidth;
Tuner->tuner_ioaccess = tuner_tunsdrv_ioaccess;
Tuner->tuner_ioctl = tuner_tunsdrv_ioctl;
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("ok\n"));
#endif
return(Error);
}
/* ----------------------------------------------------------------------------
Name: STTUNER_DRV_TUNER_TUNSDRV_UnInstall()
Description:
install a satellite device driver.
Parameters:
Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t STTUNER_DRV_TUNER_TUNSDRV_UnInstall(STTUNER_tuner_dbase_t *Tuner, STTUNER_TunerType_t TunerType)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
const char *identity = "STTUNER tunsdrv.c STTUNER_DRV_TUNER_TUNSDRV_UnInstall()";
#endif
ST_ErrorCode_t Error = ST_NO_ERROR;
switch(TunerType)
{
#ifdef STTUNER_BASIC
#ifdef STTUNER_DRV_SAT_TUN_VG1011
case STTUNER_TUNER_VG1011:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:VG1011\n", identity));
#endif
Installed_VG1011 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_TUA6100
case STTUNER_TUNER_TUA6100:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:TUA6100\n", identity));
#endif
Installed_TUA6100 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_EVALMAX
case STTUNER_TUNER_EVALMAX:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:EVALMAX\n", identity));
#endif
Installed_EVALMAX = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_S68G21
case STTUNER_TUNER_S68G21:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:S68G21\n", identity));
#endif
Installed_S68G21 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_VG0011
case STTUNER_TUNER_VG0011:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:VG0011\n", identity));
#endif
Installed_VG0011 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_HZ1184
case STTUNER_TUNER_HZ1184:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:HZ1184\n", identity));
#endif
Installed_HZ1184 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_MAX2116
case STTUNER_TUNER_MAX2116:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:MAX2116\n", identity));
#endif
Installed_MAX2116 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_DSF8910
case STTUNER_TUNER_DSF8910:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:DSF8910\n", identity));
#endif
Installed_DSF8910 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_STB6000
case STTUNER_TUNER_STB6000:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:STB6000\n", identity));
#endif
Installed_STB6000 = FALSE;
break;
#endif
#ifdef STTUNER_DRV_SAT_TUN_IX2476
case STTUNER_TUNER_IX2476:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:IX2476\n", identity));
#endif
Installed_IX2476 = FALSE;
break;
#endif
#endif
#ifdef STTUNER_DRV_SAT_TUN_STB6100
case STTUNER_TUNER_STB6100:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s uninstalling sat:tuner:STB6100\n", identity));
#endif
Installed_STB6100 = FALSE;
break;
#endif
default:
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s incorrect tuner index", identity));
#endif
return(ST_ERROR_UNKNOWN_DEVICE);
break;
}
/* unmap API */
Tuner->ID = STTUNER_NO_DRIVER;
Tuner->tuner_Init = NULL;
Tuner->tuner_Term = NULL;
Tuner->tuner_Close = NULL;
Tuner->tuner_SetFrequency = NULL;
Tuner->tuner_GetStatus = NULL;
Tuner->tuner_IsTunerLocked = NULL;
Tuner->tuner_SetBandWidth = NULL;
Tuner->tuner_ioaccess = NULL;
Tuner->tuner_ioctl = NULL;
if (
#ifdef STTUNER_BASIC
(Installed_VG1011 == FALSE) &&
(Installed_TUA6100 == FALSE) &&
(Installed_EVALMAX == FALSE) &&
(Installed_VG0011 == FALSE) &&
(Installed_HZ1184 == FALSE) &&
(Installed_MAX2116 == FALSE) &&
(Installed_DSF8910 == FALSE) &&
(Installed_STB6000 == FALSE) &&
(Installed_S68G21 == FALSE) &&
(Installed_IX2476 == FALSE) &&
#endif
(Installed_STB6100 == FALSE)
)
{
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("%s <", identity));
#endif
#if defined(ST_OS21) || defined(ST_OSLINUX)
semaphore_delete(Lock_InitTermOpenClose);
#else
semaphore_delete(&Lock_InitTermOpenClose);
#endif
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print((">"));
#endif
InstanceChainTop = (TUNSDRV_InstanceData_t *)0x7ffffffe;
Installed = FALSE;
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("all tunsdrv drivers uninstalled\n"));
#endif
}
#ifdef STTUNER_DEBUG_MODULE_SATDRV_TUNSDRV
STTBX_Print(("ok\n"));
#endif
return(Error);
}
/* ----------------------------------------------------------------------------
Name: STTUNER_DRV_TUNER_VG1011_Install()
STTUNER_DRV_TUNER_S68G21_Install()
STTUNER_DRV_TUNER_TUA6100_Install()
STTUNER_DRV_TUNER_EVALMAX_Install()
STTUNER_DRV_TUNER_VG0011_Install()
STTUNER_DRV_TUNER_HZ1184_Install()
STTUNER_DRV_TUNER_MAX2116_Install()
STTUNER_DRV_TUNER_DSF8910_Install()
STTUNER_DRV_TUNER_STB6000_Install()
Description:
install a satellite device driver.
Parameters:
Return Value:
---------------------------------------------------------------------------- */
#ifdef STTUNER_BASIC
#ifdef STTUNER_DRV_SAT_TUN_VG1011
ST_ErrorCode_t STTUNER_DRV_TUNER_VG1011_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_VG1011) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_S68G21
ST_ErrorCode_t STTUNER_DRV_TUNER_S68G21_Install (STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_S68G21) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_TUA6100
ST_ErrorCode_t STTUNER_DRV_TUNER_TUA6100_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_TUA6100) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_EVALMAX
ST_ErrorCode_t STTUNER_DRV_TUNER_EVALMAX_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_EVALMAX) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_VG0011
ST_ErrorCode_t STTUNER_DRV_TUNER_VG0011_Install (STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_VG0011) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_HZ1184
ST_ErrorCode_t STTUNER_DRV_TUNER_HZ1184_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_HZ1184) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_MAX2116
ST_ErrorCode_t STTUNER_DRV_TUNER_MAX2116_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_MAX2116) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_DSF8910
ST_ErrorCode_t STTUNER_DRV_TUNER_DSF8910_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_DSF8910) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_STB6000
ST_ErrorCode_t STTUNER_DRV_TUNER_STB6000_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_STB6000) );
}
#endif
#ifdef STTUNER_DRV_SAT_TUN_IX2476
ST_ErrorCode_t STTUNER_DRV_TUNER_IX2476_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_IX2476) );
}
#endif
#endif
#ifdef STTUNER_DRV_SAT_TUN_STB6100
ST_ErrorCode_t STTUNER_DRV_TUNER_STB6100_Install(STTUNER_tuner_dbase_t *Tuner)
{
return( STTUNER_DRV_TUNER_TUNSDRV_Install(Tuner, STTUNER_TUNER_STB6100) );
}
#endif
/* ----------------------------------------------------------------------------
Name: STTUNER_DRV_TUNER_VG1011_UnInstall()
STTUNER_DRV_TUNER_S68G21_UnInstall()
STTUNER_DRV_TUNER_TUA6100_UnInstall()
STTUNER_DRV_TUNER_EVALMAX_UnInstall()
STTUNER_DRV_TUNER_VG0011_UnInstall()
STTUNER_DRV_TUNER_HZ1184_UnInstall()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?