FastLED 3.10.8
Loading...
Searching...
No Matches

◆ canMatch()

HandleResult fl::IChannelDriver::canMatch ( const ChannelRequest & request) const
inline

Predicate: can this driver match a (single- or multi-pin) request?

Note
Delegates to free fl::canMatch on the published capability data (getDriverCapabilities / getPinGroups, which drivers override). Non-virtual on purpose: as a virtual it sat in every driver vtable, so the whole matcher linked into every sketch even though nothing calls it (#4800).
A single-pin request has exactly one bit set in request.data_pins (use ChannelRequest::singlePin() factory).

Definition at line 270 of file driver.h.

270 {
271 return fl::canMatch(getDriverCapabilities(), getPinGroups(), request);
272 }
virtual DriverCapabilities getDriverCapabilities() const FL_NO_EXCEPT
Driver-wide capability descriptor (declarative form).
Definition driver.h:243
virtual fl::span< const PinGroup > getPinGroups() const FL_NO_EXCEPT
Per-resource group enumeration.
Definition driver.h:258
HandleResult canMatch(const DriverCapabilities &caps, fl::span< const PinGroup > groups, const ChannelRequest &request) FL_NO_EXCEPT
Test a request (single-pin OR multi-pin ganged) against a driver's published capability data.

References fl::canMatch(), fl::FL_NO_EXCEPT, getDriverCapabilities(), and getPinGroups().

+ Here is the call graph for this function: