/ payloads / libpayload / curses / colors.c
colors.c
 1  /*
 2   *
 3   * Copyright (C) 2007 Uwe Hermann <uwe@hermann-uwe.de>
 4   * Copyright (C) 2008 Advanced Micro Devices, Inc.
 5   *
 6   * Redistribution and use in source and binary forms, with or without
 7   * modification, are permitted provided that the following conditions
 8   * are met:
 9   * 1. Redistributions of source code must retain the above copyright
10   *    notice, this list of conditions and the following disclaimer.
11   * 2. Redistributions in binary form must reproduce the above copyright
12   *    notice, this list of conditions and the following disclaimer in the
13   *    documentation and/or other materials provided with the distribution.
14   * 3. The name of the author may not be used to endorse or promote products
15   *    derived from this software without specific prior written permission.
16   *
17   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20   * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27   * SUCH DAMAGE.
28   */
29  
30  /* Color pair management */
31  
32  #include "local.h"
33  
34  unsigned char color_pairs[256] = {
35  	[0] = 0x07,
36  };
37  
38  int start_color(void)
39  {
40  	return 0;
41  }
42  
43  int init_pair(short index, short fg, short bg)
44  {
45  	if (index == 0 || index > 255)
46  		return ERR;
47  
48  	color_pairs[index] = ((bg & 0xF) << 4) | (fg & 0xF);
49  	return 0;
50  }
51  
52  int pair_content(short index, short *fg, short *bg)
53  {
54  	if (index < 0 || index > 255)
55  		return ERR;
56  
57  	*bg = (color_pairs[index] >> 4) & 0xF;
58  	*fg = color_pairs[index] & 0xF;
59  
60  	return 0;
61  }