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::template: template header file
    22: #
    23: #############################################################################
    24: ##
    25: ## Copyright 2008-2009 Douglas McClendon <dmc AT filteredperception DOT org>
    26: ##
    27: #############################################################################
    28: #############################################################################
    29: #
    30: */
    31: 
    32: #ifndef _LIB_MCP_H 
    33: #define _LIB_MCP_H 
    34: 
    35: 
    36: 
    37: #define PATH_MAXLEN 1023 
    38: 
    39: #define MCP_MAIN_SCREEN 1 
    40: #define MCP_SUB_SCREEN 0 
    41: 
    42: #define MCP_BG_HIDE 1 
    43: #define MCP_BG_SHOW 0 
    44: 
    45: #define MCP_MAX_BLEND_LEVEL 31 
    46: #define MCP_MIN_BLEND_LEVEL 0 
    47: 
    48: #define MCP_LAYER_ID(screen, layer) (screen ? layer : (layer + 4)) 
    49: 
    50: #define RGB15_TO_R5(color) (color & 0x001f) 
    51: #define RGB15_TO_G5(color) ((color & 0x03e0) >> 5) 
    52: #define RGB15_TO_B5(color) ((color & 0x7c00) >> 10) 
    53: #define RGB15_TO_A1(color) ((color & 0x8000) >> 15) 
    54: 
    55: #define MCP_FADE_MAXLEVEL 63 
    56: #define MCP_FADE_THROTTLE 4 
    57: 
    58: 
    59: 
    60: 
    61: 
    62: 
    63: 
    64: 
    65: 
    66: 
    67: 
    68: 
    69: 
    70: void mcp_basename(char *dest, 
    71: 		  char *path);
    72: void mcp_dirname(char *dest, 
    73: 		 char *path);
    74: 
    75: void mcp_set_blend(int main,
    76: 		   int level);
    77: int mcp_get_blend(int main);
    78: 
    79: int mcp_bg_init(int main,
    80: 		int layer,
    81: 		int hidden,
    82: 		BgType bg_type,
    83: 		BgSize bg_size,
    84: 		int map_base,
    85: 		int tile_base);
    86: 
    87: void mcp_bg_show(int main,
    88: 		 int layer);
    89: void mcp_bg_hide(int main,
    90: 		 int layer);
    91: 
    92: 
    93: void mcp_console_init(PrintConsole *pconsole,
    94: 		      int main,
    95: 		      int layer,
    96: 		      int hidden,
    97: 		      int loadfont,
    98: 		      BgType bg_type,
    99: 		      BgSize bg_size,
   100: 		      int map_base,
   101: 		      int tile_base);
   102: 
   103: void mcp_delay(int frames);
   104: 		      
   105: 
   106: void mcp_fade_set_enabled(int screen, 
   107: 			  int layer,
   108: 			  int fading_enable);
   109: int mcp_fade_get_enabled(int screen, 
   110: 			 int layer);
   111: 
   112: void mcp_fade_set_level(int screen, 
   113: 			int layer, 
   114: 			int level);
   115: int mcp_fade_get_level(int screen, 
   116: 		       int layer);
   117: 
   118: void mcp_fade_set_rate(int screen, 
   119: 		       int layer, 
   120: 		       int level);
   121: int mcp_fade_get_rate(int screen, 
   122: 		      int layer);
   123: 
   124: void mcp_fade_set_fwd(int screen, 
   125: 		      int layer,
   126: 		      int fwd);
   127: int mcp_fade_get_fwd(int screen, 
   128: 		     int layer);
   129: 
   130: void mcp_fade_set_func(int screen,
   131: 		       int layer,
   132: 		       void (*func)(void));
   133: void mcp_fade_fire_func(int screen,
   134: 			int layer);
   135: 
   136: void mcp_fade_init(void);
   137: 
   138: void mcp_fade_start(int screen,
   139: 		    int layer,
   140: 		    int fwd,
   141: 		    int duration_ms,
   142: 		    int update_period_hz,
   143: 		    void (*func)(void));
   144: 
   145: void mcp_fade_update(void);
   146: 
   147: 
   148: 
   149: 
   150: 
   151: #endif // _LIB_MCP_H 
   152: