FastLED 3.10.6
Loading...
Searching...
No Matches

◆ removeDriver()

bool fl::ChannelManager::removeDriver ( fl::shared_ptr< IChannelDriver > driver)

Remove a driver from the manager.

Parameters
driverShared pointer to the driver to remove
Returns
true if driver was found and removed, false if not found
Note
Emits FL_WARN if driver is not found
Useful for test cleanup

Definition at line 203 of file manager.cpp.hpp.

203 {
204 if (!driver) {
205 FL_WARN("ChannelManager::removeDriver() - Null driver provided");
206 return false;
207 }
208
209 // Find and remove the driver from the list
210 for (size_t i = 0; i < mDrivers.size(); ++i) {
211 if (mDrivers[i].driver == driver) {
212 FL_DBG("ChannelManager: Removing driver '" << mDrivers[i].name << "'");
213
214 mDrivers[i].driver->setPollNeededCallback(IChannelDriver::PollNeededCallback());
215
216 // Remove using vector::erase (preserves sort order)
217 mDrivers.erase(mDrivers.begin() + i);
218 return true; // Engine found and removed
219 }
220 }
221
222 // Engine not found
223 FL_WARN("ChannelManager::removeDriver() - Engine %s not found in registry", driver.get());
224 return false;
225}
fl::vector< EngineEntry > mDrivers
Shared drivers sorted by priority descending (higher values first)
Definition manager.h:321
T * get() const FL_NO_EXCEPT
Definition shared_ptr.h:334
#define FL_WARN(...)
Definition log.h:440
#define FL_DBG
Definition log.h:564

References FL_DBG, FL_WARN, fl::shared_ptr< T >::get(), and mDrivers.

+ Here is the call graph for this function: