/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2019 Bernhard Trinnes . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef DEVICEPLUGINBOSE_H #define DEVICEPLUGINBOSE_H #include "devices/deviceplugin.h" #include "plugintimer.h" #include "soundtouch.h" #include "soundtouchtypes.h" #include #include class DevicePluginBose : public DevicePlugin { Q_OBJECT Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginbose.json") Q_INTERFACES(DevicePlugin) public: explicit DevicePluginBose(); ~DevicePluginBose() override; void init() override; void discoverDevices(DeviceDiscoveryInfo *info) override; void setupDevice(DeviceSetupInfo *info) override; void postSetupDevice(Device *device) override; void deviceRemoved(Device *device) override; void executeAction(DeviceActionInfo *info) override; private: PluginTimer *m_pluginTimer = nullptr; QHash m_soundTouch; QHash m_pendingActions; private slots: void onPluginTimer(); void onConnectionChanged(bool connected); void onDeviceNameChanged(); void onInfoObjectReceived(InfoObject infoObject); void onNowPlayingObjectReceived(NowPlayingObject nowPlaying); void onVolumeObjectReceived(VolumeObject volume); void onSourcesObjectReceived(SourcesObject sources); void onBassObjectReceived(BassObject bass); void onBassCapabilitiesObjectReceived(BassCapabilitiesObject bassCapabilities); void onGroupObjectReceived(GroupObject group); void onZoneObjectReceived(ZoneObject zone); }; #endif // DEVICEPLUGINBOSE_H