diff options
Diffstat (limited to 'udev.h')
-rw-r--r-- | udev.h | 83 |
1 files changed, 44 insertions, 39 deletions
@@ -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 |