summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2011-09-26 23:55:10 +0000
committerChristian Pointner <equinox@mur.at>2011-09-26 23:55:10 +0000
commitd175c07711b3485198cac9ee3cc71e9c55108016 (patch)
tree2e0018b4ba79f773213d2539c782829825334f20 /tools
parentdtmf decoder works (diff)
improved dmtftest (better handling of stop)
git-svn-id: https://svn.spreadspace.org/mur.sat@169 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'tools')
-rw-r--r--tools/dtmf/dtmftest.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/tools/dtmf/dtmftest.c b/tools/dtmf/dtmftest.c
index d43ee3f..11ff679 100644
--- a/tools/dtmf/dtmftest.c
+++ b/tools/dtmf/dtmftest.c
@@ -90,6 +90,7 @@ static gpointer reader_thread_func(gpointer data)
tio.c_lflag &= ~ICANON;
tcsetattr(fileno(stdin), TCSANOW, &tio);
+ int code = -1;
for(;;) {
char sign;
@@ -100,8 +101,15 @@ static gpointer reader_thread_func(gpointer data)
break;
}
- static int code = 0;
+ GstStructure* st;
+ GstEvent* ev;
if(sign != 's') {
+ if(code != -1) {
+ st = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, "number", G_TYPE_INT, code, "start", G_TYPE_BOOLEAN, FALSE, NULL);
+ ev = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, st);
+ gst_element_send_event(element, ev);
+ }
+ code = -1;
switch(sign) {
case '0': code = 0; break;
case '1': code = 1; break;
@@ -122,13 +130,14 @@ static gpointer reader_thread_func(gpointer data)
default: continue;
}
- GstStructure* st = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, "number", G_TYPE_INT, code, "volume", G_TYPE_INT, 25, "start", G_TYPE_BOOLEAN, TRUE, NULL);
- GstEvent* ev = gst_event_new_custom(GST_EVENT_CUSTOM_UPSTREAM, st);
+ st = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, "number", G_TYPE_INT, code, "volume", G_TYPE_INT, 25, "start", G_TYPE_BOOLEAN, TRUE, NULL);
+ ev = gst_event_new_custom(GST_EVENT_CUSTOM_UPSTREAM, st);
gst_element_send_event(element, ev);
- } else {
- GstStructure* st = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, "number", G_TYPE_INT, code, "start", G_TYPE_BOOLEAN, FALSE, NULL);
- GstEvent* ev = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, st);
+ } else if(code != -1) {
+ st = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, "number", G_TYPE_INT, code, "start", G_TYPE_BOOLEAN, FALSE, NULL);
+ ev = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, st);
gst_element_send_event(element, ev);
+ code = -1;
}
}