diff options
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): |