diff --git a/include/aoapplication.h b/include/aoapplication.h index 60d945e..3f5767c 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 1ff74f5..0daeb2b 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -57,7 +57,7 @@ #include #include #include -//#include +#include #include @@ -251,6 +251,8 @@ public: void check_connection_received(); + qint64 get_ping() { return ping_timer.elapsed(); } + ~Courtroom(); private: @@ -299,11 +301,15 @@ private: QVector 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 e2b372c..ec1fc99 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -8,7 +8,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() qsrand(static_cast(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 e4e5d5c..9422cfd 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 = "";