[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [patch] Video4Linux HAL class



Sorry for the deluge of mail lately, but I realized that I forgot -u in
my CVS diff and that I should probably be providing GNU-style changelog
entries to make your life easier.  

Attached, find the updated patch.

        * tools/device-manager/Const.py.in (BUS_NAMES): add video4linux,
        fix I2C capitalization
 
        * hald/linux/linux_osspec.c (visit_class_device): add support
        for video4linux, minor I2C fixes
        (visit_class_device): add support for video4linux
        (visit_class_device): use class device path for I2C 
        (handle_hotplug): hotplug support for video4linux
 
        * hald/Makefile.am (hald_SOURCES): Add
        linux_class_video4linux.[ch]
 
        * hald/linux/linux_class_video4linux.[ch]: new files


Matt.

On Thu, 2004-01-15 at 18:11, Matthew Mastracci wrote:
> The attached patch + new files adds virtual video4linux class devices to
> the HAL tree (and fixes a small bug with the i2c adapters not being
> removed properly on hotplug remove).  The V4L devices add the following
> multimedia capabilities to their parent device (ie: a bttv-based tv
> capture card):
> 
> V4L Device | Capability       | Name
> radio      | multimedia.radio | Video4Linux Radio Interface
> video      | multimedia.vidio | Video4Linux Video Input Interface
> vbi        | multimedia.vbi   | Video4Linux VBI Interface
> vout       | multimedia.vout  | Video4Linux Video Output Interface
> 
> Note that multimedia.vout is different than video.* - v4l video out
> devices are accessed through the v4l API.  
-- 
Matthew Mastracci <matt aclaro com>
Index: hald/Makefile.am
===================================================================
RCS file: /cvs/hal/hal/hald/Makefile.am,v
retrieving revision 1.10
diff -u -r1.10 Makefile.am
--- hald/Makefile.am	12 Jan 2004 23:30:36 -0000	1.10
+++ hald/Makefile.am	16 Jan 2004 05:50:14 -0000
@@ -29,6 +29,7 @@
         linux/linux_class_scsi.h        linux/linux_class_scsi.c        \
         linux/linux_class_net.h         linux/linux_class_net.c         \
         linux/linux_class_i2c_adapter.h linux/linux_class_i2c_adapter.c \
+        linux/linux_class_v4l.h         linux/linux_class_v4l.c         \
         linux/linux_class_input.h       linux/linux_class_input.c
 
 hald_SOURCES +=                                                         \
Index: hald/linux/linux_osspec.c
===================================================================
RCS file: /cvs/hal/hal/hald/linux/linux_osspec.c,v
retrieving revision 1.11
diff -u -r1.11 linux_osspec.c
--- hald/linux/linux_osspec.c	12 Jan 2004 23:30:36 -0000	1.11
+++ hald/linux/linux_osspec.c	16 Jan 2004 05:50:15 -0000
@@ -49,6 +49,7 @@
 #include "linux_class_block.h"
 #include "linux_class_scsi.h"
 #include "linux_class_i2c_adapter.h"
+#include "linux_class_v4l.h"
 #include "linux_class_net.h"
 #include "linux_class_input.h"
 
@@ -103,6 +104,8 @@
         visit_class_device_scsi_device(path, class_device);
     else if( strcmp(class_device->classname, "i2c-adapter")==0 )
         visit_class_device_i2c_adapter(path, class_device);
+    else if( strcmp(class_device->classname, "video4linux")==0 )
+        visit_class_device_v4l(path, class_device);
     else if( strcmp(class_device->classname, "block")==0 )
         visit_class_device_block(path, class_device);
     else if( strcmp(class_device->classname, "net")==0 )
@@ -214,7 +217,7 @@
                     {
                        printf("device->bus_id = %s, cls->name = %s\n", device->bus_id, class_device->name);
                        if ( strcmp(device->bus_id, class_device->name) == 0 )
-                            visit_class_device_i2c_adapter(path, class_device);
+                            visit_class_device_i2c_adapter(class_device->path, class_device);
                     }
                 }
                 sysfs_close_class(cls);
@@ -263,6 +266,7 @@
     linux_pci_init();
     linux_usb_init();
     linux_ide_init();
+    linux_class_v4l_init();
     linux_class_scsi_init();
     linux_class_block_init();
     linux_class_net_init();
@@ -315,6 +319,9 @@
     }
     sysfs_close_directory(dir);
 
+    /* visit class devices in /sys/class/video4linux */
+    visit_class("video4linux", TRUE);
+
     /* visit class devices in /sys/class/scsi_host */
     visit_class("scsi_host", FALSE);
 
@@ -485,7 +492,8 @@
               strcmp(subsystem, "block")==0 ||
               strcmp(subsystem, "scsi_host")==0 ||
               strcmp(subsystem, "scsi_device")==0 ||
-              strcmp(subsystem, "i2c-adapter")==0) )
+              strcmp(subsystem, "i2c-adapter")==0 ||
+              strcmp(subsystem, "video4linux")==0 ))
     {
         if( is_add )
         {
Index: tools/device-manager/Const.py.in
===================================================================
RCS file: /cvs/hal/hal/tools/device-manager/Const.py.in,v
retrieving revision 1.5
diff -u -r1.5 Const.py.in
--- tools/device-manager/Const.py.in	12 Jan 2004 23:30:36 -0000	1.5
+++ tools/device-manager/Const.py.in	16 Jan 2004 05:50:15 -0000
@@ -20,7 +20,8 @@
              "usbif"       : "USB Interface",
              "pci"         : "PCI",
              "i2c"         : "I2C",
-             "i2c_adapter" : "I2C adapter",
+             "i2c_adapter" : "I2C Adapter",
+             "video4linux" : "Video4Linux",
              "scsi_host"   : "SCSI Host",
              "scsi_device" : "SCSI",
              "block"       : "Block",

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]