// Display fancy LED pattern waiting for any button to be pressed // Wait for user to begin game inline static void wait_start() { uint8_t mask = 0; uint8_t buttons; uint8_t cnt; uint8_t led = LED0; do { set_leds(led); mask = wait_buttons(100); // 100ms max wait led = led == LED3 ? LED0 : led << 1; // next led } while (mask == 0); // wait more until all buttons are released set_leds(0); buttons = mask; do { mask = get_buttons(); buttons |= mask; } while (mask != 0); // configure game level depending on number of buttons pressed cnt = buttons_count(buttons); if (cnt == 2) game_level = 15; else if (cnt == 3) game_level = 20; else if (cnt == 4) game_level = 25; }
void tree_buttons_remove_button(void) { GtkTreeModel *model; GtkTreeSelection *sel; GtkTreeIter iter, iter_parent, iter_next; gint sel_new=1; sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(GET_WIDGET(TREEVIEW_BUTTONS_CONFIG))); if (gtk_tree_selection_get_selected(sel, &model, &iter) == FALSE) { fprintf(stderr, "Warning: tree_buttons_remove_button error, no selected button.\n"); return; } if (gtk_tree_model_iter_parent(model, &iter_parent, &iter) == FALSE) { iter_parent = iter; } iter_next = iter_parent; if (gtk_tree_model_iter_next(model, &iter_next) == FALSE) { if (buttons_count() <= 1) sel_new = 0; else gtk_tree_model_get_iter_first(model, &iter_next); } gtk_tree_store_remove(GTK_TREE_STORE(model), &iter_parent); if (sel_new == 1) gtk_tree_selection_select_iter(sel, &iter_next); }
void tree_buttons_replace_and_populate(int replace) { int i; GtkTreeStore *store = NULL; int count = buttons_count(); if (replace) tree_buttons_empty_store(); store = tree_buttons_get_store(); if (store == NULL) { fprintf(stderr, "Error: tree_buttons_populate could not get store.\n"); return; } for (i=0; i<count; i++) { if (replace || empty) tree_buttons_add_button(i, NULL, store); //else //tree_buttons_replace_button(i, store); } }