1 #include <curses.h> 2 3 FILE_LICENCE ( GPL2_OR_LATER ); 4 5 struct colour_pair { 6 short fcol; 7 short bcol; 8 }; 9 10 static 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 */ 23 int 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 */ 37 int 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 */ 56 int 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