]> git.scottworley.com Git - srec/blobdiff - srec.py
Make GUI control for webcam sharing
[srec] / srec.py
diff --git a/srec.py b/srec.py
index 4abe5817ac2be6826201dbfbddf0aab77c2c8ba4..4a9d5b95fdbb96ee39ed1cd207d10509aab60ed4 100644 (file)
--- a/srec.py
+++ b/srec.py
@@ -35,8 +35,8 @@ def make_filename() -> str:
 
 def video_source(stack: Gtk.Stack) -> list[str]:
     if stack.get_child_by_name('not_recording').get_first_child().get_active():
-        return ['-f', 'v4l2', '-i', '/dev/video0']
-    return ['-f', 'x11grab', '-i', ':0.0+0,0']
+        return ['-f', 'x11grab', '-i', ':0.0+0,0']
+    return ['-f', 'v4l2', '-i', '/dev/video0']
 
 
 def on_start_recording(_: Gtk.Button, stack: Gtk.Stack) -> None:
@@ -75,16 +75,27 @@ def make_button(label: str, action: Callable[[
     return button
 
 
+def make_share_control() -> Gtk.CheckButton:
+    can_share = os.path.exists('/sys/module/v4l2looback')
+    control = Gtk.CheckButton(
+        label='Share Webcam', sensitive=can_share, active=can_share)
+    control.set_margin_start(20)
+    return control
+
+
 def on_activate(app: Gtk.Application) -> None:
     win = Gtk.ApplicationWindow(application=app)
     win.set_title('SRec')
+    win.set_icon_name('srec')
+
     stack = Gtk.Stack()
 
     nr_box = Gtk.Box()
     nr_box.set_orientation(Gtk.Orientation.VERTICAL)
-    webcam = Gtk.CheckButton(label='Webcam', active=True)
-    nr_box.append(webcam)
-    nr_box.append(Gtk.CheckButton(label='Screen', group=webcam))
+    screen = Gtk.CheckButton(label='Screen')
+    nr_box.append(screen)
+    nr_box.append(Gtk.CheckButton(label='Webcam', active=True, group=screen))
+    nr_box.append(make_share_control())
     nr_box.append(make_button("Start Recording", on_start_recording, stack))
     stack.add_named(nr_box, "not_recording")