 void free_tracker(program_tracker_t *trackers[], int index) {
   program_tracker_t *tracker = trackers[index];
   if (tracker != NULL) {
-      DEBUG_VALUELN(DEBUG_HIGH, "free_tracker: clearing program for ", 
+      DEBUG_VALUELN(DEBUG_MID, "free_tracker: clearing program for ", 
 		    index);
       if (tracker->state) free(tracker->state);
       free(tracker);

#include "Adafruit_WS2801.h"
#include "Wire.h"

#define DEBUG_LEVEL DEBUG_HIGH
#include "Debug.h"

#include "GeneralUtils.h"

 */
boolean program_timed_change_init(msg_program_t *msg,
				  program_tracker_t *tracker) {
  DEBUG_PRINT(DEBUG_MID, "Initializing timed change program");

  state_timed_change_t *state = (state_timed_change_t *)malloc(sizeof (state_timed_change_t));  

  DEBUG_VALUE(DEBUG_MID, " msgsz=", sizeof (state->msg));

  memcpy(&state->msg, msg->values, sizeof (state->msg)); // ??? Correct size?
  state->change_time = 0;

  tracker->state = state;

  DEBUG_VALUELN(DEBUG_MID, " change_period:", state->msg.change_period);

  return true;
}
