[ifxmips]
[openwrt/svn-archive/archive.git] / package / libtapi / src / tapidemo.c
1
2 #include <stdbool.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <sys/ioctl.h>
6 #include <fcntl.h>
7 #include <errno.h>
8 #include <poll.h>
9
10 #include <linux/input.h>
11 /*#include <sys/timerfd.h>*/
12 #include "timerfd.h"
13 #include "dialdetector.h"
14
15 #include "tapi-ioctl.h"
16
17 #include "tapi-device.h"
18 #include "tapi-port.h"
19
20 static struct tapi_device dev;
21 static struct tapi_port ports[2];
22
23 void dial_callback(struct tapi_port *port, size_t num_digits, const unsigned char *digits)
24 {
25 unsigned int link;
26
27 if (num_digits != 1)
28 return;
29 if (port->id == digits[0] || digits[0] > 1)
30 return;
31
32 tapi_port_set_ring(&ports[digits[0]], true);
33
34 tapi_session_alloc(&dev, port, &ports[digits[0]]);
35 }
36
37 int main(int argc, char *argv[])
38 {
39 struct dialdetector *dd, *dd2;
40 unsigned int link;
41 unsigned char buf[1024];
42 int ret;
43
44 tapi_device_open(0, &dev);
45 tapi_port_open(0, 0, &ports[0]);
46 tapi_port_open(0, 1, &ports[1]);
47
48 dd = dialdetector_alloc(&ports[0]);
49 dd->dial_callback = dial_callback;
50 dd2 = dialdetector_alloc(&ports[1]);
51 dd2->dial_callback = dial_callback;
52
53 tapi_mainloop();
54
55 return 0;
56 }