sdk-world v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Loading...
Searching...
No Matches
aaslang.c
1#include <setjmp.h>
2#include <signal.h>
3#include <stdio.h>
4#include "config.h"
5#ifdef SLANG_DRIVER
6#include <slang.h>
7#ifdef GPM_MOUSEDRIVER
8#include <gpm.h>
9#endif
10#include "aalib.h"
11struct aa_driver slang_d;
12int __slang_is_up = 0;
13int __resized_slang = 0;
14static int uninitslang;
15
16static int slang_init(struct aa_hardware_params *p, void *none, struct aa_hardware_params *dest, void **params)
17{
18 struct aa_hardware_params def={NULL, AA_NORMAL_MASK | AA_BOLD_MASK | AA_REVERSE_MASK | AA_BOLDFONT_MASK | AA_DIM_MASK};
19 *dest=def;
20 fflush(stdout);
21 if (!__slang_is_up) {
22 SLtt_get_terminfo();
23 __slang_is_up = 1;
24 uninitslang = 1;
25 }
26 if (!SLsmg_init_smg())
27 return 0;
28 if (SLtt_Use_Ansi_Colors) {
29 dest->supported &= ~AA_BOLDFONT_MASK;
30 }
31 SLsmg_Display_Eight_Bit = 128;
32 dest->supported |= AA_EIGHT;
33 aa_recommendlowkbd("slang");
34 return 1;
35}
36static void slang_uninit(aa_context * c)
37{
38 SLsmg_reset_smg();
39 if (uninitslang) {
40 uninitslang = 0;
41 __slang_is_up = 0;
42 }
43}
44static void slang_getsize(aa_context * c, int *width, int *height)
45{
46 SLtt_get_screen_size();
47 SLsmg_reset_smg();
48 if (!SLsmg_init_smg())
49 printf("Internal error!\n");
50 SLtt_set_mono(AA_NORMAL, "normal", 0);
51 SLtt_set_mono(AA_BOLD, "bold", SLTT_BOLD_MASK);
52 SLtt_set_mono(AA_DIM, "dim", SLTT_ALTC_MASK);
53 SLtt_set_mono(AA_REVERSE, "reverse", SLTT_REV_MASK);
54 SLtt_set_mono(AA_SPECIAL, "special", 0);
55 SLtt_set_mono(AA_BOLDFONT, "boldfont", SLTT_BOLD_MASK);
56
57 SLtt_set_color(AA_NORMAL, "normal", "lightgray", "black");
58 SLtt_set_color(AA_BOLD, "bold", "white", "black");
59 SLtt_set_color(AA_DIM, "dim", "gray", "black");
60 SLtt_set_color(AA_REVERSE, "bold", "black", "lightgray");
61 SLtt_set_color(AA_SPECIAL, "dim", "lightgray", "blue");
62 SLtt_set_color(AA_BOLDFONT, "bold", "white", "black");
63 *width = SLtt_Screen_Cols;
64 *height = SLtt_Screen_Rows;
65 /*if(i==2) exit(1); */
66#ifdef GPM_MOUSEDRIVER
67 gpm_mx = *width;
68 gpm_my = *height;
69#endif
70
71}
72static void slang_setattr(aa_context * c, int attr)
73{
74 SLsmg_set_color(attr);
75}
76static void slang_print(aa_context * c, char *text)
77{
78 SLsmg_write_string(text);
79}
80static void slang_flush(aa_context * c)
81{
82 SLsmg_refresh();
83}
84static void slang_gotoxy(aa_context * c, int x, int y)
85{
86 SLsmg_gotorc(y, x);
87}
88static void slang_cursor(aa_context * c, int mode)
89{
90 SLtt_set_cursor_visibility(mode);
91}
92
93
94
95struct aa_driver slang_d =
96{
97 "slang", "Slang driver 1.0",
98 slang_init,
99 slang_uninit,
100 slang_getsize,
101 slang_setattr,
102 slang_print,
103 slang_gotoxy,
104 slang_flush,
105 slang_cursor,
106};
107#endif