19 #ifndef MIR_UDEV_WRAPPER_H_ 20 #define MIR_UDEV_WRAPPER_H_ 47 ::udev*
const context;
53 virtual ~
Device() =
default;
58 virtual char const* subsystem()
const = 0;
59 virtual char const* devtype()
const = 0;
60 virtual char const* devpath()
const = 0;
61 virtual char const* devnode()
const = 0;
62 virtual char const* property(
char const *name)
const = 0;
82 void match_parent(
Device const& parent);
86 public std::iterator<std::input_iterator_tag, Device>
96 Device const* operator->()
const;
101 iterator (std::shared_ptr<Context>
const& ctx, udev_list_entry* entry);
105 std::shared_ptr<Context>
ctx;
106 udev_list_entry* entry;
108 std::shared_ptr<Device> current;
115 std::shared_ptr<Context>
const ctx;
116 udev_enumerate*
const enumerator;
138 void filter_by_subsystem(
std::
string const& subsystem);
139 void filter_by_subsystem_and_type(
std::
string const& subsystem,
std::
string const& devtype);
141 void process_events(
std::function<
void(
EventType,
Device const&)> const& handler) const;
144 udev_monitor* const monitor;
150 #endif // MIR_UDEV_WRAPPER_H_ All things Mir.
Definition: atomic_callback.h:25
pixel_iterator end(MirGraphicsRegion const ®ion)
Definition: multi_stream.cpp:156
Definition: wrapper.h:120
EventType
Definition: wrapper.h:123
Definition: wrapper.h:124
pixel_iterator begin(MirGraphicsRegion const ®ion)
Definition: multi_stream.cpp:151
Definition: wrapper.h:125
bool operator==(Device const &lhs, Device const &rhs)
Definition: udev_wrapper.cpp:88
::udev * ctx() const
Definition: udev_wrapper.cpp:241
Context()
Definition: udev_wrapper.cpp:224
std::shared_ptr< Device > device_from_syspath(std::string const &syspath)
Definition: udev_wrapper.cpp:236
Context & operator=(Context const &)=delete
Definition: wrapper.h:126
constexpr Width operator*(Scalar scale, Width const &w)
Definition: dimensions.h:148
~Context() noexcept
Definition: udev_wrapper.cpp:231
bool operator!=(Device const &lhs, Device const &rhs)
Definition: udev_wrapper.cpp:94