4 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
9 static char rcsid[] = "$Id$";
13 * Revision 1.8 2008/02/28 16:57:52 james
14 * *** empty log message ***
16 * Revision 1.7 2008/02/28 16:37:16 james
17 * *** empty log message ***
19 * Revision 1.6 2008/02/28 12:12:25 james
20 * *** empty log message ***
22 * Revision 1.5 2008/02/23 11:48:37 james
23 * *** empty log message ***
25 * Revision 1.4 2008/02/22 17:07:00 james
26 * *** empty log message ***
28 * Revision 1.3 2008/02/15 23:52:12 james
29 * *** empty log message ***
31 * Revision 1.2 2008/02/15 03:32:07 james
32 * *** empty log message ***
34 * Revision 1.1 2008/02/14 02:46:44 james
35 * *** empty log message ***
37 * Revision 1.1 2008/02/14 01:55:57 james
38 * *** empty log message ***
45 #define CMD_BUFLEN 128
60 keydis_close (KeyDis * t)
67 keydis_ipc_key (KeyDis * _t, Context * c, int key)
69 KeyDis_IPC *t = (KeyDis_IPC *) _t;
71 return ipc_msg_send_key (t->s, key);
75 keydis_ipc_set_baud (KeyDis * _t, Context * c, int baud)
77 KeyDis_IPC *t = (KeyDis_IPC *) _t;
79 ipc_msg_send_setbaud (t->s, baud);
85 keydis_ipc_send_break (KeyDis * _t, Context * c)
87 KeyDis_IPC *t = (KeyDis_IPC *) _t;
89 ipc_msg_send_sendbreak (t->s);
95 keydis_ipc_set_flow (KeyDis * _t, Context * c, int flow)
97 KeyDis_IPC *t = (KeyDis_IPC *) _t;
99 ipc_msg_send_setflow (t->s, flow);
106 keydis_ipc_set_ansi (KeyDis * _t, Context * c, int ansi)
108 KeyDis_IPC *t = (KeyDis_IPC *) _t;
110 vt102_set_ansi (c->v, ansi);
112 ipc_msg_send_setansi (t->s, ansi);
119 keydis_ipc_hangup (KeyDis * _t, Context * c)
121 KeyDis_IPC *t = (KeyDis_IPC *) _t;
123 ipc_msg_send_hangup (t->s);
130 keydis_ipc_set_size (KeyDis * _t, Context * c, int w, int h)
132 CRT_Pos p = { w, h };
134 KeyDis_IPC *t = (KeyDis_IPC *) _t;
137 ipc_msg_send_setsize (t->s, p);
144 keydis_ipc_reset (KeyDis * _t, Context * c)
146 KeyDis_IPC *t = (KeyDis_IPC *) _t;
149 ipc_msg_send_reset (t->s);
155 keydis_vt102_key (KeyDis * _t, Context * c, int key)
157 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
164 keydis_vt102_set_baud (KeyDis * _t, Context * c, int baud)
166 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
168 tty_set_baud (c->t, baud);
171 log_f (c->l, "<baud changed to %d>", baud);
177 keydis_vt102_send_break (KeyDis * _t, Context * c)
179 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
181 tty_send_break (c->t);
187 keydis_vt102_set_flow (KeyDis * _t, Context * c, int flow)
189 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
191 tty_set_flow (c->t, flow);
197 keydis_vt102_set_ansi (KeyDis * _t, Context * c, int ansi)
199 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
202 c->v->xn_glitch = ansi ? 0 : 1;
208 keydis_vt102_hangup (KeyDis * _t, Context * c)
210 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
218 keydis_vt102_set_size (KeyDis * _t, Context * c, int w, int h)
220 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
221 CRT_Pos p = { w, h };
229 keydis_vt102_reset (KeyDis * _t, Context * c)
231 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
241 keydis_vt102_new (void)
243 KeyDis_VT102 *t = malloc (sizeof (KeyDis_VT102));
244 t->key = keydis_vt102_key;
245 t->close = keydis_close;
246 t->set_baud = keydis_vt102_set_baud;
247 t->send_break = keydis_vt102_send_break;
248 t->set_flow = keydis_vt102_set_flow;
249 t->set_ansi = keydis_vt102_set_ansi;
250 t->hangup = keydis_vt102_hangup;
251 t->set_size = keydis_vt102_set_size;
252 t->reset = keydis_vt102_reset;
258 keydis_ipc_new (Socket * s)
260 KeyDis_IPC *t = malloc (sizeof (KeyDis_IPC));
261 t->key = keydis_ipc_key;
262 t->close = keydis_close;
263 t->set_baud = keydis_ipc_set_baud;
264 t->send_break = keydis_ipc_send_break;
265 t->set_flow = keydis_ipc_set_flow;
266 t->set_ansi = keydis_ipc_set_ansi;
267 t->hangup = keydis_ipc_hangup;
268 t->set_size = keydis_ipc_set_size;
269 t->reset = keydis_ipc_reset;
280 keydis_key (KeyDis * t, Context * c, int key)
284 return t->key (t, c, key);
286 cmd_show_status (c->d, c);
289 return cmd_key (c->d, c, key);
292 return cmd_activate (c->d, c);
295 return t->key (t, c, key);