[chronojump] Better gui encoder capture
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Better gui encoder capture
- Date: Tue, 29 Oct 2013 20:45:17 +0000 (UTC)
commit f02ea5c451b5783c04ba2f2bf453ca2ead539c35
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue Oct 29 21:44:42 2013 +0100
Better gui encoder capture
glade/chronojump.glade | 1802 ++++++++++++++++++++++++------------------------
src/gui/chronojump.cs | 5 -
src/gui/encoder.cs | 147 ++++-
3 files changed, 1042 insertions(+), 912 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index 5a8721e..7047706 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -11986,122 +11986,137 @@ on current Chronojump version.</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
<child>
- <widget class="GtkHBox" id="hbox96">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
<child>
- <widget class="GtkAlignment" id="alignment21">
+ <widget class="GtkHBox" id="hbox117">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="top_padding">2</property>
+ <property name="border_width">8</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkNotebook" id="notebook2">
+ <widget class="GtkLabel" id="label90">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tab_pos">left</property>
- <property name="tab_hborder">10</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Encoder:</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox90">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_linear">
+ <property name="label"
translatable="yes">Linear</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Linear
encoder (default)</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled"
handler="on_radiobutton_encoder_capture_l_r_toggled" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_rotary">
+ <property name="label"
translatable="yes">Rotary</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Rotary
encoder</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="draw_indicator">True</property>
+ <property
name="group">radiobutton_encoder_capture_linear</property>
+ <signal name="toggled"
handler="on_radiobutton_encoder_capture_l_r_toggled" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox116">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
<child>
- <widget class="GtkTable" id="table10">
+ <widget class="GtkHBox"
id="hbox_checkbutton_encoder_capture_inverted">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">8</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">8</property>
- <property name="row_spacing">8</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkHBox" id="hbox75">
+ <widget class="GtkVSeparator" id="vseparator6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">10</property>
- <child>
- <widget class="GtkHBox" id="hbox90">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkLabel" id="label84">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Type:</property>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
<property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_linear">
- <property name="label"
translatable="yes">Linear</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton"
id="checkbutton_encoder_capture_inverted">
+ <property name="label"
translatable="yes">Inverted</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property
name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Linear encoder (default)</property>
<property
name="use_action_appearance">False</property>
- <property name="active">True</property>
<property name="draw_indicator">True</property>
- <signal name="toggled"
handler="on_radiobutton_encoder_capture_l_r_toggled" swapped="no"/>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_rotary">
- <property name="label"
translatable="yes">Rotary</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property
name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Rotary encoder</property>
- <property
name="use_action_appearance">False</property>
- <property name="draw_indicator">True</property>
- <property
name="group">radiobutton_encoder_capture_linear</property>
- <signal name="toggled"
handler="on_radiobutton_encoder_capture_l_r_toggled" swapped="no"/>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox116">
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox"
id="hbox_encoder_capture_rotary_f_a">
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkVSeparator" id="vseparator5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <child>
- <widget class="GtkCheckButton"
id="checkbutton_encoder_capture_inverted">
- <property name="label"
translatable="yes">Inverted</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property
name="receives_default">False</property>
- <property
name="use_action_appearance">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
<property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox"
id="hbox_encoder_capture_rotary_f_a">
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_rotary_friction">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_rotary_friction">
<property name="label"
translatable="yes">Friction</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -12110,296 +12125,322 @@ on current Chronojump version.</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled"
handler="on_radiobutton_encoder_capture_rotary_friction_or_axis_toggled" swapped="no"/>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_rotary_axis">
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_rotary_axis">
<property name="label"
translatable="yes">Axis</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property
name="receives_default">False</property>
<property
name="use_action_appearance">False</property>
- <property name="active">True</property>
<property name="draw_indicator">True</property>
<property
name="group">radiobutton_encoder_capture_rotary_friction</property>
<signal name="toggled"
handler="on_radiobutton_encoder_capture_rotary_friction_or_axis_toggled" swapped="no"/>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
+ <property name="position">2</property>
+ </packing>
</child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox_encoder_capture_inertial">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkVSeparator" id="vseparator3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton"
id="checkbutton_encoder_capture_inertial">
+ <property name="label"
translatable="yes">Inertial</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Inertial
machine (Yoyo, VersaPulley)</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="clicked"
handler="on_checkbutton_encoder_capture_inertial_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton"
id="spin_encoder_capture_inertial">
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip">Inertia Momentum in
Kg*cm^2</property>
+ <property name="invisible_char">●</property>
+ <property name="invisible_char_set">True</property>
+ <property
name="primary_icon_activatable">False</property>
+ <property
name="secondary_icon_activatable">False</property>
+ <property
name="primary_icon_sensitive">True</property>
+ <property
name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">100 0 5000 1 10
0</property>
+ <property name="climb_rate">1</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_capture_inertial">
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Calcule
inertial momentum</property>
+ <property
name="use_action_appearance">False</property>
<child>
- <widget class="GtkHBox" id="hbox58">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <widget class="GtkHBox"
id="hbox_encoder_capture_inertial">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkCheckButton"
id="checkbutton_encoder_capture_inertial">
- <property name="label"
translatable="yes">Inertial</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property
name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Inertial machine (Yoyo, VersaPulley)</property>
- <property
name="use_action_appearance">False</property>
- <property name="draw_indicator">True</property>
- <signal name="clicked"
handler="on_checkbutton_encoder_capture_inertial_clicked" swapped="no"/>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton"
id="spin_encoder_capture_inertial">
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip">Inertia Momentum in
Kg*cm^2</property>
- <property name="invisible_char">●</property>
- <property
name="invisible_char_set">True</property>
- <property
name="primary_icon_activatable">False</property>
- <property
name="secondary_icon_activatable">False</property>
- <property
name="primary_icon_sensitive">True</property>
- <property
name="secondary_icon_sensitive">True</property>
- <property name="adjustment">100 0 5000 1 10
0</property>
- <property name="climb_rate">1</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_encoder_capture_inertial">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Calcule inertial momentum</property>
- <property
name="use_action_appearance">False</property>
- <child>
- <widget class="GtkImage" id="image32">
+ <widget class="GtkImage" id="image32">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-execute</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox"
id="hbox_encoder_capture_diameter">
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkLabel" id="label118">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Diameter</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton"
id="spin_encoder_capture_diameter">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Diameter of inertia machine axis</property>
- <property name="invisible_char">●</property>
- <property
name="invisible_char_set">True</property>
- <property
name="primary_icon_activatable">False</property>
- <property
name="secondary_icon_activatable">False</property>
- <property
name="primary_icon_sensitive">True</property>
- <property
name="secondary_icon_sensitive">True</property>
- <property name="adjustment">4 0 40 1 10
0</property>
- <property name="climb_rate">1</property>
- <property name="digits">1</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- <property
name="update_policy">if-valid</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label120">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">cm</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
</widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
</child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox_encoder_capture_diameter">
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkVSeparator" id="vseparator2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label118">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Diameter</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton"
id="spin_encoder_capture_diameter">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Diameter
of inertia machine axis</property>
+ <property name="invisible_char">●</property>
+ <property name="invisible_char_set">True</property>
+ <property
name="primary_icon_activatable">False</property>
+ <property
name="secondary_icon_activatable">False</property>
+ <property
name="primary_icon_sensitive">True</property>
+ <property
name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">4 0 40 1 10 0</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">1</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ <property name="update_policy">if-valid</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label120">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">cm</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox111">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkButton" id="button_encoder_help">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Help on
encoder types</property>
+ <property
name="use_action_appearance">False</property>
<child>
- <widget class="GtkButton" id="button_encoder_help">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Help
on encoder types</property>
- <property
name="use_action_appearance">False</property>
- <child>
- <widget class="GtkImage" id="image24">
+ <widget class="GtkImage" id="image24">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-help</property>
- </widget>
- </child>
</widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- </packing>
</child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_load_encoder">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Load
encoder configuration</property>
+ <property
name="use_action_appearance">False</property>
<child>
- <widget class="GtkHBox" id="hbox111">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkButton"
id="button_encoder_load_encoder">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Load
encoder configuration</property>
- <property
name="use_action_appearance">False</property>
- <child>
- <widget class="GtkImage"
id="image_encoder_capture_open1">
+ <widget class="GtkImage"
id="image_encoder_capture_open1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-open</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_encoder_save_encoder">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Save
encoder configuration</property>
- <property
name="use_action_appearance">False</property>
- <child>
- <widget class="GtkImage" id="image10">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-save</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
</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"/>
- </packing>
</child>
</widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
</child>
<child>
- <widget class="GtkLabel" id="label90">
+ <widget class="GtkButton"
id="button_encoder_save_encoder">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Encoder</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Save
encoder configuration</property>
+ <property
name="use_action_appearance">False</property>
+ <child>
+ <widget class="GtkImage" id="image10">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-save</property>
+ </widget>
+ </child>
</widget>
<packing>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment21">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">8</property>
+ <property name="right_padding">8</property>
+ <child>
+ <widget class="GtkHSeparator" id="hseparator8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox96">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <widget class="GtkHBox" id="hbox79">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">8</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkHBox" id="hbox79">
+ <widget class="GtkVBox" id="vbox18">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">8</property>
- <property name="spacing">4</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">8</property>
- <child>
- <widget class="GtkHBox" id="hbox86">
+ <widget class="GtkHBox" id="hbox86">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
@@ -12463,15 +12504,15 @@ on current Chronojump version.</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox112">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox112">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
@@ -12503,41 +12544,41 @@ on current Chronojump version.</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
</widget>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVSeparator" id="vseparator4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVSeparator" id="vseparator4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkTable" id="table11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">3</property>
+ <property name="column_spacing">4</property>
+ <property name="row_spacing">8</property>
<child>
- <widget class="GtkTable" id="table11">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">4</property>
- <property name="row_spacing">8</property>
- <child>
- <widget class="GtkLabel" id="label88">
+ <widget class="GtkLabel" id="label88">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
@@ -12545,10 +12586,10 @@ on current Chronojump version.</property>
<property name="xalign">1</property>
<property name="label" translatable="yes">Extra
weight</property>
<property name="use_markup">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label78">
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label78">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
@@ -12556,15 +12597,15 @@ on current Chronojump version.</property>
<property name="xalign">1</property>
<property name="label"
translatable="yes">Displaced</property>
<property name="use_markup">True</property>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="x_options"/>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox110">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox110">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
@@ -12598,7 +12639,6 @@ on current Chronojump version.</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-dialog-info</property>
- <property name="icon-size">2</property>
</widget>
</child>
</widget>
@@ -12608,15 +12648,15 @@ on current Chronojump version.</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="x_options"/>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton"
id="spin_encoder_1RM_percent">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton"
id="spin_encoder_1RM_percent">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
@@ -12632,17 +12672,17 @@ on current Chronojump version.</property>
<property name="digits">2</property>
<property name="snap_to_ticks">True</property>
<property name="numeric">True</property>
- </widget>
- <packing>
+ </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"/>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton"
id="spin_encoder_displaced_weight">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton"
id="spin_encoder_displaced_weight">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
@@ -12657,17 +12697,17 @@ on current Chronojump version.</property>
<property name="climb_rate">1</property>
<property name="snap_to_ticks">True</property>
<property name="numeric">True</property>
- </widget>
- <packing>
+ </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"/>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton"
id="spin_encoder_extra_weight">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton"
id="spin_encoder_extra_weight">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">●</property>
@@ -12683,272 +12723,163 @@ on current Chronojump version.</property>
<property name="numeric">True</property>
<property
name="update_policy">if-valid</property>
<signal name="value_changed"
handler="on_spin_encoder_extra_weight_value_changed" swapped="no"/>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options"/>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
</packing>
</child>
</widget>
<packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label108">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Exercise</property>
- </widget>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox88">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">8</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkVBox" id="vbox19">
+ <widget class="GtkHBox" id="hbox77">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">8</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkHBox" id="hbox76">
+ <widget class="GtkHBox" id="hbox107">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">10</property>
+ <property name="spacing">2</property>
<child>
- <widget class="GtkHBox" id="hbox102">
+ <widget class="GtkButton"
id="button_encoder_capture_options">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip"
translatable="yes">Options</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked"
handler="on_button_encoder_capture_options_clicked" swapped="no"/>
<child>
- <widget class="GtkLabel" id="label93">
+ <widget class="GtkImage" id="image19">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label"
translatable="yes">Type</property>
+ <property name="stock">gtk-preferences</property>
</widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
- <child>
- <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_safe">
- <property name="label"
translatable="yes">Safe</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property
name="receives_default">False</property>
- <property
name="use_action_appearance">False</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkRadioButton"
id="radiobutton_encoder_capture_external">
- <property name="label"
translatable="yes">External</property>
+ <widget class="GtkButton"
id="button_encoder_capture">
+ <property name="label"
translatable="yes">Capture</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property
name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">External</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
<property
name="use_action_appearance">False</property>
- <property name="image_position">right</property>
- <property name="draw_indicator">True</property>
- <property
name="group">radiobutton_encoder_capture_safe</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="use_underline">True</property>
+ <signal name="clicked"
handler="on_button_encoder_capture_clicked" swapped="no"/>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox113">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">10</property>
- <child>
- <widget class="GtkHBox" id="hbox114">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkLabel" id="label111">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Recording time</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton"
id="spin_encoder_capture_time">
+ <widget class="GtkButton"
id="button_encoder_capture_cancel">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Recording time</property>
- <property name="invisible_char">●</property>
- <property name="width_chars">3</property>
- <property
name="invisible_char_set">True</property>
- <property
name="primary_icon_activatable">False</property>
- <property
name="secondary_icon_activatable">False</property>
- <property
name="primary_icon_sensitive">True</property>
- <property
name="secondary_icon_sensitive">True</property>
- <property name="adjustment">5 5 180 1 10
0</property>
- <property name="climb_rate">1</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="tooltip"
translatable="yes">Cancel process</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked"
handler="on_button_encoder_cancel_clicked" swapped="no"/>
<child>
- <widget class="GtkLabel" id="label71">
+ <widget class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label"
translatable="yes">s</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="stock">gtk-cancel</property>
</widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
- <child>
- <widget class="GtkHBox" id="hbox115">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkLabel" id="label113">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Minimal height</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton"
id="spin_encoder_capture_min_height">
+ <widget class="GtkButton"
id="button_encoder_capture_finish">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Minimal height</property>
- <property name="invisible_char">●</property>
- <property name="width_chars">3</property>
- <property
name="invisible_char_set">True</property>
- <property
name="primary_icon_activatable">False</property>
- <property
name="secondary_icon_activatable">False</property>
- <property
name="primary_icon_sensitive">True</property>
- <property
name="secondary_icon_sensitive">True</property>
- <property name="adjustment">20 1 300 1 10
0</property>
- <property name="climb_rate">1</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="tooltip"
translatable="yes">Finish capture</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <signal name="clicked"
handler="on_button_encoder_capture_finish_clicked" swapped="no"/>
<child>
- <widget class="GtkLabel" id="label81">
+ <widget class="GtkImage" id="image13">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label"
translatable="yes">cm</property>
- <property name="use_markup">True</property>
+ <property name="stock">gtk-goto-last</property>
+ </widget>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_encoder_bells">
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_load_signal">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Bells</property>
+ <property name="tooltip" translatable="yes">Load
signal</property>
<property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_button_encoder_bells_clicked" swapped="no"/>
+ <signal name="clicked"
handler="on_button_encoder_load_signal_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image_encoder_bell">
+ <widget class="GtkImage"
id="image_encoder_capture_open">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property
name="stock">gtk-missing-image</property>
+ <property name="stock">gtk-open</property>
</widget>
</child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">2</property>
- </packing>
- </child>
</widget>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
@@ -12956,276 +12887,97 @@ on current Chronojump version.</property>
</child>
</widget>
<packing>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label89">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Capture</property>
- </widget>
- <packing>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox18">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <widget class="GtkHBox" id="hbox95">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkLabel"
id="label_video_feedback_encoder">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </widget>
- <packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkCheckButton"
id="checkbutton_video_encoder">
+ <widget class="GtkHBox" id="hbox82">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Record
video (on / off)</property>
- <property
name="use_action_appearance">False</property>
- <property name="relief">none</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal name="clicked"
handler="on_checkbutton_video_encoder_clicked" swapped="no"/>
+ <property name="can_focus">False</property>
+ <property name="spacing">8</property>
<child>
- <widget class="GtkHBox" id="hbox94">
+ <widget class="GtkHBox" id="hbox58">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage"
id="image_video_yes_encoder">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
+ <widget class="GtkProgressBar"
id="encoder_pulsebar_capture">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property
name="stock">gtk-media-record</property>
- <property name="icon-size">1</property>
+ <property name="activity_mode">True</property>
+ <property name="show_text">True</property>
+ <property
name="pulse_step">0.10000000149</property>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkImage"
id="image_video_no_encoder">
- <property name="width_request">16</property>
- <property name="height_request">16</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-no</property>
- <property name="icon-size">1</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_video_play_this_test_encoder">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Play
Video (v)</property>
- <property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_video_play_this_test_encoder_clicked" swapped="no"/>
- <accelerator key="v" signal="clicked"/>
- <child>
- <widget class="GtkImage" id="image2">
+ <widget class="GtkButton"
id="button_encoder_recalculate">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-media-play</property>
- <property name="icon-size">1</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox_video_capture_encoder">
- <property name="width_request">120</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">6</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox87">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <widget class="GtkHBox" id="hbox77">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">8</property>
- <child>
- <widget class="GtkHBox" id="hbox107">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkButton"
id="button_encoder_capture">
- <property name="label"
translatable="yes">Capture</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">True</property>
- <property
name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <signal name="clicked"
handler="on_button_encoder_capture_clicked" swapped="no"/>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_encoder_capture_cancel">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Cancel process</property>
+ <property name="tooltip"
translatable="yes">Recalculate signal with changed parameters</property>
<property
name="use_action_appearance">False</property>
<property name="use_underline">True</property>
- <signal name="clicked"
handler="on_button_encoder_cancel_clicked" swapped="no"/>
+ <signal name="clicked"
handler="on_button_encoder_recalculate_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image8">
+ <widget class="GtkImage" id="image23">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-cancel</property>
+ <property name="stock">gtk-refresh</property>
</widget>
</child>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="pack_type">end</property>
<property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_encoder_capture_finish">
+ <widget class="GtkButton"
id="button_encoder_delete_signal">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="can_default">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Finish capture</property>
+ <property name="tooltip"
translatable="yes">Delete signal</property>
<property
name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <signal name="clicked"
handler="on_button_encoder_capture_finish_clicked" swapped="no"/>
+ <signal name="clicked"
handler="on_button_encoder_delete_signal_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image13">
+ <widget class="GtkImage"
id="image_encoder_signal_delete">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-goto-last</property>
+ <property name="stock">gtk-delete</property>
</widget>
</child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_encoder_load_signal">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Load
signal</property>
- <property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_button_encoder_load_signal_clicked" swapped="no"/>
- <child>
- <widget class="GtkImage"
id="image_encoder_capture_open">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
@@ -13233,147 +12985,139 @@ on current Chronojump version.</property>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox82">
+ <widget class="GtkVBox" id="vbox87">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">8</property>
<child>
- <widget class="GtkProgressBar"
id="encoder_pulsebar_capture">
+ <widget class="GtkHBox" id="hbox95">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="activity_mode">True</property>
- <property name="show_text">True</property>
- <property name="pulse_step">0.10000000149</property>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton"
id="button_encoder_recalculate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Recalculate signal with changed parameters</property>
- <property
name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <signal name="clicked"
handler="on_button_encoder_recalculate_clicked" swapped="no"/>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkImage" id="image23">
+ <widget class="GtkLabel"
id="label_video_feedback_encoder">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-refresh</property>
</widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox87">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">8</property>
- <child>
- <widget class="GtkHBox" id="hbox85">
- <property name="width_request">150</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">2</property>
<child>
- <widget class="GtkEntry"
id="entry_encoder_signal_comment">
+ <widget class="GtkCheckButton"
id="checkbutton_video_encoder">
+ <property name="visible">True</property>
<property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
<property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Add
a comment</property>
- <property name="invisible_char">●</property>
- <property
name="invisible_char_set">True</property>
- <property
name="primary_icon_activatable">False</property>
- <property
name="secondary_icon_activatable">False</property>
- <property
name="primary_icon_sensitive">True</property>
- <property
name="secondary_icon_sensitive">True</property>
+ <property name="tooltip"
translatable="yes">Record video (on / off)</property>
+ <property
name="use_action_appearance">False</property>
+ <property name="relief">none</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="clicked"
handler="on_checkbutton_video_encoder_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkHBox" id="hbox94">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkImage"
id="image_video_yes_encoder">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property
name="stock">gtk-media-record</property>
+ <property name="icon-size">1</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkImage"
id="image_video_no_encoder">
+ <property name="width_request">16</property>
+ <property name="height_request">16</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-no</property>
+ <property name="icon-size">1</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_encoder_update_signal">
+ <widget class="GtkButton"
id="button_video_play_this_test_encoder">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="tooltip"
translatable="yes">Update signal (save it again if changed)</property>
+ <property name="tooltip" translatable="yes">Play
Video (v)</property>
<property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_button_encoder_save_clicked" swapped="no"/>
+ <signal name="clicked"
handler="on_video_play_this_test_encoder_clicked" swapped="no"/>
+ <accelerator key="v" signal="clicked"/>
<child>
- <widget class="GtkImage" id="image19">
+ <widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-save</property>
+ <property name="stock">gtk-media-play</property>
+ <property name="icon-size">1</property>
</widget>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_encoder_delete_signal">
+ <widget class="GtkHBox"
id="hbox_video_capture_encoder">
+ <property name="width_request">120</property>
<property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip" translatable="yes">Delete
signal</property>
- <property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_button_encoder_delete_signal_clicked" swapped="no"/>
+ <property name="can_focus">False</property>
<child>
- <widget class="GtkImage"
id="image_encoder_signal_delete">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-delete</property>
- </widget>
+ <placeholder/>
</child>
</widget>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
+ <property name="padding">6</property>
+ <property name="pack_type">end</property>
<property name="position">2</property>
</packing>
</child>
@@ -20723,6 +20467,298 @@ comments</property>
</widget>
</child>
</widget>
+ <widget class="GtkWindow" id="encoder_capture_options">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">10</property>
+ <property name="title" translatable="yes">Encoder capture options</property>
+ <property name="resizable">False</property>
+ <property name="type_hint">dialog</property>
+ <signal name="delete_event" handler="on_delete_event" swapped="no"/>
+ <child>
+ <widget class="GtkVBox" id="vbox27">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">16</property>
+ <child>
+ <widget class="GtkTable" id="table7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">8</property>
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Mode</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox102">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <widget class="GtkRadioButton" id="radiobutton_encoder_capture_safe">
+ <property name="label" translatable="yes">Safe</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Safe</property>
+ <property name="use_action_appearance">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkRadioButton" id="radiobutton_encoder_capture_external">
+ <property name="label" translatable="yes">External</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">External</property>
+ <property name="use_action_appearance">False</property>
+ <property name="image_position">right</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">radiobutton_encoder_capture_safe</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Recording time</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Minimal height</property>
+ </widget>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Feedback</property>
+ </widget>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox114">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkSpinButton" id="spin_encoder_capture_time">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Recording time</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">3</property>
+ <property name="invisible_char_set">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">5 5 180 1 10 0</property>
+ <property name="climb_rate">1</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label71">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">s</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </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>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox115">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkSpinButton" id="spin_encoder_capture_min_height">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Minimal height</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">3</property>
+ <property name="invisible_char_set">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+ <property name="adjustment">20 1 300 1 10 0</property>
+ <property name="climb_rate">1</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label81">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">cm</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </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>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkButton" id="button_encoder_bells">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip" translatable="yes">Bells</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <signal name="clicked" handler="on_button_encoder_bells_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkImage" id="image_encoder_bell">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-missing-image</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </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>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox17">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">spread</property>
+ <child>
+ <widget class="GtkButton" id="button_close">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_stock">True</property>
+ <signal name="clicked" handler="on_button_close_clicked" swapped="no"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
<widget class="GtkDialog" id="error_dialog">
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index b0c80e0..ff426de 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -733,7 +733,6 @@ public partial class ChronoJumpWindow
pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "stock_bell.png");
image_jump_reactive_bell.Pixbuf = pixbuf;
image_run_interval_bell.Pixbuf = pixbuf;
- image_encoder_bell.Pixbuf = pixbuf;
pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "preferences-system.png");
image_jump_reactive_repair.Pixbuf = pixbuf;
@@ -5381,10 +5380,6 @@ Console.WriteLine("X");
repetitiveConditionsWin.View(Constants.BellModes.RUNS, volumeOn);
}
- private void on_button_encoder_bells_clicked(object o, EventArgs args) {
- repetitiveConditionsWin.View(Constants.BellModes.ENCODER, volumeOn);
- }
-
private void on_repetitive_conditions_closed(object o, EventArgs args) {
//treeview_encoder should be updated (to colorize some cells)
//only if there was data
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index dcc3de3..f6167e1 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -41,6 +41,7 @@ public partial class ChronoJumpWindow
[Widget] Gtk.RadioButton radiobutton_encoder_capture_rotary;
[Widget] Gtk.RadioButton radiobutton_encoder_capture_rotary_friction;
[Widget] Gtk.RadioButton radiobutton_encoder_capture_rotary_axis;
+ [Widget] Gtk.Box hbox_checkbutton_encoder_capture_inverted;
[Widget] Gtk.CheckButton checkbutton_encoder_capture_inverted;
[Widget] Gtk.CheckButton checkbutton_encoder_capture_inertial;
[Widget] Gtk.Box hbox_encoder_capture_rotary_f_a;
@@ -53,8 +54,6 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Box hbox_encoder_capture_diameter;
[Widget] Gtk.Button button_encoder_capture;
- [Widget] Gtk.RadioButton radiobutton_encoder_capture_safe;
- [Widget] Gtk.RadioButton radiobutton_encoder_capture_external;
[Widget] Gtk.Button button_encoder_bells;
[Widget] Gtk.Button button_encoder_capture_cancel;
[Widget] Gtk.Button button_encoder_capture_finish;
@@ -62,14 +61,11 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Button button_encoder_load_signal;
[Widget] Gtk.Button button_video_play_this_test_encoder;
[Widget] Gtk.Viewport viewport_image_encoder_capture;
- [Widget] Gtk.Image image_encoder_bell;
- [Widget] Gtk.SpinButton spin_encoder_capture_time;
- [Widget] Gtk.SpinButton spin_encoder_capture_min_height;
[Widget] Gtk.SpinButton spin_encoder_capture_curves_height_range;
[Widget] Gtk.Image image_encoder_capture;
[Widget] Gtk.Image image_encoder_capture_open;
[Widget] Gtk.ProgressBar encoder_pulsebar_capture;
- [Widget] Gtk.Entry entry_encoder_signal_comment;
+ //[Widget] Gtk.Entry entry_encoder_signal_comment;
[Widget] Gtk.Entry entry_encoder_curve_comment;
[Widget] Gtk.Button button_encoder_delete_curve;
[Widget] Gtk.Button button_encoder_save_curve;
@@ -167,6 +163,8 @@ public partial class ChronoJumpWindow
bool lastRecalculateWasInverted;
//bool capturingRotaryInertial;
+
+ EncoderCaptureOptionsWindow encoderCaptureOptionsWin;
/*
* this contains last EncoderSQL captured, recalculated or loaded
@@ -225,8 +223,20 @@ public partial class ChronoJumpWindow
spin_encoder_capture_inertial.Value = Convert.ToDouble(Util.ChangeDecimalSeparator(
SqlitePreferences.Select("inertialmomentum"))) * 10000;
+
+ encoderCaptureOptionsWin = EncoderCaptureOptionsWindow.Create();
+ encoderCaptureOptionsWin.FakeButtonClose.Clicked += new
EventHandler(on_encoder_capture_options_closed);
+ }
+
+
+ void on_button_encoder_capture_options_clicked (object o, EventArgs args) {
+ encoderCaptureOptionsWin.View(repetitiveConditionsWin, volumeOn);
}
+ private void on_encoder_capture_options_closed(object o, EventArgs args) {
+ Log.WriteLine("closed");
+ }
+
void on_button_encoder_capture_clicked (object o, EventArgs args)
{
if(chronopicWin.GetEncoderPort() == Util.GetDefaultPort()) {
@@ -279,8 +289,8 @@ public partial class ChronoJumpWindow
string exerciseNameShown = UtilGtk.ComboGetActive(combo_encoder_exercise);
//capture data
EncoderParams ep = new EncoderParams(
- (int) spin_encoder_capture_time.Value,
- (int) spin_encoder_capture_min_height.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_time.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_min_height.Value,
getExercisePercentBodyWeightFromCombo (),
Util.ConvertToPoint(findMassFromCombo(true)),
Util.ConvertToPoint(encoderSmoothCon), //R decimal: '.'
@@ -309,7 +319,7 @@ public partial class ChronoJumpWindow
SqlitePreferences.Update("inertialmomentum",
Util.ConvertToPoint((double) spin_encoder_capture_inertial.Value / 10000),
false);
- if (radiobutton_encoder_capture_external.Active) {
+ if (encoderCaptureOptionsWin.radiobutton_encoder_capture_external.Active) {
encoderStartVideoRecord();
//wait to ensure label "Rec" has been shown
@@ -323,20 +333,20 @@ public partial class ChronoJumpWindow
Util.ConvertToPoint(findMassFromCombo(true)) + "Kg)",
es, chronopicWin.GetEncoderPort());
- entry_encoder_signal_comment.Text = "";
+ //entry_encoder_signal_comment.Text = "";
encoderStopVideoRecord();
calculeCurves();
}
- else if (radiobutton_encoder_capture_safe.Active) {
+ else if (encoderCaptureOptionsWin.radiobutton_encoder_capture_safe.Active) {
if(notebook_encoder_capture.CurrentPage == 1)
notebook_encoder_capture.PrevPage();
Log.WriteLine("AAAAAAAAAAAAAAA");
encoderThreadStart(encoderModes.CAPTURE);
- entry_encoder_signal_comment.Text = "";
+ //entry_encoder_signal_comment.Text = "";
Log.WriteLine("ZZZZZZZZZZZZZZZ");
}
@@ -350,12 +360,12 @@ public partial class ChronoJumpWindow
void on_radiobutton_encoder_capture_l_r_toggled (object o, EventArgs args) {
if(radiobutton_encoder_capture_linear.Active) {
- checkbutton_encoder_capture_inverted.Visible = true;
+ hbox_checkbutton_encoder_capture_inverted.Visible = true;
hbox_encoder_capture_rotary_f_a.Visible = false;
hbox_encoder_capture_diameter.Visible = (checkbutton_encoder_capture_inertial.Active);
} else {
- checkbutton_encoder_capture_inverted.Visible = false;
+ hbox_checkbutton_encoder_capture_inverted.Visible = false;
hbox_encoder_capture_rotary_f_a.Visible = true;
hbox_encoder_capture_diameter.Visible =
(radiobutton_encoder_capture_rotary_axis.Active);
@@ -680,8 +690,8 @@ public partial class ChronoJumpWindow
"", //signalOrCurve,
"", //fileSaved, //to know date do: select substr(name,-23,19) from
encoder;
"", //path, //url
- (int) spin_encoder_capture_time.Value,
- (int) spin_encoder_capture_min_height.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_time.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_min_height.Value,
-1, //Since 1.3.7 smooth is not stored in curves
"", //desc,
"","",
@@ -692,7 +702,7 @@ public partial class ChronoJumpWindow
EncoderParams ep = new EncoderParams(
- (int) spin_encoder_capture_min_height.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_min_height.Value,
getExercisePercentBodyWeightFromCombo (),
Util.ConvertToPoint(findMassFromCombo(true)),
findEccon(true), //force ecS (ecc-conc
separated)
@@ -1174,8 +1184,8 @@ public partial class ChronoJumpWindow
combo_encoder_laterality.Active =
UtilGtk.ComboMakeActive(combo_encoder_laterality, es.laterality);
spin_encoder_extra_weight.Value = Convert.ToInt32(es.extraWeight);
- spin_encoder_capture_min_height.Value = es.minHeight;
- entry_encoder_signal_comment.Text = es.description;
+ encoderCaptureOptionsWin.spin_encoder_capture_min_height.Value = es.minHeight;
+ //entry_encoder_signal_comment.Text = es.description;
encoderTimeStamp = es.GetDate(false);
encoderSignalUniqueID = es.uniqueID;
button_video_play_this_test_encoder.Sensitive = (es.future2 != "");
@@ -1424,7 +1434,7 @@ public partial class ChronoJumpWindow
treeviewEncoderCaptureRemoveColumns();
encoderButtonsSensitive(encoderSensEnum.DONENOSIGNAL);
encoder_pulsebar_capture.Text = Catalog.GetString("Signal deleted");
- entry_encoder_signal_comment.Text = "";
+ //entry_encoder_signal_comment.Text = "";
}
}
@@ -1579,7 +1589,8 @@ public partial class ChronoJumpWindow
currentPerson.Name, encoderTimeStamp, curveIDMax);
path = Util.GetEncoderSessionDataCurveDir(currentSession.UniqueID);
} else { //signal
- desc = Util.RemoveTildeAndColonAndDot(entry_encoder_signal_comment.Text.ToString());
+ //desc = Util.RemoveTildeAndColonAndDot(entry_encoder_signal_comment.Text.ToString());
+ desc = "";
fileSaved = Util.CopyTempToEncoderData (currentSession.UniqueID,
currentPerson.UniqueID,
currentPerson.Name, encoderTimeStamp);
@@ -1696,7 +1707,7 @@ public partial class ChronoJumpWindow
Util.ChangeSpaceAndMinusForUnderscore(exerciseNameShown) + "----(" +
Util.ConvertToPoint(findMassFromCombo(true)) + "Kg)",
//es,
- (int) spin_encoder_capture_time.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_time.Value,
Util.GetEncoderDataTempFileName(),
chronopicWin.GetEncoderPort());
@@ -2156,7 +2167,7 @@ Log.WriteLine(str);
}
ep = new EncoderParams(
- (int) spin_encoder_capture_min_height.Value,
+ (int) encoderCaptureOptionsWin.spin_encoder_capture_min_height.Value,
getExercisePercentBodyWeightFromCombo (),
Util.ConvertToPoint(findMassFromCombo(true)),
findEccon(false), //do not force ecS (ecc-conc
separated)
@@ -3699,15 +3710,18 @@ Log.WriteLine(str);
private void updateEncoderCaptureGraphRCalc()
{
+Log.Write("A");
if(ecca.ecc.Count <= ecca.curvesDone)
return;
+Log.Write("B");
Log.WriteLine("calling rdotnet: direction, start, end");
EncoderCaptureCurve ecc = (EncoderCaptureCurve) ecca.ecc[ecca.curvesDone];
Log.WriteLine(ecc.DirectionAsString());
Log.WriteLine(ecc.startFrame.ToString());
Log.WriteLine(ecc.endFrame.ToString());
+Log.Write("C");
//evaluate only concentric curves
if(ecc.up && (ecc.endFrame - ecc.startFrame) > 0) {
int [] curve = new int[ecc.endFrame - ecc.startFrame];
@@ -3716,6 +3730,7 @@ Log.WriteLine(str);
k++;
}
+Log.Write("D");
IntegerVector curveToR = rengine.CreateIntegerVector(curve);
rengine.SetSymbol("curveToR", curveToR);
@@ -3728,6 +3743,7 @@ Log.WriteLine(str);
return;
}
+Log.Write("E");
//reduce curve by speed, the same way as graph.R
rengine.Evaluate("b=extrema(speedCut$y)");
rengine.Evaluate("maxSpeedT <- min(which(speedCut$y == max(speedCut$y)))");
@@ -3740,6 +3756,7 @@ Log.WriteLine(str);
rengine.Evaluate("bcross <- b$cross[,2]");
IntegerVector bcross = rengine.GetSymbol("bcross").AsInteger();
+Log.Write("F");
int x_ini = 0;
if(bcrossLen == 0)
x_ini = 0;
@@ -3754,6 +3771,7 @@ Log.WriteLine(str);
}
}
+Log.Write("G");
rengine.Evaluate("curveToRcumsum = cumsum(curveToR)");
rengine.Evaluate("firstFrameAtTop <- min(which(curveToRcumsum == max
(curveToRcumsum)))");
int x_end = rengine.GetSymbol("firstFrameAtTop").AsInteger().First();
@@ -3768,6 +3786,7 @@ Log.WriteLine(str);
curveToRreduced[k++] = curveToR[i];
rengine.SetSymbol("curveToRreduced", curveToRreduced);
+Log.Write("H");
//2) do speed and accel for curve once reducedCurveBySpeed
//cannot do smooth.spline with less than 4 values
@@ -3779,12 +3798,14 @@ Log.WriteLine(str);
return;
}
+Log.Write("I");
rengine.Evaluate("accel <- predict( speed, deriv=1 )");
rengine.Evaluate("curveToRreduced.cumsum <- cumsum(curveToRreduced)");
rengine.Evaluate("range <-
abs(curveToRreduced.cumsum[length(curveToRreduced)]-curveToRreduced.cumsum[1])");
+Log.Write("J");
//propulsive stuff
//TODO: implement this
//end of propulsive stuff
@@ -3801,6 +3822,7 @@ Log.WriteLine(str);
rengine.Evaluate("power <- force*speed$y");
+Log.Write("K");
//TODO: change this, obtain from GUI
string eccon = "c";
@@ -3839,10 +3861,12 @@ Log.WriteLine(str);
peakPowerT = peakPowerT / 1000; //ms -> s
double pp_ppt = peakPower / peakPowerT;
+Log.Write("L");
Log.WriteLine(string.Format(
"height: {0}\nmeanSpeed: {1}\n, maxSpeed: {2}\n, meanPower:
{3}\npeakPower: {4}\npeakPowerT: {5}",
height, meanSpeed, maxSpeed, meanPower, peakPower,
peakPowerT));
}
+Log.Write("M");
ecca.curvesDone ++;
}
@@ -4048,7 +4072,7 @@ Log.WriteLine(str);
private void updatePulsebar (encoderModes mode) {
if(mode == encoderModes.CAPTURE) {
- int selectedTime = (int) spin_encoder_capture_time.Value;
+ int selectedTime = (int) encoderCaptureOptionsWin.spin_encoder_capture_time.Value;
encoder_pulsebar_capture.Fraction = Util.DivideSafeFraction(
(selectedTime - encoderCaptureCountdown), selectedTime);
encoder_pulsebar_capture.Text = encoderCaptureCountdown + " s";
@@ -4221,3 +4245,78 @@ Log.WriteLine(str);
/* end of video stuff */
}
+
+
+public class EncoderCaptureOptionsWindow {
+
+ [Widget] Gtk.Window encoder_capture_options;
+ static EncoderCaptureOptionsWindow EncoderCaptureOptionsWindowBox;
+
+ [Widget] public Gtk.RadioButton radiobutton_encoder_capture_safe;
+ [Widget] public Gtk.RadioButton radiobutton_encoder_capture_external;
+ [Widget] public Gtk.SpinButton spin_encoder_capture_time;
+ [Widget] public Gtk.SpinButton spin_encoder_capture_min_height;
+ [Widget] Gtk.Image image_encoder_bell;
+ [Widget] Gtk.Button button_close;
+
+ RepetitiveConditionsWindow repetitiveConditionsWin;
+ bool volumeOn;
+
+ public Gtk.Button FakeButtonClose;
+
+ EncoderCaptureOptionsWindow () {
+ Glade.XML gladeXML;
+ gladeXML = Glade.XML.FromAssembly (Util.GetGladePath() + "chronojump.glade",
"encoder_capture_options", null);
+ gladeXML.Autoconnect(this);
+
+ //don't show until View is called
+ encoder_capture_options.Hide ();
+
+ //put an icon to window
+ UtilGtk.IconWindow(encoder_capture_options);
+
+ FakeButtonClose = new Gtk.Button();
+
+ //putNonStandardIcons
+ Pixbuf pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "stock_bell.png");
+ image_encoder_bell.Pixbuf = pixbuf;
+ }
+
+
+ static public EncoderCaptureOptionsWindow Create () {
+ if (EncoderCaptureOptionsWindowBox == null)
+ EncoderCaptureOptionsWindowBox = new EncoderCaptureOptionsWindow ();
+
+ return EncoderCaptureOptionsWindowBox;
+ }
+
+ public void View (RepetitiveConditionsWindow repetitiveConditionsWin, bool volumeOn)
+ {
+ if (EncoderCaptureOptionsWindowBox == null)
+ EncoderCaptureOptionsWindowBox = new EncoderCaptureOptionsWindow ();
+
+ EncoderCaptureOptionsWindowBox.repetitiveConditionsWin = repetitiveConditionsWin;
+ EncoderCaptureOptionsWindowBox.volumeOn = volumeOn;
+
+ //show window
+ EncoderCaptureOptionsWindowBox.encoder_capture_options.Show ();
+ }
+
+ private void on_button_encoder_bells_clicked(object o, EventArgs args) {
+ repetitiveConditionsWin.View(Constants.BellModes.ENCODER, volumeOn);
+ }
+
+ protected virtual void on_button_close_clicked (object o, EventArgs args)
+ {
+ EncoderCaptureOptionsWindowBox.encoder_capture_options.Hide();
+ FakeButtonClose.Click();
+ //EncoderCaptureOptionsWindowBox = null;
+ }
+
+ protected virtual void on_delete_event (object o, DeleteEventArgs args)
+ {
+ button_close.Click();
+ args.RetVal = true;
+ }
+}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]