source: mainline/uspace/app/tester/console/console1.c@ 901b302

ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 901b302 was 805a149, checked in by Jiri Svoboda <jiri@…>, 4 years ago

Make terminal colors consistent with EGA

The current color scheme makes bright and non-bright colors appear very
simiar. We keep the color rendering of default style the same just yet.

  • Property mode set to 100644
File size: 3.9 KB
RevLine 
[713e6f2d]1/*
2 * Copyright (c) 2008 Jiri Svoboda
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - 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 * - 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 ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <stdio.h>
30#include <stdlib.h>
[cbff4c2]31#include <io/console.h>
32#include <io/color.h>
33#include <io/style.h>
[3bf907a]34#include <vfs/vfs.h>
[713e6f2d]35#include <async.h>
36#include "../tester.h"
37
[a000878c]38static const char *color_name[] = {
[9805cde]39 [COLOR_BLACK] = "black",
40 [COLOR_BLUE] = "blue",
41 [COLOR_GREEN] = "green",
42 [COLOR_CYAN] = "cyan",
43 [COLOR_RED] = "red",
44 [COLOR_MAGENTA] = "magenta",
45 [COLOR_YELLOW] = "yellow",
46 [COLOR_WHITE] = "white"
47};
[713e6f2d]48
[a000878c]49const char *test_console1(void)
[713e6f2d]50{
[2d11a7d8]51 if (!test_quiet) {
[79ae36dd]52 console_ctrl_t *console = console_init(stdin, stdout);
[a35b458]53
[2d11a7d8]54 printf("Style test: ");
[79ae36dd]55 console_flush(console);
56 console_set_style(console, STYLE_NORMAL);
[9f1362d4]57 printf(" normal ");
[79ae36dd]58 console_flush(console);
59 console_set_style(console, STYLE_EMPHASIS);
[9f1362d4]60 printf(" emphasized ");
[79ae36dd]61 console_flush(console);
62 console_set_style(console, STYLE_INVERTED);
[9f1362d4]63 printf(" inverted ");
[79ae36dd]64 console_flush(console);
65 console_set_style(console, STYLE_SELECTED);
[9f1362d4]66 printf(" selected ");
[79ae36dd]67 console_flush(console);
68 console_set_style(console, STYLE_NORMAL);
[9f1362d4]69 printf("\n");
[a35b458]70
[2d11a7d8]71 unsigned int i;
72 unsigned int j;
[a35b458]73
[2d11a7d8]74 printf("\nForeground color test:\n");
75 for (j = 0; j < 2; j++) {
76 for (i = COLOR_BLACK; i <= COLOR_WHITE; i++) {
[79ae36dd]77 console_flush(console);
[7c014d1]78 console_set_color(console, COLOR_WHITE, i,
[2d11a7d8]79 j ? CATTR_BRIGHT : 0);
80 printf(" %s ", color_name[i]);
81 }
[79ae36dd]82 console_flush(console);
83 console_set_style(console, STYLE_NORMAL);
[2d11a7d8]84 putchar('\n');
85 }
[a35b458]86
[2d11a7d8]87 printf("\nBackground color test:\n");
88 for (j = 0; j < 2; j++) {
89 for (i = COLOR_BLACK; i <= COLOR_WHITE; i++) {
[79ae36dd]90 console_flush(console);
[7c014d1]91 console_set_color(console, i, COLOR_WHITE,
[2d11a7d8]92 j ? CATTR_BRIGHT : 0);
93 printf(" %s ", color_name[i]);
94 }
[79ae36dd]95 console_flush(console);
96 console_set_style(console, STYLE_NORMAL);
[2d11a7d8]97 putchar('\n');
98 }
[a35b458]99
[2d11a7d8]100 printf("\nRGB colors test:\n");
[a35b458]101
[2d11a7d8]102 for (i = 0; i < 255; i += 16) {
[79ae36dd]103 console_flush(console);
[7c014d1]104 console_set_rgb_color(console, i << 16, (255 - i) << 16);
[2d11a7d8]105 putchar('X');
[9805cde]106 }
[79ae36dd]107 console_flush(console);
[805a149]108 console_set_style(console, STYLE_NORMAL);
[9805cde]109 putchar('\n');
[a35b458]110
[2d11a7d8]111 for (i = 0; i < 255; i += 16) {
[79ae36dd]112 console_flush(console);
[7c014d1]113 console_set_rgb_color(console, i << 8, (255 - i) << 8);
[2d11a7d8]114 putchar('X');
[9805cde]115 }
[79ae36dd]116 console_flush(console);
[805a149]117 console_set_style(console, STYLE_NORMAL);
[9805cde]118 putchar('\n');
[a35b458]119
[2d11a7d8]120 for (i = 0; i < 255; i += 16) {
[79ae36dd]121 console_flush(console);
[7c014d1]122 console_set_rgb_color(console, i, 255 - i);
[2d11a7d8]123 putchar('X');
124 }
[79ae36dd]125 console_flush(console);
126 console_set_style(console, STYLE_NORMAL);
[2d11a7d8]127 putchar('\n');
[9805cde]128 }
[a35b458]129
[713e6f2d]130 return NULL;
131}
Note: See TracBrowser for help on using the repository browser.