[longomatch] Add support for live preview in capture mode
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Add support for live preview in capture mode
- Date: Sat, 24 Nov 2012 01:17:27 +0000 (UTC)
commit 56beb752e3f5ac3223ca0070fcb7d2193489acc8
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Fri Nov 23 19:44:39 2012 +0100
Add support for live preview in capture mode
LongoMatch.Core/Common/EncodingProfiles.cs | 10 ++
LongoMatch.Core/Interfaces/GUI/IPlayer.cs | 4 +-
LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs | 4 +-
.../LongoMatch.GUI.Multimedia.mdp | 2 +
LongoMatch.GUI.Multimedia/Makefile.am | 2 +
LongoMatch.GUI.Multimedia/gtk-gui/gui.stetic | 51 +++++++++++
LongoMatch.GUI.Multimedia/gtk-gui/objects.xml | 23 +++++
.../Gui/Component/ProjectDetailsWidget.cs | 7 +-
LongoMatch.GUI/Gui/MainWindow.cs | 70 ++++++++--------
LongoMatch.GUI/Gui/TreeView/ListTreeViewBase.cs | 2 +-
...ongoMatch.Gui.Component.PlaysSelectionWidget.cs | 2 +-
.../gtk-gui/LongoMatch.Gui.MainWindow.cs | 89 +++++++++-----------
LongoMatch.GUI/gtk-gui/gui.stetic | 21 +----
LongoMatch.GUI/gtk-gui/objects.xml | 81 ++++++++++++++----
libcesarplayer/liblongomatch.mdp | 2 -
15 files changed, 238 insertions(+), 132 deletions(-)
---
diff --git a/LongoMatch.Core/Common/EncodingProfiles.cs b/LongoMatch.Core/Common/EncodingProfiles.cs
index 03f4cf2..c0344a5 100644
--- a/LongoMatch.Core/Common/EncodingProfiles.cs
+++ b/LongoMatch.Core/Common/EncodingProfiles.cs
@@ -54,6 +54,16 @@ namespace LongoMatch.Common
VideoEncoderType.H264,
AudioEncoderType.Aac,
VideoMuxerType.Mp4);
+
+ public static EncodingProfile MatroskaMpeg4 = new EncodingProfile("Matroska (Mpeg4 + Vorbis)", "avi",
+ VideoEncoderType.Mpeg4,
+ AudioEncoderType.Vorbis,
+ VideoMuxerType.Matroska);
+
+ public static EncodingProfile MatroskaH264 = new EncodingProfile("Matroska (H264 + AAC)", "mp4",
+ VideoEncoderType.H264,
+ AudioEncoderType.Aac,
+ VideoMuxerType.Matroska);
}
}
diff --git a/LongoMatch.Core/Interfaces/GUI/IPlayer.cs b/LongoMatch.Core/Interfaces/GUI/IPlayer.cs
index 33d1aca..d14ccba 100644
--- a/LongoMatch.Core/Interfaces/GUI/IPlayer.cs
+++ b/LongoMatch.Core/Interfaces/GUI/IPlayer.cs
@@ -31,9 +31,10 @@ namespace LongoMatch.Interfaces.GUI
event PrevButtonClickedHandler Prev;
event DrawFrameHandler DrawFrame;
event SeekEventHandler SeekEvent;
+ event DetachPlayerHandler Detach;
long AccurateCurrentTime {get;}
- long CurrentTime {get;}
+ int CurrentTime {get;}
long StreamLength {get;}
Image CurrentMiniatureFrame {get;}
@@ -46,6 +47,7 @@ namespace LongoMatch.Interfaces.GUI
bool Opened {get;}
bool FullScreen {set;}
float Rate {get;set;}
+ bool Detached {get;set;}
void Open(string mrl);
void Play();
diff --git a/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs b/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
index 3b56181..93539b6 100644
--- a/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
+++ b/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
@@ -105,9 +105,9 @@ namespace LongoMatch.Gui
}
}
- public long CurrentTime {
+ public int CurrentTime {
get {
- return player.CurrentTime;
+ return (int) player.CurrentTime;
}
}
diff --git a/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp b/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp
index 7790f07..d788493 100644
--- a/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp
+++ b/LongoMatch.GUI.Multimedia/LongoMatch.GUI.Multimedia.mdp
@@ -25,6 +25,8 @@
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.CapturerBin.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.VolumeWindow.cs" />
<File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.PlayerBin.cs" />
+ <File subtype="Code" buildaction="Compile" name="Gui/PlayerCapturerBin.cs" />
+ <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.PlayerCapturerBin.cs" />
</Contents>
<MonoDevelop.Autotools.MakefileInfo RelativeMakefileName="Makefile.am" RelativeConfigureInPath="../">
<BuildFilesVar Name="FILES" />
diff --git a/LongoMatch.GUI.Multimedia/Makefile.am b/LongoMatch.GUI.Multimedia/Makefile.am
index e8c14e4..757d5ba 100644
--- a/LongoMatch.GUI.Multimedia/Makefile.am
+++ b/LongoMatch.GUI.Multimedia/Makefile.am
@@ -7,9 +7,11 @@ SOURCES = \
gtk-gui/generated.cs \
gtk-gui/LongoMatch.Gui.CapturerBin.cs \
gtk-gui/LongoMatch.Gui.PlayerBin.cs \
+ gtk-gui/LongoMatch.Gui.PlayerCapturerBin.cs \
gtk-gui/LongoMatch.Gui.VolumeWindow.cs \
Gui/CapturerBin.cs \
Gui/PlayerBin.cs \
+ Gui/PlayerCapturerBin.cs \
Gui/VolumeWindow.cs
RESOURCES = \
diff --git a/LongoMatch.GUI.Multimedia/gtk-gui/gui.stetic b/LongoMatch.GUI.Multimedia/gtk-gui/gui.stetic
index 2ca84c7..073240c 100644
--- a/LongoMatch.GUI.Multimedia/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI.Multimedia/gtk-gui/gui.stetic
@@ -520,4 +520,55 @@
</widget>
</child>
</widget>
+ <widget class="Gtk.Bin" id="LongoMatch.Gui.PlayerCapturerBin" design-size="868 300">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <child>
+ <widget class="Gtk.VBox" id="vbox2">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="LongoMatch.Gui.CapturerBin" id="capturerbin">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="LongoMatch.Gui.PlayerBin" id="playerbin">
+ <property name="MemberName" />
+ <property name="Events">ButtonPressMask</property>
+ <property name="Rate">0</property>
+ <property name="ExpandLogo">False</property>
+ <property name="Detached">False</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Button" id="backtolivebutton">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <property name="CanFocus">True</property>
+ <property name="Type">TextAndIcon</property>
+ <property name="Icon">stock:gtk-goto-last Menu</property>
+ <property name="Label" translatable="yes">Back To Live</property>
+ <property name="UseUnderline">True</property>
+ <signal name="Clicked" handler="OnBacktolivebuttonClicked" />
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
</stetic-interface>
\ No newline at end of file
diff --git a/LongoMatch.GUI.Multimedia/gtk-gui/objects.xml b/LongoMatch.GUI.Multimedia/gtk-gui/objects.xml
index d10f4ab..b8a34e8 100644
--- a/LongoMatch.GUI.Multimedia/gtk-gui/objects.xml
+++ b/LongoMatch.GUI.Multimedia/gtk-gui/objects.xml
@@ -30,4 +30,27 @@
</itemgroup>
</signals>
</object>
+ <object type="LongoMatch.Gui.PlayerCapturerBin" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="PlayerCapturerBin Properties">
+ <property name="Detached" />
+ <property name="ExpandLogo" />
+ <property name="Rate" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="PlayerCapturerBin Signals">
+ <signal name="Error" />
+ <signal name="CaptureFinished" />
+ <signal name="SegmentClosedEvent" />
+ <signal name="Tick" />
+ <signal name="PlayStateChanged" />
+ <signal name="Next" />
+ <signal name="Prev" />
+ <signal name="DrawFrame" />
+ <signal name="SeekEvent" />
+ <signal name="Detach" />
+ </itemgroup>
+ </signals>
+ </object>
</objects>
\ No newline at end of file
diff --git a/LongoMatch.GUI/Gui/Component/ProjectDetailsWidget.cs b/LongoMatch.GUI/Gui/Component/ProjectDetailsWidget.cs
index e05e212..896a487 100644
--- a/LongoMatch.GUI/Gui/Component/ProjectDetailsWidget.cs
+++ b/LongoMatch.GUI/Gui/Component/ProjectDetailsWidget.cs
@@ -411,10 +411,9 @@ namespace LongoMatch.Gui.Component
sizecombobox.Active = 0;
encProfileList = new ListStore(typeof(string), typeof (EncodingProfile));
- encProfileList.AppendValues(EncodingProfiles.MP4.Name, EncodingProfiles.MP4);
- encProfileList.AppendValues(EncodingProfiles.Avi.Name, EncodingProfiles.Avi);
- if(Environment.OSVersion.Platform != PlatformID.Win32NT)
- encProfileList.AppendValues(EncodingProfiles.WebM.Name, EncodingProfiles.WebM);
+ encProfileList.AppendValues(EncodingProfiles.MatroskaH264.Name, EncodingProfiles.MatroskaH264);
+ encProfileList.AppendValues(EncodingProfiles.MatroskaMpeg4.Name, EncodingProfiles.MatroskaMpeg4);
+ encProfileList.AppendValues(EncodingProfiles.WebM.Name, EncodingProfiles.WebM);
videoformatcombobox.Model = encProfileList;
videoformatcombobox.Active = 0;
}
diff --git a/LongoMatch.GUI/Gui/MainWindow.cs b/LongoMatch.GUI/Gui/MainWindow.cs
index 0064cfc..0bccd66 100644
--- a/LongoMatch.GUI/Gui/MainWindow.cs
+++ b/LongoMatch.GUI/Gui/MainWindow.cs
@@ -119,14 +119,14 @@ namespace LongoMatch.Gui
guTimeline = new GameUnitsTimelineWidget ();
downbox.PackStart(guTimeline, true, true, 0);
- player.SetLogo(System.IO.Path.Combine(Config.ImagesDir(),"background.png"));
- player.LogoMode = true;
- player.Tick += OnTick;
- player.Detach += DetachPlayer;
-
- capturer.Visible = false;
- capturer.Logo = System.IO.Path.Combine(Config.ImagesDir(),"background.png");
- capturer.CaptureFinished += (sender, e) => {CloseCaptureProject();};
+ playercapturer.Mode = PlayerCapturerBin.PlayerOperationMode.Player;
+ playercapturer.SetLogo(System.IO.Path.Combine(Config.ImagesDir(),"background.png"));
+ playercapturer.LogoMode = true;
+ playercapturer.Tick += OnTick;
+ playercapturer.Detach += DetachPlayer;
+
+ playercapturer.Logo = System.IO.Path.Combine(Config.ImagesDir(),"background.png");
+ playercapturer.CaptureFinished += (sender, e) => {CloseCaptureProject();};
buttonswidget.Mode = TagMode.Predifined;
ConnectSignals();
@@ -178,13 +178,13 @@ namespace LongoMatch.Gui
public IPlayer Player{
get {
- return player;
+ return playercapturer;
}
}
public ICapturer Capturer{
get {
- return capturer;
+ return playercapturer;
}
}
@@ -324,7 +324,7 @@ namespace LongoMatch.Gui
box.Show();
playerWindow.Show();
- player.Reparent(box);
+ playercapturer.Reparent(box);
buttonswidget.Visible = true;
timeline.Visible = true;
if (Config.useGameUnits) {
@@ -335,7 +335,7 @@ namespace LongoMatch.Gui
ToggleAction action;
Log.Debug("Attaching player again");
- player.Reparent(this.videowidgetsbox);
+ playercapturer.Reparent(this.videowidgetsbox);
playerWindow.Destroy();
if (ManualTaggingViewAction.Active)
@@ -348,7 +348,7 @@ namespace LongoMatch.Gui
action = TaggingViewAction;
OnViewToggled(action, new EventArgs());
}
- player.Detached = detach;
+ playercapturer.Detached = detach;
}
public void SetProject(Project project, ProjectType projectType, CaptureSettings props, PlaysFilter filter)
@@ -363,17 +363,19 @@ namespace LongoMatch.Gui
if(projectType == ProjectType.FileProject) {
Title = System.IO.Path.GetFileNameWithoutExtension(desc.File.FilePath) +
" - " + Constants.SOFTWARE_NAME;
- player.LogoMode = false;
+ playercapturer.LogoMode = false;
timeline.Project = project;
guTimeline.Project = project;
} else {
Title = Constants.SOFTWARE_NAME;
isLive = true;
- if(projectType == ProjectType.FakeCaptureProject)
- capturer.Type = CapturerType.Fake;
- player.Visible = false;
- capturer.Visible = true;
+ if(projectType == ProjectType.FakeCaptureProject) {
+ playercapturer.Type = CapturerType.Fake;
+ playercapturer.Mode = PlayerCapturerBin.PlayerOperationMode.Capturer;
+ } else {
+ playercapturer.Mode = PlayerCapturerBin.PlayerOperationMode.PreviewCapturer;
+ }
TaggingViewAction.Active = true;
}
@@ -389,9 +391,8 @@ namespace LongoMatch.Gui
private void CloseCaptureProject() {
if(projectType == ProjectType.CaptureProject) {
- capturer.Close();
- player.Visible = true;
- capturer.Visible = false;
+ playercapturer.Close();
+ playercapturer.Mode = PlayerCapturerBin.PlayerOperationMode.Player;
EmitSaveProject();
} else if(projectType == ProjectType.FakeCaptureProject) {
EmitCloseOpenedProject(true);
@@ -401,9 +402,8 @@ namespace LongoMatch.Gui
private void ResetGUI() {
bool playlistVisible = playlist.Visible;
Title = Constants.SOFTWARE_NAME;
- player.Visible = true;
- player.LogoMode = true;
- capturer.Visible = false;
+ playercapturer.Mode = PlayerCapturerBin.PlayerOperationMode.Player;
+ playercapturer.LogoMode = true;
ClearWidgets();
HideWidgets();
playlist.Visible = playlistVisible;
@@ -497,7 +497,7 @@ namespace LongoMatch.Gui
if(!PromptCloseProject())
return;
EmitSaveProject();
- player.Dispose();
+ playercapturer.Dispose();
Application.Quit();
}
@@ -523,7 +523,7 @@ namespace LongoMatch.Gui
#region View
protected virtual void OnFullScreenActionToggled(object sender, System.EventArgs e)
{
- player.FullScreen = (sender as Gtk.ToggleAction).Active;
+ playercapturer.FullScreen = (sender as Gtk.ToggleAction).Active;
}
protected virtual void OnPlaylistActionToggled(object sender, System.EventArgs e)
@@ -621,7 +621,7 @@ namespace LongoMatch.Gui
ret = base.OnKeyPressEvent(evnt);
- if(openedProject == null && !player.Opened)
+ if(openedProject == null && !playercapturer.Opened)
return ret;
if(projectType != ProjectType.CaptureProject &&
@@ -629,30 +629,30 @@ namespace LongoMatch.Gui
switch(key) {
case Constants.SEEK_FORWARD:
if(modifier == Constants.STEP)
- player.StepForward();
+ playercapturer.StepForward();
else
- player.SeekToNextFrame(selectedTimeNode != null);
+ playercapturer.SeekToNextFrame(selectedTimeNode != null);
break;
case Constants.SEEK_BACKWARD:
if(modifier == Constants.STEP)
- player.StepBackward();
+ playercapturer.StepBackward();
else
- player.SeekToPreviousFrame(selectedTimeNode != null);
+ playercapturer.SeekToPreviousFrame(selectedTimeNode != null);
break;
case Constants.FRAMERATE_UP:
- player.FramerateUp();
+ playercapturer.FramerateUp();
break;
case Constants.FRAMERATE_DOWN:
- player.FramerateDown();
+ playercapturer.FramerateDown();
break;
case Constants.TOGGLE_PLAY:
- player.TogglePlay();
+ playercapturer.TogglePlay();
break;
}
} else {
switch(key) {
case Constants.TOGGLE_PLAY:
- capturer.TogglePause();
+ playercapturer.TogglePause();
break;
}
}
diff --git a/LongoMatch.GUI/Gui/TreeView/ListTreeViewBase.cs b/LongoMatch.GUI/Gui/TreeView/ListTreeViewBase.cs
index 02636b7..6d8463d 100644
--- a/LongoMatch.GUI/Gui/TreeView/ListTreeViewBase.cs
+++ b/LongoMatch.GUI/Gui/TreeView/ListTreeViewBase.cs
@@ -281,7 +281,7 @@ namespace LongoMatch.Gui.Component
if(!(item is Play))
return;
- if(TimeNodeSelected != null && !projectIsLive)
+ if(TimeNodeSelected != null)
this.TimeNodeSelected(item as Play);
}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs
index 68a76f7..919aeff 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.PlaysSelectionWidget.cs
@@ -34,7 +34,7 @@ namespace LongoMatch.Gui.Component
this.notebook2 = new global::Gtk.Notebook ();
this.notebook2.CanFocus = true;
this.notebook2.Name = "notebook2";
- this.notebook2.CurrentPage = 1;
+ this.notebook2.CurrentPage = 0;
this.notebook2.TabPos = ((global::Gtk.PositionType)(0));
// Container child notebook2.Gtk.Notebook+NotebookChild
this.notebook1 = new global::Gtk.Notebook ();
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
index ed612bc..fe77639 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -45,8 +45,7 @@ namespace LongoMatch.Gui
private global::Gtk.VBox downbox;
private global::Gtk.HBox videowidgetsbox;
private global::LongoMatch.Gui.Component.DrawingToolBox drawingtoolbox1;
- private global::LongoMatch.Gui.PlayerBin player;
- private global::LongoMatch.Gui.CapturerBin capturer;
+ private global::LongoMatch.Gui.PlayerCapturerBin playercapturer;
private global::LongoMatch.Gui.Component.ButtonsWidget buttonswidget;
private global::LongoMatch.Gui.Component.GameUnitsTagger gameunitstaggerwidget1;
private global::Gtk.VBox rightvbox;
@@ -137,12 +136,12 @@ namespace LongoMatch.Gui
this.ImportProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Import Project");
w1.Add (this.ImportProjectAction, "<Control>i");
this.ManualTaggingViewAction = new global::Gtk.RadioAction ("ManualTaggingViewAction", global::Mono.Unix.Catalog.GetString ("Manual tagging view"), null, null, 0);
- this.ManualTaggingViewAction.Group = this.TaggingViewAction.Group;
+ this.ManualTaggingViewAction.Group = this.TimelineViewAction.Group;
this.ManualTaggingViewAction.Sensitive = false;
this.ManualTaggingViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Free Capture Mode");
w1.Add (this.ManualTaggingViewAction, "<Control>f");
this.GameUnitsViewAction = new global::Gtk.RadioAction ("GameUnitsViewAction", global::Mono.Unix.Catalog.GetString ("Game units view"), null, null, 0);
- this.GameUnitsViewAction.Group = this.TaggingViewAction.Group;
+ this.GameUnitsViewAction.Group = this.ManualTaggingViewAction.Group;
this.GameUnitsViewAction.Sensitive = false;
this.GameUnitsViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Game units view");
w1.Add (this.GameUnitsViewAction, null);
@@ -235,45 +234,38 @@ namespace LongoMatch.Gui
w6.Expand = false;
w6.Fill = false;
// Container child videowidgetsbox.Gtk.Box+BoxChild
- this.player = new global::LongoMatch.Gui.PlayerBin ();
- this.player.Events = ((global::Gdk.EventMask)(256));
- this.player.Name = "player";
- this.player.Rate = 1F;
- this.player.ExpandLogo = true;
- this.player.Detached = false;
- this.videowidgetsbox.Add (this.player);
- global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.videowidgetsbox [this.player]));
+ this.playercapturer = new global::LongoMatch.Gui.PlayerCapturerBin ();
+ this.playercapturer.Events = ((global::Gdk.EventMask)(256));
+ this.playercapturer.Name = "playercapturer";
+ this.playercapturer.Detached = false;
+ this.playercapturer.ExpandLogo = false;
+ this.playercapturer.Rate = 0F;
+ this.videowidgetsbox.Add (this.playercapturer);
+ global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.videowidgetsbox [this.playercapturer]));
w7.Position = 1;
- // Container child videowidgetsbox.Gtk.Box+BoxChild
- this.capturer = new global::LongoMatch.Gui.CapturerBin ();
- this.capturer.Events = ((global::Gdk.EventMask)(256));
- this.capturer.Name = "capturer";
- this.videowidgetsbox.Add (this.capturer);
- global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.videowidgetsbox [this.capturer]));
- w8.Position = 2;
this.downbox.Add (this.videowidgetsbox);
- global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.downbox [this.videowidgetsbox]));
- w9.Position = 0;
+ global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.downbox [this.videowidgetsbox]));
+ w8.Position = 0;
// Container child downbox.Gtk.Box+BoxChild
this.buttonswidget = new global::LongoMatch.Gui.Component.ButtonsWidget ();
this.buttonswidget.Events = ((global::Gdk.EventMask)(256));
this.buttonswidget.Name = "buttonswidget";
this.downbox.Add (this.buttonswidget);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.downbox [this.buttonswidget]));
- w10.Position = 1;
- w10.Expand = false;
+ global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.downbox [this.buttonswidget]));
+ w9.Position = 1;
+ w9.Expand = false;
// Container child downbox.Gtk.Box+BoxChild
this.gameunitstaggerwidget1 = new global::LongoMatch.Gui.Component.GameUnitsTagger ();
this.gameunitstaggerwidget1.Events = ((global::Gdk.EventMask)(256));
this.gameunitstaggerwidget1.Name = "gameunitstaggerwidget1";
this.downbox.Add (this.gameunitstaggerwidget1);
- global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.downbox [this.gameunitstaggerwidget1]));
- w11.Position = 2;
- w11.Expand = false;
+ global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.downbox [this.gameunitstaggerwidget1]));
+ w10.Position = 2;
+ w10.Expand = false;
this.hpaned1.Add (this.downbox);
- global::Gtk.Paned.PanedChild w12 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.downbox]));
- w12.Resize = false;
- w12.Shrink = false;
+ global::Gtk.Paned.PanedChild w11 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.downbox]));
+ w11.Resize = false;
+ w11.Shrink = false;
// Container child hpaned1.Gtk.Paned+PanedChild
this.rightvbox = new global::Gtk.VBox ();
this.rightvbox.WidthRequest = 100;
@@ -284,27 +276,27 @@ namespace LongoMatch.Gui
this.notes.Events = ((global::Gdk.EventMask)(256));
this.notes.Name = "notes";
this.rightvbox.Add (this.notes);
- global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.rightvbox [this.notes]));
- w13.Position = 0;
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.rightvbox [this.notes]));
+ w12.Position = 0;
// Container child rightvbox.Gtk.Box+BoxChild
this.playlist = new global::LongoMatch.Gui.Component.PlayListWidget ();
this.playlist.WidthRequest = 100;
this.playlist.Events = ((global::Gdk.EventMask)(256));
this.playlist.Name = "playlist";
this.rightvbox.Add (this.playlist);
- global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.rightvbox [this.playlist]));
- w14.Position = 1;
+ global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.rightvbox [this.playlist]));
+ w13.Position = 1;
this.hpaned1.Add (this.rightvbox);
- global::Gtk.Paned.PanedChild w15 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.rightvbox]));
+ global::Gtk.Paned.PanedChild w14 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.rightvbox]));
+ w14.Resize = false;
+ w14.Shrink = false;
+ this.hpaned.Add (this.hpaned1);
+ global::Gtk.Paned.PanedChild w15 = ((global::Gtk.Paned.PanedChild)(this.hpaned [this.hpaned1]));
w15.Resize = false;
w15.Shrink = false;
- this.hpaned.Add (this.hpaned1);
- global::Gtk.Paned.PanedChild w16 = ((global::Gtk.Paned.PanedChild)(this.hpaned [this.hpaned1]));
- w16.Resize = false;
- w16.Shrink = false;
this.vbox1.Add (this.hpaned);
- global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned]));
- w17.Position = 1;
+ global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned]));
+ w16.Position = 1;
// Container child vbox1.Gtk.Box+BoxChild
this.statusbar1 = new global::Gtk.Statusbar ();
this.statusbar1.Name = "statusbar1";
@@ -315,15 +307,15 @@ namespace LongoMatch.Gui
this.renderingstatebar1.Name = "renderingstatebar1";
this.renderingstatebar1.Fraction = 0;
this.statusbar1.Add (this.renderingstatebar1);
- global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.statusbar1 [this.renderingstatebar1]));
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.statusbar1 [this.renderingstatebar1]));
+ w17.Position = 2;
+ w17.Expand = false;
+ w17.Fill = false;
+ this.vbox1.Add (this.statusbar1);
+ global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.statusbar1]));
w18.Position = 2;
w18.Expand = false;
w18.Fill = false;
- this.vbox1.Add (this.statusbar1);
- global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.statusbar1]));
- w19.Position = 2;
- w19.Expand = false;
- w19.Fill = false;
this.Add (this.vbox1);
if ((this.Child != null)) {
this.Child.ShowAll ();
@@ -351,9 +343,6 @@ namespace LongoMatch.Gui
this.ManualTaggingViewAction.Toggled += new global::System.EventHandler (this.OnViewToggled);
this.GameUnitsViewAction.Toggled += new global::System.EventHandler (this.OnViewToggled);
this.dialogInfoAction.Activated += new global::System.EventHandler (this.OnDialogInfoActionActivated);
- this.player.Error += new global::LongoMatch.Handlers.ErrorHandler (this.OnPlayerbin1Error);
- this.player.SegmentClosedEvent += new global::LongoMatch.Handlers.SegmentClosedHandler (this.OnSegmentClosedEvent);
- this.capturer.Error += new global::LongoMatch.Handlers.ErrorHandler (this.OnCapturerBinError);
}
}
}
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 9831101..5aa3a73 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -1930,28 +1930,15 @@
</packing>
</child>
<child>
- <widget class="LongoMatch.Gui.PlayerBin" id="player">
+ <widget class="LongoMatch.Gui.PlayerCapturerBin" id="playercapturer">
<property name="MemberName" />
<property name="Events">ButtonPressMask</property>
- <property name="Rate">1</property>
- <property name="ExpandLogo">True</property>
<property name="Detached">False</property>
- <signal name="Error" handler="OnPlayerbin1Error" />
- <signal name="SegmentClosedEvent" handler="OnSegmentClosedEvent" />
+ <property name="ExpandLogo">False</property>
+ <property name="Rate">0</property>
</widget>
<packing>
<property name="Position">1</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- <child>
- <widget class="LongoMatch.Gui.CapturerBin" id="capturer">
- <property name="MemberName" />
- <property name="Events">ButtonPressMask</property>
- <signal name="Error" handler="OnCapturerBinError" />
- </widget>
- <packing>
- <property name="Position">2</property>
<property name="AutoSize">False</property>
</packing>
</child>
@@ -6713,7 +6700,7 @@ Defining <b> Game Units </b> will help you during the analysis to in
<widget class="Gtk.Notebook" id="notebook2">
<property name="MemberName" />
<property name="CanFocus">True</property>
- <property name="CurrentPage">1</property>
+ <property name="CurrentPage">0</property>
<property name="TabPos">Left</property>
<child>
<widget class="Gtk.Notebook" id="notebook1">
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index 006521d..1afb28d 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -197,18 +197,6 @@
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Component.PlayersListTreeWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals>
- <itemgroup label="PlayersListTreeWidget Signals">
- <signal name="TimeNodeSelected" />
- <signal name="TimeNodeChanged" />
- <signal name="PlayListNodeAdded" />
- <signal name="SnapshotSeriesEvent" />
- <signal name="RenderPlaylistEvent" />
- </itemgroup>
- </signals>
- </object>
<object type="LongoMatch.Gui.Component.CategoriesFilterTreeView" palette-category="LongoMatch" allow-children="false" base-type="Gtk.TreeView">
<itemgroups />
<signals />
@@ -226,24 +214,53 @@
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
+ <object type="LongoMatch.Gui.Component.PlayersFilterTreeView" palette-category="LongoMatch" allow-children="false" base-type="Gtk.TreeView">
<itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.TeamTemplateEditorWidget" palette-category="General" allow-children="false" base-type="LongoMatch.Gui.Base.TemplatesEditorBase">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.StringTaggerWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals />
+ </object>
+ <object type="LongoMatch.Gui.Component.TimeScale" palette-category="LongoMatch" allow-children="false" base-type="Gtk.DrawingArea">
+ <itemgroups>
+ <itemgroup label="TimeScaleBase[LongoMatch.Store.Play] Properties">
+ <property name="PixelRatio" />
+ <property name="CurrentFrame" />
+ </itemgroup>
+ </itemgroups>
<signals>
- <itemgroup label="PlaysListTreeWidget Signals">
+ <itemgroup label="TimeScale Signals">
+ <signal name="NewMarkAtFrameEvent" />
+ <signal name="TimeNodeChanged" />
<signal name="TimeNodeSelected" />
+ <signal name="TimeNodeDeleted" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysTreeView" palette-category="LongoMatch" allow-children="false" base-type="Gtk.TreeView">
+ <itemgroups>
+ <itemgroup label="ListTreeViewBase Properties">
+ <property name="Colors" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="PlaysTreeView Signals">
+ <signal name="EditProperties" />
<signal name="TimeNodeChanged" />
+ <signal name="TimeNodeSelected" />
<signal name="TimeNodeDeleted" />
<signal name="PlayListNodeAdded" />
<signal name="SnapshotSeriesEvent" />
<signal name="TagPlay" />
- <signal name="RenderPlaylistEvent" />
+ <signal name="NewRenderingJob" />
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Component.PlayersFilterTreeView" palette-category="LongoMatch" allow-children="false" base-type="Gtk.TreeView">
- <itemgroups />
- <signals />
- </object>
<object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
<itemgroups />
<signals>
@@ -257,6 +274,32 @@
</itemgroup>
</signals>
</object>
+ <object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PlaysListTreeWidget Signals">
+ <signal name="TimeNodeSelected" />
+ <signal name="TimeNodeChanged" />
+ <signal name="TimeNodeDeleted" />
+ <signal name="PlayListNodeAdded" />
+ <signal name="SnapshotSeriesEvent" />
+ <signal name="TagPlay" />
+ <signal name="RenderPlaylistEvent" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.PlayersListTreeWidget" palette-category="General" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PlayersListTreeWidget Signals">
+ <signal name="TimeNodeSelected" />
+ <signal name="TimeNodeChanged" />
+ <signal name="PlayListNodeAdded" />
+ <signal name="SnapshotSeriesEvent" />
+ <signal name="RenderPlaylistEvent" />
+ </itemgroup>
+ </signals>
+ </object>
<object type="LongoMatch.Gui.Component.ProjectDetailsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
<itemgroups>
<itemgroup label="ProjectDetailsWidget Properties">
diff --git a/libcesarplayer/liblongomatch.mdp b/libcesarplayer/liblongomatch.mdp
index a745b4c..11bf0e1 100644
--- a/libcesarplayer/liblongomatch.mdp
+++ b/libcesarplayer/liblongomatch.mdp
@@ -15,8 +15,6 @@
</Configurations>
<Contents>
<File subtype="Directory" buildaction="Nothing" name="." />
- <File subtype="Code" buildaction="Compile" name="bacon-resize.c" />
- <File subtype="Code" buildaction="Nothing" name="bacon-resize.h" />
<File subtype="Code" buildaction="Nothing" name="bacon-video-widget.h" />
<File subtype="Code" buildaction="Compile" name="bacon-video-widget-gst-0.10.c" />
<File subtype="Code" buildaction="Nothing" name="common.h" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]