diff options
author | Lars Hanisch <dvb@flensrocker.de> | 2011-02-23 20:43:42 +0100 |
---|---|---|
committer | Lars Hanisch <dvb@flensrocker.de> | 2011-02-23 20:54:05 +0100 |
commit | 5ac5fdf0bef95b12d90dfca7de23332211beb706 (patch) | |
tree | 59925890d82e0c5810f0c5e4416f88e4326e3914 /udev.c | |
parent | e919a8339c29cd190fc4cd5a832317eb9f4451c6 (diff) | |
download | vdr-plugin-dynamite-5ac5fdf0bef95b12d90dfca7de23332211beb706.tar.gz vdr-plugin-dynamite-5ac5fdf0bef95b12d90dfca7de23332211beb706.tar.bz2 |
move reading of udev properties from the monitor to the attacher
Now they are recognized on devices present at startup.
Diffstat (limited to 'udev.c')
-rw-r--r-- | udev.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -115,3 +115,23 @@ void cUdev::Free(void) udev_unref(udev); udev = NULL; } + +cUdevDevice *cUdev::GetDeviceFromDevName(const char *DevName) +{ + if (DevName == NULL) + return NULL; + struct stat statbuf; + if (stat(DevName, &statbuf) < 0) + return NULL; + char type; + if (S_ISBLK(statbuf.st_mode)) + type = 'b'; + else if (S_ISCHR(statbuf.st_mode)) + type = 'c'; + else + return NULL; + udev_device *dev = udev_device_new_from_devnum(udev, type, statbuf.st_rdev); + if (dev == NULL) + return NULL; + return new cUdevDevice(dev); +} |