2013-06-06 04:57:06 +01:00
/**
* Copyright 2013 Albert Vaca < albertvaka @ gmail . com >
*
* This program 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 ; either version 2 of
* the License or ( at your option ) version 3 or any later version
* accepted by the membership of KDE e . V . ( or its successor approved
* by the membership of KDE e . V . ) , which shall act as a proxy
* defined in Section 14 of version 3 of the license .
*
* This program 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
2019-03-23 16:29:26 +00:00
* along with this program . If not , see < https : //www.gnu.org/licenses/>.
2013-06-06 04:57:06 +01:00
*/
2013-08-13 04:14:46 +01:00
# include "kdeconnectplugin.h"
2015-03-14 04:19:39 +00:00
2015-09-07 17:54:11 +01:00
# include "core_debug.h"
2013-06-06 04:57:06 +01:00
2014-06-14 15:34:00 +01:00
struct KdeConnectPluginPrivate
{
2017-09-03 20:39:44 +01:00
Device * m_device ;
QString m_pluginName ;
QSet < QString > m_outgoingCapabilties ;
KdeConnectPluginConfig * m_config ;
2018-08-03 00:53:21 +01:00
QString iconName ;
2014-06-14 15:34:00 +01:00
} ;
2013-08-13 04:07:32 +01:00
2013-08-13 04:14:46 +01:00
KdeConnectPlugin : : KdeConnectPlugin ( QObject * parent , const QVariantList & args )
2013-07-28 21:00:45 +01:00
: QObject ( parent )
2014-06-14 15:34:00 +01:00
, d ( new KdeConnectPluginPrivate )
2013-07-26 15:21:19 +01:00
{
2017-09-03 20:39:44 +01:00
d - > m_device = qvariant_cast < Device * > ( args . at ( 0 ) ) ;
d - > m_pluginName = args . at ( 1 ) . toString ( ) ;
d - > m_outgoingCapabilties = args . at ( 2 ) . toStringList ( ) . toSet ( ) ;
d - > m_config = nullptr ;
2018-08-03 00:53:21 +01:00
d - > iconName = args . at ( 3 ) . toString ( ) ;
2015-03-14 04:19:39 +00:00
}
KdeConnectPluginConfig * KdeConnectPlugin : : config ( ) const
{
//Create on demand, because not every plugin will use it
2017-09-03 20:39:44 +01:00
if ( ! d - > m_config ) {
d - > m_config = new KdeConnectPluginConfig ( d - > m_device - > id ( ) , d - > m_pluginName ) ;
2015-03-14 04:19:39 +00:00
}
2017-09-03 20:39:44 +01:00
return d - > m_config ;
2013-08-13 04:07:32 +01:00
}
2014-06-14 13:31:31 +01:00
KdeConnectPlugin : : ~ KdeConnectPlugin ( )
{
2017-09-03 20:39:44 +01:00
if ( d - > m_config ) {
delete d - > m_config ;
2015-03-22 05:21:34 +00:00
}
2014-06-14 13:31:31 +01:00
}
2014-06-14 19:35:00 +01:00
const Device * KdeConnectPlugin : : device ( )
2013-08-13 04:07:32 +01:00
{
2017-09-03 20:39:44 +01:00
return d - > m_device ;
2013-06-06 04:57:06 +01:00
}
2014-01-15 16:36:01 +00:00
Device const * KdeConnectPlugin : : device ( ) const
{
2017-09-03 20:39:44 +01:00
return d - > m_device ;
2014-01-15 16:36:01 +00:00
}
2014-06-14 19:35:00 +01:00
2018-03-04 19:48:51 +00:00
bool KdeConnectPlugin : : sendPacket ( NetworkPacket & np ) const
2014-06-14 19:35:00 +01:00
{
2017-09-03 20:39:44 +01:00
if ( ! d - > m_outgoingCapabilties . contains ( np . type ( ) ) ) {
2018-03-04 19:48:51 +00:00
qCWarning ( KDECONNECT_CORE ) < < metaObject ( ) - > className ( ) < < " tried to send an unsupported packet type " < < np . type ( ) < < " . Supported: " < < d - > m_outgoingCapabilties ;
2014-06-14 19:35:00 +01:00
return false ;
}
2015-09-07 17:54:11 +01:00
// qCWarning(KDECONNECT_CORE) << metaObject()->className() << "sends" << np.type() << ". Supported:" << d->mOutgoingTypes;
2018-03-04 19:48:51 +00:00
return d - > m_device - > sendPacket ( np ) ;
2014-06-14 19:35:00 +01:00
}
2016-12-30 15:38:12 +00:00
QString KdeConnectPlugin : : dbusPath ( ) const
{
return { } ;
}
2018-08-03 00:53:21 +01:00
QString KdeConnectPlugin : : iconName ( ) const
{
return d - > iconName ;
}