]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
hwdb: Tag IR cameras as such 21130/head
authorBastien Nocera <hadess@hadess.net>
Tue, 26 Oct 2021 10:17:27 +0000 (12:17 +0200)
committerBastien Nocera <hadess@hadess.net>
Tue, 26 Oct 2021 22:14:41 +0000 (00:14 +0200)
So that front-ends can ignore them if they wish to.

See https://gitlab.gnome.org/GNOME/cheese/-/merge_requests/4

hwdb.d/70-cameras.hwdb [new file with mode: 0644]
hwdb.d/meson.build
hwdb.d/parse_hwdb.py
rules.d/70-camera.rules [new file with mode: 0644]
rules.d/meson.build

diff --git a/hwdb.d/70-cameras.hwdb b/hwdb.d/70-cameras.hwdb
new file mode 100644 (file)
index 0000000..3a84792
--- /dev/null
@@ -0,0 +1,25 @@
+# This file is part of systemd.
+#
+# Database for webcam and camera quirks.
+#
+# Permitted keys:
+#   Specify if a camera is an infra-red camera
+#   ID_INFRARED_CAMERA=1|0
+#   Specify if a camera is front or rear facing
+#   ID_CAMERA_DIRECTION=front|rear
+
+# Generic
+camera:usb:v*p*:name:*IR Camera*:
+ ID_INFRARED_CAMERA=1
+
+###########################################################
+# Philips
+###########################################################
+
+# Philips 346p1crh display
+camera:usb:v04f2pb612:name:*USB2.0 FHD UVC WebCam* IR Camer*:
+ ID_INFRARED_CAMERA=1
+ ID_CAMERA_DIRECTION=front
+
+camera:usb:v04f2pb612:name:*USB2.0 FHD UVC WebCam* USB2.0 F*:
+ ID_CAMERA_DIRECTION=front
index fc6ee7c64986aaf64f57161d137c068d0ca7dbed..8ff044131c029b754c34326ce01d9d8c52d81ad6 100644 (file)
@@ -28,6 +28,7 @@ hwdb_files_test = files('''
         60-seat.hwdb
         60-sensor.hwdb
         70-analyzers.hwdb
+        70-cameras.hwdb
         70-joystick.hwdb
         70-mouse.hwdb
         70-pointingstick.hwdb
index f385e526281ae8b77ff325da1357684f1ee7ce0d..941adf28f77b744e687e90137dfbd208aa62ffa5 100755 (executable)
@@ -74,6 +74,7 @@ TYPES = {'mouse':    ('usb', 'bluetooth', 'ps2', '*'),
          'keyboard': ('name', ),
          'sensor':   ('modalias', ),
          'ieee1394-unit-function' : ('node', ),
+         'camera':   ('usb'),
         }
 
 # Patterns that are used to set general properties on a device
@@ -167,6 +168,8 @@ def property_grammar():
              ('ID_VENDOR_FROM_DATABASE', name_literal),
              ('ID_MODEL_FROM_DATABASE', name_literal),
              ('ID_TAG_MASTER_OF_SEAT', Literal('1')),
+             ('ID_INFRARED_CAMERA', Or((Literal('0'), Literal('1')))),
+             ('ID_CAMERA_DIRECTION', Or(('front', 'rear'))),
             )
     fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
                    for name, val in props]
diff --git a/rules.d/70-camera.rules b/rules.d/70-camera.rules
new file mode 100644 (file)
index 0000000..b1053f2
--- /dev/null
@@ -0,0 +1,9 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION=="remove", GOTO="camera_end"
+
+SUBSYSTEM=="video4linux", ENV{ID_BUS}="usb" , \
+  IMPORT{builtin}="hwdb 'camera:usb:v$env{ID_VENDOR_ID}p$env{ID_MODEL_ID}:name:$attr{name}:'", \
+  GOTO="camera_end"
+
+LABEL="camera_end"
index 598649a562b1797d43b4bab5ef96ffdf7c12c47d..05c55a6b41e4d84144970003b32224dcf8de1df6 100644 (file)
@@ -19,6 +19,7 @@ rules = files('''
         60-persistent-v4l.rules
         60-sensor.rules
         60-serial.rules
+        70-camera.rules
         70-joystick.rules
         70-mouse.rules
         70-touchpad.rules