[longomatch/livecapturemerged: 74/84] Merge branch 'livecapture' into mergelive



commit 66dfee03b760bdf1876128e1c566cebe86c1aa28
Merge: aec2f4e c16d2fa
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Sat May 8 12:41:42 2010 +0200

    Merge branch 'livecapture' into mergelive
    
    Conflicts:
    	CesarPlayer/Capturer/FakeCapturer.cs
    	CesarPlayer/Capturer/GccVideoMuxerType.cs
    	CesarPlayer/Capturer/GstCameraCapturer.cs
    	CesarPlayer/Capturer/ICapturer.cs
    	CesarPlayer/CesarPlayer.mdp
    	CesarPlayer/Gui/CapturerBin.cs
    	CesarPlayer/Makefile.am
    	LongoMatch/Gui/MainWindow.cs
    	LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs
    	LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
    	LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs
    	LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
    	LongoMatch/gtk-gui/gui.stetic
    	libcesarplayer/src/gst-camera-capturer.h

 .gitignore                                         |   11 +-
 CesarPlayer/Capturer/CaptureProperties.cs          |   38 +
 CesarPlayer/Capturer/FakeCapturer.cs               |   64 +-
 CesarPlayer/Capturer/GstCameraCapturer.cs          |  138 ++-
 CesarPlayer/Capturer/ICapturer.cs                  |   16 +-
 CesarPlayer/Capturer/LiveSourceTimer.cs            |   87 ++
 CesarPlayer/CesarPlayer.mdp                        |   88 +-
 CesarPlayer/Common/Enum.cs                         |    1 +
 CesarPlayer/Gui/CapturerBin.cs                     |  161 ++-
 CesarPlayer/Makefile.am                            |    2 +
 CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs    |   10 +-
 CesarPlayer/gtk-gui/objects.xml                    |   17 +-
 LongoMatch.mds                                     |   11 +-
 LongoMatch/Gui/Component/PlayListWidget.cs         |   14 +-
 LongoMatch/Gui/Component/ProjectDetailsWidget.cs   |  146 ++-
 LongoMatch/Gui/Dialog/NewProjectDialog.cs          |    7 +
 LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs    |    2 +
 LongoMatch/Gui/MainWindow.cs                       |  221 ++--
 LongoMatch/Handlers/EventsManager.cs               |   29 +-
 LongoMatch/LongoMatch.mdp                          |  364 +++---
 LongoMatch/Utils/ProjectUtils.cs                   |    8 +-
 .../LongoMatch.Gui.Component.PlayListWidget.cs     |   12 +-
 ...ongoMatch.Gui.Component.ProjectDetailsWidget.cs |  530 +++++---
 .../LongoMatch.Gui.Component.TimeLineWidget.cs     |    2 +-
 .../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs   |   15 +-
 .../LongoMatch.Gui.Dialog.EditCategoryDialog.cs    |    5 +-
 .../LongoMatch.Gui.Dialog.EditPlayerDialog.cs      |    3 +-
 .../LongoMatch.Gui.Dialog.EndCaptureDialog.cs      |   19 +-
 .../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs   |    1 -
 ...Match.Gui.Dialog.FramesCaptureProgressDialog.cs |    1 -
 .../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs  |    1 -
 .../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs      |    1 -
 .../LongoMatch.Gui.Dialog.OpenProjectDialog.cs     |    1 -
 ...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs |    1 -
 ...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs |   95 +-
 ...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs |    1 -
 .../LongoMatch.Gui.Dialog.ProjectsManager.cs       |    7 +-
 .../LongoMatch.Gui.Dialog.SnapshotsDialog.cs       |    3 +-
 .../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs  |    5 +-
 .../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs    |    3 +-
 .../LongoMatch.Gui.Dialog.TemplatesManager.cs      |   23 +-
 .../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs  |    1 -
 ...LongoMatch.Gui.Dialog.VideoEditionProperties.cs |    3 +-
 .../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs   |    5 +-
 LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs    |   96 +-
 LongoMatch/gtk-gui/gui.stetic                      |  591 +++++++---
 LongoMatch/gtk-gui/objects.xml                     |   54 +-
 libcesarplayer/liblongomatch.mdp                   |   35 +-
 libcesarplayer/src/Makefile.am                     |    4 +-
 libcesarplayer/src/bacon-video-widget-gst-0.10.c   |   11 +-
 libcesarplayer/src/gst-camera-capturer.c           | 1352 ++++++++++++++------
 libcesarplayer/src/gst-camera-capturer.h           |   51 +-
 libcesarplayer/src/gst-video-capturer.c            |  735 -----------
 libcesarplayer/src/gst-video-capturer.h            |   81 --
 54 files changed, 2945 insertions(+), 2238 deletions(-)
---
diff --cc CesarPlayer/Capturer/CaptureProperties.cs
index 0000000,8029e41..53e2b72
mode 000000,100644..100644
--- a/CesarPlayer/Capturer/CaptureProperties.cs
+++ b/CesarPlayer/Capturer/CaptureProperties.cs
@@@ -1,0 -1,37 +1,38 @@@
+ // 
+ //  Copyright (C) 2010 Andoni Morales Alastruey
+ // 
+ //  This program is free software; you can redistribute it and/or modify
+ //  it under the terms of the GNU General Public License as published by
+ //  the Free Software Foundation; either version 2 of the License, or
+ //  (at your option) any later version.
+ // 
+ //  This program is distributed in the hope that it will be useful,
+ //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ //  GNU General Public License for more details.
+ //  
+ //  You should have received a copy of the GNU General Public License
+ //  along with this program; if not, write to the Free Software
+ //  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ // 
+ 
+ using System;
++using LongoMatch.Video.Common;
+ 
+ namespace LongoMatch.Video.Capturer
+ {
+ 	
+ 	
+ 	public struct CapturePropertiesStruct
+ 	{
+ 		public string VideoDevice;
+ 		public string AudioDevice;
+ 		public uint VideoBitrate;
+ 		public uint AudioBitrate;
 -		public GccVideoEncoderType VideoEncoder;
 -		public GccAudioEncoderType AudioEncoder;
 -		public GccVideoMuxerType Muxer;
++		public VideoEncoderType VideoEncoder;
++		public AudioEncoderType AudioEncoder;
++		public VideoMuxerType Muxer;
+ 		public uint Height;
+ 		public uint Width;
+ 	}
+ }
diff --cc CesarPlayer/Capturer/FakeCapturer.cs
index 0fb66d1,e340dde..fe81cdc
--- a/CesarPlayer/Capturer/FakeCapturer.cs
+++ b/CesarPlayer/Capturer/FakeCapturer.cs
@@@ -19,7 -19,8 +19,8 @@@
  using System;
  using Mono.Unix;
  using GLib;
 +using LongoMatch.Video.Common;
+ using Gdk;
 -using LongoMatch.Video.Handlers;
  
  namespace LongoMatch.Video.Capturer
  {
@@@ -89,13 -89,12 +89,13 @@@
  		public uint AudioBitrate {
  			get {return 0;}
  			set {}
- 		}
- 		
- 		public void Stop(){
- 			GLib.Source.Remove(timerID);
  		}		
  		
+ 		public Pixbuf CurrentFrame {
+ 			get {return null;}
+ 		}
 -		public bool SetVideoEncoder(LongoMatch.Video.Capturer.GccVideoEncoderType type){
++		
 +		public bool SetVideoEncoder(VideoEncoderType type){
  			return true;
  		}
  		
@@@ -103,14 -102,8 +103,8 @@@
  			return true;
  		}
  		
 -		public bool SetVideoMuxer(LongoMatch.Video.Capturer.GccVideoMuxerType type){
 +		public bool SetVideoMuxer(VideoMuxerType type){
  			return true;
  		}
- 		
- 		protected virtual bool OnTick(){			
- 			if (EllapsedTime != null)
- 				EllapsedTime(CurrentTime);
- 			return true;
- 		}
  	}
  }
diff --cc CesarPlayer/Capturer/GstCameraCapturer.cs
index 51c8847,bb41690..6abb483
--- a/CesarPlayer/Capturer/GstCameraCapturer.cs
+++ b/CesarPlayer/Capturer/GstCameraCapturer.cs
@@@ -293,26 -291,49 +291,49 @@@ namespace LongoMatch.Video.Capturer 
  		public void Run() {
  			gst_camera_capturer_run(Handle);
  		}
+ 		
+ 		[DllImport("libcesarplayer.dll")]
+ 		static extern void gst_camera_capturer_close(IntPtr raw);
  
+ 		public void Close() {
+ 			gst_camera_capturer_close(Handle);
+ 		}		
+ 		
  		[DllImport("libcesarplayer.dll")]
- 		static extern bool gst_camera_capturer_set_audio_encoder(IntPtr raw, int type);
+ 		static extern bool gst_camera_capturer_set_video_muxer(IntPtr raw, int type, out IntPtr error);
  
- 		public bool SetAudioEncoder(AudioEncoderType type) {
- 			bool raw_ret = gst_camera_capturer_set_audio_encoder(Handle, (int) type);
 -		public bool SetVideoMuxer(LongoMatch.Video.Capturer.GccVideoMuxerType type) {
++		public bool SetVideoMuxer(VideoMuxerType type) {
+ 			IntPtr error = IntPtr.Zero;
+ 			bool raw_ret = gst_camera_capturer_set_video_muxer(Handle, (int) type, out error);
+ 			if (error != IntPtr.Zero) throw new GLib.GException (error);
  			bool ret = raw_ret;
  			return ret;
  		}
+ 
  		
  		[DllImport("libcesarplayer.dll")]
- 		static extern int gst_camera_capturer_get_current_time(IntPtr raw);
+ 		static extern bool gst_camera_capturer_set_video_encoder(IntPtr raw, int type, out IntPtr error);
  
- 		public int CurrentTime{
- 			get{
- 				return gst_camera_capturer_get_current_time(Handle);
- 			}
 -		public bool SetVideoEncoder(LongoMatch.Video.Capturer.GccVideoEncoderType type) {
++		public bool SetVideoEncoder(VideoEncoderType type) {
+ 			IntPtr error = IntPtr.Zero;
+ 			bool raw_ret = gst_camera_capturer_set_video_encoder(Handle, (int) type, out error);
+ 			if (error != IntPtr.Zero) throw new GLib.GException (error);
+ 			bool ret = raw_ret;
+ 			return ret;
  		}
  
  		[DllImport("libcesarplayer.dll")]
+ 		static extern bool gst_camera_capturer_set_audio_encoder(IntPtr raw, int type, out IntPtr error);
+ 
 -		public bool SetAudioEncoder(LongoMatch.Video.Capturer.GccAudioEncoderType type) {
++		public bool SetAudioEncoder(AudioEncoderType type) {
+ 			IntPtr error = IntPtr.Zero;			
+ 			bool raw_ret = gst_camera_capturer_set_audio_encoder(Handle, (int) type, out error);
+ 			if (error != IntPtr.Zero) throw new GLib.GException (error);
+ 			bool ret = raw_ret;
+ 			return ret;
+ 		}
+ 		
+ 		[DllImport("libcesarplayer.dll")]
  		static extern IntPtr gst_camera_capturer_get_type();
  
  		public static new GLib.GType GType { 
diff --cc CesarPlayer/Capturer/ICapturer.cs
index cbfad62,024aede..be9deae
--- a/CesarPlayer/Capturer/ICapturer.cs
+++ b/CesarPlayer/Capturer/ICapturer.cs
@@@ -19,7 -19,8 +19,8 @@@
  //
  
  using System;
 -using LongoMatch.Video.Handlers;
 +using LongoMatch.Video.Common;
+ using Gdk;
  
  namespace LongoMatch.Video.Capturer
  {
@@@ -58,13 -60,17 +60,17 @@@
  			get ;
  		}
  		
+ 		Pixbuf CurrentFrame {
+ 			get;
+ 		}
+ 		
 -		bool SetVideoEncoder(LongoMatch.Video.Capturer.GccVideoEncoderType type);
 +		bool SetVideoEncoder(VideoEncoderType type);
  		
 -		bool SetAudioEncoder(LongoMatch.Video.Capturer.GccAudioEncoderType type);
 +		bool SetAudioEncoder(AudioEncoderType type);
  		
 -		bool SetVideoMuxer(LongoMatch.Video.Capturer.GccVideoMuxerType type);
 +		bool SetVideoMuxer(VideoMuxerType type);
  		
- 		void Pause();
+ 		void TogglePause();
  		
  		void Start();
  		
diff --cc CesarPlayer/Capturer/LiveSourceTimer.cs
index 0000000,7a68840..47fd043
mode 000000,100644..100644
--- a/CesarPlayer/Capturer/LiveSourceTimer.cs
+++ b/CesarPlayer/Capturer/LiveSourceTimer.cs
@@@ -1,0 -1,87 +1,87 @@@
+ // 
+ //  Copyright (C) 2010 Andoni Morales Alastruey
+ // 
+ //  This program is free software; you can redistribute it and/or modify
+ //  it under the terms of the GNU General Public License as published by
+ //  the Free Software Foundation; either version 2 of the License, or
+ //  (at your option) any later version.
+ // 
+ //  This program is distributed in the hope that it will be useful,
+ //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ //  GNU General Public License for more details.
+ //  
+ //  You should have received a copy of the GNU General Public License
+ //  along with this program; if not, write to the Free Software
+ //  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ // 
+ 
+ using System;
 -using LongoMatch.Video.Handlers;
++using LongoMatch.Video.Common;
+ 
+ 
+ namespace LongoMatch.Video.Capturer
+ {
+ 	
+ 	
+ 	public class LiveSourceTimer
+ 	{
+ 		public event EllpasedTimeHandler EllapsedTime;
+ 		
+ 		private DateTime lastStart;
+ 		private TimeSpan ellapsed;
+ 		private bool playing;
+ 		private bool started;
+ 		private uint timerID;
+ 		
+ 		public LiveSourceTimer()
+ 		{
+ 			lastStart = DateTime.Now;
+ 			ellapsed = new TimeSpan(0,0,0);
+ 			playing = false;
+ 			started = false;
+ 		}
+ 		
+ 		public int CurrentTime{
+ 			get{
+ 				if (!started)
+ 					return 0;
+ 				else if (playing)
+ 					return (int)(ellapsed + (DateTime.Now - lastStart)).TotalMilliseconds;
+ 				else
+ 					return (int)ellapsed.TotalMilliseconds; 
+ 			}
+ 		}
+ 		
+ 		public void TogglePause(){
+ 			if (!started)
+ 				return;
+ 			
+ 			if (playing){
+ 				playing = false;
+ 				ellapsed += DateTime.Now - lastStart;								
+ 			}
+ 			else{
+ 				playing = true;
+ 				lastStart = DateTime.Now;
+ 			}
+ 		}
+ 		
+ 		public void Start(){
+ 			timerID = GLib.Timeout.Add(100, OnTick);
+ 			lastStart = DateTime.Now;
+ 			playing = true;
+ 			started = true;
+ 		}
+ 		
+ 		public void Stop(){
+ 			GLib.Source.Remove(timerID);
+ 		}		
+ 		
+ 		protected virtual bool OnTick(){			
+ 			if (EllapsedTime != null)
+ 				EllapsedTime(CurrentTime);
+ 			return true;
+ 		}
+ 	}
+ }
diff --cc CesarPlayer/CesarPlayer.mdp
index e34b822,abf4407..b861b5d
--- a/CesarPlayer/CesarPlayer.mdp
+++ b/CesarPlayer/CesarPlayer.mdp
@@@ -14,44 -14,71 +14,46 @@@
      </Configuration>
    </Configurations>
    <Contents>
-     <File name="AssemblyInfo.cs" subtype="Code" buildaction="Compile" />
-     <File name="gtk-gui/objects.xml" subtype="Code" buildaction="EmbedAsResource" />
-     <File name="gtk-gui/gui.stetic" subtype="Code" buildaction="EmbedAsResource" />
-     <File name="gtk-gui/generated.cs" subtype="Code" buildaction="Compile" />
-     <File name="Player" subtype="Directory" buildaction="Compile" />
-     <File name="Player/GstPlayer.cs" subtype="Code" buildaction="Compile" />
-     <File name="Player/IPlayer.cs" subtype="Code" buildaction="Compile" />
-     <File name="cesarplayer.key" subtype="Code" buildaction="Nothing" />
-     <File name="Utils" subtype="Directory" buildaction="Compile" />
-     <File name="Utils/TimeString.cs" subtype="Code" buildaction="Compile" />
-     <File name="Gui" subtype="Directory" buildaction="Compile" />
-     <File name="gtk-gui/LongoMatch.Gui.PlayerBin.cs" subtype="Code" buildaction="Compile" />
-     <File name="gtk-gui/LongoMatch.Gui.VolumeWindow.cs" subtype="Code" buildaction="Compile" />
-     <File name="Gui/VolumeWindow.cs" subtype="Code" buildaction="Compile" />
-     <File name="Capturer" subtype="Directory" buildaction="Compile" />
-     <File name="Capturer/ICapturer.cs" subtype="Code" buildaction="Compile" />
-     <File name="Gui/CapturerBin.cs" subtype="Code" buildaction="Compile" />
-     <File name="MultimediaFactory.cs" subtype="Code" buildaction="Compile" />
-     <File name="Player/ObjectManager.cs" subtype="Code" buildaction="Compile" />
-     <File name="Capturer/ObjectManager.cs" subtype="Code" buildaction="Compile" />
-     <File name="Utils/IFramesCapturer.cs" subtype="Code" buildaction="Compile" />
-     <File name="Utils/FramesCapturer.cs" subtype="Code" buildaction="Compile" />
-     <File name="Utils/IMetadataReader.cs" subtype="Code" buildaction="Compile" />
-     <File name="Gui/PlayerBin.cs" subtype="Code" buildaction="Compile" />
-     <File name="Editor" subtype="Directory" buildaction="Compile" />
-     <File name="Editor/IVideoEditor.cs" subtype="Code" buildaction="Compile" />
-     <File name="Editor/GstVideoSplitter.cs" subtype="Code" buildaction="Compile" />
-     <File name="Editor/VideoSegment.cs" subtype="Code" buildaction="Compile" />
-     <File name="Editor/EditorState.cs" subtype="Code" buildaction="Compile" />
-     <File name="Editor/IVideoSplitter.cs" subtype="Code" buildaction="Compile" />
-     <File name="Utils/MediaFile.cs" subtype="Code" buildaction="Compile" />
-     <File name="Utils/PreviewMediaFile.cs" subtype="Code" buildaction="Compile" />
-     <File name="Capturer/FakeCapturer.cs" subtype="Code" buildaction="Compile" />
-     <File name="Capturer/GstCameraCapturer.cs" subtype="Code" buildaction="Compile" />
-     <File name="gtk-gui/LongoMatch.Gui.CapturerBin.cs" subtype="Code" buildaction="Compile" />
-     <File name="Common" subtype="Directory" buildaction="Compile" />
-     <File name="Common/Enum.cs" subtype="Code" buildaction="Compile" />
-     <File name="Common/Handlers.cs" subtype="Code" buildaction="Compile" />
+     <File subtype="Code" buildaction="Compile" name="AssemblyInfo.cs" />
+     <File subtype="Code" buildaction="EmbedAsResource" name="gtk-gui/objects.xml" />
+     <File subtype="Code" buildaction="EmbedAsResource" name="gtk-gui/gui.stetic" />
+     <File subtype="Code" buildaction="Compile" name="gtk-gui/generated.cs" />
 -    <File subtype="Directory" buildaction="Compile" name="Handlers" />
 -    <File subtype="Code" buildaction="Compile" name="Handlers/ErrorHandler.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Handlers/Handlers.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Handlers/TickHandler.cs" />
+     <File subtype="Directory" buildaction="Compile" name="Player" />
+     <File subtype="Code" buildaction="Compile" name="Player/GstPlayer.cs" />
+     <File subtype="Code" buildaction="Compile" name="Player/IPlayer.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstUseType.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Handlers/StateChangedHandler.cs" />
+     <File subtype="Code" buildaction="Nothing" name="cesarplayer.key" />
+     <File subtype="Directory" buildaction="Compile" name="Utils" />
+     <File subtype="Code" buildaction="Compile" name="Utils/TimeString.cs" />
+     <File subtype="Directory" buildaction="Compile" name="Gui" />
+     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.PlayerBin.cs" />
+     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.VolumeWindow.cs" />
+     <File subtype="Code" buildaction="Compile" name="Gui/VolumeWindow.cs" />
+     <File subtype="Directory" buildaction="Compile" name="Capturer" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/ErrorHandler.cs" />
+     <File subtype="Code" buildaction="Compile" name="Capturer/ICapturer.cs" />
+     <File subtype="Code" buildaction="Compile" name="Gui/CapturerBin.cs" />
+     <File subtype="Code" buildaction="Compile" name="MultimediaFactory.cs" />
+     <File subtype="Code" buildaction="Compile" name="Player/ObjectManager.cs" />
+     <File subtype="Code" buildaction="Compile" name="Capturer/ObjectManager.cs" />
+     <File subtype="Code" buildaction="Compile" name="Utils/IFramesCapturer.cs" />
+     <File subtype="Code" buildaction="Compile" name="Utils/FramesCapturer.cs" />
+     <File subtype="Code" buildaction="Compile" name="Utils/IMetadataReader.cs" />
+     <File subtype="Code" buildaction="Compile" name="Gui/PlayerBin.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/GccAudioEncoderType.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/GccError.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/GccVideoEncoderType.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/GccVideoMuxerType.cs" />
+     <File subtype="Directory" buildaction="Compile" name="Editor" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/ErrorHandler.cs" />
+     <File subtype="Code" buildaction="Compile" name="Editor/IVideoEditor.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/AudioQuality.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/VideoQuality.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/PercentCompletedHandler.cs" />
+     <File subtype="Code" buildaction="Compile" name="Editor/GstVideoSplitter.cs" />
+     <File subtype="Code" buildaction="Compile" name="Editor/VideoSegment.cs" />
+     <File subtype="Code" buildaction="Compile" name="Editor/EditorState.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/VideoFormat.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/VideoMuxer.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/VideoCodec.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/IMerger.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/AudioCodec.cs" />
+     <File subtype="Code" buildaction="Compile" name="Editor/IVideoSplitter.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Editor/VideoSplitterType.cs" />
+     <File subtype="Code" buildaction="Compile" name="Utils/MediaFile.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstAspectRatio.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstAudioOutType.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstDVDEvent.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstError.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstMetadataType.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Player/GstVideoProperty.cs" />
+     <File subtype="Code" buildaction="Compile" name="Utils/PreviewMediaFile.cs" />
+     <File subtype="Code" buildaction="Compile" name="Capturer/FakeCapturer.cs" />
+     <File subtype="Code" buildaction="Compile" name="Capturer/GstCameraCapturer.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/GccType.cs" />
+     <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.CapturerBin.cs" />
 -    <File subtype="Code" buildaction="Compile" name="Capturer/CaptureProperties.cs" />
++    <File subtype="Directory" buildaction="Compile" name="Common" />
++    <File subtype="Code" buildaction="Compile" name="Common/Enum.cs" />
++    <File subtype="Code" buildaction="Compile" name="Common/Handlers.cs" />
+     <File subtype="Code" buildaction="Compile" name="Capturer/LiveSourceTimer.cs" />
++    <File subtype="Code" buildaction="Compile" name="Capturer/CaptureProperties.cs" />
    </Contents>
    <References>
      <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
diff --cc CesarPlayer/Common/Enum.cs
index e637ec5,0000000..7f0a905
mode 100644,000000..100644
--- a/CesarPlayer/Common/Enum.cs
+++ b/CesarPlayer/Common/Enum.cs
@@@ -1,153 -1,0 +1,154 @@@
 +// 
 +//  Copyright (C) 2010 Andoni Morales Alastruey
 +// 
 +//  This program is free software; you can redistribute it and/or modify
 +//  it under the terms of the GNU General Public License as published by
 +//  the Free Software Foundation; either version 2 of the License, or
 +//  (at your option) any later version.
 +// 
 +//  This program is distributed in the hope that it will be useful,
 +//  but WITHOUT ANY WARRANTY; without even the implied warranty of
 +//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 +//  GNU General Public License for more details.
 +//  
 +//  You should have received a copy of the GNU General Public License
 +//  along with this program; if not, write to the Free Software
 +//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 +// 
 +
 +using System;
 +
 +namespace LongoMatch.Video.Common
 +{
 +	
 +	
 +	public enum Error {
 +		AudioPlugin,
 +		NoPluginForFile,
 +		VideoPlugin,
 +		AudioBusy,
 +		BrokenFile,
 +		FileGeneric,
 +		FilePermission,
 +		FileEncrypted,
 +		FileNotFound,
 +		DvdEncrypted,
 +		InvalidDevice,
 +		UnknownHost,
 +		NetworkUnreachable,
 +		ConnectionRefused,
 +		UnvalidLocation,
 +		Generic,
 +		CodecNotHandled,
 +		AudioOnly,
 +		CannotCapture,
 +		ReadError,
 +		PluginLoad,
 +		EmptyFile,
 +	}	
 +	
 +	public enum VideoEncoderType {
 +		Mpeg4,
 +		Xvid,
 +		Theora,
 +		H264,
 +		Mpeg2
 +	}
 +	
 +	public enum AudioEncoderType {
 +		Mp3,
 +		Aac,
 +		Vorbis,
 +	}
 +	
 +	public enum VideoMuxerType {
 +		Avi,
++		Mp4, 
 +		Matroska,
 +		Ogg,
 +		MpegPS,
 +	}	
 +	
 +	public enum CapturerType{
 +		FAKE,
 +		DVCAM,
 +		WEBCAM,
 +	}	
 +
 +	public enum VideoFormat {
 +		PORTABLE=0,
 +		VGA=1,
 +		TV=2,
 +		HD720p=3,
 +		HD1080p=4
 +	}
 +	
 +	public enum VideoQuality {
 +		Low = 1000,
 +		Normal = 3000,
 +		Good = 5000,
 +		Extra = 7000,
 +	}
 +	
 +	public enum AudioQuality
 +	{
 +		Low = 32000,
 +		Normal = 64000,
 +		Good = 128000,
 +		Extra = 256000,
 +		copy,
 +	}
 +	
 +	public enum PlayerUseType {
 +		Video,
 +		Audio,
 +		Capture,
 +		Metadata,
 +	}
 +	
 +	public enum VideoProperty {
 +		Brightness,
 +		Contrast,
 +		Saturation,
 +		Hue,
 +	}	
 +	
 +	public enum AspectRatio {
 +		Auto,
 +		Square,
 +		Fourbythree,
 +		Anamorphic,
 +		Dvb,
 +	}	
 +	
 +	public enum AudioOutType {
 +		Stereo,
 +		Channel4,
 +		Channel41,
 +		Channel5,
 +		Channel51,
 +		Ac3passthru,
 +	}
 +	
 +	public enum MetadataType {
 +		Title,
 +		Artist,
 +		Year,
 +		Comment,
 +		Album,
 +		Duration,
 +		TrackNumber,
 +		Cover,
 +		HasVideo,
 +		DimensionX,
 +		DimensionY,
 +		VideoBitrate,
 +		VideoEncoderType,
 +		Fps,
 +		HasAudio,
 +		AudioBitrate,
 +		AudioEncoderType,
 +		AudioSampleRate,
 +		AudioChannels,
 +	}
 +}
diff --cc CesarPlayer/Gui/CapturerBin.cs
index ebc4e3d,23e757c..a660c78
--- a/CesarPlayer/Gui/CapturerBin.cs
+++ b/CesarPlayer/Gui/CapturerBin.cs
@@@ -37,15 -36,34 +37,33 @@@ namespace LongoMatch.Gu
  	public partial class CapturerBin : Gtk.Bin
  	{
  		public event EventHandler CaptureFinished;
+ 		public event ErrorHandler Error;
  		
  		private Pixbuf logopix;
+ 		private uint outputWidth;
+ 		private uint outputHeight;
+ 		private uint videoBitrate;
+ 		private uint audioBitrate;
 -		private GccVideoEncoderType  videoEncoder;
 -		private GccAudioEncoderType audioEncoder;
 -		private GccVideoMuxerType videoMuxer;
++		private VideoEncoderType  videoEncoder;
++		private AudioEncoderType audioEncoder;
++		private VideoMuxerType videoMuxer;
+ 		private string outputFile;
+ 		private bool capturing;
+ 		private const int THUMBNAIL_MAX_WIDTH = 100;		
  		
  		ICapturer capturer;
- 		bool capturing;
  		
  		public CapturerBin()
  		{
  			this.Build();
 -				
+ 			outputWidth = 320;
+ 			outputHeight = 240;
+ 			videoBitrate = 1000;
+ 			audioBitrate = 128;
 -			videoEncoder = GccVideoEncoderType.H264;
 -			audioEncoder = GccAudioEncoderType.Aac;
 -			videoMuxer = GccVideoMuxerType.Mp4;
++			videoEncoder = VideoEncoderType.H264;
++			audioEncoder = AudioEncoderType.Aac;
++			videoMuxer = VideoMuxerType.Mp4;
+ 			outputFile = "";
  			Type = CapturerType.FAKE;
  		}		
  		
@@@ -62,11 -82,13 +82,14 @@@
  					capturerhbox.Add((Widget)capturer);
  					(capturer as Widget).Visible = true;
  					capturerhbox.Visible = true;
+ 					logodrawingarea.Visible = false;
  				}
  				else{
+ 					logodrawingarea.Visible = true;
  					capturerhbox.Visible = false;
  				}
 +				capturing = false;
+ 				SetProperties();
  			}
  		}
  		
@@@ -100,53 -143,115 +144,113 @@@
  			}
  		}
  		
- 		public void ToggleCapture(){
- 			if (capturing)
- 				Pause();
- 			else 
- 				Start();
+ 		public bool Capturing{
+ 			get{
+ 				return capturing;
+ 			}
  		}
  		
- 		public void Pause(){
- 			recbutton.Visible = true;
- 			pausebutton.Visible = false;
- 			capturer.Pause();
- 			capturing = false;
+ 		public CapturePropertiesStruct CaptureProperties{
+ 			set{
+ 				outputWidth = value.Width;
+ 				outputHeight = value.Height;
+ 				audioBitrate = value.AudioBitrate;
+ 				videoBitrate = value.VideoBitrate;
+ 				audioEncoder = value.AudioEncoder;
+ 				videoEncoder = value.VideoEncoder;
+ 				videoMuxer = value.Muxer;
+ 			}
  		}
  		
 +		public void Start(){
++			capturing = true;
 +			recbutton.Visible = false;
 +			pausebutton.Visible = true;
 +			stopbutton.Visible = true;
 +			capturer.Start();
- 			capturing = true;
 +		}
 +		
- 		public void Stop(){
+ 		public void TogglePause(){
+ 			capturing = !capturing;
+ 			capturer.TogglePause();
+ 		}
+ 		
 -		public void Start(){
 -			capturer.Start();
 -			capturing = true;
 -		}
 -		
 -		public void Stop(){
 -			capturer.Stop();
++		public void Stop() {
+ 			capturing = false;
 +			capturer.Stop();
+ 		}
+ 		
+ 		public void Run(){
+ 			capturer.Run();
+ 		}
+ 
+ 		public void Close(){
+ 			capturer.Close();
  			capturing = false;
  		}
  		
+ 		public Pixbuf CurrentMiniatureFrame {
+ 			get {
+ 				int h, w;
+ 				double rate;
+ 				Pixbuf scaled_pix;
+ 				Pixbuf pix = capturer.CurrentFrame;
+ 				
+ 				if (pix == null)
+ 					return null;
+ 				
+ 				w = pix.Width;
+ 				h = pix.Height;
+ 				rate = (double)w / (double)h;
+ 				
+ 				if (h > w) {
+ 					w = (int)(THUMBNAIL_MAX_WIDTH * rate);
+ 					h = THUMBNAIL_MAX_WIDTH;
+ 				} else {
+ 					h = (int)(THUMBNAIL_MAX_WIDTH / rate);
+ 					w = THUMBNAIL_MAX_WIDTH;
+ 				}
+ 				scaled_pix = pix.ScaleSimple (w, h, Gdk.InterpType.Bilinear);
+ 				pix.Dispose();
+ 					
+ 				return scaled_pix;				                       
+ 			}
+ 		}
+ 		
 -		public void SetVideoEncoder(GccVideoEncoderType type){
 +		public void SetVideoEncoder(VideoEncoderType type){
  			capturer.SetVideoEncoder(type);
+ 			videoEncoder = type;
  		}
  		
 -		public void SetAudioEncoder(GccAudioEncoderType type){
 +		public void SetAudioEncoder(AudioEncoderType type){
  			capturer.SetAudioEncoder(type);
+ 			audioEncoder = type;
  		}
  		
 -		public void SetVideoMuxer(GccVideoMuxerType type){
 +		public void SetVideoMuxer(VideoMuxerType type){
  			capturer.SetVideoMuxer(type);
+ 			videoMuxer = type;
+ 		}
+ 		
+ 		private void SetProperties(){
+ 			capturer.OutputFile = outputFile;
+ 			capturer.OutputHeight = outputHeight;
+ 			capturer.OutputWidth = outputWidth;
+ 			capturer.SetVideoEncoder(videoEncoder);
+ 			capturer.SetAudioEncoder(audioEncoder);
+ 			capturer.SetVideoMuxer(videoMuxer);	
+ 			capturer.VideoBitrate = videoBitrate;
+ 			capturer.AudioBitrate = audioBitrate;
  		}
  
  		protected virtual void OnRecbuttonClicked (object sender, System.EventArgs e)
  		{
- 			Start();			
 -			Start();
 -			recbutton.Visible = false;
 -			pausebutton.Visible = true;
 -			stopbutton.Visible = true;
++			Start();	
  		}
  
  		protected virtual void OnPausebuttonClicked (object sender, System.EventArgs e)
  		{
- 			Pause();						
 -			TogglePause();
 -			recbutton.Visible = true;
 -			pausebutton.Visible = false;			
++			TogglePause();						
  		}
  
  		protected virtual void OnStopbuttonClicked (object sender, System.EventArgs e)
diff --cc CesarPlayer/Makefile.am
index e7235e4,f90fce1..1b60e8d
--- a/CesarPlayer/Makefile.am
+++ b/CesarPlayer/Makefile.am
@@@ -62,15 -73,32 +62,17 @@@ FILES = 
  	Utils/FramesCapturer.cs \
  	Utils/IMetadataReader.cs \
  	Utils/TimeString.cs \
+ 	Capturer/CaptureProperties.cs \
 -	Capturer/GccAudioEncoderType.cs \
 -	Capturer/GccError.cs \
 -	Capturer/GccType.cs \
 -	Capturer/GccVideoEncoderType.cs \
 -	Capturer/GccVideoMuxerType.cs \
  	Capturer/GstCameraCapturer.cs \
 -	Capturer/ErrorHandler.cs \
  	Capturer/FakeCapturer.cs \
  	Capturer/ICapturer.cs \
+ 	Capturer/LiveSourceTimer.cs \
  	Capturer/ObjectManager.cs \
 -	Editor/ErrorHandler.cs \
 -	Editor/IVideoEditor.cs \
 -	Editor/AudioQuality.cs \
 -	Editor/VideoQuality.cs \
 -	Editor/PercentCompletedHandler.cs \
  	Editor/GstVideoSplitter.cs \
 +	Editor/IVideoEditor.cs \
 +	Editor/IVideoSplitter.cs \
  	Editor/VideoSegment.cs \
  	Editor/EditorState.cs \
 -	Editor/VideoFormat.cs \
 -	Editor/VideoMuxer.cs \
 -	Editor/VideoCodec.cs \
 -	Editor/AudioCodec.cs \
 -	Editor/IVideoSplitter.cs \
 -	Editor/VideoSplitterType.cs \
  	Utils/MediaFile.cs \
  	Utils/PreviewMediaFile.cs
  
diff --cc LongoMatch/Gui/Component/ProjectDetailsWidget.cs
index beaa228,9df1ed5..6180925
--- a/LongoMatch/Gui/Component/ProjectDetailsWidget.cs
+++ b/LongoMatch/Gui/Component/ProjectDetailsWidget.cs
@@@ -29,7 -29,7 +29,8 @@@ using LongoMatch.Gui.Popup
  using LongoMatch.Gui.Dialog;
  using LongoMatch.TimeNodes;
  using LongoMatch.Video.Utils;
- 
+ using LongoMatch.Video.Capturer;
++using LongoMatch.Video.Common;
  
  namespace LongoMatch.Gui.Component
  {
@@@ -218,7 -245,50 +246,50 @@@
  				return visitorcombobox.ActiveText + ".tem";
  			}
  		}
- 
+ 		
+ 		public CapturePropertiesStruct CaptureProperties{
+ 			get{
+ 				CapturePropertiesStruct s = new CapturePropertiesStruct();
+ 				s.AudioBitrate = (uint)audiobitratespinbutton.Value;
+ 				s.VideoBitrate = (uint)videobitratespinbutton.Value;
+ 				s.AudioDevice = audiodevicecombobox.ActiveText;
+ 				s.VideoDevice =  videodevicecombobox.ActiveText;
+ 				switch (sizecombobox.ActiveText){
+ 					/* FIXME: Don't harcode size values */
+ 					case PAL_FORMAT:
+ 						s.Width = 640;
+ 						s.Height = 480;
+ 						break;
+ 					case PAL_1_2_FORMAT:
+ 						s.Width = 480;
+ 						s.Height = 320;
+ 						break;
+ 					case PAL_3_4_FORMAT:
+ 						s.Width = 320;
+ 						s.Height = 240;
+ 						break;
+ 				}
+ 				switch (videoformatcombobox.ActiveText){
+ 					case AVI:
 -						s.VideoEncoder = GccVideoEncoderType.Xvid;
 -						s.AudioEncoder = GccAudioEncoderType.Mp3;
 -						s.Muxer = GccVideoMuxerType.Avi;
++						s.VideoEncoder = VideoEncoderType.Xvid;
++						s.AudioEncoder = AudioEncoderType.Mp3;
++						s.Muxer = VideoMuxerType.Avi;
+ 						break;
+ 					case MP4:
 -						s.VideoEncoder = GccVideoEncoderType.H264;
 -						s.AudioEncoder = GccAudioEncoderType.Aac;
 -						s.Muxer = GccVideoMuxerType.Mp4;
++						s.VideoEncoder = VideoEncoderType.H264;
++						s.AudioEncoder = AudioEncoderType.Aac;
++						s.Muxer = VideoMuxerType.Mp4;
+ 						break;
+ 					case OGG:
 -						s.VideoEncoder = GccVideoEncoderType.Theora;
 -						s.AudioEncoder = GccAudioEncoderType.Vorbis;
 -						s.Muxer = GccVideoMuxerType.Ogg;
++						s.VideoEncoder = VideoEncoderType.Theora;
++						s.AudioEncoder = AudioEncoderType.Vorbis;
++						s.Muxer = VideoMuxerType.Ogg;
+ 						break;
+ 				}
+ 				return s;
+ 			}
+ 		}
+ 		
  		public void SetProject(Project project) {
  			this.project = project;
  			mFile = project.File;
diff --cc LongoMatch/Gui/MainWindow.cs
index 3586894,e2b0b72..ed49ec7
--- a/LongoMatch/Gui/MainWindow.cs
+++ b/LongoMatch/Gui/MainWindow.cs
@@@ -18,27 -18,20 +18,22 @@@
  //
  //
  
- using System;
- using Gtk;
- using Mono.Unix;
- using System.IO;
- using GLib;
- using System.Threading;
  using Gdk;
+ using GLib;
+ using Gtk;
  using LongoMatch.Common;
  using LongoMatch.DB;
- using LongoMatch.TimeNodes;
  using LongoMatch.Gui.Dialog;
- using LongoMatch.Gui.Popup;
- using LongoMatch.Video;
+ using LongoMatch.Handlers;
+ using LongoMatch.TimeNodes;
+ using LongoMatch.Utils;
  using LongoMatch.Video.Capturer;
 +using LongoMatch.Video.Common;
 +using LongoMatch.Video.Player;
  using LongoMatch.Video.Utils;
- using LongoMatch.Updates;
- using LongoMatch.Utils;
- using LongoMatch.IO;
- using LongoMatch.Handlers;
+ using Mono.Unix;
+ using System;
+ using System.IO;
  using System.Reflection;
  
  
@@@ -66,6 -58,6 +60,7 @@@ namespace LongoMatch.Gu
  			this.Build();
  
  			/*Updater updater = new Updater();
++			A
  			updater.NewVersion += new LongoMatch.Handlers.NewVersionHandler(OnUpdate);
  			updater.Run();*/
  			
@@@ -503,15 -541,9 +547,15 @@@
  					case Constants.TOGGLE_PLAY:
  						playerbin1.TogglePlay();
  						break;			
 -				}					
 +				}	
 +			} else {
 +				switch (key){
 +					case Constants.TOGGLE_PLAY:
- 						capturerBin.ToggleCapture();
++						capturerBin.TogglePause();
 +						break;			
 +				}	
  			}
 -			return base.OnKeyPressEvent(evnt);
 +			return ret;
  		}
  
  		protected virtual void OnTimeNodeSelected(LongoMatch.TimeNodes.MediaTimeNode tNode)
@@@ -537,13 -569,23 +581,20 @@@
  		{
  			drawingtoolbox1.Visible = DrawingToolAction.Active;
  			drawingtoolbox1.DrawingVisibility = DrawingToolAction.Active;
 -		}		
 -	
 -		protected virtual void OnUnrealized(object sender, System.EventArgs e) {
 -			CloseAndQuit();
  		}
 -
 -		protected virtual void OnDeleteEvent(object o, Gtk.DeleteEventArgs args)
 +	
 +		protected override bool OnDeleteEvent (Gdk.Event evnt)
  		{
 -			CloseAndQuit();
 +			CloseAndQuit();	
 +			return true;
  		}
- 		#endregion			
+ 		
 -		protected virtual void OnCapturerBinError (object o, LongoMatch.Video.Capturer.ErrorArgs args)
++		protected virtual void OnCapturerBinError (object o, ErrorArgs args)
+ 		{
+ 			MessagePopup.PopupMessage(this, MessageType.Info,
+ 			                          Catalog.GetString("An error occured in the video capturer and the current project will be closed:")+"\n" +args.Message);
+ 			CloseOpenedProject(true);
+ 		}
+ 		#endregion	
  	}
- }
+ }
diff --cc LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
index 9cf965f,c968012..fbceab2
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@@ -436,8 -446,9 +445,9 @@@ namespace LongoMatch.Gui 
              this.ImportProjectAction.Activated += new System.EventHandler(this.OnImportProjectActionActivated);
              this.FreeCaptureModeAction.Toggled += new System.EventHandler(this.OnViewToggled);
              this.treewidget1.TimeNodeSelected += new LongoMatch.Handlers.TimeNodeSelectedHandler(this.OnTimeNodeSelected);
 -            this.playerbin1.Error += new LongoMatch.Video.Handlers.ErrorHandler(this.OnPlayerbin1Error);
 -            this.playerbin1.SegmentClosedEvent += new LongoMatch.Video.Handlers.SegmentClosedHandler(this.OnSegmentClosedEvent);
 -            this.capturerBin.Error += new LongoMatch.Video.Capturer.ErrorHandler(this.OnCapturerBinError);
 +            this.playerbin1.Error += new LongoMatch.Video.Common.ErrorHandler(this.OnPlayerbin1Error);
 +            this.playerbin1.SegmentClosedEvent += new LongoMatch.Video.Common.SegmentClosedHandler(this.OnSegmentClosedEvent);
++            this.capturerBin.Error += new LongoMatch.Video.Common.ErrorHandler(this.OnCapturerBinError);
              this.timelinewidget1.TimeNodeSelected += new LongoMatch.Handlers.TimeNodeSelectedHandler(this.OnTimeNodeSelected);
          }
      }
diff --cc LongoMatch/gtk-gui/gui.stetic
index 5c5f7c0,6b8f711..28e8b69
--- a/LongoMatch/gtk-gui/gui.stetic
+++ b/LongoMatch/gtk-gui/gui.stetic
@@@ -2034,7 -2272,7 +2276,7 @@@
        </widget>
      </child>
    </widget>
--  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.CategoryProperties" design-size="284 118">
++  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.CategoryProperties" design-size="284 120">
      <property name="MemberName" />
      <child>
        <widget class="Gtk.VBox" id="vbox3">
diff --cc LongoMatch/gtk-gui/objects.xml
index ab15f4d,20e4b9e..a9f72c3
--- a/LongoMatch/gtk-gui/objects.xml
+++ b/LongoMatch/gtk-gui/objects.xml
@@@ -174,18 -174,14 +174,6 @@@
      <itemgroups />
      <signals />
    </object>
--  <object type="LongoMatch.Gui.Component.ProjectListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
--    <itemgroups />
--    <signals>
--      <itemgroup label="ProjectListWidget Signals">
--        <signal name="ProjectSelectedEvent" />
--      </itemgroup>
--    </signals>
--  </object>
-   <object type="LongoMatch.Gui.Component.PlayerProperties" palette-category="General" allow-children="false" base-type="Gtk.Bin">
-     <itemgroups />
-     <signals />
-   </object>
    <object type="LongoMatch.Gui.Component.ProjectTemplateWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
      <itemgroups>
        <itemgroup label="ProjectTemplateWidget Properties">
@@@ -244,6 -230,16 +222,30 @@@
        </itemgroup>
      </signals>
    </object>
+   <object type="LongoMatch.Gui.Component.ButtonsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
+     <itemgroups />
+     <signals>
+       <itemgroup label="ButtonsWidget Signals">
+         <signal name="NewMarkEvent" />
+         <signal name="NewMarkStartEvent" />
+         <signal name="NewMarkStopEvent" />
+       </itemgroup>
+     </signals>
+   </object>
++  <object type="LongoMatch.Gui.Component.PlayerProperties" palette-category="General" allow-children="false" base-type="Gtk.Bin">
++    <itemgroups />
++    <signals />
++  </object>
++  <object type="LongoMatch.Gui.Component.PlayListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
++    <itemgroups />
++    <signals>
++      <itemgroup label="PlayListWidget Signals">
++        <signal name="PlayListNodeSelected" />
++        <signal name="ApplyCurrentRate" />
++        <signal name="Progress" />
++      </itemgroup>
++    </signals>
++  </object>
    <object type="LongoMatch.Gui.Component.ProjectDetailsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
      <itemgroups>
        <itemgroup label="ProjectDetailsWidget Properties">
@@@ -263,13 -259,17 +265,11 @@@
        </itemgroup>
      </signals>
    </object>
-   <object type="LongoMatch.Gui.Component.ButtonsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
 -  <object type="LongoMatch.Gui.Component.PlayerProperties" palette-category="General" allow-children="false" base-type="Gtk.Bin">
 -    <itemgroups />
 -    <signals />
 -  </object>
 -  <object type="LongoMatch.Gui.Component.PlayListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
++  <object type="LongoMatch.Gui.Component.ProjectListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
      <itemgroups />
      <signals>
-       <itemgroup label="ButtonsWidget Signals">
-         <signal name="NewMarkEvent" />
-         <signal name="NewMarkStartEvent" />
-         <signal name="NewMarkStopEvent" />
 -      <itemgroup label="PlayListWidget Signals">
 -        <signal name="PlayListNodeSelected" />
 -        <signal name="ApplyCurrentRate" />
 -        <signal name="Progress" />
++      <itemgroup label="ProjectListWidget Signals">
++        <signal name="ProjectSelectedEvent" />
        </itemgroup>
      </signals>
    </object>
diff --cc libcesarplayer/src/gst-camera-capturer.c
index 57e505d,afce3af..dec31e4
--- a/libcesarplayer/src/gst-camera-capturer.c
+++ b/libcesarplayer/src/gst-camera-capturer.c
@@@ -541,15 -940,16 +940,16 @@@ voi
  gst_camera_capturer_start (GstCameraCapturer * gcc)
  {
    g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc));
-   g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "user-start", 0, 0);
+   g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-start", 0,
+       0);
  }
  
- 
  void
 -gst_camera_capturer_toggle_pause (GstCameraCapturer * gcc)
 +gst_camera_capturer_pause (GstCameraCapturer * gcc)
  {
    g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc));
-   g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "user-pause", 0, 0);
+   g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-pause", 0,
+       0);
  }
  
  void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]