diff --git a/include/courtroom.h b/include/courtroom.h index 0daeb2b..9346172 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -251,6 +251,10 @@ public: void check_connection_received(); + void start_clock(qint64 msecs); + + void stop_clock(); + qint64 get_ping() { return ping_timer.elapsed(); } ~Courtroom(); diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp index 6c61b9a..0c50d50 100644 --- a/src/aomusicplayer.cpp +++ b/src/aomusicplayer.cpp @@ -145,7 +145,6 @@ void CALLBACK loopProc(HSYNC handle, DWORD channel, DWORD data, void *user) void AOMusicPlayer::set_looping(bool toggle, int channel) { - qDebug() << "Setting looping for channel" << channel << "to" << toggle; m_looping = toggle; if (!m_looping) { if (BASS_ChannelFlags(m_stream_list[channel], 0, 0) & BASS_SAMPLE_LOOP) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index ec1fc99..6bd2bd2 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -4715,6 +4715,16 @@ void Courtroom::announce_case(QString title, bool def, bool pro, bool jud, } } +void Courtroom::start_clock(qint64 msecs) +{ + ui_clock->start(static_cast(msecs)); +} + +void Courtroom::stop_clock() +{ + ui_clock->stop(); +} + Courtroom::~Courtroom() { delete music_player; diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 9422cfd..1f49719 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -728,6 +728,17 @@ void AOApplication::server_packet_received(AOPacket *p_packet) f_contents.at(4) == "1", f_contents.at(5) == "1"); } + else if (header == "TI") { // Timer packet + if (courtroom_constructed && f_contents.size() >= 1) { + qint64 resolution = f_contents.at(0).toInt(); + qDebug() << "timer" << resolution << last_ping << resolution - last_ping; + resolution = resolution - last_ping; + if (resolution > 0) + w_courtroom->start_clock(resolution); + else + w_courtroom->stop_clock(); + } + } end: