diff options
| author | Crystalwarrior <varsash@gmail.com> | 2020-08-25 12:18:49 +0300 |
|---|---|---|
| committer | Crystalwarrior <varsash@gmail.com> | 2020-08-25 12:18:49 +0300 |
| commit | febfbeafc11ecad57d6e9a06575c28f1b13da8da (patch) | |
| tree | ed3c8bef2b605cbd9caa00c03e7422d362a95d48 | |
| parent | f27f210efeb13a5ac29727fef271f8249e3e8c5d (diff) | |
Actually make use of the completely useless CHECK and CH keepalive timer and use them to determine the client's ping.
Display ping in the application window title.
keepalive timer now fires every second instead of every minute
Remove meme clock starting on set_widgets()
implement get_ping() on w_courtroom
| -rw-r--r-- | include/aoapplication.h | 3 | ||||
| -rw-r--r-- | include/courtroom.h | 10 | ||||
| -rw-r--r-- | src/courtroom.cpp | 4 | ||||
| -rw-r--r-- | src/packet_distribution.cpp | 10 |
4 files changed, 21 insertions, 6 deletions
diff --git a/include/aoapplication.h b/include/aoapplication.h index 60d945ec..3f5767cf 100644 --- a/include/aoapplication.h +++ b/include/aoapplication.h @@ -61,6 +61,9 @@ public: void call_settings_menu(); void call_announce_menu(Courtroom *court); + qint64 last_ping; + QString window_title; + /////////////////server metadata////////////////// unsigned int s_decryptor = 5; diff --git a/include/courtroom.h b/include/courtroom.h index 1ff74f54..0daeb2b1 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -57,7 +57,7 @@ #include <QScrollBar> #include <QTextBoundaryFinder> #include <QTextCharFormat> -//#include <QRandomGenerator> +#include <QElapsedTimer> #include <stack> @@ -251,6 +251,8 @@ public: void check_connection_received(); + qint64 get_ping() { return ping_timer.elapsed(); } + ~Courtroom(); private: @@ -299,11 +301,15 @@ private: QVector<chatlogpiece> ic_chatlog_history; - // triggers ping_server() every 60 seconds + // triggers ping_server() every 1 second QTimer *keepalive_timer; // determines how fast messages tick onto screen QTimer *chat_tick_timer; + + // count up timer to check how long it took for us to get a response from ping_server() + QElapsedTimer ping_timer; + // int chat_tick_interval = 60; // which tick position(character in chat message) we are at int tick_pos = 0; diff --git a/src/courtroom.cpp b/src/courtroom.cpp index e2b372c5..ec1fc994 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -8,7 +8,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() qsrand(static_cast<uint>(QDateTime::currentMSecsSinceEpoch() / 1000)); keepalive_timer = new QTimer(this); - keepalive_timer->start(60000); + keepalive_timer->start(1000); chat_tick_timer = new QTimer(this); @@ -623,7 +623,6 @@ void Courtroom::set_widgets() ui_music_display->set_play_once(false); set_size_and_pos(ui_clock, "clock"); - ui_clock->start(30000); if (is_ao2_bg) { set_size_and_pos(ui_ic_chat_message, "ao2_ic_chat_message"); @@ -4672,6 +4671,7 @@ void Courtroom::on_switch_area_music_clicked() void Courtroom::ping_server() { + ping_timer.start(); ao_app->send_server_packet( new AOPacket("CH#" + QString::number(m_cid) + "#%")); } diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index e4e5d5c2..9422cfdb 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -116,7 +116,13 @@ void AOApplication::server_packet_received(AOPacket *p_packet) qDebug() << "R:" << f_packet; #endif - if (header == "decryptor") { + if (header == "CHECK") { + if (courtroom_constructed) { + last_ping = w_courtroom->get_ping(); + w_courtroom->set_window_title(window_title + " [ping:" + QString::number(last_ping) + "]"); + } + } + else if (header == "decryptor") { if (f_contents.size() == 0) goto end; @@ -250,7 +256,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) courtroom_loaded = false; - QString window_title = tr("Attorney Online 2"); + window_title = tr("Attorney Online 2"); int selected_server = w_lobby->get_selected_server(); QString server_address = "", server_name = ""; |
