summaryrefslogtreecommitdiff
path: root/udev.h
diff options
context:
space:
mode:
authorLars Hanisch <dvb@flensrocker.de>2014-01-08 21:49:35 +0100
committerLars Hanisch <dvb@flensrocker.de>2014-01-08 21:49:35 +0100
commit6d80369a7f30e7f294493bfc53451ffb08a6a472 (patch)
treee0de1c3efedbcec77143f49e433c3bcd79ef4287 /udev.h
parent6122b5ebedb64db39ffc79289795735b6fc1918c (diff)
downloadvdr-plugin-dynamite-0.2.1.tar.gz
vdr-plugin-dynamite-0.2.1.tar.bz2
new version 0.2.1v0.2.1
- put cUdev classes into a namespace, since pvrinput uses the same code - add some vdr 2.1.3 compatibility stuff - remove an undetected NULL pointer dereference at udev monitor
Diffstat (limited to 'udev.h')
-rw-r--r--udev.h83
1 files changed, 44 insertions, 39 deletions
diff --git a/udev.h b/udev.h
index c062b98..985e18d 100644
--- a/udev.h
+++ b/udev.h
@@ -4,48 +4,53 @@
#include <libudev.h>
#include <vdr/tools.h>
+#include <vdr/thread.h>
-class cUdevListEntry {
-private:
- struct udev_list_entry *listEntry;
-public:
- cUdevListEntry(struct udev_list_entry *ListEntry);
- virtual ~cUdevListEntry(void);
-
- cUdevListEntry *GetNext(void) const;
- const char *GetName(void) const;
- const char *GetValue(void) const;
- };
+namespace dynamite {
+ class cUdevListEntry {
+ private:
+ struct udev_list_entry *listEntry;
+ public:
+ cUdevListEntry(struct udev_list_entry *ListEntry);
+ virtual ~cUdevListEntry(void);
+
+ cUdevListEntry *GetNext(void) const;
+ const char *GetName(void) const;
+ const char *GetValue(void) const;
+ };
-class cUdevDevice : public cListObject {
-private:
- struct udev_device *device;
- bool doUnref;
-public:
- cUdevDevice(udev_device *Device, bool DoUnref = true);
- virtual ~cUdevDevice(void);
- virtual int Compare(const cListObject &ListObject) const;
+ class cUdevDevice : public cListObject {
+ private:
+ struct udev_device *device;
+ bool doUnref;
+ public:
+ cUdevDevice(udev_device *Device, bool DoUnref = true);
+ virtual ~cUdevDevice(void);
+ virtual int Compare(const cListObject &ListObject) const;
- const char *GetAction(void) const;
- cUdevListEntry *GetDevlinksList(void) const;
- const char *GetDevnode(void) const;
- const char *GetDevpath(void) const;
- cUdevDevice *GetParent(void) const;
- const char *GetPropertyValue(const char *Key) const;
- const char *GetSubsystem(void) const;
- const char *GetSysname(void) const;
- const char *GetSyspath(void) const;
- };
+ const char *GetAction(void) const;
+ cUdevListEntry *GetDevlinksList(void) const;
+ const char *GetDevnode(void) const;
+ const char *GetDevpath(void) const;
+ cUdevDevice *GetParent(void) const;
+ const char *GetPropertyValue(const char *Key) const;
+ const char *GetSubsystem(void) const;
+ const char *GetSysname(void) const;
+ const char *GetSyspath(void) const;
+ };
-class cUdev {
-private:
- static struct udev *udev;
-public:
- static struct udev *Init(void);
- static void Free(void);
- static cUdevDevice *GetDeviceFromDevName(const char *DevName);
- static cUdevDevice *GetDeviceFromSysPath(const char *SysPath);
- static cList<cUdevDevice> *EnumDevices(const char *Subsystem, const char *Property, const char *Value);
- };
+ class cUdev {
+ private:
+ static cMutex udev_mutex;
+ static int udev_refcount; // newer libudev does this on its own
+ static struct udev *udev;
+ public:
+ static struct udev *Init(void);
+ static void Free(void);
+ static cUdevDevice *GetDeviceFromDevName(const char *DevName);
+ static cUdevDevice *GetDeviceFromSysPath(const char *SysPath);
+ static cList<cUdevDevice> *EnumDevices(const char *Subsystem, const char *Property, const char *Value);
+ };
+}
#endif // __DYNAMITEUDEV_H