summaryrefslogtreecommitdiff
path: root/udev.h
diff options
context:
space:
mode:
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