monitor/headers/scstwmonitorbackend.h

56 lines
1.8 KiB
C++

/****************************************************************************
** ScStw Monitor
** Copyright (C) 2020 Itsblue development
**
** 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 3 of the License, or
** (at your option) any later version.
**
** 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/>.
****************************************************************************/
#ifndef SCSTWMONITORBACKEND_H
#define SCSTWMONITORBACKEND_H
#include <QObject>
#include <scstwclient.h>
#include <scstwremotemonitorrace.h>
class ScStwMonitorBackend : public QObject
{
Q_OBJECT
Q_PROPERTY(ScStwRace* race READ getRace NOTIFY raceChanged)
Q_PROPERTY(ScStwClient *scStwClient READ getScStwClient NOTIFY scStwClientChanged)
public:
explicit ScStwMonitorBackend(QObject *parent = nullptr);
private:
ScStwClient * scStwClient;
QTimer *autoConnectRetryTimer; // timer to frequently trigger a connection attempt to the base station
QTimer * timerTextRefreshTimer;
ScStwRemoteMonitorRace * remoteRace;
public slots:
// functions for qml
Q_INVOKABLE ScStwRace *getRace();
Q_INVOKABLE ScStwClient *getScStwClient();
private slots:
void refreshTimerText();
void doConnectionAttempt();
signals:
void raceChanged();
void scStwClientChanged();
};
#endif // SCSTWMONITORBACKEND_H