From 6ea7ec75d2fe0dd52bc3e86135412bfc92c3158c Mon Sep 17 00:00:00 2001 From: blogic Date: Wed, 3 Nov 2010 19:12:34 +0000 Subject: [ifxmips] * adds a rewrite of the tapi drivers + sip app. this is the result of lars' gsoc 2010 project, Thanks ! git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23840 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/libtapi/src/tapi-port.h | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 package/libtapi/src/tapi-port.h (limited to 'package/libtapi/src/tapi-port.h') diff --git a/package/libtapi/src/tapi-port.h b/package/libtapi/src/tapi-port.h new file mode 100644 index 000000000..a290a4002 --- /dev/null +++ b/package/libtapi/src/tapi-port.h @@ -0,0 +1,66 @@ +#ifndef __TAPI_PORT_H__ +#define __TAPI_PORT_H__ + +#include + +#include "list.h" +#include "events.h" + +struct tapi_port; +struct tapi_device; + +struct tapi_dtmf_event { + struct timeval time; + unsigned char code; +}; + +struct tapi_hook_event { + bool on; +}; + +enum tapi_event_type { + TAPI_EVENT_TYPE_DTMF, + TAPI_EVENT_TYPE_HOOK, +}; + +struct tapi_event { + enum tapi_event_type type; + union { + struct tapi_dtmf_event dtmf; + struct tapi_hook_event hook; + }; +}; + +struct tapi_port_event_listener { + void (*callback)(struct tapi_port *, struct tapi_event *event, void *data); + void *data; + + struct list_head head; +}; + +struct tapi_port { + int id; + int fd; + int input_fd; + unsigned int ep; + + struct event_callback input_cb; + + struct list_head event_listeners; +}; + +int tapi_port_open(struct tapi_device *dev, unsigned int id, struct tapi_port +*port); +int tapi_port_set_ring(struct tapi_port *port, bool ring); +int tapi_port_register_event(struct tapi_port *port, + struct tapi_port_event_listener *cb); + +void tapi_port_unregister_event(struct tapi_port *port, + struct tapi_port_event_listener *cb); + +static inline int tapi_port_get_endpoint(struct tapi_port *port) +{ + return port->ep; +} + +#endif -- cgit v1.2.3