From 1e71a719648b46a4d5c20bc8dbead23c0450f819 Mon Sep 17 00:00:00 2001 From: Rafael Ortiz Date: Wed, 03 Aug 2011 16:56:04 +0000 Subject: Added-video-quality-option.patch sebastian silva --- 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: -- cgit v0.9.1