4 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
9 static char rcsid[] = "$Id: keydis.c,v 1.16 2008/03/10 11:49:33 james Exp $";
13 * Revision 1.16 2008/03/10 11:49:33 james
14 * *** empty log message ***
16 * Revision 1.15 2008/03/07 13:16:02 james
17 * *** empty log message ***
19 * Revision 1.14 2008/03/07 12:37:04 james
20 * *** empty log message ***
22 * Revision 1.13 2008/03/03 18:16:16 james
23 * *** empty log message ***
25 * Revision 1.12 2008/03/03 18:15:19 james
26 * *** empty log message ***
28 * Revision 1.11 2008/03/03 06:04:42 james
29 * *** empty log message ***
31 * Revision 1.10 2008/03/02 10:37:56 james
32 * *** empty log message ***
34 * Revision 1.9 2008/02/28 22:00:42 james
35 * *** empty log message ***
37 * Revision 1.8 2008/02/28 16:57:52 james
38 * *** empty log message ***
40 * Revision 1.7 2008/02/28 16:37:16 james
41 * *** empty log message ***
43 * Revision 1.6 2008/02/28 12:12:25 james
44 * *** empty log message ***
46 * Revision 1.5 2008/02/23 11:48:37 james
47 * *** empty log message ***
49 * Revision 1.4 2008/02/22 17:07:00 james
50 * *** empty log message ***
52 * Revision 1.3 2008/02/15 23:52:12 james
53 * *** empty log message ***
55 * Revision 1.2 2008/02/15 03:32:07 james
56 * *** empty log message ***
58 * Revision 1.1 2008/02/14 02:46:44 james
59 * *** empty log message ***
61 * Revision 1.1 2008/02/14 01:55:57 james
62 * *** empty log message ***
69 #define CMD_BUFLEN 128
82 keydis_close (KeyDis * t)
89 keydis_ipc_key (KeyDis * _t, Context * c, int key)
91 KeyDis_IPC *t = (KeyDis_IPC *) _t;
93 return ipc_msg_send_key (t->s, key);
97 keydis_ipc_set_baud (KeyDis * _t, Context * c, int baud)
99 KeyDis_IPC *t = (KeyDis_IPC *) _t;
101 ipc_msg_send_setbaud (t->s, baud);
107 keydis_ipc_send_break (KeyDis * _t, Context * c)
109 KeyDis_IPC *t = (KeyDis_IPC *) _t;
111 ipc_msg_send_sendbreak (t->s);
117 keydis_ipc_set_flow (KeyDis * _t, Context * c, int flow)
119 KeyDis_IPC *t = (KeyDis_IPC *) _t;
121 ipc_msg_send_setflow (t->s, flow);
128 keydis_ipc_set_ansi (KeyDis * _t, Context * c, int ansi)
130 KeyDis_IPC *t = (KeyDis_IPC *) _t;
132 vt102_set_ansi (c->v, ansi);
134 ipc_msg_send_setansi (t->s, ansi);
141 keydis_ipc_hangup (KeyDis * _t, Context * c)
143 KeyDis_IPC *t = (KeyDis_IPC *) _t;
145 ipc_msg_send_hangup (t->s);
152 keydis_ipc_set_size (KeyDis * _t, Context * c, int w, int h)
154 CRT_Pos p = { w, h };
156 KeyDis_IPC *t = (KeyDis_IPC *) _t;
159 ipc_msg_send_setsize (t->s, p);
166 keydis_ipc_reset (KeyDis * _t, Context * c)
168 KeyDis_IPC *t = (KeyDis_IPC *) _t;
171 ipc_msg_send_reset (t->s);
177 keydis_vt102_key (KeyDis * _t, Context * c, int key)
179 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
186 keydis_vt102_set_baud (KeyDis * _t, Context * c, int baud)
188 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
190 tty_set_baud (c->t, baud);
193 log_f (c->l, "<baud changed to %d>", baud);
199 keydis_vt102_send_break (KeyDis * _t, Context * c)
201 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
203 log_f (c->l, "<break sent>");
204 tty_send_break (c->t);
210 keydis_vt102_set_flow (KeyDis * _t, Context * c, int flow)
212 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
214 log_f (c->l, "<flow control turned %s>", flow ? "on" : "off");
215 tty_set_flow (c->t, flow);
221 keydis_vt102_set_ansi (KeyDis * _t, Context * c, int ansi)
223 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
226 c->v->xn_glitch = ansi ? 0 : 1;
232 keydis_vt102_hangup (KeyDis * _t, Context * c)
234 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
236 log_f (c->l, "<hangup initiated>");
243 keydis_vt102_set_size (KeyDis * _t, Context * c, int w, int h)
245 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
246 CRT_Pos p = { w, h };
254 keydis_vt102_reset (KeyDis * _t, Context * c)
256 KeyDis_VT102 *t = (KeyDis_VT102 *) _t;
266 keydis_vt102_new (void)
268 KeyDis_VT102 *t = xmalloc (sizeof (KeyDis_VT102));
269 t->key = keydis_vt102_key;
270 t->close = keydis_close;
271 t->set_baud = keydis_vt102_set_baud;
272 t->send_break = keydis_vt102_send_break;
273 t->set_flow = keydis_vt102_set_flow;
274 t->set_ansi = keydis_vt102_set_ansi;
275 t->hangup = keydis_vt102_hangup;
276 t->set_size = keydis_vt102_set_size;
277 t->reset = keydis_vt102_reset;
283 keydis_ipc_new (Socket * s)
285 KeyDis_IPC *t = xmalloc (sizeof (KeyDis_IPC));
286 t->key = keydis_ipc_key;
287 t->close = keydis_close;
288 t->set_baud = keydis_ipc_set_baud;
289 t->send_break = keydis_ipc_send_break;
290 t->set_flow = keydis_ipc_set_flow;
291 t->set_ansi = keydis_ipc_set_ansi;
292 t->hangup = keydis_ipc_hangup;
293 t->set_size = keydis_ipc_set_size;
294 t->reset = keydis_ipc_reset;
306 keydis_key (KeyDis * t, Context * c, int key)
310 return t->key (t, c, key);
312 cmd_show_status (c->d, c);
315 return cmd_key (c->d, c, key);
318 return cmd_activate (c->d, c);
321 return t->key (t, c, key);