Skip to content
Snippets Groups Projects
Commit 3b98cbf4 authored by bodzsoaa's avatar bodzsoaa
Browse files

Use latest Qt 5 version

Latest Qt 5 is more feature complete than Qt 6
parent 3abb0f22
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,7 @@ conan_basic_setup() ...@@ -25,7 +25,7 @@ conan_basic_setup()
endif() endif()
find_package( find_package(
Qt6 Qt5
COMPONENTS Core Gui Network Concurrent COMPONENTS Core Gui Network Concurrent
REQUIRED) REQUIRED)
......
...@@ -12,7 +12,7 @@ class LibmuebConan(ConanFile): ...@@ -12,7 +12,7 @@ class LibmuebConan(ConanFile):
settings = "os", "compiler", "build_type", "arch" settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True], "fPIC": [True]} options = {"shared": [True], "fPIC": [True]}
default_options = {"shared": True, "fPIC": True} default_options = {"shared": True, "fPIC": True}
requires = "qt/[^6.0.0]@bincrafters/stable" requires = "qt/[^5.15.2]"
build_requires = "cmake/[^3.17.0]", "ninja/1.10.2" build_requires = "cmake/[^3.17.0]", "ninja/1.10.2"
generators = "cmake" generators = "cmake"
exports_sources = "CMakeLists.txt", "!CMakeLists.txt.user", "include/*", "src/*" exports_sources = "CMakeLists.txt", "!CMakeLists.txt.user", "include/*", "src/*"
......
...@@ -6,8 +6,8 @@ add_library( ...@@ -6,8 +6,8 @@ add_library(
target_include_directories(muebtransmitter PUBLIC ../include/${PROJECT_NAME}) target_include_directories(muebtransmitter PUBLIC ../include/${PROJECT_NAME})
target_link_libraries( target_link_libraries(
muebtransmitter muebtransmitter
PUBLIC Qt6::Core Qt6::Gui PUBLIC Qt5::Core Qt5::Gui
PRIVATE Qt6::Network Qt6::Concurrent) PRIVATE Qt5::Network Qt5::Concurrent)
target_compile_definitions(muebtransmitter PRIVATE LIBMUEB_LIBRARY) target_compile_definitions(muebtransmitter PRIVATE LIBMUEB_LIBRARY)
add_library( add_library(
...@@ -18,6 +18,6 @@ add_library( ...@@ -18,6 +18,6 @@ add_library(
target_include_directories(muebreceiver PUBLIC ../include/${PROJECT_NAME}) target_include_directories(muebreceiver PUBLIC ../include/${PROJECT_NAME})
target_link_libraries( target_link_libraries(
muebreceiver muebreceiver
PUBLIC Qt6::Core Qt6::Gui PUBLIC Qt5::Core Qt5::Gui
PRIVATE Qt6::Network) PRIVATE Qt5::Network)
target_compile_definitions(muebreceiver PRIVATE LIBMUEB_LIBRARY) target_compile_definitions(muebreceiver PRIVATE LIBMUEB_LIBRARY)
...@@ -31,18 +31,18 @@ void MuebReceiver::ReadPendingDatagrams() { ...@@ -31,18 +31,18 @@ void MuebReceiver::ReadPendingDatagrams() {
while (d->socket.hasPendingDatagrams()) { while (d->socket.hasPendingDatagrams()) {
if (d->socket.pendingDatagramSize() == d->configuration.packet_size()) { if (d->socket.pendingDatagramSize() == d->configuration.packet_size()) {
QNetworkDatagram datagram = d->socket.receiveDatagram(); const QNetworkDatagram &datagram = d->socket.receiveDatagram();
QByteArray data = datagram.data(); QByteArray data = datagram.data();
// Process datagram // Process datagram
// Packet header check // Packet header check
// Check protocol // Check protocol
if (data[0] != d->configuration.protocol_type()) { if (data.at(0) != d->configuration.protocol_type()) {
datagram_uncompress_error(); datagram_uncompress_error();
return; return;
} }
auto packet_number = data[1]; auto packet_number = data.at(1);
if (packet_number >= d->configuration.max_packet_number() || if (packet_number >= d->configuration.max_packet_number() ||
packet_number < 0) { packet_number < 0) {
datagram_uncompress_error(); datagram_uncompress_error();
......
...@@ -22,12 +22,18 @@ void MuebTransmitter::SendFrame(libmueb::Frame frame) { ...@@ -22,12 +22,18 @@ void MuebTransmitter::SendFrame(libmueb::Frame frame) {
QByteArray reduced_compressed_frame; QByteArray reduced_compressed_frame;
// Frame color reduction and compression // Frame color reduction and compression
if (d->configuration_.color_depth() < 5) { if (d->configuration_.color_depth() < 5) {
// FIXME Remove in Qt 6
reduced_compressed_frame = QtConcurrent::blockingMappedReduced<QByteArray>( reduced_compressed_frame = QtConcurrent::blockingMappedReduced<QByteArray>(
frame.constBits(), frame.constBits() + frame.sizeInBytes(), frame.constBits(), frame.constBits() + frame.sizeInBytes(),
/* Reference: d->reduceColor, d->compressColor,
* http://threadlocalmutex.com/?p=48 QtConcurrent::OrderedReduce | QtConcurrent::SequentialReduce);
* http://threadlocalmutex.com/?page_id=60
*/ /* FIXME Add in Qt 6
reduced_compressed_frame = QtConcurrent::blockingMappedReduced<QByteArray>(
frame.constBits(), frame.constBits() + frame.sizeInBytes(),
// Reference:
// http://threadlocalmutex.com/?p=48
// http://threadlocalmutex.com/?page_id=60
[d](const uchar& color) -> uchar { [d](const uchar& color) -> uchar {
if (d->configuration_.color_depth() == 3) { if (d->configuration_.color_depth() == 3) {
return (color * 225 + 4096) >> 13; return (color * 225 + 4096) >> 13;
...@@ -49,7 +55,7 @@ void MuebTransmitter::SendFrame(libmueb::Frame frame) { ...@@ -49,7 +55,7 @@ void MuebTransmitter::SendFrame(libmueb::Frame frame) {
msb = !msb; msb = !msb;
}, },
QtConcurrent::OrderedReduce | QtConcurrent::SequentialReduce); QtConcurrent::OrderedReduce | QtConcurrent::SequentialReduce);*/
} }
// No compression // No compression
else { else {
...@@ -68,9 +74,13 @@ void MuebTransmitter::SendFrame(libmueb::Frame frame) { ...@@ -68,9 +74,13 @@ void MuebTransmitter::SendFrame(libmueb::Frame frame) {
QByteArray data; QByteArray data;
data.append(d->configuration_.protocol_type()) data.append(d->configuration_.protocol_type())
.append(i /*packet number*/) .append(i /*packet number*/)
.append(reduced_compressed_frame.sliced( .append(reduced_compressed_frame.mid(
i * d->configuration_.packet_payload_size(), i * d->configuration_.packet_payload_size(),
d->configuration_.packet_payload_size())); d->configuration_.packet_payload_size()));
/* FIXME in Qt6
.append(reduced_compressed_frame.sliced(
i * d->configuration_.packet_payload_size(),
d->configuration_.packet_payload_size()));*/
d->datagram_.setData(data); d->datagram_.setData(data);
d->socket_.writeDatagram(d->datagram_); d->socket_.writeDatagram(d->datagram_);
......
...@@ -29,6 +29,33 @@ class MuebTransmitterPrivate { ...@@ -29,6 +29,33 @@ class MuebTransmitterPrivate {
QUdpSocket socket_; QUdpSocket socket_;
QNetworkDatagram datagram_; QNetworkDatagram datagram_;
MuebTransmitter* q_ptr; MuebTransmitter* q_ptr;
// FIXME Remove in Qt 6
std::function<uchar(const uchar&)> reduceColor =
[this](const uchar& color) -> uchar {
if (configuration_.color_depth() == 3) {
return (color * 225 + 4096) >> 13;
} else if (configuration_.color_depth() == 4) {
return (color * 15 + 135) >> 8;
}
return color;
};
// FIXME Remove in Qt 6
std::function<void(QByteArray&, const uchar&)> compressColor =
[this](QByteArray& compressed_colors, const uchar& color) {
static bool msb{true};
// Compress 2 color components into 1 byte
if (msb) {
compressed_colors.append(color << configuration_.factor());
} else {
compressed_colors.back() = compressed_colors.back() | color;
}
msb = !msb;
};
}; };
#endif // LIBMUEB_MUEBTRANSMITTER_P_H_ #endif // LIBMUEB_MUEBTRANSMITTER_P_H_
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment