1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00
Files
openwrt-xburst/package/libtapi/src/tapi-port.h
blogic 6ea7ec75d2 [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
2010-11-03 19:12:34 +00:00

67 lines
1.2 KiB
C

#ifndef __TAPI_PORT_H__
#define __TAPI_PORT_H__
#include <sys/time.h>
#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