[chronojump] Encoder video capture/play nicer
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder video capture/play nicer
- Date: Mon, 9 Feb 2015 00:23:39 +0000 (UTC)
commit 1e9065c4e8d28e4ad27986f2cb5cefcc31c697d5
Author: Xavier de Blas <xaviblas gmail com>
Date: Mon Feb 9 00:21:27 2015 +0000
Encoder video capture/play nicer
glade/chronojump.glade | 422 +++++++++++++++++++++++++++++++++++++-----------
src/gui/chronojump.cs | 8 +-
src/gui/encoder.cs | 35 ++++-
3 files changed, 361 insertions(+), 104 deletions(-)
---
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index e9b60c8..7017b58 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -1415,7 +1415,7 @@
</child>
</widget>
<packing>
- <property name="resize">True</property>
+ <property name="resize">False</property>
<property name="shrink">False</property>
</packing>
</child>
@@ -6428,6 +6428,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">True</property>
@@ -7230,6 +7236,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
<child>
@@ -8284,6 +8296,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">2</property>
@@ -8979,6 +8997,12 @@ Second Chronopic to platforms.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">4</property>
@@ -13835,27 +13859,51 @@ on current Chronojump version.</property>
<property name="can_focus">True</property>
<property name="position">200</property>
<child>
- <widget class="GtkHPaned" id="hpaned2">
+ <widget class="GtkAlignment" id="alignment19">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="position">400</property>
+ <property name="can_focus">False</property>
+ <property name="bottom_padding">4</property>
<child>
- <widget class="GtkFrame" id="frame16">
+ <widget class="GtkHPaned" id="hpaned2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property
name="label_yalign">0.69999998807907104</property>
- <property name="shadow_type">none</property>
+ <property name="can_focus">True</property>
+ <property name="position">400</property>
<child>
- <widget class="GtkAlignment" id="alignment19">
+ <widget class="GtkAlignment" id="alignment21">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="left_padding">6</property>
- <property name="right_padding">6</property>
+ <property name="top_padding">8</property>
+ <property name="left_padding">4</property>
+ <property name="right_padding">4</property>
<child>
<widget class="GtkVBox" id="vbox6">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <child>
+ <widget class="GtkLabel" id="label75">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="xpad">4</property>
+ <property name="label"
translatable="yes">Set</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment25">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">4</property>
+ <property name="right_padding">3</property>
+ <child>
+ <widget class="GtkVBox" id="vbox73">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkHBox" id="hbox74">
@@ -13933,43 +13981,46 @@ on current Chronojump version.</property>
</child>
</widget>
</child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label75">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Set</property>
- <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
</widget>
<packing>
- <property name="type">label_item</property>
+ <property name="resize">True</property>
+ <property name="shrink">False</property>
</packing>
</child>
- </widget>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkNotebook"
id="notebook_video_encoder">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
<child>
- <widget class="GtkVBox" id="vbox59">
+ <widget class="GtkAlignment" id="alignment37">
+ <property name="width_request">275</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">2</property>
+ <property name="left_padding">4</property>
+ <property name="right_padding">4</property>
<child>
- <widget class="GtkCheckButton"
id="checkbutton_video_encoder">
- <property name="label" translatable="yes">Record
video on capture</property>
+ <widget class="GtkVBox" id="vbox14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkHBox" id="hbox87">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <widget class="GtkRadioButton"
id="radiobutton_video_encoder_capture">
+ <property name="label" translatable="yes">Video
capture</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property
name="receives_default">False</property>
- <property name="tooltip"
translatable="yes">Record video (on / off)</property>
+ <property name="active">True</property>
<property name="draw_indicator">True</property>
- <signal name="clicked"
handler="on_checkbutton_video_encoder_clicked" swapped="no"/>
+ <signal name="toggled"
handler="on_radiobutton_video_encoder_capture_toggled" swapped="no"/>
</widget>
<packing>
<property name="expand">False</property>
@@ -13978,89 +14029,162 @@ on current Chronojump version.</property>
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame2">
+ <widget class="GtkRadioButton"
id="radiobutton_video_encoder_play">
+ <property name="label" translatable="yes">Video
play</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property
name="group">radiobutton_video_encoder_capture</property>
+ <signal name="toggled"
handler="on_radiobutton_video_encoder_play_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">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHSeparator" id="hseparator2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkNotebook"
id="notebook_video_encoder">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">False</property>
+ <property name="show_border">False</property>
+ <property name="tab_border">0</property>
+ <property name="tab_hborder">0</property>
+ <property name="tab_vborder">0</property>
<child>
- <widget class="GtkAlignment" id="alignment21">
+ <widget class="GtkVBox" id="vbox59">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="left_padding">12</property>
+ <property name="border_width">2</property>
<child>
- <widget class="GtkViewport"
id="viewport_video_capture_encoder">
+ <widget class="GtkHBox" id="hbox94">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">4</property>
<child>
- <placeholder/>
- </child>
- </widget>
- </child>
+ <widget class="GtkCheckButton"
id="checkbutton_video_encoder">
+ <property name="label" translatable="yes">Record
video on capture</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property name="tooltip"
translatable="yes">Record video (on / off)</property>
+ <property name="draw_indicator">True</property>
+ <signal name="clicked"
handler="on_checkbutton_video_encoder_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="GtkLabel"
id="label_video_feedback_encoder">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label"
translatable="yes">Preview</property>
<property name="use_markup">True</property>
</widget>
<packing>
- <property name="type">label_item</property>
+ <property name="expand">False</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">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkViewport"
id="viewport_video_capture_encoder">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ <packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="label125">
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label125">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Video
capture</property>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="tab_fill">False</property>
<property name="type">tab</property>
- </packing>
- </child>
- <child>
- <widget class="GtkViewport"
id="viewport_video_play_encoder">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkViewport"
id="viewport_video_play_encoder">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">2</property>
+ <property name="shadow_type">none</property>
<child>
<placeholder/>
</child>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label126">
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label126">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label"
translatable="yes">Play</property>
- </widget>
- <packing>
+ </widget>
+ <packing>
<property name="position">1</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="resize">False</property>
+ <property name="shrink">False</property>
</packing>
</child>
</widget>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">False</property>
- </packing>
</child>
</widget>
<packing>
@@ -14069,23 +14193,34 @@ on current Chronojump version.</property>
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame7">
+ <widget class="GtkAlignment" id="alignment20">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property
name="label_yalign">0.69999998807907104</property>
- <property name="shadow_type">none</property>
+ <property name="top_padding">4</property>
<child>
- <widget class="GtkAlignment" id="alignment20">
+ <widget class="GtkFrame" id="frame7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="left_padding">6</property>
- <property name="right_padding">6</property>
+ <property name="label_xalign">0</property>
+ <property
name="label_yalign">0.69999998807907104</property>
+ <property name="shadow_type">none</property>
<child>
- <widget class="GtkHPaned" id="hpaned1">
+ <widget class="GtkAlignment" id="alignment30">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">4</property>
+ <property name="right_padding">4</property>
+ <child>
+ <widget class="GtkHPaned" id="hpaned1">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="position">250</property>
+ <property name="position">300</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment35">
+ <property name="width_request">275</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="right_padding">4</property>
<child>
<widget class="GtkVBox" id="vbox8">
<property name="visible">True</property>
@@ -14219,38 +14354,49 @@ on current Chronojump version.</property>
</packing>
</child>
</widget>
+ </child>
+ </widget>
<packing>
<property name="resize">True</property>
<property name="shrink">False</property>
</packing>
</child>
<child>
+ <widget class="GtkAlignment" id="alignment36">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">4</property>
+ <child>
<widget class="GtkDrawingArea"
id="encoder_capture_curves_bars_drawingarea">
<property name="visible">True</property>
<property name="can_focus">False</property>
<signal name="configure_event"
handler="on_encoder_capture_curves_bars_drawingarea_configure_event" swapped="no"/>
<signal name="expose_event"
handler="on_encoder_capture_curves_bars_drawingarea_expose_event" swapped="no"/>
</widget>
+ </child>
+ </widget>
<packing>
<property name="resize">True</property>
<property name="shrink">False</property>
</packing>
</child>
+ </widget>
+ </child>
</widget>
</child>
+ <child>
+ <widget class="GtkLabel" id="label85">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Repetitions (select them to save)</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
</widget>
</child>
- <child>
- <widget class="GtkLabel" id="label85">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"
translatable="yes">Repetitions (select them to save)</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
</widget>
<packing>
<property name="resize">True</property>
@@ -19182,6 +19328,12 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -19785,6 +19937,12 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -20880,6 +21038,12 @@ by you</property>
<placeholder/>
</child>
<child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
<widget class="GtkButton" id="button_video_url">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -21032,6 +21196,12 @@ by you</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">True</property>
@@ -30547,6 +30717,42 @@ options</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -32530,6 +32736,12 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -33171,6 +33383,12 @@ To differentiate between male and female, use the values 1/0, or m/f, or M/F on
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -35778,6 +35996,12 @@ show elevation as:</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="left_attach">2</property>
@@ -36045,6 +36269,12 @@ show elevation as:</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
@@ -36327,6 +36557,12 @@ show elevation as:</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
</child>
</widget>
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 5399d58..eeaf668 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -214,20 +214,16 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Label label_chronopic_encoder;
[Widget] Gtk.HBox hbox_video_capture;
- [Widget] Gtk.Notebook notebook_video_encoder;
- [Widget] Gtk.Viewport viewport_video_capture_encoder;
- [Widget] Gtk.Viewport viewport_video_play_encoder;
[Widget] Gtk.Label label_video_feedback;
- [Widget] Gtk.Label label_video_feedback_encoder;
[Widget] Gtk.CheckButton checkbutton_video;
- [Widget] Gtk.CheckButton checkbutton_video_encoder;
//[Widget] Gtk.Label label_video;
[Widget] Gtk.Image image_video_yes;
[Widget] Gtk.Image image_video_no;
+
[Widget] Gtk.CheckButton checkbutton_volume;
[Widget] Gtk.Image image_volume;
- [Widget] Gtk.CheckButton checkbutton_volume_encoder;
[Widget] Gtk.Image image_volume_encoder;
+ [Widget] Gtk.CheckButton checkbutton_volume_encoder;
//multiChronopic
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index a263d48..50f55d3 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -65,6 +65,15 @@ public partial class ChronoJumpWindow
[Widget] Gtk.Button button_encoder_export_all_curves;
[Widget] Gtk.Label label_encoder_curve_action;
[Widget] Gtk.Button button_encoder_delete_signal;
+
+ //encoder video
+ [Widget] Gtk.Notebook notebook_video_encoder;
+ [Widget] Gtk.Viewport viewport_video_capture_encoder;
+ [Widget] Gtk.Viewport viewport_video_play_encoder;
+ [Widget] Gtk.RadioButton radiobutton_video_encoder_capture;
+ [Widget] Gtk.RadioButton radiobutton_video_encoder_play;
+ [Widget] Gtk.Label label_video_feedback_encoder;
+ [Widget] Gtk.CheckButton checkbutton_video_encoder;
[Widget] Gtk.Notebook notebook_encoder_sup;
[Widget] Gtk.Notebook notebook_encoder_capture;
@@ -1300,7 +1309,8 @@ public partial class ChronoJumpWindow
encoderSignalUniqueID = eSQL.uniqueID;
//has to be done here, because if done in encoderThreadStart or in
finishPulsebar it crashes
- notebook_video_encoder.CurrentPage = 1;
+ //notebook_video_encoder.CurrentPage = 1;
+ radiobutton_video_encoder_play.Active = true;
encoderConfigurationCurrent = eSQL.encoderConfiguration;
@@ -1848,7 +1858,9 @@ public partial class ChronoJumpWindow
eSQL.uniqueID = encoderSignalUniqueID;
SqliteEncoder.Update(false, eSQL);
- notebook_video_encoder.CurrentPage = 1;
+ //notebook_video_encoder.CurrentPage = 1;
+ radiobutton_video_encoder_play.Active = true;
+
viewport_video_play_encoder.Sensitive = true;
playVideoEncoderPrepare(false); //do not play
} else {
@@ -4451,6 +4463,7 @@ public partial class ChronoJumpWindow
}
+
/*
* end of update encoder capture graph stuff
*/
@@ -5415,20 +5428,32 @@ LogB.Debug("D");
string file = Util.GetVideoFileName(currentSession.UniqueID,
Constants.TestTypes.ENCODER, Convert.ToInt32(encoderSignalUniqueID));
- if(file == null || file == "" || ! File.Exists(file))
+ if(file == null || file == "" || ! File.Exists(file)) {
+ playerEncoder.Hide();
return;
+ }
try {
+ playerEncoder.Show();
playerEncoder.Open(file);
if(play)
playerEncoder.Play();
- else
- playerEncoder.Show();
} catch {
new DialogMessage(Constants.MessageTypes.WARNING,
Catalog.GetString("Sorry, file not found"));
}
}
+
+ public void on_radiobutton_video_encoder_capture_toggled (object obj, EventArgs args) {
+ if(radiobutton_video_encoder_capture.Active) {
+ notebook_video_encoder.CurrentPage = 0;
+ }
+ }
+ public void on_radiobutton_video_encoder_play_toggled (object obj, EventArgs args) {
+ if(radiobutton_video_encoder_play.Active) {
+ notebook_video_encoder.CurrentPage = 1;
+ }
+ }
/* end of video stuff */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]