diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2011-10-29 19:30:42 +0200 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2011-11-02 16:57:15 -0400 |
commit | fb64d45034c76c7e8e336440296f6f84bd7b87c3 (patch) | |
tree | 479c763a75f09962c9150279929deafadb369924 /examples | |
parent | 195ac9201b2f04a22f7ecc099781d0f83d422d8c (diff) | |
download | farstream-fb64d45034c76c7e8e336440296f6f84bd7b87c3.tar.gz |
fssession: Remove the "method" from the telephone_event methods
Now, it will always try event then fall back on sound. If one wants to
ensure that only sound is sent, one must remove the events from the remote
codecs.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/gui/fs-gui-dtmf.ui | 450 | ||||
-rwxr-xr-x | examples/gui/fs-gui.py | 21 |
2 files changed, 193 insertions, 278 deletions
diff --git a/examples/gui/fs-gui-dtmf.ui b/examples/gui/fs-gui-dtmf.ui index 9235964e..9a6acb18 100644 --- a/examples/gui/fs-gui-dtmf.ui +++ b/examples/gui/fs-gui-dtmf.ui @@ -1,296 +1,220 @@ -<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.16"/> - <!-- interface-naming-policy toplevel-contextual --> <object class="GtkWindow" id="dtmf_window"> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="title" translatable="yes">Send DTMF</property> <child> - <object class="GtkVBox" id="vbox2"> + <object class="GtkTable" id="table1"> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="spacing">12</property> + <property name="n_rows">4</property> + <property name="n_columns">3</property> + <property name="column_spacing">6</property> + <property name="row_spacing">6</property> <child> - <object class="GtkVBox" id="vbox3"> + <object class="GtkButton" id="dtmf_pound"> + <property name="label" translatable="yes">#</property> <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <child> - <object class="GtkLabel" id="label2"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes">Send DTMF as:</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="dtmf_as_event"> - <property name="label" translatable="yes">RFC-4733 DTMF Event </property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="dtmf_as_sound"> - <property name="label" translatable="yes">Sound</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="draw_indicator">True</property> - <property name="group">dtmf_as_event</property> - </object> - <packing> - <property name="position">2</property> - </packing> - </child> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> </object> <packing> - <property name="padding">6</property> - <property name="position">0</property> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> </packing> </child> <child> - <object class="GtkTable" id="table1"> + <object class="GtkButton" id="dtmf_0"> + <property name="label" translatable="yes">0</property> <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="n_rows">4</property> - <property name="n_columns">3</property> - <property name="column_spacing">6</property> - <property name="row_spacing">6</property> - <child> - <object class="GtkButton" id="dtmf_pound"> - <property name="label" translatable="yes">#</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_0"> - <property name="label" translatable="yes">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_star"> - <property name="label" translatable="yes">*</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_9"> - <property name="label" translatable="yes">9</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_8"> - <property name="label" translatable="yes">8</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_7"> - <property name="label" translatable="yes">7</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_6"> - <property name="label" translatable="yes">6</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_5"> - <property name="label" translatable="yes">5</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_4"> - <property name="label" translatable="yes">4</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_3"> - <property name="label" translatable="yes">3</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_2"> - <property name="label" translatable="yes">2</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - </packing> - </child> - <child> - <object class="GtkButton" id="dtmf_1"> - <property name="label" translatable="yes">1</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="pressed" handler="dtmf_start"/> - <signal name="released" handler="dtmf_stop"/> - </object> - </child> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> </object> <packing> - <property name="position">1</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> </packing> </child> <child> - <object class="GtkHBox" id="hbox1"> + <object class="GtkButton" id="dtmf_star"> + <property name="label" translatable="yes">*</property> <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="spacing">6</property> - <child> - <object class="GtkButton" id="button1"> - <property name="label" translatable="yes">gtk-close</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="use_stock">True</property> - <signal name="clicked" handler="dtmf_destroy"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="padding">6</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> </object> <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="padding">6</property> - <property name="position">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> </packing> </child> + <child> + <object class="GtkButton" id="dtmf_9"> + <property name="label" translatable="yes">9</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_8"> + <property name="label" translatable="yes">8</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_7"> + <property name="label" translatable="yes">7</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_6"> + <property name="label" translatable="yes">6</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_5"> + <property name="label" translatable="yes">5</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_4"> + <property name="label" translatable="yes">4</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_3"> + <property name="label" translatable="yes">3</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_2"> + <property name="label" translatable="yes">2</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="dtmf_1"> + <property name="label" translatable="yes">1</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="use_action_appearance">False</property> + <signal name="pressed" handler="dtmf_start" swapped="no"/> + <signal name="released" handler="dtmf_stop" swapped="no"/> + </object> + </child> </object> </child> </object> diff --git a/examples/gui/fs-gui.py b/examples/gui/fs-gui.py index 610592bb..3c2f8d0c 100755 --- a/examples/gui/fs-gui.py +++ b/examples/gui/fs-gui.py @@ -431,17 +431,17 @@ class FsUISession: self.streams.append(weakref.ref(stream, self.__stream_finalized)) return stream - def dtmf_start(self, event, method): + def dtmf_start(self, event): if (event == "*"): event = farstream.DTMF_EVENT_STAR elif (event == "#"): event = farstream.DTMF_EVENT_POUND else: event = int(event) - self.fssession.start_telephony_event(event, 2, method) + self.fssession.start_telephony_event(event, 2) - def dtmf_stop(self, method): - self.fssession.stop_telephony_event(method) + def dtmf_stop(self): + self.fssession.stop_telephony_event() def codecs_changed(self): "Callback from FsSession" @@ -860,20 +860,11 @@ class FsMainUI: def dtmf_start(self, button): - if (self.dtmf_builder.get_object("dtmf_as_event").get_active()): - self.dtmf_last_method = farstream.DTMF_METHOD_RTP_RFC4733 - elif (self.dtmf_builder.get_object("dtmf_as_sound").get_active()): - self.dtmf_last_method = farstream.DTMF_METHOD_IN_BAND - else: - print "Invalid DTMF Method" - return - self.pipeline.audiosession.dtmf_start(button.get_label(), \ - self.dtmf_last_method) + self.pipeline.audiosession.dtmf_start(button.get_label()) def dtmf_stop(self, button): try: - self.pipeline.audiosession.dtmf_stop(self.dtmf_last_method) - del self.dtmf_last_method + self.pipeline.audiosession.dtmf_stop() except AttributeError: pass def dtmf_destroy(self, button): |