void update () { if (simulated_input) return; f_node *n = nodes.first (); while (n) { update (n); n = nodes.next (n); } }
void update_highlighted () { if (simulated_input) return; f_node *n = nodes.first (); while (n) { if (n->highlight) update (n); n = nodes.next (n); } }
void get_cb (chordID next) { draw_ring (); if (get_queue.size ()) { chordID n = get_queue.pop_front (); f_node *nu = nodes[n]; if (nu) update (nu); } else { f_node *node_next = nodes[next]; if (node_next == NULL) node_next = nodes.first (); if (node_next) { update (node_next); node_next = nodes.next (node_next); if (node_next == NULL) node_next = nodes.first (); next = node_next->ID; } // else no nodes, keep calling get_cb until there are some } delaycb (0, 1000*1000*interval, wrap (&get_cb, next)); }