21 #ifndef PLUGINS_USBDMX_ASYNCPLUGINIMPL_H_
22 #define PLUGINS_USBDMX_ASYNCPLUGINIMPL_H_
28 #endif // HAVE_CONFIG_H
36 #include "libs/usb/Types.h"
37 #include "libs/usb/HotplugAgent.h"
40 #include "ola/thread/Future.h"
41 #include "olad/Preferences.h"
42 #include "plugins/usbdmx/PluginImplInterface.h"
43 #include "plugins/usbdmx/SyncronizedWidgetObserver.h"
44 #include "plugins/usbdmx/WidgetFactory.h"
49 class AsyncronousLibUsbAdaptor;
73 unsigned int debug_level,
90 typedef std::vector<class WidgetFactory*> WidgetFactories;
91 typedef std::map<ola::usb::USBDeviceID, class DeviceState*> USBDeviceMap;
95 const unsigned int m_debug_level;
96 std::auto_ptr<ola::usb::HotplugAgent> m_agent;
101 WidgetFactories m_widget_factories;
102 USBDeviceMap m_device_map;
105 struct libusb_device *device);
106 void SetupUSBDevice(libusb_device *device);
108 template <
typename W
idget>
109 bool StartAndRegisterDevice(Widget *widget,
Device *device);
118 #endif // PLUGINS_USBDMX_ASYNCPLUGINIMPL_H_
bool Stop()
Stop the implementation.
Definition: AsyncPluginImpl.cpp:140
The interface for the Nodle Widgets.
Definition: DMXCProjectsNodleU1.h:43
The EurolitePro Widget.
Definition: EurolitePro.h:42
The asynchronous libusb implementation.
Definition: AsyncPluginImpl.h:60
AsyncPluginImpl(PluginAdaptor *plugin_adaptor, Plugin *plugin, unsigned int debug_level, Preferences *preferences)
Create a new AsyncPluginImpl.
Definition: AsyncPluginImpl.cpp:90
bool NewWidget(class AnymauDMX *widget)
Called when a new AnymauDMX is added.
Definition: AsyncPluginImpl.cpp:165
bool Start()
Start the implementation.
Definition: AsyncPluginImpl.cpp:106
The interface for the Fadecandy Widgets.
Definition: ScanlimeFadecandy.h:49
EventType
Definition: HotplugAgent.h:47
Definition: PluginAdaptor.h:41
The interface for the Sunlite Widgets.
Definition: Sunlite.h:40
A LibUsbAdaptor for use with Asyncronous widgets.
Definition: LibUsbAdaptor.h:563
The interface for an implementation of the USB DMX plugin.
Definition: PluginImplInterface.h:40
The interface for the Velleman Widgets.
Definition: VellemanK8062.h:41
Definition: Preferences.h:145
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44
The base class for Anyma Widgets.
Definition: AnymauDMX.h:41