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: