mitsuhiko /
gnome-record-screen
(http://dev.pocoo.org/)
Mirror of the gnome-record-screen repository on pocoo.org GNOME Record Screen is a screencast application for Linux written in C# using GTK# and GStreamer.
Clone URL : http://bitbucket.org/mitsuhiko/gnome-record-screen/ (size: 343.2 KB)
| commit 4: | 6dfb9d724bb4 |
| parent 3: | 37a08da4def7 |
| branch: | default |
Changed (Δ35.8 KB):
.hgignore (1 lines added, 1 lines removed)
GNOME-Record-Screen.userprefs (20 lines added, 12 lines removed)
GNOME-Record-Screen/GNOME-Record-Screen.mdp (5 lines added, 2 lines removed)
GNOME-Record-Screen/GNOME-Record-Screen.pidb (binary file changed)
GNOME-Record-Screen/gtk-gui/Gnome.RecordScreen.UI.MainWindow.cs (2 lines added, 2 lines removed)
GNOME-Record-Screen/gtk-gui/gui.stetic (2 lines added, 3 lines removed)
GNOME-Record-Screen/src/AudioEncoder.cs (54 lines added, 0 lines removed)
GNOME-Record-Screen/src/AudioEncoderImplementations.cs (62 lines added, 0 lines removed)
GNOME-Record-Screen/src/Main.cs (1 lines added, 1 lines removed)
GNOME-Record-Screen/src/ScreenRecorder.cs (205 lines added, 30 lines removed)
GNOME-Record-Screen/src/UI/MainWindow.cs (68 lines added, 7 lines removed)
GNOME-Record-Screen/src/UI/MpegConfigurationPane.cs (1 lines added, 1 lines removed)
GNOME-Record-Screen/src/UI/SaveDialog.cs (44 lines added, 8 lines removed)
GNOME-Record-Screen/src/Utils.cs (102 lines added, 23 lines removed)
GNOME-Record-Screen/src/VideoEncoder.cs (169 lines added, 0 lines removed)
GNOME-Record-Screen/src/VideoEncoderImplementations.cs (115 lines added, 0 lines removed)
GNOME-Record-Screen/src/VideoEncoders.cs
librecordscreen/main.c (1 lines added, 1 lines removed)
Up to file-list GNOME-Record-Screen.userprefs:
1 |
1 |
<UserCombinePreferences version="1.0" filename="/home/mitsuhiko/Development/GNOME-Record-Screen/GNOME-Record-Screen.mds"> |
2 |
2 |
<Files> |
3 |
<File name="Welcome" /> |
|
4 |
<File name="GNOME-Record-Screen/src/UI/MainWindow.cs" line="172" column="76" /> |
|
5 |
<File name="GNOME-Record-Screen/src/U |
|
3 |
<File name="GNOME-Record-Screen/src/UI/MainWindow.cs" line="33" column="30" /> |
|
4 |
<File name="GNOME-Record-Screen/src/Utils.cs" line="141" column="28" /> |
|
6 |
5 |
<File name="GNOME-Record-Screen/src/UI/SaveDialog.cs" line="50" column="2" /> |
7 |
<File name="GNOME-Record-Screen/src/UI/RecordingAreaSelector.cs" line="78" column="55" /> |
|
8 |
<File name="GNOME-Record-Screen/src/VideoEncoders.cs" line="139" column="41" /> |
|
9 |
<File name="GNOME-Record-Screen/src/UI/H264ConfigurationPane.cs" line="1 |
|
6 |
<File name="GNOME-Record-Screen/src/UI/H264ConfigurationPane.cs" line="18" column="13" /> |
|
7 |
<File name="GNOME-Record-Screen/src/ScreenRecorder.cs" line="264" column="67" /> |
|
8 |
<File name="GNOME-Record-Screen/src/VideoEncoders.cs" line="75" column="31" /> |
|
9 |
<File name="GNOME-Record-Screen/src/UI/TheoraConfigurationPane.cs" line="19" column="3" /> |
|
10 |
<File name="GNOME-Record-Screen/src/UI/MpegConfigurationPane.cs" line="19" column="34" /> |
|
10 |
11 |
</Files> |
11 |
12 |
<Views> |
12 |
13 |
<ViewMemento id="ProjectPad"> |
13 |
14 |
<Node expanded="True"> |
14 |
15 |
<Node name="GNOME-Record-Screen" expanded="True"> |
15 |
<Node name=" |
|
16 |
<Node name="References" expanded="True" /> |
|
16 |
17 |
<Node name="src" expanded="True"> |
17 |
<Node name="UI" expanded="True"> |
|
18 |
<Node name="MainWindow.cs" selected="True" /> |
|
19 |
< |
|
18 |
<Node name="UI" expanded="True" /> |
|
19 |
<Node name="VideoEncoders.cs" selected="True" /> |
|
20 |
20 |
</Node> |
21 |
21 |
</Node> |
22 |
22 |
<Node name="librecordscreen" expanded="True" /> |
23 |
23 |
</Node> |
24 |
24 |
</ViewMemento> |
25 |
25 |
<ViewMemento id="ClassPad"> |
26 |
<Node expanded="True" |
|
26 |
<Node expanded="True"> |
|
27 |
<Node name="GNOME-Record-Screen" expanded="True"> |
|
28 |
<Node name="Gnome" expanded="True"> |
|
29 |
<Node name="RecordScreen" expanded="True"> |
|
30 |
<Node name="VideoContainer" selected="True" /> |
|
31 |
</Node> |
|
32 |
</Node> |
|
33 |
</Node> |
|
34 |
</Node> |
|
27 |
35 |
</ViewMemento> |
28 |
36 |
</Views> |
29 |
37 |
<Properties> |
30 |
<Property key="ActiveWindow" value="/home/mitsuhiko/Development/GNOME-Record-Screen/GNOME-Record-Screen/src/ |
|
38 |
<Property key="ActiveWindow" value="/home/mitsuhiko/Development/GNOME-Record-Screen/GNOME-Record-Screen/src/VideoEncoders.cs" /> |
|
31 |
39 |
<Property key="ActiveConfiguration" value="Debug" /> |
32 |
40 |
</Properties> |
33 |
41 |
</UserCombinePreferences> |
Up to file-list GNOME-Record-Screen/GNOME-Record-Screen.mdp:
26 |
26 |
<File name="src/Utils.cs" subtype="Code" buildaction="Compile" /> |
27 |
27 |
<File name="src/UI/RecordingAreaSelector.cs" subtype="Code" buildaction="Compile" /> |
28 |
28 |
<File name="src/UI/SaveDialog.cs" subtype="Code" buildaction="Compile" /> |
29 |
<File name="src/VideoEncoder |
|
29 |
<File name="src/VideoEncoder.cs" subtype="Code" buildaction="Compile" /> |
|
30 |
30 |
<File name="src/UI/H264ConfigurationPane.cs" subtype="Code" buildaction="Compile" /> |
31 |
31 |
<File name="gtk-gui/objects.xml" subtype="Code" buildaction="EmbedAsResource" /> |
32 |
32 |
<File name="gtk-gui/Gnome.RecordScreen.UI.H264ConfigurationPane.cs" subtype="Code" buildaction="Compile" /> |
34 |
34 |
<File name="gtk-gui/Gnome.RecordScreen.UI.TheoraConfigurationPane.cs" subtype="Code" buildaction="Compile" /> |
35 |
35 |
<File name="src/UI/MpegConfigurationPane.cs" subtype="Code" buildaction="Compile" /> |
36 |
36 |
<File name="gtk-gui/Gnome.RecordScreen.UI.MpegConfigurationPane.cs" subtype="Code" buildaction="Compile" /> |
37 |
<File name="src/AudioEncoder.cs" subtype="Code" buildaction="Compile" /> |
|
38 |
<File name="src/VideoEncoderImplementations.cs" subtype="Code" buildaction="Compile" /> |
|
39 |
<File name="src/AudioEncoderImplementations.cs" subtype="Code" buildaction="Compile" /> |
|
37 |
40 |
</Contents> |
38 |
41 |
<References> |
39 |
42 |
<ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" /> |
44 |
47 |
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> |
45 |
48 |
<ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" /> |
46 |
49 |
<ProjectReference type="Gac" localcopy="True" refto="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" /> |
47 |
<ProjectReference type=" |
|
50 |
<ProjectReference type="Gac" localcopy="True" refto="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> |
|
48 |
51 |
</References> |
49 |
52 |
<GtkDesignInfo gtkVersion="2.12.1"> |
50 |
53 |
<ExportedWidgets> |
Up to file-list GNOME-Record-Screen/GNOME-Record-Screen.pidb:
- |
Diff size exceeds threshold (18.1 KB) — view raw? |
Up to file-list GNOME-Record-Screen/gtk-gui/Gnome.RecordScreen.UI.MainWindow.cs:
| … | … | @@ -76,7 +76,7 @@ namespace Gnome.RecordScreen.UI { |
76 |
76 |
protected virtual void Build() { |
77 |
77 |
Stetic.Gui.Initialize(this); |
78 |
78 |
// Widget Gnome.RecordScreen.UI.MainWindow |
79 |
this.WidthRequest = |
|
79 |
this.WidthRequest = 600; |
|
80 |
80 |
this.HeightRequest = 400; |
81 |
81 |
this.Name = "Gnome.RecordScreen.UI.MainWindow"; |
82 |
82 |
this.Title = Mono.Unix.Catalog.GetString("GNOME Record Screen"); |
| … | … | @@ -422,7 +422,7 @@ namespace Gnome.RecordScreen.UI { |
422 |
422 |
if ((this.Child != null)) { |
423 |
423 |
this.Child.ShowAll(); |
424 |
424 |
} |
425 |
this.DefaultWidth = |
|
425 |
this.DefaultWidth = 608; |
|
426 |
426 |
this.DefaultHeight = 488; |
427 |
427 |
this.videoFormatConfigurationLabel.Hide(); |
428 |
428 |
this.stopButton.Hide(); |
Up to file-list GNOME-Record-Screen/gtk-gui/gui.stetic:
6 |
6 |
</configuration> |
7 |
7 |
<import> |
8 |
8 |
<widget-library name="../bin/Debug/GNOME-Record-Screen.exe" internal="true" /> |
9 |
<widget-library name="../../../../../../usr/lib/monodevelop/AddIns/MonoDevelop.GtkCore/libstetic.dll" /> |
|
10 |
9 |
</import> |
11 |
<widget class="Gtk.Window" id="Gnome.RecordScreen.UI.MainWindow" design-size=" |
|
10 |
<widget class="Gtk.Window" id="Gnome.RecordScreen.UI.MainWindow" design-size="608 488"> |
|
12 |
11 |
<property name="MemberName" /> |
13 |
<property name="WidthRequest"> |
|
12 |
<property name="WidthRequest">600</property> |
|
14 |
13 |
<property name="HeightRequest">400</property> |
15 |
14 |
<property name="Title" translatable="yes">GNOME Record Screen</property> |
16 |
15 |
<property name="WindowPosition">CenterOnParent</property> |
Up to file-list GNOME-Record-Screen/src/AudioEncoder.cs:
1 |
/** |
|
2 |
* AudioEncoders.cs |
|
3 |
* |
|
4 |
* :copyright: 2008 mitsuhiko. |
|
5 |
* :license: BSD |
|
6 |
*/ |
|
7 |
||
8 |
using System; |
|
9 |
using Gnome.RecordScreen.Implementations; |
|
10 |
||
11 |
namespace Gnome.RecordScreen { |
|
12 |
||
13 |
public enum AudioQuality { |
|
14 |
Low, |
|
15 |
Medium, |
|
16 |
High |
|
17 |
} |
|
18 |
||
19 |
public class AudioEncoder : IEncoder { |
|
20 |
private string gstKey; |
|
21 |
||
22 |
public AudioEncoder (string gstKey) |
|
23 |
{ |
|
24 |
this.gstKey = gstKey; |
|
25 |
} |
|
26 |
||
27 |
public virtual string GetEncoderArguments (AudioQuality quality) { |
|
28 |
return null; |
|
29 |
} |
|
30 |
||
31 |
public string GstKey { |
|
32 |
get { return gstKey; } |
|
33 |
} |
|
34 |
||
35 |
public virtual bool IsAvailable { |
|
36 |
get { return GStreamerInterface.SupportsObject (this); } |
|
37 |
} |
|
38 |
||
39 |
private static AudioEncoder vorbis = new VorbisAudioEncoder (); |
|
40 |
public static AudioEncoder Vorbis { |
|
41 |
get { return vorbis; } |
|
42 |
} |
|
43 |
||
44 |
private static AudioEncoder mp3 = new Mp3AudioEncoder (); |
|
45 |
public static AudioEncoder Mp3 { |
|
46 |
get { return mp3; } |
|
47 |
} |
|
48 |
||
49 |
public static AudioEncoder nullenc = new NullAudioEncoder (); |
|
50 |
public static AudioEncoder Null { |
|
51 |
get { return nullenc; } |
|
52 |
} |
|
53 |
} |
|
54 |
} |
Up to file-list GNOME-Record-Screen/src/AudioEncoderImplementations.cs:
1 |
/** |
|
2 |
* AudioEncoderImplementations.cs |
|
3 |
* |
|
4 |
* :copyright: 2008 mitsuhiko. |
|
5 |
* :license: BSD |
|
6 |
*/ |
|
7 |
||
8 |
using System; |
|
9 |
||
10 |
namespace Gnome.RecordScreen.Implementations { |
|
11 |
||
12 |
internal class VorbisAudioEncoder : AudioEncoder { |
|
13 |
||
14 |
public VorbisAudioEncoder () |
|
15 |
: base ("vorbisenc") |
|
16 |
{} |
|
17 |
||
18 |
public override string GetEncoderArguments (AudioQuality quality) |
|
19 |
{ |
|
20 |
switch (quality) { |
|
21 |
case AudioQuality.High: |
|
22 |
return "quality=0.7"; |
|
23 |
case AudioQuality.Medium: |
|
24 |
return "quality=0.5"; |
|
25 |
case AudioQuality.Low: |
|
26 |
return "quality=0.25"; |
|
27 |
} |
|
28 |
return null; |
|
29 |
} |
|
30 |
} |
|
31 |
||
32 |
internal class Mp3AudioEncoder : AudioEncoder { |
|
33 |
||
34 |
public Mp3AudioEncoder () |
|
35 |
: base ("lame") |
|
36 |
{} |
|
37 |
||
38 |
public override string GetEncoderArguments (AudioQuality quality) |
|
39 |
{ |
|
40 |
switch (quality) { |
|
41 |
case AudioQuality.High: |
|
42 |
return "quality=2"; |
|
43 |
case AudioQuality.Medium: |
|
44 |
return "quality=5"; |
|
45 |
case AudioQuality.Low: |
|
46 |
return "quality=8"; |
|
47 |
} |
|
48 |
return null; |
|
49 |
} |
|
50 |
} |
|
51 |
||
52 |
internal class NullAudioEncoder : AudioEncoder { |
|
53 |
||
54 |
public NullAudioEncoder () |
|
