Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Silva <sebastian@sugarlabs.org>2011-07-30 05:29:37 (GMT)
committer Sebastian Silva <sebastian@sugarlabs.org>2011-07-30 05:38:12 (GMT)
commit7583e144f3f875b739498eba3659d7d85ac80373 (patch)
treec19f004aee7ee09f14fcc322f0bdbefbab6e60d5
parentac95fa5b0347d1a6f52c19a654c8124d8f6b79e2 (diff)
Added video quality option.
-rw-r--r--pippy_app.py37
1 files changed, 28 insertions, 9 deletions
diff --git a/pippy_app.py b/pippy_app.py
index d3f4c5a..6e07cce 100644
--- a/pippy_app.py
+++ b/pippy_app.py
@@ -31,6 +31,7 @@ from activity import ViewSourceActivity
from sugar.activity.activity import ActivityToolbox, \
get_bundle_path, get_bundle_name
from sugar.graphics.alert import NotifyAlert
+from sugar.graphics.combobox import ComboBox
SERVICE = "org.laptop.Screencast"
IFACE = SERVICE
@@ -77,11 +78,20 @@ class ScreencastActivity(ViewSourceActivity):
stopimage.set_from_icon_name("media-playback-stop", -1)
self.stop.set_image(stopimage)
- # Record sound checkbox
+ # Record sound checkbox and quality selector
+ hbox2 = gtk.HBox(spacing=50)
self.audiocheckbox = gtk.CheckButton(label="record sound")
self.audiocheckbox.set_active(True)
- audio = gtk.Alignment(0.5, 0, 0, 0)
- audio.add(self.audiocheckbox)
+ hbox2.add(self.audiocheckbox)
+ self.qualitycombo = ComboBox()
+ self.qualitycombo.append_item("0", "high quality video")
+ self.qualitycombo.append_item("1", "medium quality video")
+ self.qualitycombo.append_item("2", "low quality video")
+ self.qualitycombo.set_active(2)
+
+ hbox2.add(self.qualitycombo)
+ options = gtk.Alignment(0.5, 0, 0, 0)
+ options.add(hbox2)
# Status label.
self.status = gtk.Label(_("Status: Stopped"))
@@ -93,7 +103,7 @@ class ScreencastActivity(ViewSourceActivity):
valign.add(vbox)
vbox.pack_end(self.status, expand=True, padding=40)
vbox.pack_end(hbox, expand=True, fill=False)
- vbox.pack_end(audio, expand=True, padding=40)
+ vbox.pack_end(options, expand=True, padding=40)
self.set_canvas(valign)
self.show_all()
@@ -142,12 +152,20 @@ class ScreencastActivity(ViewSourceActivity):
self.stop.set_sensitive(True)
self.record.set_sensitive(False)
self.audiocheckbox.set_sensitive(False)
- if self.audiocheckbox.get_active():
- execargs = ["./recordmydesktop", "--no-frame", "--overwrite", "-o", OUTFILE]
- else:
- execargs = ["./recordmydesktop", "--no-frame", "--no-sound", "--overwrite", "-o", OUTFILE]
- self.childp = popen2.Popen3(execargs, "t", 0)
+ self.qualitycombo.set_sensitive(False)
+ execargs = ["./recordmydesktop", "--no-frame", "--overwrite"]
+ if not self.audiocheckbox.get_active():
+ execargs.append("--no-sound")
+ if self.qualitycombo.get_active()==0:
+ execargs.append("-v_quality") # in later versions seems to be --v_quality instead
+ execargs.append("0")
+ elif self.qualitycombo.get_active()==1:
+ execargs.append("-v_quality") # in later versions seems to be --v_quality instead
+ execargs.append("31")
+ execargs.append("-o")
+ execargs.append(OUTFILE)
print execargs
+ self.childp = popen2.Popen3(execargs, "t", 0)
flags = fcntl.fcntl(self.childp.childerr, fcntl.F_GETFL)
fcntl.fcntl(self.childp.childerr, fcntl.F_SETFL, flags|os.O_NONBLOCK)
self.timed_id = gobject.timeout_add(1000, self.check_status_cb)
@@ -169,6 +187,7 @@ class ScreencastActivity(ViewSourceActivity):
self.status.set_text("Status: Stopped")
self.record.set_sensitive(True)
self.audiocheckbox.set_sensitive(True)
+ self.qualitycombo.set_sensitive(True)
if self._jobject.metadata['title_set_by_user'] == '1':
title = self.metadata['title']
else: