📄 backlight.cpp
字号:
//
// 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 + -