/* * keydis.c: * * Copyright (c) 2008 James McKenzie , * All rights reserved. * */ static char rcsid[] = "$Id$"; /* * $Log$ * Revision 1.1 2008/02/14 02:46:44 james * *** empty log message *** * * Revision 1.1 2008/02/14 01:55:57 james * *** empty log message *** * */ #include "project.h" typedef struct { KEYDIS_SIGNATURE; Context *c; } KeyDis_VT102; typedef struct { KEYDIS_SIGNATURE; Socket *s; } KeyDis_IPC; static void keydis_close (KeyDis * t) { free (t); } static int keydis_ipc_key (KeyDis * _t, int key) { KeyDis_IPC *t = (KeyDis_IPC *) _t; return ipc_msg_send_key (t->s, key); } static int keydis_vt102_key (KeyDis * _t, int key) { KeyDis_VT102 *t = (KeyDis_VT102 *) _t; vt102_send (t->c, key); return 0; } KeyDis * keydis_vt102_new (Context * c) { KeyDis_VT102 *t = malloc (sizeof (KeyDis_VT102)); t->key = keydis_vt102_key; t->close = keydis_close; t->c = c; return (KeyDis *) t; } KeyDis * keydis_ipc_new (Socket * s) { KeyDis_IPC *t = malloc (sizeof (KeyDis_IPC)); t->key = keydis_ipc_key; t->close = keydis_close; t->s = s; return (KeyDis *) t; }