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
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
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
{
Device * mDevice ;
2015-03-14 04:19:39 +00:00
QString mPluginName ;
2016-07-06 14:55:04 +01:00
QSet < QString > mOutgoingCapabilties ;
2015-03-14 04:19:39 +00:00
KdeConnectPluginConfig * mConfig ;
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
{
2015-03-14 04:19:39 +00:00
d - > mDevice = qvariant_cast < Device * > ( args . at ( 0 ) ) ;
d - > mPluginName = args . at ( 1 ) . toString ( ) ;
2016-07-06 14:55:04 +01:00
d - > mOutgoingCapabilties = args . at ( 2 ) . toStringList ( ) . toSet ( ) ;
2015-09-08 09:46:59 +01:00
d - > mConfig = nullptr ;
2015-03-14 04:19:39 +00:00
}
KdeConnectPluginConfig * KdeConnectPlugin : : config ( ) const
{
//Create on demand, because not every plugin will use it
if ( ! d - > mConfig ) {
d - > mConfig = new KdeConnectPluginConfig ( d - > mDevice - > id ( ) , d - > mPluginName ) ;
}
return d - > mConfig ;
2013-08-13 04:07:32 +01:00
}
2014-06-14 13:31:31 +01:00
KdeConnectPlugin : : ~ KdeConnectPlugin ( )
{
2015-03-22 05:21:34 +00:00
if ( d - > mConfig ) {
delete d - > mConfig ;
}
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
{
2014-06-14 15:34:00 +01:00
return d - > mDevice ;
2013-06-06 04:57:06 +01:00
}
2014-01-15 16:36:01 +00:00
Device const * KdeConnectPlugin : : device ( ) const
{
2014-06-14 15:34:00 +01:00
return d - > mDevice ;
2014-01-15 16:36:01 +00:00
}
2014-06-14 19:35:00 +01:00
bool KdeConnectPlugin : : sendPackage ( NetworkPackage & np ) const
{
2016-07-06 14:55:04 +01:00
if ( ! d - > mOutgoingCapabilties . contains ( np . type ( ) ) ) {
qCWarning ( KDECONNECT_CORE ) < < metaObject ( ) - > className ( ) < < " tried to send an unsupported package type " < < np . type ( ) < < " . Supported: " < < d - > mOutgoingCapabilties ;
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;
2014-06-14 19:35:00 +01:00
return d - > mDevice - > sendPackage ( np ) ;
}