1: /*
2: * Guitar-ZyX(tm)::MasterControlProgram - portable guitar F/X controller
3: * Copyright (C) 2009 Douglas McClendon
4: *
5: * This program is free software: you can redistribute it and/or modify
6: * it under the terms of the GNU General Public License as published by
7: * the Free Software Foundation, version 3 of the License.
8: *
9: * This program is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU General Public License for more details.
13: *
14: * You should have received a copy of the GNU General Public License
15: * along with this program. If not, see <http://www.gnu.org/licenses/>.
16: */
17: /*
18: #############################################################################
19: #############################################################################
20: #
21: # gzmcpc::modes: modes header file
22: #
23: #############################################################################
24: ##
25: ## Copyright 2008-2009 Douglas McClendon <dmc AT filteredperception DOT org>
26: ##
27: #############################################################################
28: #############################################################################
29: #
30: */
31:
32: #ifndef _NDS_CLIENT_MODES_H
33: #define _NDS_CLIENT_MODES_H
34:
35:
36:
37:
38:
39:
40:
41: #include "time.h"
42:
43:
44:
45: typedef struct mode_def_tag {
46: // a little fun
47: void (*hello)(void);
48: void (*icandy_top_reindeer)(void);
49: void (*icandy_bot_reindeer)(void);
50: void (*input_processor)(void);
51: void (*slacker_funk)(void);
52: void (*goodbye)(void);
53: } mode_def;
54:
55:
56: typedef enum {
57: MODE_INTRO__MAIN,
58: MODE_INTRO__CREDITS,
59: MODE_MAIN_MENU,
60: MODE_GET_UPDATE,
61: MODE_SSID__INPUT,
62: MODE_TPW__JAM,
63: // SERVERCONSOLE,
64: // SCROLLMENU,
65: // 1st use, ssid input, use/displaystrings defined with globals
66: // STRINGINPUT,
67: // single slider,
68: // with miniscroll numerical inputs
69: // (or slider w/dragable tikmarks)
70: // for min and max
71: // and reverse toggle
72: // SLIDERINPUT
73: // one for each rakmod
74: // ONOFFINPUT
75: // 10/18 radio buttons
76: // ACTIVERAKMODS
77: // RECCONTROL
78: // TUNERFEEDBACK
79: MODE_NUM_MODES,
80: } gzmcp_mode;
81:
82:
83:
84:
85: void system_xmode_new(gzmcp_mode next_mode);
86:
87: void system_xmode_reinit(void);
88:
89: void system_xmode_real(void);
90:
91: void got_no_funk(void);
92:
93:
94:
95:
96: extern gzmcp_mode last_mode;
97: extern gzmcp_mode mode;
98: extern gzmcp_mode next_mode;
99: extern gzmcp_mode new_mode;
100:
101: extern mode_def modes[];
102:
103: extern time_val mode_start;
104:
105: extern long mode_ms;
106: extern long exit_mode_ms;
107: #endif // _NDS_CLIENT_MODES_H
108: