21#ifndef PLUGINS_USBDMX_ASYNCPLUGINIMPL_H_
22#define PLUGINS_USBDMX_ASYNCPLUGINIMPL_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"
49class 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);
Definition PluginAdaptor.h:41
Definition Preferences.h:148
The base class for Anyma Widgets.
Definition AnymauDMX.h:41
The asynchronous libusb implementation.
Definition AsyncPluginImpl.h:60
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
AsyncPluginImpl(PluginAdaptor *plugin_adaptor, Plugin *plugin, unsigned int debug_level, Preferences *preferences)
Create a new AsyncPluginImpl.
Definition AsyncPluginImpl.cpp:90
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 interface for an implementation of the USB DMX plugin.
Definition PluginImplInterface.h:40
The interface for the Fadecandy Widgets.
Definition ScanlimeFadecandy.h:49
The interface for the Sunlite Widgets.
Definition Sunlite.h:40
The interface for the Velleman Widgets.
Definition VellemanK8062.h:41
A LibUsbAdaptor for use with Asyncronous widgets.
Definition LibUsbAdaptor.h:564
EventType
Definition HotplugAgent.h:47
The namespace containing all OLA symbols.
Definition Credentials.cpp:44