diff --git a/plugins/deviceplugins/deviceplugins.pro b/plugins/deviceplugins/deviceplugins.pro index c9704ca9..0c1a14eb 100644 --- a/plugins/deviceplugins/deviceplugins.pro +++ b/plugins/deviceplugins/deviceplugins.pro @@ -17,6 +17,7 @@ SUBDIRS += elro \ leynew \ tune \ udpcommander \ + kodi \ diff --git a/plugins/deviceplugins/kodi/devicepluginkodi.cpp b/plugins/deviceplugins/kodi/devicepluginkodi.cpp new file mode 100644 index 00000000..7f975e6d --- /dev/null +++ b/plugins/deviceplugins/kodi/devicepluginkodi.cpp @@ -0,0 +1,104 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015 Simon Stuerz * + * * + * This file is part of guh. * + * * + * Guh is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, version 2 of the License. * + * * + * Guh is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with guh. If not, see . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/*! + \page kodi.html + \title Kodi + + \ingroup plugins + \ingroup network + + + \chapter Plugin properties + Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} + and \l{Vendor}{Vendors} of this \l{DevicePlugin}. + + Each \l{DeviceClass} has a list of \l{ParamType}{paramTypes}, \l{ActionType}{actionTypes}, \l{StateType}{stateTypes} + and \l{EventType}{eventTypes}. The \l{DeviceClass::CreateMethod}{createMethods} parameter describes how the \l{Device} + will be created in the system. A device can have more than one \l{DeviceClass::CreateMethod}{CreateMethod}. + The \l{DeviceClass::SetupMethod}{setupMethod} describes the setup method of the \l{Device}. + The detailed implementation of each \l{DeviceClass} can be found in the source code. + + \note If a \l{StateType} has the parameter \tt{"writable": true}, an \l{ActionType} with the same uuid and \l{ParamType}{ParamTypes} + will be created automatically. + + \quotefile plugins/deviceplugins/udpcommander/devicepluginudpcommander.json +*/ + +#include "devicepluginkodi.h" +#include "plugin/device.h" +#include "plugininfo.h" + +DevicePluginKodi::DevicePluginKodi() +{ + +} + +DeviceManager::HardwareResources DevicePluginKodi::requiredHardware() const +{ + return DeviceManager::HardwareResourceNone; +} + +DeviceManager::DeviceSetupStatus DevicePluginKodi::setupDevice(Device *device) +{ + Q_UNUSED(device) + + return DeviceManager::DeviceSetupStatusSuccess; +} + +void DevicePluginKodi::deviceRemoved(Device *device) +{ + Q_UNUSED(device) +} + +DeviceManager::DeviceSetupStatus DevicePluginKodi::confirmPairing(const PairingTransactionId &pairingTransactionId, const DeviceClassId &deviceClassId, const ParamList ¶ms) +{ + Q_UNUSED(pairingTransactionId) + Q_UNUSED(deviceClassId) + Q_UNUSED(params) + + return DeviceManager::DeviceSetupStatusSuccess; +} + +DeviceManager::DeviceError DevicePluginKodi::discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) +{ + Q_UNUSED(params) + Q_UNUSED(deviceClassId) + + upnpDiscover(); + + return DeviceManager::DeviceErrorNoError; +} + +void DevicePluginKodi::upnpDiscoveryFinished(const QList &upnpDeviceDescriptorList) +{ + Q_UNUSED(upnpDeviceDescriptorList) + +} + +void DevicePluginKodi::networkManagerReplyReady(QNetworkReply *reply) +{ + Q_UNUSED(reply) +} + +void DevicePluginKodi::guhTimer() +{ + +} diff --git a/plugins/deviceplugins/kodi/devicepluginkodi.h b/plugins/deviceplugins/kodi/devicepluginkodi.h new file mode 100644 index 00000000..1801f924 --- /dev/null +++ b/plugins/deviceplugins/kodi/devicepluginkodi.h @@ -0,0 +1,55 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015 Simon Stuerz * + * * + * This file is part of guh. * + * * + * Guh is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, version 2 of the License. * + * * + * Guh is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with guh. If not, see . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef DEVICEPLUGINKODI_H +#define DEVICEPLUGINKODI_H + +#include "plugin/deviceplugin.h" + +#include +#include + +class DevicePluginKodi : public DevicePlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginkodi.json") + Q_INTERFACES(DevicePlugin) + +public: + explicit DevicePluginKodi(); + + DeviceManager::HardwareResources requiredHardware() const override; + DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; + void deviceRemoved(Device *device) override; + + DeviceManager::DeviceSetupStatus confirmPairing(const PairingTransactionId &pairingTransactionId, const DeviceClassId &deviceClassId, const ParamList ¶ms) override; + + DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) override; + void upnpDiscoveryFinished(const QList &upnpDeviceDescriptorList) override; + void networkManagerReplyReady(QNetworkReply *reply) override; + void guhTimer() override; + +private: + +private slots: + +}; + +#endif // DEVICEPLUGINKODI_H diff --git a/plugins/deviceplugins/kodi/devicepluginkodi.json b/plugins/deviceplugins/kodi/devicepluginkodi.json new file mode 100644 index 00000000..2d368b96 --- /dev/null +++ b/plugins/deviceplugins/kodi/devicepluginkodi.json @@ -0,0 +1,24 @@ +{ + "name": "Kodi", + "id": "e7186890-99fa-4c5b-8247-09c6d450d490", + "vendors": [ + { + "name": "Kodi", + "id": "447bf3d6-a86e-4636-9db0-8936c0e4d9e9", + "deviceClasses": [ + { + "deviceClassId": "d09953e3-c5bd-415b-973b-0d0bf2be3f69", + "name": "Kodi", + "createMethods": ["discovery"], + "paramTypes": [ + { + "name": "name", + "type": "QString", + "inputType": "TextLine" + } + ] + } + ] + } + ] +} diff --git a/plugins/deviceplugins/kodi/kodi.pro b/plugins/deviceplugins/kodi/kodi.pro new file mode 100644 index 00000000..152238cd --- /dev/null +++ b/plugins/deviceplugins/kodi/kodi.pro @@ -0,0 +1,10 @@ +include(../../plugins.pri) + +TARGET = $$qtLibraryTarget(guh_devicepluginkodi) + +SOURCES += \ + devicepluginkodi.cpp + +HEADERS += \ + devicepluginkodi.h +