Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.

Commit

Permalink
testing monitor support
Browse files Browse the repository at this point in the history
  • Loading branch information
maoserr committed Jul 20, 2014
1 parent fd4e3cb commit d071540
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 9 deletions.
51 changes: 47 additions & 4 deletions src/backends/w32gdi.c
Expand Up @@ -141,17 +141,60 @@ static int w32gdi_restore(void)

static int w32gdi_set_temperature(int temp, /*@unused@*/ gamma_s gamma)
{
int cmcap;
int n,i;
HDC hdc;
DISPLAY_DEVICE dd;

gamma_ramp_s ramp=gamma_ramp_fill(GAMMA_RAMP_SIZE,temp);

/* Set new gamma ramps */
if( (!state.hDC)||(!ramp.all) ){
LOG(LOGERR,_("No device context or ramp."));
return RET_FUN_FAILED;
}
if( !SetDeviceGammaRamp(state.hDC,ramp.all)) {
LOG(LOGERR,_("Unable to set gamma ramps."));
return RET_FUN_FAILED;
}


n = GetSystemMetrics(SM_CMONITORS);
LOG(LOGVERBOSE,_("Found %d monitors."),n);
dd.cb = sizeof(dd);

for (i=0;i<n;i++) {
dd.DeviceName [0] = '\0';
dd.DeviceString[0] = '\0';
dd.DeviceID [0] = '\0';
dd.DeviceKey [0] = '\0';

dd.StateFlags = 0;

EnumDisplayDevices(NULL, i, &dd, 0);

LOG(LOGVERBOSE,_("Screen %d Flags: %d"), i);
LOG(LOGVERBOSE,_("Flags: %d"), dd.StateFlags);
LOG(LOGVERBOSE,_("Name: %s"), dd.DeviceName);
LOG(LOGVERBOSE,_("String: %s"),dd.DeviceString);
LOG(LOGVERBOSE,_("ID: %s"), dd.DeviceID);
LOG(LOGVERBOSE,_("Key: %s"), dd.DeviceKey);

hdc = CreateDC(NULL, dd.DeviceName, NULL, NULL);
LOG(LOGVERBOSE,_(" dims: %dx%d"), GetDeviceCaps(hdc, HORZRES), GetDeviceCaps(hdc, VERTRES));
LOG(LOGVERBOSE,_(" colors: %d bits"), GetDeviceCaps(hdc, BITSPIXEL));
cmcap = GetDeviceCaps(hdc, COLORMGMTCAPS);
if (cmcap != CM_GAMMA_RAMP) {
LOG(LOGVERBOSE,_("Display device does not support gamma ramps: %d"),cmcap);
}else{
LOG(LOGVERBOSE,_("Display device supports gamma ramps."));
}
if( !SetDeviceGammaRamp(hdc,ramp.all)) {
LOG(LOGERR,_("Unable to set gamma ramps."));
}
(void)DeleteDC(hdc);
}

//if( !SetDeviceGammaRamp(state.hDC,ramp.all)) {
// LOG(LOGERR,_("Unable to set gamma ramps."));
// return RET_FUN_FAILED;
//}

return RET_FUN_SUCCESS;
}
Expand Down
3 changes: 2 additions & 1 deletion src/gui/win32gui.c
Expand Up @@ -44,10 +44,11 @@ INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
guigamma_init_timers();
if( opt_get_disabled() ){
guigamma_disable();
EnableWindow(GetDlgItem(gHmain,IDC_MAIN_SL_AUTO),TRUE);
}else{
guigamma_check((HWND)NULL,(UINT)NULL,(UINT)NULL,(DWORD)NULL);
}
SendMessage(GetDlgItem(gHmain,IDC_MAIN_SL_AUTO), TBM_SETRANGE,
SendDlgItemMessage(gHmain,IDC_MAIN_SL_AUTO, TBM_SETRANGE,
(WPARAM) TRUE, // redraw flag
(LPARAM) MAKELONG(3600, 6500)); // min. & max. positions

Expand Down
6 changes: 3 additions & 3 deletions src/gui/win32gui_gamma.c
Expand Up @@ -98,8 +98,8 @@ void guigamma_check(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime){
opt_get_temp_day(),opt_get_temp_night());
LOG(LOGINFO,_("Gamma check, current: %d, target: %d"),
curr_temp,target_temp);
if( fabs((double)(curr_temp - target_temp)) >= 1.0 ){
// Disable current timer
if( fabs((double)(curr_temp - target_temp)) >= 100 ){
// Transition
_gamma_toggle_timer_check(0);
_gamma_toggle_timer_trans(1);
}
Expand Down Expand Up @@ -128,8 +128,8 @@ void guigamma_init_timers(void){
// Make sure gamma is synced up
curr_temp = gamma_state_get_temperature();
(void)gamma_state_set_temperature(curr_temp,opt_get_gamma());
(void)guigamma_check((HWND)NULL,(UINT)NULL,(UINT)NULL,(DWORD)NULL);
_gamma_toggle_timer_check(1);
(void)guigamma_check((HWND)NULL,(UINT)NULL,(UINT)NULL,(DWORD)NULL);
}

// Destroys timers
Expand Down
2 changes: 1 addition & 1 deletion src/win32/Redshiftgui.rc
Expand Up @@ -33,7 +33,7 @@ FONT 8, "Ms Shell Dlg"
{
LTEXT "Info", IDC_MAIN_ST_INFO, 10, 105, 13, 8, SS_LEFT, WS_EX_LEFT
AUTOCHECKBOX "Disable auto-adjust", IDC_MAIN_CHK_AUTO, 97, 65, 76, 8, 0, WS_EX_LEFT
CONTROL "", IDC_MAIN_SL_AUTO, TRACKBAR_CLASS, WS_TABSTOP | TBS_BOTH | TBS_NOTICKS, 95, 75, 110, 12, WS_EX_LEFT
CONTROL "", IDC_MAIN_SL_AUTO, TRACKBAR_CLASS, WS_TABSTOP | WS_DISABLED | TBS_BOTH | TBS_NOTICKS, 95, 75, 110, 12, WS_EX_LEFT
CONTROL "", IDC_MAIN_SL_BRI, TRACKBAR_CLASS, WS_TABSTOP | TBS_BOTH | TBS_NOTICKS, 95, 100, 110, 12, WS_EX_LEFT
LTEXT "Current:", 50000, 95, 15, 26, 8, SS_LEFT, WS_EX_LEFT
LTEXT "Day:", 50001, 95, 25, 16, 8, SS_LEFT, WS_EX_LEFT
Expand Down

0 comments on commit d071540

Please sign in to comment.