From 2cfa9d51ed271edcf74c46efc67462ba3f8f8c3b Mon Sep 17 00:00:00 2001 From: acetone Date: Fri, 31 Dec 2021 14:40:16 -0500 Subject: [PATCH] audio notification --- html.qrc | 1 + html/newmessage.mp3 | Bin 0 -> 29914 bytes html/realtimechat.js | 14 +++++++++----- httpserver.cpp | 19 +++++++++++++++++++ httpserver.h | 6 ++++++ 5 files changed, 35 insertions(+), 5 deletions(-) create mode 100755 html/newmessage.mp3 diff --git a/html.qrc b/html.qrc index dd07166..c99dd34 100644 --- a/html.qrc +++ b/html.qrc @@ -8,5 +8,6 @@ html/svg/message.svg html/realtimechat.js html/svg/airplane.svg + html/newmessage.mp3 diff --git a/html/newmessage.mp3 b/html/newmessage.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..5fa431e8ce89b78fed61a6bee445119f0d322d0b GIT binary patch literal 29914 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 socket->write(HEADER_304.toUtf8()); + } + else { + QFile mp3("://html/newmessage.mp3"); + if (mp3.open(QIODevice::ReadOnly)) { + QByteArray file = mp3.readAll(); + mp3.close(); + QString header = HEADER_MP3; + replaceTag(header, "SIZE", QString::number(file.size())); + if (socket->isOpen()) { + socket->write(header.toUtf8()); + if (not isHeadRequest) socket->write(file); + } + } + } + } else if (urlPath == "/style.css") { QString eTag = global::getValue(request, "If-None-Match", global::eHttpHeader); if (eTag == HTTP_ACTUAL_ETAG) { diff --git a/httpserver.h b/httpserver.h index 2cc6508..c4e8d55 100644 --- a/httpserver.h +++ b/httpserver.h @@ -125,6 +125,12 @@ Content-Length: {{SIZE}}\r\n\r\n"; const QString HEADER_JSON = "\ HTTP/1.1 200 OK\r\n\ Content-Type: application/json; charset=utf-8\r\n\ +Content-Length: {{SIZE}}\r\n\r\n"; + + const QString HEADER_MP3 = "\ +HTTP/1.1 200 OK\r\n\ +Content-Type: audio/mpeg;\r\n\ +ETag: \""+HTTP_ACTUAL_ETAG+"\"\r\n\ Content-Length: {{SIZE}}\r\n\r\n"; const QString HEADER_304 = "HTTP/1.1 304 Not Modified\r\nContent-Length: 0\r\n\r\n";