+signed char bright = BRIGHT_INIT;
+bit bright_up;
+signed char pbHeldCount;
+
+/* Return the constrained brightness level for use in computing RGB values */
+unsigned char bright_get()
+{
+ if (bright > BRIGHT_MAX)
+ return BRIGHT_MAX;
+ else if (bright < BRIGHT_MIN)
+ return BRIGHT_MIN;
+ else
+ return bright;
+}
+
+/* RGB values will not illuminate the LED */
+unsigned char led_get(unsigned value)
+{
+ value = (value * bright_get()) >> 8;
+#ifdef CEIL256
+ if (value && value < 0x26)
+ return 0x26;
+#else
+ if (value && value < 4)
+ return 4;
+#endif
+ return value;
+}
+
+/* Set the LEDs using both color and brightness values. */
+void leds_set()
+{
+ rgb_set(led_get((red).value),
+ led_get((grn).value), led_get((blu).value),
+ led_get((wht).value));
+}