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

📄 backlight.cpp

📁 freescale i.mx31 BSP CE5.0全部源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            break;

        case DLL_PROCESS_DETACH:
            DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BKL_DllEntry: DLL_PROCESS_DETACH\r\n")));
            break;
    }
    // return TRUE for success
    return TRUE;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Open
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
DWORD BKL_Open(DWORD dwData, DWORD dwAccess, DWORD dwShareMode)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("+BKL_Open: dwData = 0x%x, dwAccess = 0x%x, dwShareMode = 0x%x\r\n"), dwData, dwAccess, dwShareMode));

    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("-BKL_Open\r\n")));

    return dwData;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Close
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
BOOL BKL_Close(DWORD Handle)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("+BKL_Close: Handle = 0x%x\r\n"), Handle));

    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("-BKL_Close: Handle = 0x%x\r\n"), Handle));

    return TRUE;
}


//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_PowerDown
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
void BKL_PowerDown(void)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BKL_POWERDOWN!!\r\n")));
    // turn off any hardware and/or interrupts in preparation for suspend
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_PowerUp
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
void BKL_PowerUp(void)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BKL_POWERUP!!\r\n")));
    // prepare to resume by either re-opening the device or resetting it to closed
    //Power up is done in BKL_Init by enaBLDing the PMU clock for SDHC
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Read
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
DWORD BKL_Read(DWORD Handle, LPVOID pBuffer, DWORD dwNumBytes)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BKL_Read: Handle = 0x%x, pBuffer = 0x%x, dwNumBytes = 0x%x\r\n"), Handle, pBuffer, dwNumBytes));
    return 0;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Write
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
DWORD BKL_Write(DWORD Handle, LPCVOID pBuffer, DWORD dwNumBytes)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BKL_Write: Handle = 0x%x, pBuffer = 0x%x, dwNumBytes = 0x%x\r\n"), Handle, pBuffer, dwNumBytes));
    return 0;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       BKL_Seek
//
//  DESCRIPTION:
//  PARAMETERS:
//
//  RETURNS:
//
//------------------------------------------------------------------------------
DWORD BKL_Seek(DWORD Handle, long lDistance, DWORD dwMoveMethod)
{
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BKL_Seek: Handle = 0x%x, lDistance = 0x%x, dwMoveMethod = 0x%x\r\n"), Handle, lDistance, dwMoveMethod));
    return (DWORD) -1;
}


//------------------------------------------------------------------------------
//
//  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(BKL_DEBUG_MSG, (TEXT("Battery backlight settings:\r\n"), pSettings->fBattBacklightOnUser));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tEnable on user activity = %d\r\n"), pSettings->fBattBacklightOnUser));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tTimeout = %d seconds\r\n"), pSettings->dwBattTimeout));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tTimeout enable = %d \r\n"), pSettings->fBattTimeoutEnable));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tBacklight level = %d \r\n"), pSettings->dwBattBacklightLevel));

    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("AC backlight settings:\r\n"), pSettings->fBattBacklightOnUser));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tEnable on user activity = %d\r\n"), pSettings->fACBacklightOnUser));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tTimeout = %d seconds\r\n"), pSettings->dwACTimeout));
    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("\tTimeout enable = %d \r\n"), pSettings->fACTimeoutEnable));
    DEBUGMSG(BKL_DEBUG_MSG, (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;

    dwStatus = RegOpenKeyEx(HKEY_CURRENT_USER, REG_PATH , 0, 0, &hDriverKey);
    if(dwStatus != ERROR_SUCCESS)
    {
        DEBUGMSG(BKL_DEBUG_MSG, (TEXT("Open BackLight registry fail!!\r\n")));
    }
    else
    {
        dwStatus = RegQueryValueEx(hDriverKey, BATT_LEVEL_SUBKEY , NULL, &dwType, (LPBYTE)&dwLevel, &dwSize);
        if(dwStatus != ERROR_SUCCESS)
        {
            DEBUGMSG(BKL_DEBUG_MSG, (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(BKL_DEBUG_MSG, (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);
    }
}

//------------------------------------------------------------------------------
//
//  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;

    DEBUGMSG(BKL_DEBUG_MSG, (TEXT("BACKLIGHT BATT TIMEOUT = %d seconds\r\n"), pSettings->dwBattTimeout));
    DEBUGMSG(BKL_DEBUG_MSG, (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(BKL_DEBUG_MSG, (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(BKL_DEBUG_MSG, (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(BKL_DEBUG_MSG, (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(BKL_DEBUG_MSG, (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(BKL_DEBUG_MSG, (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;
}

//------------------------------------------------------------------------------
//
//  FUNCTION:       CalculateTimeout
//
//  DESCRIPTION:    calaulate the time out value according to the user setting 
//                  and current power source.
//
//  PARAMETERS:     pSettings - pointer to backlight settings struct
//
//  RETURNS:
//                  timeout value
//
//------------------------------------------------------------------------------
DWORD CalculateTimeout(bklSettings_t *pSettings)
{
    DWORD timeout = INFINITE ;

    if ((fACOnline == TRUE) && (pSettings->fACTimeoutEnable))
    {
        timeout = pSettings->dwACTimeout * 1000;

    }
    else if ((fACOnline != TRUE) && (pSettings->fBattTimeoutEnable))
    {
        timeout = pSettings->dwBattTimeout * 1000 ;
    }

    return timeout;
}

⌨️ 快捷键说明

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