diff options
author | samr7 <samr7@126591fb-c623-4b62-a76d-97a8e4f34109> | 2008-12-01 05:59:08 +0000 |
---|---|---|
committer | samr7 <samr7@126591fb-c623-4b62-a76d-97a8e4f34109> | 2008-12-01 05:59:08 +0000 |
commit | 250105e34505046f8a639bf8b6b66939cbb1a99d (patch) | |
tree | 19c9b1c35eee88196a32aa6cf2dd45e827f11b06 | |
parent | fbd4578983f7f95752f87ab394ebda04312be789 (diff) | |
download | nohands-250105e34505046f8a639bf8b6b66939cbb1a99d.tar.gz |
Stop using gtk.Dialog.run(), as I have no idea how to support handling
ctrl+C from the command line underneath it.
git-svn-id: http://nohands.svn.sourceforge.net/svnroot/nohands/trunk@53 126591fb-c623-4b62-a76d-97a8e4f34109
-rw-r--r-- | data/hfconsole.glade | 1106 | ||||
-rwxr-xr-x | data/hfconsole.in | 106 |
2 files changed, 618 insertions, 594 deletions
diff --git a/data/hfconsole.glade b/data/hfconsole.glade index 5ec2327..962e6ce 100644 --- a/data/hfconsole.glade +++ b/data/hfconsole.glade @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> -<!--Generated with glade3 3.4.5 on Mon Nov 24 02:58:39 2008 --> +<!--Generated with glade3 3.4.5 on Sun Nov 30 21:42:50 2008 --> <glade-interface> <widget class="GtkWindow" id="MainWindow"> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -180,43 +180,49 @@ <property name="row_spacing">8</property> <property name="homogeneous">True</property> <child> - <widget class="GtkButton" id="DigitButton1"> + <widget class="GtkButton" id="DigitButtonPnd"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="1"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="1"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="#"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="#"/> <child> - <widget class="GtkLabel" id="DigitLabel1"> + <widget class="GtkLabel" id="DigitLabelPnd"> <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"><span size="xx-large" weight="heavy">1</span> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">#</span> </property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> + <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> - <widget class="GtkButton" id="DigitButton2"> + <widget class="GtkButton" id="DigitButton0"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="2"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="2"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="0"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="0"/> <child> - <widget class="GtkLabel" id="DigitLabel2"> + <widget class="GtkLabel" id="DigitLabel0"> <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"><span size="xx-large" weight="heavy">2</span> -abc</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">0</span> +</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> @@ -225,76 +231,80 @@ abc</property> <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> - <widget class="GtkButton" id="DigitButton3"> + <widget class="GtkButton" id="DigitButtonAst"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="3"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="3"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="*"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="*"/> <child> - <widget class="GtkLabel" id="DigitLabel3"> + <widget class="GtkLabel" id="DigitLabelAst"> <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"><span size="xx-large" weight="heavy">3</span> -def</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">*</span> +</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> <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> - <widget class="GtkButton" id="DigitButton4"> + <widget class="GtkButton" id="DigitButton9"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="4"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="4"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="9"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="9"/> <child> - <widget class="GtkLabel" id="DigitLabel4"> + <widget class="GtkLabel" id="DigitLabel9"> <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"><span size="xx-large" weight="heavy">4</span> -ghi</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">9</span> +wxyz</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <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> - <widget class="GtkButton" id="DigitButton5"> + <widget class="GtkButton" id="DigitButton8"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="5"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="5"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="8"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="8"/> <child> - <widget class="GtkLabel" id="DigitLabel5"> + <widget class="GtkLabel" id="DigitLabel8"> <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"><span size="xx-large" weight="heavy">5</span> -jkl</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">8</span> +tuv</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> @@ -303,80 +313,80 @@ jkl</property> <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> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkButton" id="DigitButton6"> + <widget class="GtkButton" id="DigitButton7"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="6"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="6"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="7"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="7"/> <child> - <widget class="GtkLabel" id="DigitLabel6"> + <widget class="GtkLabel" id="DigitLabel7"> <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"><span size="xx-large" weight="heavy">6</span> -mno</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">7</span> +pqrs</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> <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> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkButton" id="DigitButton7"> + <widget class="GtkButton" id="DigitButton6"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="7"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="7"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="6"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="6"/> <child> - <widget class="GtkLabel" id="DigitLabel7"> + <widget class="GtkLabel" id="DigitLabel6"> <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"><span size="xx-large" weight="heavy">7</span> -pqrs</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">6</span> +mno</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> + <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> - <widget class="GtkButton" id="DigitButton8"> + <widget class="GtkButton" id="DigitButton5"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="8"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="8"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="5"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="5"/> <child> - <widget class="GtkLabel" id="DigitLabel8"> + <widget class="GtkLabel" id="DigitLabel5"> <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"><span size="xx-large" weight="heavy">8</span> -tuv</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">5</span> +jkl</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> @@ -385,80 +395,78 @@ tuv</property> <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> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkButton" id="DigitButton9"> + <widget class="GtkButton" id="DigitButton4"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="9"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="9"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="4"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="4"/> <child> - <widget class="GtkLabel" id="DigitLabel9"> + <widget class="GtkLabel" id="DigitLabel4"> <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"><span size="xx-large" weight="heavy">9</span> -wxyz</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">4</span> +ghi</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> <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> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkButton" id="DigitButtonAst"> + <widget class="GtkButton" id="DigitButton3"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="*"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="*"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="3"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="3"/> <child> - <widget class="GtkLabel" id="DigitLabelAst"> + <widget class="GtkLabel" id="DigitLabel3"> <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"><span size="xx-large" weight="heavy">*</span> -</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">3</span> +def</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="left_attach">2</property> + <property name="right_attach">3</property> </packing> </child> <child> - <widget class="GtkButton" id="DigitButton0"> + <widget class="GtkButton" id="DigitButton2"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="0"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="0"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="2"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="2"/> <child> - <widget class="GtkLabel" id="DigitLabel0"> + <widget class="GtkLabel" id="DigitLabel2"> <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"><span size="xx-large" weight="heavy">0</span> -</property> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">2</span> +abc</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> @@ -467,37 +475,29 @@ wxyz</property> <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> - <widget class="GtkButton" id="DigitButtonPnd"> + <widget class="GtkButton" id="DigitButton1"> <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="focus_on_click">False</property> <property name="response_id">0</property> - <signal name="pressed" handler="DigitButton_pressed_cb" object="#"/> - <signal name="clicked" handler="DigitButton_clicked_cb" object="#"/> + <signal name="pressed" handler="DigitButton_pressed_cb" object="1"/> + <signal name="clicked" handler="DigitButton_clicked_cb" object="1"/> <child> - <widget class="GtkLabel" id="DigitLabelPnd"> + <widget class="GtkLabel" id="DigitLabel1"> <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"><span size="xx-large" weight="heavy">#</span> + <property name="label" translatable="yes"><span size="xx-large" weight="heavy">1</span> </property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_CENTER</property> </widget> </child> </widget> - <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> </widget> <packing> @@ -755,6 +755,164 @@ wxyz</property> <property name="column_spacing">8</property> <property name="row_spacing">8</property> <child> + <widget class="GtkComboBoxEntry" id="ConfigDriverDevList"> + <property name="visible">True</property> + <child internal-child="entry"> + <widget class="GtkEntry" id="ConfigDriverOpts"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="ConfigMinOutBufferHint"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Output Buffer</property> + <property name="xalign">0</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="ConfigMinOutBufferHint_toggled_cb"/> + </widget> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkCheckButton" id="ConfigPacketIntervalHint"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Packet Interval</property> + <property name="xalign">0</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="ConfigPacketIntervalHint_toggled_cb"/> + </widget> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="ConfigMinOutBufferLabel"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">0ms</property> + </widget> + <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> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHScale" id="ConfigPacketInterval"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">1 0 1 0.01 0.10000000000000001 0</property> + <property name="restrict_to_fill_level">False</property> + <property name="fill_level">1</property> + <property name="digits">0</property> + <property name="draw_value">False</property> + <property name="value_pos">GTK_POS_RIGHT</property> + <signal name="value_changed" handler="ConfigPacketInterval_value_changed_cb"/> + </widget> + <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> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="ConfigPacketIntervalLabel"> + <property name="width_request">64</property> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">0ms</property> + </widget> + <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> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Driver</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkHScale" id="ConfigMinOutBuffer"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="adjustment">1 0 1 0.01 0.10000000000000001 0</property> + <property name="draw_value">False</property> + <property name="value_pos">GTK_POS_RIGHT</property> + <signal name="value_changed" handler="ConfigMinOutBuffer_value_changed_cb"/> + </widget> + <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> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Device / Options</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkComboBox" id="ConfigDriver"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <signal name="changed" handler="ConfigDriver_changed_cb"/> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> <widget class="GtkFrame" id="frame2"> <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> @@ -871,164 +1029,6 @@ wxyz</property> <property name="y_options"></property> </packing> </child> - <child> - <widget class="GtkComboBox" id="ConfigDriver"> - <property name="visible">True</property> - <property name="items" translatable="yes"></property> - <signal name="changed" handler="ConfigDriver_changed_cb"/> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">3</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label7"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Device / Options</property> - </widget> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHScale" id="ConfigMinOutBuffer"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="adjustment">1 0 1 0.01 0.10000000000000001 0</property> - <property name="draw_value">False</property> - <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="ConfigMinOutBuffer_value_changed_cb"/> - </widget> - <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> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label6"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Driver</property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="ConfigPacketIntervalLabel"> - <property name="width_request">64</property> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">0ms</property> - </widget> - <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> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkHScale" id="ConfigPacketInterval"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="adjustment">1 0 1 0.01 0.10000000000000001 0</property> - <property name="restrict_to_fill_level">False</property> - <property name="fill_level">1</property> - <property name="digits">0</property> - <property name="draw_value">False</property> - <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="ConfigPacketInterval_value_changed_cb"/> - </widget> - <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> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="ConfigMinOutBufferLabel"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">0ms</property> - </widget> - <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> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkCheckButton" id="ConfigPacketIntervalHint"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Packet Interval</property> - <property name="xalign">0</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="ConfigPacketIntervalHint_toggled_cb"/> - </widget> - <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkCheckButton" id="ConfigMinOutBufferHint"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Output Buffer</property> - <property name="xalign">0</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="ConfigMinOutBufferHint_toggled_cb"/> - </widget> - <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkComboBoxEntry" id="ConfigDriverDevList"> - <property name="visible">True</property> - <child internal-child="entry"> - <widget class="GtkEntry" id="ConfigDriverOpts"> - <property name="visible">True</property> - <property name="can_focus">True</property> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> </widget> <packing> <property name="position">1</property> @@ -1063,92 +1063,87 @@ wxyz</property> <property name="column_spacing">10</property> <property name="row_spacing">10</property> <child> - <widget class="GtkLabel" id="ConfigEchoCancelTailLabel"> - <property name="width_request">64</property> + <widget class="GtkLabel" id="ConfigDereverbDecayLabel"> <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="xalign">0</property> - <property name="label" translatable="yes">0ms</property> + <property name="label" translatable="yes">0</property> </widget> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkHScale" id="ConfigEchoCancelTail"> + <widget class="GtkLabel" id="ConfigDereverbValueLabel"> <property name="visible">True</property> - <property name="can_focus">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="adjustment">0 0 1 0.01 0.10000000000000001 0</property> - <property name="draw_value">False</property> - <signal name="value_changed" handler="ConfigEchoCancelTail_value_changed_cb"/> + <property name="xalign">0</property> + <property name="label" translatable="yes">0</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="ConfigEchoCancel"> + <widget class="GtkCheckButton" id="ConfigDenoise"> <property name="visible">True</property> <property name="can_focus">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">Echo Cancelation</property> + <property name="label" translatable="yes">Noise Reduction</property> + <property name="xalign">0</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="ConfigEchoCancel_toggled_cb"/> + <signal name="toggled" handler="ConfigDenoise_toggled_cb"/> </widget> <packing> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="right_attach">3</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="ConfigAutoGainLabel"> + <widget class="GtkLabel" id="label10"> <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="xalign">0</property> - <property name="label" translatable="yes">0</property> + <property name="label" translatable="yes">Auto Gain</property> </widget> <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> <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHScale" id="ConfigAutoGain"> + <widget class="GtkCheckButton" id="ConfigDereverb"> <property name="visible">True</property> <property name="can_focus">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="adjustment">0 0 20 1 10 0</property> - <property name="digits">0</property> - <property name="draw_value">False</property> - <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="ConfigAutoGain_value_changed_cb"/> + <property name="label" translatable="yes">Dereverb</property> + <property name="response_id">0</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="ConfigDereverb_toggled_cb"/> </widget> <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> - <property name="y_options">GTK_FILL</property> + <property name="top_attach">2</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkHScale" id="ConfigDereverbDecay"> + <widget class="GtkHScale" id="ConfigDereverbValue"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -1156,18 +1151,18 @@ wxyz</property> <property name="digits">2</property> <property name="draw_value">False</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="ConfigDereverbDecay_value_changed_cb"/> + <signal name="value_changed" handler="ConfigDereverbValue_value_changed_cb"/> </widget> <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> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkHScale" id="ConfigDereverbValue"> + <widget class="GtkHScale" id="ConfigDereverbDecay"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -1175,92 +1170,97 @@ wxyz</property> <property name="digits">2</property> <property name="draw_value">False</property> <property name="value_pos">GTK_POS_RIGHT</property> - <signal name="value_changed" handler="ConfigDereverbValue_value_changed_cb"/> + <signal name="value_changed" handler="ConfigDereverbDecay_value_changed_cb"/> </widget> <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> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="ConfigDereverb"> + <widget class="GtkHScale" id="ConfigAutoGain"> <property name="visible">True</property> <property name="can_focus">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">Dereverb</property> - <property name="response_id">0</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="ConfigDereverb_toggled_cb"/> + <property name="adjustment">0 0 20 1 10 0</property> + <property name="digits">0</property> + <property name="draw_value">False</property> + <property name="value_pos">GTK_POS_RIGHT</property> + <signal name="value_changed" handler="ConfigAutoGain_value_changed_cb"/> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label10"> + <widget class="GtkLabel" id="ConfigAutoGainLabel"> <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="xalign">0</property> - <property name="label" translatable="yes">Auto Gain</property> + <property name="label" translatable="yes">0</property> </widget> <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> <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="ConfigDenoise"> + <widget class="GtkCheckButton" id="ConfigEchoCancel"> <property name="visible">True</property> <property name="can_focus">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">Noise Reduction</property> - <property name="xalign">0</property> + <property name="label" translatable="yes">Echo Cancelation</property> <property name="response_id">0</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="ConfigDenoise_toggled_cb"/> + <signal name="toggled" handler="ConfigEchoCancel_toggled_cb"/> </widget> <packing> - <property name="right_attach">3</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="ConfigDereverbValueLabel"> + <widget class="GtkHScale" id="ConfigEchoCancelTail"> <property name="visible">True</property> + <property name="can_focus">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="xalign">0</property> - <property name="label" translatable="yes">0</property> + <property name="adjustment">0 0 1 0.01 0.10000000000000001 0</property> + <property name="draw_value">False</property> + <signal name="value_changed" handler="ConfigEchoCancelTail_value_changed_cb"/> </widget> <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> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> </packing> </child> <child> - <widget class="GtkLabel" id="ConfigDereverbDecayLabel"> + <widget class="GtkLabel" id="ConfigEchoCancelTailLabel"> + <property name="width_request">64</property> <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="xalign">0</property> - <property name="label" translatable="yes">0</property> + <property name="label" translatable="yes">0ms</property> </widget> <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> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> @@ -1317,25 +1317,40 @@ wxyz</property> <property name="column_spacing">5</property> <property name="row_spacing">5</property> <child> - <widget class="GtkFileChooserButton" id="ConfigRingerFile"> + <widget class="GtkEntry" id="ConfigAudioDetachCommand"> <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> - <signal name="file_set" handler="ConfigRingerFile_file_set_cb"/> + <property name="can_focus">True</property> </widget> <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> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label19"> + <widget class="GtkEntry" id="ConfigAudioAttachCommand"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + <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> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label35"> <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="xalign">0</property> - <property name="label" translatable="yes">Ringer Sound:</property> + <property name="label" translatable="yes">Audio Detach Command:</property> </widget> <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> @@ -1354,41 +1369,26 @@ wxyz</property> </packing> </child> <child> - <widget class="GtkLabel" id="label35"> + <widget class="GtkLabel" id="label19"> <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="xalign">0</property> - <property name="label" translatable="yes">Audio Detach Command:</property> + <property name="label" translatable="yes">Ringer Sound:</property> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkEntry" id="ConfigAudioAttachCommand"> - <property name="visible">True</property> - <property name="can_focus">True</property> - </widget> - <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> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <widget class="GtkEntry" id="ConfigAudioDetachCommand"> + <widget class="GtkFileChooserButton" id="ConfigRingerFile"> <property name="visible">True</property> - <property name="can_focus">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="file_set" handler="ConfigRingerFile_file_set_cb"/> </widget> <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> <property name="y_options">GTK_FILL</property> </packing> </child> @@ -1426,6 +1426,7 @@ wxyz</property> <property name="receives_default">True</property> <property name="label" translatable="yes">OK</property> <property name="response_id">0</property> + <signal name="clicked" handler="ConfigOk_clicked_cb"/> </widget> </child> <child> @@ -1435,6 +1436,7 @@ wxyz</property> <property name="receives_default">True</property> <property name="label" translatable="yes">Cancel</property> <property name="response_id">1</property> + <signal name="clicked" handler="ConfigCancel_clicked_cb"/> </widget> <packing> <property name="position">1</property> @@ -1468,55 +1470,52 @@ wxyz</property> <property name="column_spacing">8</property> <property name="row_spacing">8</property> <child> - <widget class="GtkLabel" id="label14"> + <widget class="GtkLabel" id="label24"> <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="xalign">0</property> - <property name="label" translatable="yes"><b>1. Record a sound clip of spoken language - <i>Try to leave pauses and quiet moments during this clip.</i></b></property> + <property name="label" translatable="yes">The first step will begin when you click <i>Forward</i>.</property> <property name="use_markup">True</property> </widget> <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> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label11"> + <widget class="GtkLabel" id="emptylabel2"> <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="xalign">0</property> - <property name="label" translatable="yes">To test your signal processing settings, we will perform three steps:</property> - <property name="use_markup">True</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label17"> + <widget class="GtkLabel" id="emptylabel"> + <property name="visible">True</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <widget class="GtkArrow" id="arrow1"> <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="xalign">0</property> - <property name="label" translatable="yes"><b>2.</b> Play back the sound clip while recording a second clip - <i>This will simulate a full duplex conversation, with the clip - recorded in step one as coming from the remote party.</i></property> - <property name="use_markup">True</property> </widget> <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> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> @@ -1539,50 +1538,53 @@ wxyz</property> </packing> </child> <child> - <widget class="GtkArrow" id="arrow1"> + <widget class="GtkLabel" id="label17"> <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="xalign">0</property> + <property name="label" translatable="yes"><b>2.</b> Play back the sound clip while recording a second clip + <i>This will simulate a full duplex conversation, with the clip + recorded in step one as coming from the remote party.</i></property> + <property name="use_markup">True</property> </widget> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="emptylabel"> - <property name="visible">True</property> - </widget> - <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> <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel2"> + <widget class="GtkLabel" id="label11"> <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="xalign">0</property> + <property name="label" translatable="yes">To test your signal processing settings, we will perform three steps:</property> + <property name="use_markup">True</property> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">5</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label24"> + <widget class="GtkLabel" id="label14"> <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="xalign">0</property> - <property name="label" translatable="yes">The first step will begin when you click <i>Forward</i>.</property> + <property name="label" translatable="yes"><b>1. Record a sound clip of spoken language + <i>Try to leave pauses and quiet moments during this clip.</i></b></property> <property name="use_markup">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> @@ -1604,66 +1606,51 @@ wxyz</property> <property name="column_spacing">8</property> <property name="row_spacing">8</property> <child> - <widget class="GtkToggleButton" id="DspTestRecStart1"> + <widget class="GtkLabel" id="label8"> <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="label" translatable="yes">gtk-media-record</property> - <property name="use_stock">True</property> - <property name="response_id">0</property> - <signal name="toggled" handler="DspTestRecStart1_toggled_cb"/> + <property name="xalign">0</property> + <property name="label" translatable="yes"> Click <i>Record</i> to begin</property> + <property name="use_markup">True</property> + <property name="ellipsize">PANGO_ELLIPSIZE_END</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">5</property> - <property name="bottom_attach">6</property> - <property name="x_options"></property> - <property name="y_options"></property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkLabel" id="label12"> + <widget class="GtkProgressBar" id="DspTestRecPosition1"> <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="xalign">0</property> - <property name="label" translatable="yes"><b>1. Record a sound clip of spoken language - <i>Try to leave pauses and quiet moments during this clip.</i></b></property> - <property name="use_markup">True</property> + <property name="show_text">True</property> + <property name="text" translatable="yes">Record Progress</property> </widget> <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> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label22"> + <widget class="GtkLabel" id="emptylabel4"> <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="xalign">0</property> - <property name="label" translatable="yes">To test your signal processing settings, we will perform three steps:</property> - <property name="use_markup">True</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">6</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkArrow" id="arrow2"> + <widget class="GtkLabel" id="emptylabel1"> <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> </widget> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> @@ -1683,53 +1670,68 @@ wxyz</property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel1"> + <widget class="GtkArrow" id="arrow2"> <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> </widget> <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel4"> + <widget class="GtkLabel" id="label22"> <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="xalign">0</property> + <property name="label" translatable="yes">To test your signal processing settings, we will perform three steps:</property> + <property name="use_markup">True</property> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">6</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkProgressBar" id="DspTestRecPosition1"> + <widget class="GtkLabel" id="label12"> <property name="visible">True</property> - <property name="show_text">True</property> - <property name="text" translatable="yes">Record Progress</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="xalign">0</property> + <property name="label" translatable="yes"><b>1. Record a sound clip of spoken language + <i>Try to leave pauses and quiet moments during this clip.</i></b></property> + <property name="use_markup">True</property> </widget> <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> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label8"> + <widget class="GtkToggleButton" id="DspTestRecStart1"> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes"> Click <i>Record</i> to begin</property> - <property name="use_markup">True</property> - <property name="ellipsize">PANGO_ELLIPSIZE_END</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="label" translatable="yes">gtk-media-record</property> + <property name="use_stock">True</property> + <property name="response_id">0</property> + <signal name="toggled" handler="DspTestRecStart1_toggled_cb"/> </widget> <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> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options"></property> + <property name="y_options"></property> </packing> </child> </widget> @@ -1748,51 +1750,67 @@ wxyz</property> <property name="column_spacing">8</property> <property name="row_spacing">8</property> <child> - <widget class="GtkLabel" id="label26"> + <widget class="GtkLabel" id="label9"> <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="xalign">0</property> - <property name="label" translatable="yes"> Click <i>Record</i> to begin</property> + <property name="label" translatable="yes"><b>2. Play back the sound clip while recording a second clip + <i>This will simulate a full duplex conversation, with the clip + recorded in step one as coming from the remote party.</i></b></property> <property name="use_markup">True</property> - <property name="ellipsize">PANGO_ELLIPSIZE_END</property> </widget> <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> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkProgressBar" id="DspTestRecPosition2"> + <widget class="GtkToggleButton" id="DspTestRecStart2"> <property name="visible">True</property> - <property name="show_text">True</property> - <property name="text" translatable="yes">Record Progress</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="label" translatable="yes">gtk-media-record</property> + <property name="use_stock">True</property> + <property name="response_id">0</property> + <signal name="toggled" handler="DspTestRecStart2_toggled_cb"/> </widget> <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> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options"></property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel8"> + <widget class="GtkLabel" id="label25"> <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="xalign">0</property> + <property name="label" translatable="yes">You are currently on Step 2 of the digital signal processing test:</property> + <property name="use_markup">True</property> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">6</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel7"> + <widget class="GtkArrow" id="arrow4"> <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> </widget> <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> @@ -1812,69 +1830,53 @@ wxyz</property> </packing> </child> <child> - <widget class="GtkArrow" id="arrow4"> + <widget class="GtkLabel" id="emptylabel7"> <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> </widget> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label25"> + <widget class="GtkLabel" id="emptylabel8"> <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="xalign">0</property> - <property name="label" translatable="yes">You are currently on Step 2 of the digital signal processing test:</property> - <property name="use_markup">True</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">6</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkToggleButton" id="DspTestRecStart2"> + <widget class="GtkProgressBar" id="DspTestRecPosition2"> <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="label" translatable="yes">gtk-media-record</property> - <property name="use_stock">True</property> - <property name="response_id">0</property> - <signal name="toggled" handler="DspTestRecStart2_toggled_cb"/> + <property name="show_text">True</property> + <property name="text" translatable="yes">Record Progress</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">5</property> - <property name="bottom_attach">6</property> - <property name="x_options"></property> - <property name="y_options"></property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label9"> + <widget class="GtkLabel" id="label26"> <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="xalign">0</property> - <property name="label" translatable="yes"><b>2. Play back the sound clip while recording a second clip - <i>This will simulate a full duplex conversation, with the clip - recorded in step one as coming from the remote party.</i></b></property> + <property name="label" translatable="yes"> Click <i>Record</i> to begin</property> <property name="use_markup">True</property> + <property name="ellipsize">PANGO_ELLIPSIZE_END</property> </widget> <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> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> </packing> </child> </widget> @@ -1893,119 +1895,119 @@ wxyz</property> <property name="column_spacing">8</property> <property name="row_spacing">8</property> <child> - <widget class="GtkLabel" id="label23"> + <widget class="GtkToggleButton" id="DspTestPlayStart"> <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="xalign">0</property> - <property name="label" translatable="yes"><b>3. Play back the second clip - <i>This is what the remote party would hear for the - conversation as simulated in step two.</i></b></property> - <property name="use_markup">True</property> + <property name="label" translatable="yes">gtk-media-play</property> + <property name="use_stock">True</property> + <property name="response_id">0</property> + <signal name="toggled" handler="DspTestPlayStart_toggled_cb"/> </widget> <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> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options"></property> + <property name="y_options">GTK_EXPAND</property> </packing> </child> <child> - <widget class="GtkLabel" id="label13"> + <widget class="GtkLabel" id="label16"> <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="xalign">0</property> - <property name="label" translatable="yes"> Click <i>Play</i> to begin</property> + <property name="label" translatable="yes">You are currently on Step 3 of the digital signal processing test:</property> <property name="use_markup">True</property> - <property name="ellipsize">PANGO_ELLIPSIZE_END</property> </widget> <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> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkProgressBar" id="DspTestPlayPosition"> + <widget class="GtkArrow" id="arrow3"> <property name="visible">True</property> - <property name="show_text">True</property> - <property name="text" translatable="yes">Playback Progress</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> </widget> <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> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel5"> + <widget class="GtkLabel" id="emptylabel6"> <property name="visible">True</property> </widget> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="emptylabel6"> + <widget class="GtkLabel" id="emptylabel5"> <property name="visible">True</property> </widget> <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">5</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkArrow" id="arrow3"> + <widget class="GtkProgressBar" id="DspTestPlayPosition"> <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="show_text">True</property> + <property name="text" translatable="yes">Playback Progress</property> </widget> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</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> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <widget class="GtkLabel" id="label16"> + <widget class="GtkLabel" id="label13"> <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="xalign">0</property> - <property name="label" translatable="yes">You are currently on Step 3 of the digital signal processing test:</property> + <property name="label" translatable="yes"> Click <i>Play</i> to begin</property> <property name="use_markup">True</property> + <property name="ellipsize">PANGO_ELLIPSIZE_END</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> </packing> </child> <child> - <widget class="GtkToggleButton" id="DspTestPlayStart"> + <widget class="GtkLabel" id="label23"> <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="label" translatable="yes">gtk-media-play</property> - <property name="use_stock">True</property> - <property name="response_id">0</property> - <signal name="toggled" handler="DspTestPlayStart_toggled_cb"/> + <property name="xalign">0</property> + <property name="label" translatable="yes"><b>3. Play back the second clip + <i>This is what the remote party would hear for the + conversation as simulated in step two.</i></b></property> + <property name="use_markup">True</property> </widget> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> - <property name="x_options"></property> - <property name="y_options">GTK_EXPAND</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> </widget> @@ -2081,6 +2083,7 @@ wxyz</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">Rescan</property> <property name="response_id">-1</property> + <signal name="clicked" handler="ScanRestart_clicked_cb"/> </widget> <packing> <property name="expand">False</property> @@ -2094,6 +2097,7 @@ wxyz</property> <property name="receives_default">True</property> <property name="label" translatable="yes">History</property> <property name="response_id">-2</property> + <signal name="clicked" handler="ScanHistory_clicked_cb"/> </widget> <packing> <property name="position">1</property> @@ -2107,6 +2111,7 @@ wxyz</property> <property name="receives_default">True</property> <property name="label" translatable="yes">Cancel</property> <property name="response_id">1</property> + <signal name="clicked" handler="ScanCancel_clicked_cb"/> </widget> <packing> <property name="pack_type">GTK_PACK_END</property> @@ -2121,6 +2126,7 @@ wxyz</property> <property name="receives_default">True</property> <property name="label" translatable="yes">OK</property> <property name="response_id">0</property> + <signal name="clicked" handler="ScanOK_clicked_cb"/> </widget> <packing> <property name="pack_type">GTK_PACK_END</property> @@ -2482,6 +2488,7 @@ Drop Active</property> <property name="receives_default">True</property> <property name="label" translatable="yes">Cancel</property> <property name="response_id">1</property> + <signal name="clicked" handler="HistoryCancel_clicked_cb"/> </widget> <packing> <property name="position">1</property> @@ -2495,6 +2502,7 @@ Drop Active</property> <property name="receives_default">True</property> <property name="label" translatable="yes">OK</property> <property name="response_id">0</property> + <signal name="clicked" handler="HistoryOK_clicked_cb"/> </widget> <packing> <property name="pack_type">GTK_PACK_END</property> diff --git a/data/hfconsole.in b/data/hfconsole.in index 2867f37..2feb953 100755 --- a/data/hfconsole.in +++ b/data/hfconsole.in @@ -170,8 +170,19 @@ class HfConsole: # Callbacks for the scan dialog "on_ScanDialog_close" : gtk.main_quit, + "ScanOK_clicked_cb" : self.scan_ok_clicked, + "ScanCancel_clicked_cb" : self.scan_cancel_clicked, + "ScanHistory_clicked_cb" : self.scan_history_clicked, + "ScanRestart_clicked_cb" : self.scan_restart_clicked, + + # Callbacks for the history dialog + "HistoryOK_clicked_cb" : self.history_ok_clicked, + "HistoryCancel_clicked_cb" : + self.history_cancel_clicked, # Callbacks for the config dialog + "ConfigOk_clicked_cb" : self.config_ok_clicked, + "ConfigCancel_clicked_cb" : self.config_cancel_clicked, "ConfigDriver_changed_cb" : self.config_driver_changed, "ConfigPacketIntervalHint_toggled_cb" : @@ -303,6 +314,7 @@ class HfConsole: except dbus.exceptions.DBusException, (ex): self.fatal('Could not connect to D-Bus:\n' + str(ex)) + return try: self.hfpd = dbus.Interface( @@ -326,10 +338,11 @@ class HfConsole: str(ex) + '\n\n' + 'Ensure that hfpd and its D-Bus service ' + 'file are installed correctly.\n' + - 'If the problem persists, try starting ' + 'If the problem persists, try starting ' + 'hfpd manually, e.g. \"hfpd\", or out ' + ' of your build directory, e.g. ' + '\"hfpd/hfpd\"') + return try: v = self.getprop_hfpd('Version') @@ -344,6 +357,7 @@ class HfConsole: 'Ensure that hfpd is installed correctly.\n' + 'If the problem persists, try \"killall hfpd\"') % (v, my_version)) + return elif v != my_version: self.fatal(('Version mismatch with hfpd!\n' 'hfpd version: %d\n' + @@ -353,6 +367,7 @@ class HfConsole: 'out of your build directory, e.g. ' + '\"data/hfconsole\"') % (v, my_version)) + return self.configfile_name = os.path.expanduser('~/.hfconsolerc') self.configfile = ConfigParser.ConfigParser() @@ -416,6 +431,7 @@ class HfConsole: if (ex.get_dbus_name() != 'net.sf.nohands.hfpd.Error'): self.fatal(ex.get_dbus_message()) + return self.setprop_hfpd('AutoRestart', True) ags = self.getprop_hfpd('AudioGateways') for x in ags: @@ -435,13 +451,15 @@ class HfConsole: dlg.set_title(self['MainWindow'].get_title()) dlg.set_transient_for(self['MainWindow']) dlg.set_position(gtk.WIN_POS_CENTER_ON_PARENT) - dlg.run() - dlg.hide() + dlg.show() + return dlg - def fatal(self, msg): - self.error_message(msg) + def fatal_closed(self, widget, response): # dbus-python needs to fix its exception handler os._exit(1) + def fatal(self, msg): + dlg = self.error_message(msg) + dlg.connect('response', self.fatal_closed) class AudioGateway: def image_button(self, toggle, stock, tip): @@ -947,31 +965,12 @@ class HfConsole: def scan_open(self, but): dlg = self['ScanDialog'] - result = 2 - if not self.scan_restart(): self.error_message('Could not start inquiry') return - - while True: - dlg.show() - result = dlg.run() - if result == -1: - if not self.scan_restart(): - self.error_message( - 'Could not start inquiry') - continue - elif result == -2: - result = self.history_open() - if not result: - continue - (store, iter) = result - result = 0 - elif result == 0: - assert (self.scanselect.count_selected_rows() - <= 1) - (store, iter) = self.scanselect.get_selected() - break + dlg.show() + def scan_close(self): + dlg = self['ScanDialog'] dlg.hide() if self.inquiry: try: @@ -979,13 +978,24 @@ class HfConsole: except: pass self.inquiry = False - if result != 0: - return + def scan_create_session(self, store, iter): # Create a session for the selected bdaddr + self.scan_close() assert store and iter addr = store.get_value(iter, 2) self.ag_add_to_config(addr) self.add_audiogateway(addr) + def scan_ok_clicked(self, widget): + assert (self.scanselect.count_selected_rows() <= 1) + (store, iter) = self.scanselect.get_selected() + self.scan_create_session(store, iter) + def scan_cancel_clicked(self,widget): + self.scan_close() + def scan_history_clicked(self, widget): + self.history_open() + def scan_restart_clicked(self, widget): + if not self.scan_restart(): + self.error_message('Could not start inquiry') def scan_select(self, selection): if not selection.count_selected_rows(): self['ScanOK'].set_sensitive(False) @@ -1049,15 +1059,17 @@ class HfConsole: else: name = "%s (%s)" % (name, addr) self.historyresults.append(row=[name, 0, addr]) - dlg.show() - res = dlg.run() + def history_close(self): + dlg = self['HistoryDialog'] dlg.hide() - if res == 1: - return None + def history_ok_clicked(self, widget): + self.history_close() assert self.historyselect.count_selected_rows() <= 1 - return self.historyselect.get_selected() - + (store, iter) = self.historyselect.get_selected() + self.scan_create_session(store, iter) + def history_cancel_clicked(self, widget): + self.history_close() def history_select(self, selection): if not selection.count_selected_rows(): self['HistoryOK'].set_sensitive(False) @@ -1121,20 +1133,24 @@ class HfConsole: cmd = self.command_audio_attach_dcmd if cmd: self['ConfigAudioDetachCommand'].set_text(cmd) - + self.config_savecfg = savecfg dlg.show() - result = dlg.run() + def config_close(self): + dlg = self['ConfigDialog'] dlg.hide() self['ConfigFeedbackTest'].set_active(False) - if result == 1: - # Restore the save values - self.config_restore_vals(savecfg) - else: - self.config_save_vals() del self.config if hasattr(self, 'loopback_active'): del self.loopback_active - + if hasattr(self, 'config_savecfg'): + del self.config_savecfg + def config_ok_clicked(self, widget): + self.config_save_vals() + self.config_close() + def config_cancel_clicked(self, widget): + # Restore the save values + self.config_restore_vals(self.config_savecfg) + self.config_close() def config_get_vals(self): spr = self.soundio_props.GetAll('net.sf.nohands.hfpd.SoundIo') hfpr = self.hfpd_props.GetAll('net.sf.nohands.hfpd.HandsFree') @@ -1628,7 +1644,7 @@ class HfConsole: self.soundio_status_msg_clear() self.soundio_status_msgid = self['StatusBar'].push( self.soundio_status_ctx, - msg); + msg) if timeout: self.soundio_status_timeout = gobject.timeout_add( timeout, self.soundio_status_msg_clear) @@ -1648,7 +1664,7 @@ class HfConsole: else: return self.soundio_status_msg(msg, 5000) - self.soundio_skew_type = skewtype; + self.soundio_skew_type = skewtype if self.soundio_skew_monitor: self.soundio_skew_monitor(skewtype, count) |