hyperion.ng
LedDeviceMultiLightpack.h
1 #pragma once
2 
3 // stl includes
4 #include <vector>
5 #include <cstdint>
6 #include <QStringList>
7 #include <QString>
8 
9 // libusb include
10 #include <libusb.h>
11 
12 // Hyperion includes
13 #include <leddevice/LedDevice.h>
14 #include "LedDeviceLightpack.h"
15 
20 {
21 public:
25  LedDeviceMultiLightpack(const QJsonObject &);
26 
30  virtual ~LedDeviceMultiLightpack();
31 
33  static LedDevice* construct(const QJsonObject &deviceConfig);
34 
40  int open();
41 
47  virtual int switchOff();
48 
49 private:
57  virtual int write(const std::vector<ColorRgb>& ledValues);
58 
59  static QStringList getLightpackSerials();
60  static QString getString(libusb_device * device, int stringDescriptorIndex);
61 
63  std::vector<LedDeviceLightpack *> _lightpacks;
64 };
static LedDevice * construct(const QJsonObject &deviceConfig)
constructs leddevice
Definition: LedDeviceMultiLightpack.cpp:35
Interface (pure virtual base class) for LedDevices.
Definition: LedDevice.h:32
LedDevice implementation for multiple lightpack devices.
Definition: LedDeviceMultiLightpack.h:19
virtual int switchOff()
Switch the leds off.
Definition: LedDeviceMultiLightpack.cpp:102
virtual ~LedDeviceMultiLightpack()
Destructor of the LedDevice; closes the output device if it is open.
Definition: LedDeviceMultiLightpack.cpp:27
int open()
Opens and configures the output device7.
Definition: LedDeviceMultiLightpack.cpp:40
LedDeviceMultiLightpack(const QJsonObject &)
Constructs specific LedDevice.
Definition: LedDeviceMultiLightpack.cpp:20