1#include <curses.h>
2
3FILE_LICENCE ( GPL2_OR_LATER );
4
5struct colour_pair {
6	short fcol;
7	short bcol;
8};
9
10static struct colour_pair cpairs[COLOUR_PAIRS] = {
11	[0] = { COLOUR_WHITE, COLOUR_BLACK },
12};
13
14/**
15 * Identify the RGB components of a given colour value
16 *
17 * @v colour	colour value
18 * @v *red	address to store red component
19 * @v *green	address to store green component
20 * @v *blue	address to store blue component
21 * @ret rc	return status code
22 */
23int colour_content ( short colour, short *red, short *green, short *blue ) {
24	*red = ( ( colour & COLOUR_RED ) ? 1 : 0 );
25	*green = ( ( colour & COLOUR_GREEN ) ? 1 : 0 );
26	*blue = ( ( colour & COLOUR_BLUE ) ? 1 : 0 );
27	return OK;
28}
29
30/**
31 * Initialise colour pair
32 *
33 * @v pair	colour pair number
34 * @v fcol	foreground colour
35 * @v bcol	background colour
36 */
37int init_pair ( short pair, short fcol, short bcol ) {
38	struct colour_pair *cpair;
39
40	if ( ( pair < 1 ) || ( pair >= COLOUR_PAIRS ) )
41		return ERR;
42
43	cpair = &cpairs[pair];
44	cpair->fcol = fcol;
45	cpair->bcol = bcol;
46	return OK;
47}
48
49/**
50 * Get colours of colour pair
51 *
52 * @v pair	colour pair number
53 * @ret fcol	foreground colour
54 * @ret bcol	background colour
55 */
56int pair_content ( short pair, short *fcol, short *bcol ) {
57	struct colour_pair *cpair;
58
59	if ( ( pair < 0 ) || ( pair >= COLOUR_PAIRS ) )
60		return ERR;
61
62	cpair = &cpairs[pair];
63	*fcol = cpair->fcol;
64	*bcol = cpair->bcol;
65	return OK;
66}
67