void create_controls(void) { uint8_t i; if (view_mode == VIEW_MIXER) { for (i=0;i<6;i++) { mixer_mute[i] = mixer_get_mute_struct(i + 1); } } controls_count = 0; while (controls[view_mode][controls_count].name) { controls_count++; if (controls_count > CONTROLS_MAX_COUNT) { controls_count = 0; break; } } compute_controls_layout(); display_view_mode(); refocus_control(); }
static void on_handle_key(int key) { switch (key) { case 27: case KEY_CANCEL: case KEY_F(10): mixer_widget.close(); break; case KEY_F(1): case KEY_HELP: case 'H': case 'h': case '?': show_help(); break; case KEY_F(2): case '/': create_proc_files_list(); break; case KEY_F(3): set_view_mode(VIEW_MODE_PLAYBACK); break; case KEY_F(4): set_view_mode(VIEW_MODE_CAPTURE); break; case KEY_F(5): set_view_mode(VIEW_MODE_ALL); break; case '\t': set_view_mode((enum view_mode)((view_mode + 1) % VIEW_MODE_COUNT)); break; case KEY_F(6): case 'S': case 's': create_card_select_list(); break; case KEY_REFRESH: case 12: case 'L': case 'l': clearok(mixer_widget.window, TRUE); display_controls(); break; case KEY_LEFT: case 'P': case 'p': if (focus_control_index > 0) { --focus_control_index; refocus_control(); } break; case KEY_RIGHT: case 'N': case 'n': if (focus_control_index < controls_count - 1) { ++focus_control_index; refocus_control(); } break; case KEY_PPAGE: change_control_relative(5, LEFT | RIGHT); break; case KEY_NPAGE: change_control_relative(-5, LEFT | RIGHT); break; #if 0 case KEY_BEG: case KEY_HOME: change_control_to_percent(100, LEFT | RIGHT); break; #endif case KEY_LL: case KEY_END: change_control_to_percent(0, LEFT | RIGHT); break; case KEY_UP: case '+': case 'K': case 'k': case 'W': case 'w': change_control_relative(1, LEFT | RIGHT); break; case KEY_DOWN: case '-': case 'J': case 'j': case 'X': case 'x': change_control_relative(-1, LEFT | RIGHT); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': change_control_to_percent((key - '0') * 10, LEFT | RIGHT); break; case 'Q': case 'q': change_control_relative(1, LEFT); break; case 'Y': case 'y': case 'Z': case 'z': change_control_relative(-1, LEFT); break; case 'E': case 'e': change_control_relative(1, RIGHT); break; case 'C': case 'c': change_control_relative(-1, RIGHT); break; case 'M': case 'm': toggle_mute(LEFT | RIGHT); break; case 'B': case 'b': case '=': balance_volumes(); break; case '<': case ',': toggle_mute(LEFT); break; case '>': case '.': toggle_mute(RIGHT); break; case ' ': toggle_capture(LEFT | RIGHT); break; case KEY_IC: case ';': toggle_capture(LEFT); break; case KEY_DC: case '\'': toggle_capture(RIGHT); break; } }