jamulus/src/historygraph.h

101 lines
3.1 KiB
C
Raw Normal View History

2019-05-19 09:30:49 +02:00
#ifndef HISTORYGRAPH_H
#define HISTORYGRAPH_H
#include <QDateTime>
#include <QHostAddress>
#include <QFile>
#include <QString>
#include <QTimer>
#include "global.h"
#include "util.h"
/* Definitions ****************************************************************/
// number of history items to store
#define NUM_ITEMS_HISTORY 600
2019-05-20 21:00:09 +02:00
/* Interface ********************************************************************/
class AHistoryGraph
2019-05-19 09:30:49 +02:00
{
public:
enum EHistoryItemType
{
HIT_LOCAL_CONNECTION,
HIT_REMOTE_CONNECTION,
HIT_SERVER_STOP
};
2019-05-20 21:00:09 +02:00
AHistoryGraph();
~AHistoryGraph() { }
2019-05-19 09:30:49 +02:00
void Start ( const QString& sNewFileName );
void Add ( const QDateTime& newDateTime, const EHistoryItemType curType );
void Add ( const QDateTime& newDateTime, const QHostAddress ClientInetAddr );
2019-05-20 21:00:09 +02:00
virtual void Update ( );
2019-05-19 09:30:49 +02:00
protected:
struct SHistoryData
{
QDateTime DateTime;
EHistoryItemType Type;
};
void DrawFrame ( const int iNewNumTicksX );
void AddMarker ( const SHistoryData& curHistoryData );
2019-05-20 21:00:09 +02:00
virtual void Save ( const QString sFileName ) = 0;
2019-05-19 09:30:49 +02:00
2019-05-20 21:00:09 +02:00
virtual void rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ) = 0;
virtual void text ( const unsigned int x, const unsigned int y, const QString& value ) = 0;
virtual void line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth = 1 ) = 0;
virtual void point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ) = 0;
2019-05-19 09:30:49 +02:00
2019-05-20 21:00:09 +02:00
// Constructor sets these
QString sFileName;
2019-05-19 09:30:49 +02:00
bool bDoHistory;
CFIFO<SHistoryData> vHistoryDataFifo;
2019-05-20 21:00:09 +02:00
unsigned int iNumTicksX; // Class global, not sure why
QString BackgroundColor;
QString FrameColor;
QString GridColor;
QString TextColor;
QString MarkerNewColor;
QString MarkerNewLocalColor;
QString MarkerStopColor;
const unsigned int canvasRectX;
const unsigned int canvasRectY;
const unsigned int canvasRectWidth;
const unsigned int canvasRectHeight;
const unsigned int iGridFrameOffset;
const unsigned int iGridWidthWeekend;
const unsigned int iXAxisTextHeight;
const unsigned int gridFrameX;
const unsigned int gridFrameY;
const unsigned int gridFrameWidth;
const unsigned int gridFrameHeight;
const unsigned int gridFrameRight;
const unsigned int gridFrameBottom;
const QString axisFontFamily;
const QString axisFontWeight;
const unsigned int axisFontSize;
const unsigned int iYAxisStart;
const unsigned int iYAxisEnd;
const unsigned int iNumTicksY;
const unsigned int iTextOffsetToGrid;
const unsigned int iTextOffsetX;
const unsigned int iMarkerSizeNewCon;
const unsigned int iMarkerSizeServSt;
// others
double dayXSpace;
unsigned int iYSpace;
QDate curDate;
QTimer TimerDailyUpdate;
2019-05-19 09:30:49 +02:00
};
#endif // HISTORYGRAPH_H