[chronojump] Encoder analyze csharp can be finished
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder analyze csharp can be finished
- Date: Wed, 20 Feb 2013 11:58:18 +0000 (UTC)
commit 79ca69d55ca2cd9e0675e7e2a9e3c63d95653414
Author: Xavier de Blas <xaviblas gmail com>
Date: Wed Feb 20 12:57:41 2013 +0100
Encoder analyze csharp can be finished
glade/chronojump.glade | 170 ++++++++++++++++++++++++++----------------------
src/gui/chronojump.cs | 2 +-
src/gui/encoder.cs | 63 ++++++++++++------
3 files changed, 137 insertions(+), 98 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index a207717..61b6154 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -12449,7 +12449,7 @@ on current Chronojump version.</property>
<widget class="GtkHBox" id="hbox76">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">20</property>
<child>
<widget class="GtkHBox" id="hbox77">
<property name="visible">True</property>
@@ -12600,175 +12600,189 @@ on current Chronojump version.</property>
</packing>
</child>
<child>
- <widget class="GtkVSeparator" id="vseparator2">
+ <widget class="GtkHBox" id="hbox82">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <widget class="GtkProgressBar"
id="encoder_pulsebar_capture">
+ <property name="width_request">125</property>
+ <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">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkButton"
id="button_encoder_recalculate">
+ <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">Recalculate signal with changed parameters</property>
+ <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_recalculate_clicked" swapped="no"/>
+ <signal name="clicked"
handler="on_button_encoder_cancel_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image23">
+ <widget class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-refresh</property>
+ <property name="stock">gtk-cancel</property>
</widget>
</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="hbox85">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <widget class="GtkEntry"
id="entry_encoder_signal_comment">
- <property name="width_request">125</property>
- <property name="visible">True</property>
- <property name="can_focus">True</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>
- </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="GtkButton"
id="button_encoder_update_signal">
+ <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">Update signal (save it again if changed)</property>
+ <property name="tooltip"
translatable="yes">Finish capture</property>
<property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_button_encoder_save_clicked" swapped="no"/>
+ <property name="use_underline">True</property>
+ <signal name="clicked"
handler="on_button_encoder_capture_finish_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image19">
+ <widget class="GtkImage" id="image13">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-save</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">1</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">3</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox82">
+ <widget class="GtkButton"
id="button_encoder_recalculate">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</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"/>
<child>
- <widget class="GtkProgressBar"
id="encoder_pulsebar_capture">
- <property name="width_request">125</property>
+ <widget class="GtkImage" id="image23">
<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>
+ <property name="stock">gtk-refresh</property>
+ </widget>
+ </child>
</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="GtkButton"
id="button_encoder_capture_cancel">
+ <widget class="GtkHBox" id="hbox87">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">8</property>
+ <child>
+ <widget class="GtkButton"
id="button_encoder_load_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">Cancel process</property>
+ <property name="tooltip" translatable="yes">Load
signal</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_load_signal_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image8">
+ <widget class="GtkImage" id="image24">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-cancel</property>
+ <property name="stock">gtk-open</property>
</widget>
</child>
</widget>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox" id="hbox85">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkEntry"
id="entry_encoder_signal_comment">
+ <property name="width_request">125</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</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>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">4</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox87">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <widget class="GtkButton"
id="button_encoder_load_signal">
+ <widget class="GtkButton"
id="button_encoder_update_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="tooltip"
translatable="yes">Update signal (save it again if changed)</property>
<property
name="use_action_appearance">False</property>
- <signal name="clicked"
handler="on_button_encoder_load_signal_clicked" swapped="no"/>
+ <signal name="clicked"
handler="on_button_encoder_save_clicked" swapped="no"/>
<child>
- <widget class="GtkImage" id="image24">
+ <widget class="GtkImage" id="image19">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="stock">gtk-open</property>
+ <property name="stock">gtk-save</property>
</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>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
@@ -12792,7 +12806,7 @@ on current Chronojump version.</property>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
@@ -12800,7 +12814,7 @@ on current Chronojump version.</property>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">end</property>
- <property name="position">5</property>
+ <property name="position">3</property>
</packing>
</child>
</widget>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 393b6a7..18ac624 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -5341,7 +5341,7 @@ Console.WriteLine("X");
button_execute_test.Sensitive = false;
- encoderButtonsSensitive(encoderSensEnum.PROCESSING);
+ encoderButtonsSensitive(encoderSensEnum.PROCESSINGR);
//hbox
hbox_jumps.Sensitive = false;
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index dc00453..0de3f6d 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -40,6 +40,7 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Button button_encoder_capture_csharp;
[Widget] Gtk.Button button_encoder_bells;
[Widget] Gtk.Button button_encoder_capture_cancel;
+ [Widget] Gtk.Button button_encoder_capture_finish;
[Widget] Gtk.Button button_encoder_recalculate;
[Widget] Gtk.Button button_encoder_load_signal;
[Widget] Gtk.Viewport viewport_image_encoder_capture;
@@ -110,13 +111,14 @@ public partial class ChronoJumpWindow
private static int encoderCaptureCountdown;
private static bool encoderProcessCancel;
+ private static bool encoderProcessFinish;
//CAPTURE is the capture from csharp (not from external python)
//difference between CALCULECURVES and RECALCULATE_OR_LOAD is: CALCULECURVES does a autosave at end
enum encoderModes { CAPTURE, CALCULECURVES, RECALCULATE_OR_LOAD, ANALYZE }
enum encoderSensEnum {
- NOSESSION, NOPERSON, YESPERSON, PROCESSING, DONENOSIGNAL, DONEYESSIGNAL, SELECTEDCURVE }
- encoderSensEnum encoderSensEnumStored; //tracks how was sensitive before PROCESSING
+ NOSESSION, NOPERSON, YESPERSON, PROCESSINGCAPTURE, PROCESSINGR, DONENOSIGNAL, DONEYESSIGNAL,
SELECTEDCURVE }
+ encoderSensEnum encoderSensEnumStored; //tracks how was sensitive before PROCESSINGCAPTURE or
PROCESSINGR
//TODO:put zoom,unzoom (at side of delete curve) in capture curves (for every curve)
@@ -271,6 +273,11 @@ public partial class ChronoJumpWindow
encoderProcessCancel = true;
}
+ void on_button_encoder_capture_finish_clicked (object o, EventArgs args)
+ {
+ encoderProcessFinish = true;
+ }
+
void on_button_encoder_recalculate_clicked (object o, EventArgs args)
{
if (File.Exists(Util.GetEncoderDataTempFileName()))
@@ -912,7 +919,7 @@ public partial class ChronoJumpWindow
msCount = 1;
}
}
- } while (i < recordingTime && ! encoderProcessCancel);
+ } while (i < recordingTime && ! encoderProcessCancel && ! encoderProcessFinish);
//Log.WriteLine(sum.ToString());
Log.WriteLine("00e");
@@ -1877,7 +1884,8 @@ public partial class ChronoJumpWindow
//c4 button_encoder_delete_curve , button_encoder_save_curve, entry_encoder_curve_comment
//c5 button_encoder_analyze
//c6 button_encoder_analyze_data_show_user_curves
- //c7 button_cancel (on capture and analyze)
+ //c7 button_encoder_capture_cancel (on capture and analyze)
+ //c8 button_encoder_capture_finish (only on capture)
//other dependencies
//c5 True needs
@@ -1885,17 +1893,18 @@ public partial class ChronoJumpWindow
// (! radiobutton_encoder_analyze_data_current_signal.Active && user has curves))
//c6 True needs ! radiobutton_encoder_analyze_data_current_signal.Active
- if(option != encoderSensEnum.PROCESSING)
+ if(option != encoderSensEnum.PROCESSINGCAPTURE && option != encoderSensEnum.PROCESSINGR)
encoderSensEnumStored = option;
- //columns 0 1 2 3 4 5 6 7
- int [] noSession = {0, 0, 0, 0, 0, 0, 0, 0};
- int [] noPerson = {0, 0, 0, 0, 0, 0, 0, 0};
- int [] yesPerson = {1, 0, 1, 0, 0, 1, 1, 0};
- int [] processing = {0, 0, 0, 0, 0, 0, 0, 1};
- int [] doneNoSignal = {1, 0, 1, 0, 0, 1, 1, 0};
- int [] doneYesSignal = {1, 1, 1, 1, 0, 1, 1, 0};
- int [] selectedCurve = {1, 1, 1, 1, 1, 1, 1, 0};
+ //columns 0 1 2 3 4 5 6 7 8
+ int [] noSession = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+ int [] noPerson = {0, 0, 0, 0, 0, 0, 0, 0, 0};
+ int [] yesPerson = {1, 0, 1, 0, 0, 1, 1, 0, 0};
+ int [] processingCapture = {0, 0, 0, 0, 0, 0, 0, 1, 1};
+ int [] processingR = {0, 0, 0, 0, 0, 0, 0, 1, 0};
+ int [] doneNoSignal = {1, 0, 1, 0, 0, 1, 1, 0, 0};
+ int [] doneYesSignal = {1, 1, 1, 1, 0, 1, 1, 0, 0};
+ int [] selectedCurve = {1, 1, 1, 1, 1, 1, 1, 0, 0};
int [] table = new int[7];
switch(option) {
@@ -1908,8 +1917,11 @@ public partial class ChronoJumpWindow
case encoderSensEnum.YESPERSON:
table = yesPerson;
break;
- case encoderSensEnum.PROCESSING:
- table = processing;
+ case encoderSensEnum.PROCESSINGCAPTURE:
+ table = processingCapture;
+ break;
+ case encoderSensEnum.PROCESSINGR:
+ table = processingR;
break;
case encoderSensEnum.DONENOSIGNAL:
table = doneNoSignal;
@@ -1960,6 +1972,8 @@ public partial class ChronoJumpWindow
button_encoder_capture_cancel.Sensitive = Util.IntToBool(table[7]);
button_encoder_analyze_cancel.Sensitive = Util.IntToBool(table[7]);
+
+ button_encoder_capture_finish.Sensitive = Util.IntToBool(table[8]);
}
/* end of sensitivity stuff */
@@ -1969,12 +1983,14 @@ public partial class ChronoJumpWindow
private void encoderThreadStart(encoderModes mode) {
encoderProcessCancel = false;
+ encoderProcessFinish = false;
if(mode == encoderModes.CAPTURE) {
//encoder_pulsebar_capture.Text = Catalog.GetString("Please, wait.");
Log.WriteLine("CCCCCCCCCCCCCCC");
encoderThread = new Thread(new ThreadStart(captureCsharp));
GLib.Idle.Add (new GLib.IdleHandler (pulseGTKEncoderCapture));
Log.WriteLine("DDDDDDDDDDDDDDD");
+ encoderButtonsSensitive(encoderSensEnum.PROCESSINGCAPTURE);
} else if(mode == encoderModes.CALCULECURVES || mode == encoderModes.RECALCULATE_OR_LOAD) {
//image is inside (is smaller than) viewport
image_encoder_width = UtilGtk.WidgetWidth(viewport_image_encoder_capture)-5;
@@ -1987,6 +2003,7 @@ public partial class ChronoJumpWindow
GLib.Idle.Add (new GLib.IdleHandler (pulseGTKEncoderCalculeCurves));
else // mode == encoderModes.RECALCULATE_OR_LOAD
GLib.Idle.Add (new GLib.IdleHandler (pulseGTKEncoderRecalculateOrLoad));
+ encoderButtonsSensitive(encoderSensEnum.PROCESSINGR);
} else { //encoderModes.ANALYZE
//the -3 is because image is inside (is smaller than) viewport
image_encoder_width = UtilGtk.WidgetWidth(viewport_image_encoder_analyze)-5;
@@ -1996,15 +2013,16 @@ public partial class ChronoJumpWindow
encoderThread = new Thread(new ThreadStart(analyze));
GLib.Idle.Add (new GLib.IdleHandler (pulseGTKEncoderAnalyze));
+ encoderButtonsSensitive(encoderSensEnum.PROCESSINGR);
}
- encoderButtonsSensitive(encoderSensEnum.PROCESSING);
encoderThread.Start();
}
-
+
+ //this is the only who was finish
private bool pulseGTKEncoderCapture ()
{
Log.WriteLine("PPPPPPPPP");
- if(! encoderThread.IsAlive || encoderProcessCancel) {
+ if(! encoderThread.IsAlive || encoderProcessCancel || encoderProcessFinish) {
finishPulsebar(encoderModes.CAPTURE);
Log.Write("dying");
return false;
@@ -2115,9 +2133,16 @@ public partial class ChronoJumpWindow
mode == encoderModes.CALCULECURVES ||
mode == encoderModes.RECALCULATE_OR_LOAD )
{
+ Log.WriteLine("ffffffinishPulsebarrrrr");
if(encoderProcessCancel) {
- encoderButtonsSensitive(encoderSensEnum.DONEYESSIGNAL);
+ //encoderButtonsSensitive(encoderSensEnum.DONEYESSIGNAL);
+ encoderButtonsSensitive(encoderSensEnumStored);
encoder_pulsebar_capture.Text = Catalog.GetString("Cancelled");
+ }
+ if(mode == encoderModes.CAPTURE && encoderProcessFinish) {
+ //encoderButtonsSensitive(encoderSensEnum.DONEYESSIGNAL);
+ encoderButtonsSensitive(encoderSensEnumStored);
+ encoder_pulsebar_capture.Text = Catalog.GetString("Finished");
} else {
Pixbuf pixbuf = new Pixbuf (Util.GetEncoderGraphTempFileName()); //from a file
image_encoder_capture.Pixbuf = pixbuf;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]