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 + -
显示快捷键?