2
0
mirror of https://github.com/xcat2/xNBA.git synced 2024-12-15 07:41:45 +00:00
xNBA/src/hci/mucurses/colour.c

65 lines
1.3 KiB
C

#include <curses.h>
struct colour_pair {
short fcol;
short bcol;
};
static struct colour_pair cpairs[COLOUR_PAIRS] = {
[0] = { COLOUR_WHITE, COLOUR_BLACK },
};
/**
* Identify the RGB components of a given colour value
*
* @v colour colour value
* @v *red address to store red component
* @v *green address to store green component
* @v *blue address to store blue component
* @ret rc return status code
*/
int colour_content ( short colour, short *red, short *green, short *blue ) {
*red = ( ( colour & COLOUR_RED ) ? 1 : 0 );
*green = ( ( colour & COLOUR_GREEN ) ? 1 : 0 );
*blue = ( ( colour & COLOUR_BLUE ) ? 1 : 0 );
return OK;
}
/**
* Initialise colour pair
*
* @v pair colour pair number
* @v fcol foreground colour
* @v bcol background colour
*/
int init_pair ( short pair, short fcol, short bcol ) {
struct colour_pair *cpair;
if ( ( pair < 1 ) || ( pair >= COLOUR_PAIRS ) )
return ERR;
cpair = &cpairs[pair];
cpair->fcol = fcol;
cpair->bcol = bcol;
return OK;
}
/**
* Get colours of colour pair
*
* @v pair colour pair number
* @ret fcol foreground colour
* @ret bcol background colour
*/
int pair_content ( short pair, short *fcol, short *bcol ) {
struct colour_pair *cpair;
if ( ( pair < 0 ) || ( pair >= COLOUR_PAIRS ) )
return ERR;
cpair = &cpairs[pair];
*fcol = cpair->fcol;
*bcol = cpair->bcol;
return OK;
}