FastLED 3.9.15
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 181 of file manager.cpp.hpp.

181 {
182 if (!driver) {
183 FL_WARN("ChannelManager::removeDriver() - Null driver provided");
184 return false;
185 }
186
187 // Find and remove the driver from the list
188 for (size_t i = 0; i < mDrivers.size(); ++i) {
189 if (mDrivers[i].driver == driver) {
190 FL_DBG("ChannelManager: Removing driver '" << mDrivers[i].name << "'");
191
192 mDrivers[i].driver->setPollNeededCallback(IChannelDriver::PollNeededCallback());
193
194 // Remove using vector::erase (preserves sort order)
195 mDrivers.erase(mDrivers.begin() + i);
196 return true; // Engine found and removed
197 }
198 }
199
200 // Engine not found
201 FL_WARN("ChannelManager::removeDriver() - Engine " << driver.get() << " not found in registry");
202 return false;
203}
fl::vector< EngineEntry > mDrivers
Shared drivers sorted by priority descending (higher values first)
Definition manager.h:287
T * get() const FL_NOEXCEPT
Definition shared_ptr.h:334
#define FL_WARN(X)
Definition log.h:276
#define FL_DBG
Definition log.h:388

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

+ Here is the call graph for this function: