summaryrefslogtreecommitdiffstats
path: root/package/tapi_sip/src/dialdetector.h
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2010-11-03 19:12:34 +0000
committerJohn Crispin <john@openwrt.org>2010-11-03 19:12:34 +0000
commita8b2a07f375edefec242de9f20d4aefafa927517 (patch)
treed15f5bb696bfa9dfd9555788d411e0ba59b99a65 /package/tapi_sip/src/dialdetector.h
parent72ae8452cda47d6e18e664097a4adbc0eee3fc7b (diff)
downloadmaster-31e0f0ae-a8b2a07f375edefec242de9f20d4aefafa927517.tar.gz
master-31e0f0ae-a8b2a07f375edefec242de9f20d4aefafa927517.tar.bz2
master-31e0f0ae-a8b2a07f375edefec242de9f20d4aefafa927517.zip
* adds a rewrite of the tapi drivers + sip app. this is the result of lars' gsoc 2010 project, Thanks !
SVN-Revision: 23840
Diffstat (limited to 'package/tapi_sip/src/dialdetector.h')
-rw-r--r--package/tapi_sip/src/dialdetector.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/package/tapi_sip/src/dialdetector.h b/package/tapi_sip/src/dialdetector.h
new file mode 100644
index 0000000000..c3737c36e9
--- /dev/null
+++ b/package/tapi_sip/src/dialdetector.h
@@ -0,0 +1,49 @@
+#include <linux/input.h>
+#include <sys/epoll.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "events.h"
+#include "timerfd.h"
+
+#include "tapi-port.h"
+
+enum dialdetector_dial_state {
+ DIALDETECTOR_DIAL_WAIT = 1,
+ DIALDETECTOR_DIAL_WAIT_TIMEOUT = 2,
+};
+
+enum dialdetector_port_state {
+ DIALDETECTOR_PORT_INACTIVE = 0,
+ DIALDETECTOR_PORT_ACTIVE = 1,
+ DIALDETECTOR_PORT_ACTIVE_DOWN = 2,
+};
+
+struct dialdetector {
+ enum dialdetector_dial_state dial_state;
+ enum dialdetector_port_state port_state;
+
+ struct tapi_port *port;
+ int timer_fd;
+ int impulse_timer_fd;
+
+ struct event_callback timeout_cb;
+ struct event_callback impulse_cb;
+ struct tapi_port_event_listener port_listener;
+
+ size_t num_digits;
+ unsigned char digits[20];
+
+ unsigned int impulses;
+
+ void (*dial_callback)(struct tapi_port *port, size_t num_digits, const unsigned char *digits);
+};
+
+
+struct tapi_port;
+
+struct dialdetector *dialdetector_alloc(struct tapi_port *port);