File indexing completed on 2024-05-05 03:50:35
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2009 Eckhart Wörner <ewoerner@kde.org> 0004 // 0005 0006 #include "MasterClient_p.h" 0007 0008 #include <QString> 0009 #include <QDBusMessage> 0010 #include <QDBusReply> 0011 #include <QDBusObjectPath> 0012 0013 #include "PositionProvider.h" 0014 0015 0016 0017 using namespace GeoCute; 0018 0019 static QString createClientPath() 0020 { 0021 SimpleDBusInterface masterInterface(serviceName, masterPathName, 0022 masterInterfaceName); 0023 QDBusReply<QDBusObjectPath> reply = masterInterface.call("Create"); 0024 if (reply.isValid()) 0025 return reply.value().path(); 0026 else 0027 return QString(); 0028 } 0029 0030 MasterClient::Private::Private() 0031 : interface(serviceName, createClientPath(), interfaceName) 0032 { 0033 } 0034 0035 MasterClient::MasterClient(QObject* parent) 0036 : QObject(parent), d(new Private) 0037 { 0038 } 0039 0040 MasterClient::~MasterClient() 0041 { 0042 delete d; 0043 } 0044 0045 void MasterClient::setRequirements(AccuracyLevel accuracy, int min_time, 0046 SignallingFlags signalling, ResourceFlags resources) 0047 { 0048 if (!d->interface.path().isEmpty()) { 0049 d->interface.call("SetRequirements", accuracy, min_time, 0050 signalling == SignallingRequired, resources); 0051 } 0052 } 0053 0054 PositionProvider* MasterClient::positionProvider() 0055 { 0056 if (!d->interface.path().isEmpty()) { 0057 d->interface.call("PositionStart"); 0058 return new PositionProvider(d->interface.service(), d->interface.path()); 0059 } else 0060 return 0; 0061 } 0062 0063 0064 0065 #include "moc_MasterClient.cpp"