aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCrystalwarrior <varsash@gmail.com>2020-08-25 12:21:10 +0300
committerCrystalwarrior <varsash@gmail.com>2020-08-25 12:21:10 +0300
commit7e9c5726e02a65023d9563f49e833525bf8f4bae (patch)
tree05bcd9b5972f73f0164e38cb7cacb21602a864c3 /src
parentfebfbeafc11ecad57d6e9a06575c28f1b13da8da (diff)
Introduce the timer packet - "TI".
This timer will start the clock accounting for latency! Cool, right? Remove useless qDebug() for music looping
Diffstat (limited to 'src')
-rw-r--r--src/aomusicplayer.cpp1
-rw-r--r--src/courtroom.cpp10
-rw-r--r--src/packet_distribution.cpp11
3 files changed, 21 insertions, 1 deletions
diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp
index 6c61b9ad..0c50d505 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 ec1fc994..6bd2bd2d 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<int>(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 9422cfdb..1f49719f 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: