diff options
| author | TrickyLeifa <date.epoch@gmail.com> | 2024-05-15 00:00:17 +0200 |
|---|---|---|
| committer | TrickyLeifa <date.epoch@gmail.com> | 2024-05-15 00:04:16 +0200 |
| commit | c9f52b7223685d2e7fca925594171f94dd8c6e3b (patch) | |
| tree | 740bb32a40da98a4d52836432f59a16b31333900 /src/demoserver.h | |
| parent | 951766666621fa77e257e6b5616fe4ab1eb2a52f (diff) | |
Ported to CMake, ...
* 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
Diffstat (limited to 'src/demoserver.h')
| -rw-r--r-- | src/demoserver.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/demoserver.h b/src/demoserver.h new file mode 100644 index 00000000..f52fbc7e --- /dev/null +++ b/src/demoserver.h @@ -0,0 +1,60 @@ +#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); +}; |
