/* called when mouse button pressed */ static void switch_light(void) { switch(backlight) { case LIGHTOFF: backlight = LIGHTON; dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0); break; case LIGHTON: backlight = LIGHTOFF; dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0); break; } /* redraw digit */ i.update(); if(i.valid()) i.update_statistics(); else i.ignore_statistics(); i.save(); draw_timedigit(); draw_pcdigit(); draw_statusdigit(); draw_pcgraph(); /* show */ dockapp_copy2window(pixmap); }
/* called by timer */ static void update() { static light pre_backlight; static Bool in_alarm_mode = False; /* get current ibam data */ i.update(); if(i.valid()) i.update_statistics(); else i.ignore_statistics(); i.save(); /* alarm mode */ if((unsigned int)i.percent_battery() < alarm_level) { if(!in_alarm_mode) { in_alarm_mode = True; pre_backlight = backlight; my_system(notif_cmd); } if((switch_authorized) || ((!switch_authorized) && (backlight != pre_backlight))) { switch_light(); return; } } else { if(in_alarm_mode) { in_alarm_mode = False; if(backlight != pre_backlight) { switch_light(); return; } } } /* all clear */ if(backlight == LIGHTON) dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0); else dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0); /* draw digit */ draw_timedigit(); draw_pcdigit(); draw_statusdigit(); draw_pcgraph(); /* show */ dockapp_copy2window(pixmap); }
/* called when mouse button pressed */ static void switch_light(void) { int h, i, j = hindex; int x = 0; switch (backlight) { case LIGHTOFF: backlight = LIGHTON; dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0); x = 2; break; case LIGHTON: backlight = LIGHTOFF; dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0); x = 0; break; } /* redraw digit */ draw_digit(history[hindex]); #ifdef USE_SMP /* draw cpu number */ if (cpu_opts.cpu_number != CPUNUM_NONE) draw_cpunumber(); #endif /* redraw chart */ for (i = 0; i < MAX_HISTORY; i++) { h = (21 * history[j]) / 100; dockapp_copyarea(parts, pixmap, 100+x, 21-h, 2, h, 51-3*i, 54-h); j--; if (j < 0) j = MAX_HISTORY - 1; } /* show */ dockapp_copy2window(pixmap); }
/* called by timer */ static void update(void) { int usage; int x, h; static light pre_backlight; static Bool in_alarm_mode = False; /* get current cpu usage in percent */ usage = cpu_get_usage(&cpu_opts); hindex++; if (hindex >= MAX_HISTORY) { hindex = 0; } history[hindex] = usage; /* alarm mode */ if (usage >= alarm_threshold) { if (!in_alarm_mode) { in_alarm_mode = True; pre_backlight = backlight; } if (backlight == LIGHTOFF) { switch_light(); return; } } else { if (in_alarm_mode) { in_alarm_mode = False; if (backlight != pre_backlight) { switch_light(); return; } } } /* save current chart */ dockapp_copyarea(pixmap, pix_chartbuf, 9, 33, 44, 21, 0, 0); /* all clear */ if (backlight == LIGHTON) { dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0); x = 2; } else { dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0); x = 0; } /* draw digit */ draw_digit(usage); #ifdef USE_SMP /* draw cpu number */ if (cpu_opts.cpu_number != CPUNUM_NONE) draw_cpunumber(); #endif /* draw chart */ h = (21 * usage) / 100; dockapp_copyarea(pix_chartbuf, pixmap, 0, 0, 44, 21, 6, 33); dockapp_copyarea(parts, pixmap,100+x, 21-h, 2, h, 51, 54-h); /* show */ dockapp_copy2window(pixmap); }
static void update(void) { static int percent; /* LongRun performance level */ static int flags; /* LongRun flags */ static int mhz; /* LongRun frequency */ static int voltz; /* LongRun voltage */ int digit1 = 0, digit10 = 0, digit100 = 0; longrun_get_stat(&percent, &flags, &mhz, &voltz); digit100 = mhz / 100; digit10 = (mhz - digit100 * 100) / 10; digit1 = mhz - digit100 * 100 - digit10 * 10; /* LCD interface */ if (!is_led_style) { int y_lrmode = 0, y_gauge = 0, y_digit = 0; /* clear */ switch (backlight) { case LIGHTON: dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0); y_lrmode = 11; y_gauge = 14; y_digit = 13; break; case LIGHTOFF: dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0); break; } /* longrun flags (performance or economy) */ switch (flags) { case LONGRUN_FLAGS_PEFORMANCE: dockapp_copyarea(parts, pixmap, 24, y_lrmode, 24, 11, 31, 5); break; case LONGRUN_FLAGS_ECONOMY: dockapp_copyarea(parts, pixmap, 0, y_lrmode, 24, 11, 5, 5); break; default: break; /* make gcc happy */ } /* draw digit (frequency) */ dockapp_copyarea(parts, pixmap, digit100*7,y_digit+33, 7,13, 6,22); dockapp_copyarea(parts, pixmap, digit10*7,y_digit+33, 7,13, 15,22); dockapp_copyarea(parts, pixmap, digit1*7,y_digit+33, 7,13, 24,22); /* draw level gauge */ dockapp_copyarea(parts, pixmap, 0,y_gauge+72, 49*percent/100,14,5,40); } /* LED interface */ else { dockapp_copyarea(backdrop_led, pixmap, 0, 0, 58, 58, 0, 0); /* longrun flags (performance or economy) */ switch (flags) { case LONGRUN_FLAGS_PEFORMANCE: dockapp_copyarea(parts, pixmap, 24, 22, 24, 11, 30, 3); break; case LONGRUN_FLAGS_ECONOMY: dockapp_copyarea(parts, pixmap, 0, 22, 24, 11, 3, 3); break; default: break; /* make gcc happy */ } /* draw digit (frequency) */ dockapp_copyarea(parts, pixmap, digit100*7,59, 7,13, 4,22); dockapp_copyarea(parts, pixmap, digit10*7,59, 7,13, 13,22); dockapp_copyarea(parts, pixmap, digit1*7,59, 7,13, 22,22); /* draw level gauge */ dockapp_copyarea(parts, pixmap, 0, 100, 56 * percent / 100, 16, 1, 41); } /* show */ dockapp_copy2window(pixmap); }