
* Ported the project to CMake * Android and Mac support dropped for the time being. * Tests, BASS and Discord-RPC are now options * Restructured and reformated the project. * Merged `include` and `src` * Renamed `resource` to `data` * Renamed various files * External libraries headers are no longer included in `src` * Replaced header guards with #pragma once * Multiple refactors (keywords, headers) * Added Qt6 compatibility * Removed various unused functions and headers * Reworked AOPacket * When content is passed to AOPacket, it should be ensured that the content is already decoded. * Encoding/decoding are now static methods. * Fixed various memory leaks * Removed animation code for AOImage * AOImage is always using static images * Simplified ChatLogPiece
61 lines
1.1 KiB
C++
61 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "aopacket.h"
|
|
|
|
#include <QDebug>
|
|
#include <QFileDialog>
|
|
#include <QMessageBox>
|
|
#include <QObject>
|
|
#include <QQueue>
|
|
#include <QTcpServer>
|
|
#include <QTcpSocket>
|
|
#include <QTimer>
|
|
|
|
class DemoServer : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit DemoServer(QObject *parent = nullptr);
|
|
|
|
int port();
|
|
|
|
void set_demo_file(QString filepath);
|
|
|
|
private:
|
|
bool m_server_started = false;
|
|
int m_port = 0;
|
|
int m_max_wait = -1;
|
|
|
|
QTcpServer *tcp_server;
|
|
QTcpSocket *client_sock = nullptr;
|
|
bool client_connected = false;
|
|
bool partial_packet = false;
|
|
bool debug_mode = false;
|
|
QString temp_packet;
|
|
QQueue<QString> demo_data;
|
|
QString sc_packet;
|
|
int num_chars = 0;
|
|
QString p_path;
|
|
QTimer *timer;
|
|
int elapsed_time = 0;
|
|
QString filename;
|
|
|
|
void handle_packet(AOPacket packet);
|
|
void load_demo(QString filename);
|
|
void reset_state();
|
|
|
|
private Q_SLOTS:
|
|
void accept_connection();
|
|
void destroy_connection();
|
|
void recv_data();
|
|
void client_disconnect();
|
|
void playback();
|
|
|
|
public Q_SLOTS:
|
|
void start_server();
|
|
|
|
Q_SIGNALS:
|
|
void skip_timers(qint64 msecs);
|
|
};
|