2020-04-15 21:47:55 +02:00
|
|
|
#ifndef SCSTWAPPBACKEND_H
|
|
|
|
#define SCSTWAPPBACKEND_H
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
#include <scstwclient.h>
|
|
|
|
#include <scstwrace.h>
|
|
|
|
#include <ScStw.hpp>
|
2020-04-19 13:09:46 +02:00
|
|
|
#include <scstwremotemonitorrace.h>
|
2020-04-15 21:47:55 +02:00
|
|
|
|
|
|
|
#include "headers/appsettings.h"
|
|
|
|
|
2020-04-19 13:09:46 +02:00
|
|
|
|
2020-04-15 21:47:55 +02:00
|
|
|
class ScStwAppBackend : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
Q_PROPERTY(int mode READ getMode NOTIFY modeChanged)
|
|
|
|
Q_PROPERTY(ScStwRace* race READ getRace NOTIFY raceChanged)
|
2020-04-19 13:09:46 +02:00
|
|
|
Q_PROPERTY(ScStwClient *scStwClient READ getScStwClient NOTIFY scStwClientChanged)
|
2020-04-15 21:47:55 +02:00
|
|
|
|
|
|
|
public:
|
|
|
|
explicit ScStwAppBackend(QObject *parent = nullptr);
|
|
|
|
|
|
|
|
enum RaceMode { LOCAL, REMOTE };
|
|
|
|
|
|
|
|
private:
|
|
|
|
RaceMode mode;
|
|
|
|
|
|
|
|
AppSettings * appSettings;
|
|
|
|
ScStwClient * scStwClient;
|
|
|
|
|
|
|
|
QTimer * timerTextRefreshTimer;
|
|
|
|
// TODO: DOINEED? QTimer * nextStartActionTimer;
|
|
|
|
|
|
|
|
ScStwRace * localRace;
|
2020-04-19 13:09:46 +02:00
|
|
|
ScStwRemoteMonitorRace * remoteRace;
|
2020-04-15 21:47:55 +02:00
|
|
|
|
|
|
|
public slots:
|
|
|
|
// functions for qml
|
|
|
|
Q_INVOKABLE ScStwRace *getRace();
|
2020-04-19 13:09:46 +02:00
|
|
|
Q_INVOKABLE ScStwClient *getScStwClient();
|
2020-04-15 21:47:55 +02:00
|
|
|
Q_INVOKABLE int getMode();
|
|
|
|
|
|
|
|
Q_INVOKABLE void writeSetting(QString key, QVariant value);
|
|
|
|
Q_INVOKABLE void writeSetting(ScStw::BaseStationSetting key, QVariant value);
|
|
|
|
Q_INVOKABLE QString readSetting(QString key);
|
|
|
|
Q_INVOKABLE QString readSetting(ScStw::BaseStationSetting key);
|
|
|
|
|
|
|
|
// athlete management
|
|
|
|
Q_INVOKABLE QVariant getAthletes();
|
|
|
|
Q_INVOKABLE bool createAthlete( QString userName, QString fullName );
|
|
|
|
Q_INVOKABLE bool deleteAthlete( QString userName );
|
|
|
|
Q_INVOKABLE bool selectAthlete( QString userName, int timerId );
|
|
|
|
Q_INVOKABLE QVariant getResults( QString userName );
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void refreshTimerText();
|
|
|
|
void refreshMode();
|
2020-04-17 19:57:33 +02:00
|
|
|
void reloadRaceSettings();
|
2020-04-19 13:09:46 +02:00
|
|
|
void reloadBaseStationIpAdress();
|
2020-04-15 21:47:55 +02:00
|
|
|
|
|
|
|
signals:
|
|
|
|
void modeChanged();
|
|
|
|
void raceChanged();
|
2020-04-19 13:09:46 +02:00
|
|
|
void scStwClientChanged();
|
2020-04-15 21:47:55 +02:00
|
|
|
|
|
|
|
void baseStationStateChanged();
|
|
|
|
void baseStationConnectionsChanged();
|
|
|
|
void baseStationPropertiesChanged();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // SCSTWAPPBACKEND_H
|