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

📄 backlight.cpp

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" BOOL WINAPI DllEntry(HANDLE hInstDll, DWORD dwReason, LPVOID lpvReserved)
{
    switch(dwReason)
    {
        case DLL_PROCESS_ATTACH:
            DEBUGREGISTER((HINSTANCE)hInstDll);
            DEBUGMSG(ZONE_INFO, (TEXT("BKL_DllEntry: DLL_PROCESS_ATTACH\r\n")));
            break;
         
        case DLL_PROCESS_DETACH:
            DEBUGMSG(ZONE_INFO, (TEXT("BKL_DllEntry: DLL_PROCESS_DETACH\r\n")));
            break;
    }
    // return TRUE for success
    return TRUE;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Open
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" DWORD BKL_Open(DWORD dwData, DWORD dwAccess, DWORD dwShareMode)
{
    BKL_FUNCTION_ENTRY();

    BKL_FUNCTION_EXIT();

    return dwData;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Close
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" BOOL BKL_Close(DWORD Handle)
{
    BKL_FUNCTION_ENTRY();

    BKL_FUNCTION_EXIT();

    return TRUE;
}


//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_PowerDown
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" void BKL_PowerDown(void)
{
    BKL_FUNCTION_ENTRY();
    BKL_FUNCTION_EXIT();
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_PowerUp
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" void BKL_PowerUp(void)
{
    BKL_FUNCTION_ENTRY();

    BKL_FUNCTION_EXIT();
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Read
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" DWORD BKL_Read(DWORD Handle, LPVOID pBuffer, DWORD dwNumBytes)
{
    BKL_FUNCTION_ENTRY();
    BKL_FUNCTION_EXIT();
    return 0;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Write
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" DWORD BKL_Write(DWORD Handle, LPCVOID pBuffer, DWORD dwNumBytes)
{
    BKL_FUNCTION_ENTRY();
    BKL_FUNCTION_EXIT();
    return 0;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Seek
//
//  DESCRIPTION:      
//  PARAMETERS:     
//
//  RETURNS:        
//
//------------------------------------------------------------------------------
extern "C" DWORD BKL_Seek(DWORD Handle, long lDistance, DWORD dwMoveMethod)
{
    BKL_FUNCTION_ENTRY();
    BKL_FUNCTION_EXIT();
    return (DWORD) -1;
}

//------------------------------------------------------------------------------
// PRIVATE FUNCTIONS
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//
//  FUNCTION:       PrintBacklightSettings
//
//  DESCRIPTION:    Prints backlight timeout and level settings.
//    
//  PARAMETERS:     pSettings - pointer to backlight settings struct
//
//  RETURNS:        None
//
//------------------------------------------------------------------------------
static void PrintBacklightSettings(bklSettings_t *pSettings)
{
    DEBUGMSG(ZONE_INFO, (TEXT("Battery backlight settings:\r\n"), pSettings->fBattBacklightOnUser));
    DEBUGMSG(ZONE_INFO, (TEXT("\tEnable on user activity = %d\r\n"), pSettings->fBattBacklightOnUser));
    DEBUGMSG(ZONE_INFO, (TEXT("\tTimeout = %d seconds\r\n"), pSettings->dwBattTimeout));
    DEBUGMSG(ZONE_INFO, (TEXT("\tTimeout enable = %d \r\n"), pSettings->fBattTimeoutEnable));
    DEBUGMSG(ZONE_INFO, (TEXT("\tBacklight level = %d \r\n"), pSettings->dwBattBacklightLevel));

    DEBUGMSG(ZONE_INFO, (TEXT("AC backlight settings:\r\n"), pSettings->fBattBacklightOnUser));
    DEBUGMSG(ZONE_INFO, (TEXT("\tEnable on user activity = %d\r\n"), pSettings->fACBacklightOnUser));
    DEBUGMSG(ZONE_INFO, (TEXT("\tTimeout = %d seconds\r\n"), pSettings->dwACTimeout));
    DEBUGMSG(ZONE_INFO, (TEXT("\tTimeout enable = %d \r\n"), pSettings->fACTimeoutEnable));
    DEBUGMSG(ZONE_INFO, (TEXT("\tBacklight level = %d \r\n"), pSettings->dwACBacklightLevel));

}

//------------------------------------------------------------------------------
//
//  FUNCTION:       GetBacklightLevelSettings
//
//  DESCRIPTION:    Reads registry to get backlight level settings.
//    
//  PARAMETERS:     pSettings - pointer to backlight settings struct
//
//  RETURNS:        
//                  bklErrNone - no error
//                  bklErr* - backlight error codes
//
//------------------------------------------------------------------------------
static void GetBacklightLevelSettings(bklSettings_t *pSettings)
{
    HKEY  hDriverKey;
    DWORD dwStatus;
    DWORD dwType;
    DWORD dwSize = sizeof(DWORD);
    DWORD dwLevel;
    
    BKL_FUNCTION_ENTRY();
        
    dwStatus = RegOpenKeyEx(HKEY_CURRENT_USER, REG_PATH , 0, 0, &hDriverKey);
    if(dwStatus != ERROR_SUCCESS)
    {
        DEBUGMSG(ZONE_ERROR, (TEXT("Open BackLight registry fail!!\r\n")));
    }
    else
    {
        dwStatus = RegQueryValueEx(hDriverKey, BATT_LEVEL_SUBKEY , NULL, &dwType, (LPBYTE)&dwLevel, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(ZONE_ERROR, (TEXT("Get BackLight Batt level registry fail!!\r\n")));
        }
        else
        {
            if(dwLevel > BKL_LEVEL_MAX)
                dwLevel = BKL_LEVEL_MAX;
            
            if(dwLevel < BKL_LEVEL_MIN)
                dwLevel = BKL_LEVEL_MIN;
            bklSettings.dwBattBacklightLevel = dwLevel;
        }

        dwStatus = RegQueryValueEx(hDriverKey, AC_LEVEL_SUBKEY , NULL, &dwType, (LPBYTE)&dwLevel, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(ZONE_ERROR, (TEXT("Get BackLight AC level registry fail!!\r\n")));
        }
        else
        {
            if(dwLevel > BKL_LEVEL_MAX)
                dwLevel = BKL_LEVEL_MAX;
            
            if(dwLevel < BKL_LEVEL_MIN)
                dwLevel = BKL_LEVEL_MIN;
            
            bklSettings.dwACBacklightLevel = dwLevel;
        }

        RegCloseKey(hDriverKey);
    }
    
    BKL_FUNCTION_EXIT();        
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       GetBacklightTimeoutSettings
//
//  DESCRIPTION:    Reads registry to get backlight timeout settings.
//    
//  PARAMETERS:     pSettings - pointer to backlight settings struct
//
//  RETURNS:        
//                  bklErrNone - no error
//                  bklErr* - backlight error codes
//
//------------------------------------------------------------------------------
static void GetBacklightTimeoutSettings(bklSettings_t *pSettings)
{
    HKEY  hDriverKey;
    DWORD dwStatus;
    DWORD dwType;
    DWORD dwSize = sizeof(DWORD);
    DWORD dwSetting;

    BKL_FUNCTION_ENTRY();
        
    DEBUGMSG(ZONE_INFO, (TEXT("BACKLIGHT BATT TIMEOUT = %d seconds\r\n"), pSettings->dwBattTimeout));
    DEBUGMSG(ZONE_INFO, (TEXT("BACKLIGHT AC TIMEOUT = %d seconds\r\n"), pSettings->dwACTimeout));

    dwStatus = RegOpenKeyEx(HKEY_CURRENT_USER, REG_PATH , 0, 0, &hDriverKey);
    if(dwStatus != ERROR_SUCCESS)
    {
        DEBUGMSG(ZONE_ERROR, (TEXT("Open BackLight registry fail!!\r\n")));
    }
    else
    {
        // Update backlight timeout setttings if timeout is enabled
        dwStatus = RegQueryValueEx(hDriverKey, BATT_TIMEOUT_SUBKEY , NULL, &dwType, (LPBYTE)&dwSetting, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(ZONE_ERROR, (TEXT("Get BackLight Batt timeout registry fail!!\r\n")));
        }
        else
        {
            pSettings->dwBattTimeout = dwSetting;
        }

        dwStatus = RegQueryValueEx(hDriverKey, AC_TIMEOUT_SUBKEY , NULL, &dwType, (LPBYTE)&dwSetting, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(ZONE_ERROR, (TEXT("Get BackLight AC timeout registry fail!!\r\n")));
        }
        else
        {
            pSettings->dwACTimeout = dwSetting;
        }

        // Get backlight timeout enable
        dwStatus = RegQueryValueEx(hDriverKey, BATT_USEBATT_SUBKEY , NULL, &dwType, (LPBYTE)&dwSetting, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(ZONE_ERROR, (TEXT("Get BackLight Use Battery Check Box fail!!\r\n")));
        }
        else
        {
            pSettings->fBattTimeoutEnable = dwSetting? TRUE : FALSE;
        }

        dwStatus = RegQueryValueEx(hDriverKey, AC_USEEXT_SUBKEY , NULL, &dwType, (LPBYTE)&dwSetting, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(ZONE_ERROR, (TEXT("Get BackLight Use Ext check box fail!!\r\n")));
        }
        else
        {
            pSettings->fACTimeoutEnable = dwSetting? TRUE : FALSE;
        }

        RegCloseKey(hDriverKey);
    }
    
    // Always enable backlight on user activity
    pSettings->fBattBacklightOnUser = TRUE;
    pSettings->fACBacklightOnUser = TRUE;
    
    BKL_FUNCTION_EXIT();   
} 

//------------------------------------------------------------------------------
// END OF FILE
//------------------------------------------------------------------------------

⌨️ 快捷键说明

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