diff options
author | Christian Pointner <equinox@mur.at> | 2011-09-26 23:55:10 +0000 |
---|---|---|
committer | Christian Pointner <equinox@mur.at> | 2011-09-26 23:55:10 +0000 |
commit | d175c07711b3485198cac9ee3cc71e9c55108016 (patch) | |
tree | 2e0018b4ba79f773213d2539c782829825334f20 /tools/dtmf/dtmftest.c | |
parent | dtmf 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/dtmf/dtmftest.c')
-rw-r--r-- | tools/dtmf/dtmftest.c | 21 |
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; } } |