--- backlight_off.xpm Tue Dec 23 19:27:34 2003 +++ backlight_off.xpm Wed Jan 11 17:40:26 2006 @@ -56,15 +56,15 @@ "+@#%&&&%%%&&&&&&&%%%%%%%%&&&%%%%%%%%&&%&&&&%%&&%%&%%%&%&+$", "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%&+$", "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+$", -"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$", -"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$", -"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$", -"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$", -"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$", -"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$", -"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$", -"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$", -"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$", +"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$", +"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$", +"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$", +"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$", +"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$", +"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$", +"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$", +"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$", +"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$", "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++$", ".+++++++++++++++++++++++++++++++++++++++++++++++++++++++$.", "..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.."}; --- backlight_on.xpm Tue Dec 16 00:59:51 2003 +++ backlight_on.xpm Wed Jan 11 17:49:48 2006 @@ -39,7 +39,7 @@ ".++++...............................++$$$+$$$+$$$+.+++.++@", ".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++$+.+$+@", ".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$+++.+$++@", -".++++$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++.+$+++@", +".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++.+$+++@", ".++++...............................++$$$+$$$+$$$+.+$+.++@", ".++++++++++++++++++++++++++++++++++++++++++++++++++$+++$+@", ".++++...............................++$$$+$$$+$$$+.+++.++@", @@ -56,15 +56,15 @@ ".++++++$$$+++++++$$$$$$$$+++$$$$$$$$++$++++$$++$$+$$$+$++@", ".+++++++++++++++++++++++++++++++++++++$$$$$$$$$$$$$$$$$++@", ".++++++++++++++++++++++++++++++++++++++++++++++++++++++++@", -".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@", -".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@", -".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@", -".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@", -".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@", -".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@", -".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@", -".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@", -".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@", +".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@", +".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@", +".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@", +".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@", +".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@", +".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@", +".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@", +".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@", +".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@", ".++++++++++++++++++++++++++++++++++++++++++++++++++++++++@", " .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ "}; --- parts.xpm Tue Dec 16 00:59:51 2003 +++ parts.xpm Wed Jan 11 17:45:26 2006 @@ -61,13 +61,13 @@ "+...+@...++...@@...+@...+@...++...+@...++...+@...++###+$###++###$$###+$###+$###++###+$###++###+$###++###", ".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++.#+++##$$$##+++##+++##$$$##+++##+++##$$$##+++##+++##+++", ".@@@..@@@..+++..+++..@@@.&+++..+++..+++..+++..+++.#$$$##$$$##+++##+++##$$$##+++##+++##+++##+++##+++##+++", -"@.@.@+.+.++.@.++.@.@+...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###", -"@.@.@+.+.++.@.++.@.@+...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###", -"@.@.@+.+.++.@.++.@.@+...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###", -".+.+..@.@..+.+..@.@..+++&&+++..+++..@@@..+++..+++.#+#+##$#$##+#+##$#$##+++&&+++##+++##$$$&#+++##+++&&$$$", -"+.+.++.+.+@.@.@+.@.@@...+@...++...+@...++...+@...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###", -"+.+.++.+.+@.@.@+.@.@@...+@...++...+@...++...+@...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###", -"+.+.++.+.+@.@.@+.@.@@...+@...++...+@...++...+@...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###", +"@.@.@+.+.++...++...@+...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###", +"@.@.@+.+.++...++...@+...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###", +"@.@.@+.+.++...++...@+...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###", +".+.+..@.@..+++..@.@..+++&&+++..+++..@@@..+++..+++.#+#+##$#$##+++##$#$##+++&&+++##+++##$$$&#+++##+++&&$$$", +"+.+.++.+.+@...@+...@@...+@...++...+@...++...+@...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###", +"+.+.++.+.+@...@+...@@...+@...++...+@...++...+@...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###", +"+.+.++.+.+@...@+...@@...+@...++...+@...++...+@...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###", ".@@@..+++..@@@..+++..@@@&&+++..+++..@@@&.+++..+++##$$$##+++##$$$##+++##$$$&&+++##+++##$$$&#+++##+++##+++", "+++++++++++++++++++++++++++++++....+++....+++++++++++++++++..##+++####+++++++++++++++++#################", "++++++++++++++++++++++++++++++++.+++..+..++.+++++..++.+++.+..+++##+##++#+++++##++#+++#+#################", --- wmbsdbatt.c Tue Dec 23 19:27:34 2003 +++ wmbsdbatt.c Wed Jan 11 18:00:47 2006 @@ -67,6 +67,7 @@ int battery_time; int temperature; int low; + int freq; #if 0 int capacity; int rate; @@ -79,6 +80,7 @@ static char *sysctl_battery_time = "hw.acpi.battery.time"; static char *sysctl_temperature = "hw.acpi.thermal.tz0.temperature"; static char *sysctl_acline = "hw.acpi.acline"; +static char *sysctl_frequency = "dev.cpu.0.freq"; typedef enum { LIGHTOFF, LIGHTON } light; @@ -106,6 +108,7 @@ void draw_batt(void); void draw_low(void); void draw_temp(void); +void draw_freq(void); void draw_statusdigit(void); void draw_pcgraph(void); void blink_batt(void); @@ -238,7 +241,6 @@ } if (show) { /* show */ - draw_all(); if (charging) { blink_pos--; } @@ -284,6 +286,10 @@ addr -= 273; acpi_info.temperature = addr; + if (sysctlbyname(sysctl_frequency, &addr, &len, NULL, 0) == -1) + err(1, "sysctlbyname(\"%s\")", sysctl_frequency); + acpi_info.freq = addr; + if (sysctlbyname(sysctl_acline, &addr, &len, NULL, 0) == -1) err(1, "sysctlbyname(\"%s\")", sysctl_acline); acpi_info.acline = addr; @@ -372,6 +378,7 @@ draw_temp(); #endif draw_temp(); + draw_freq(); if (acpi_info.battery_status == CHARGING) blink_batt(); @@ -471,13 +478,35 @@ temp = 0; dockapp_copyarea(parts, pixmap, (temp / 10) * 5 + light_offset, 40, 5, - 9, 23, 46); + 9, 32, 46); dockapp_copyarea(parts, pixmap, (temp % 10) * 5 + light_offset, 40, 5, - 9, 29, 46); + 9, 38, 46); /* '°C'. */ - dockapp_copyarea(parts, pixmap, 10 + light_offset, 49, 5, 9, 36, 46); - dockapp_copyarea(parts, pixmap, 15 + light_offset, 49, 5, 9, 42, 46); + dockapp_copyarea(parts, pixmap, 10 + light_offset, 49, 5, 9, 44, 46); + dockapp_copyarea(parts, pixmap, 15 + light_offset, 49, 5, 9, 50, 46); + +} + +void +draw_freq(void) +{ + int light_offset=0; + int freq = acpi_info.freq; + + if (backlight == LIGHTON) + light_offset = 50; + + if (freq < 0) + freq = 0; + else if (freq > 9999) + freq = 9999; + if (freq >= 1000) + dockapp_copyarea(parts, pixmap, ((freq / 1000) % 10) * 5 + light_offset, 40, 5, 9, 4, 46); + if (freq >= 100) + dockapp_copyarea(parts, pixmap, ((freq / 100) % 10) * 5 + light_offset, 40, 5, 9, 10, 46); + dockapp_copyarea(parts, pixmap, ((freq / 10) % 10) * 5 + light_offset, 40, 5, 9, 16, 46); + dockapp_copyarea(parts, pixmap, (freq % 10) * 5 + light_offset, 40, 5, 9, 22, 46); }