diff --git a/src/configuration.cc b/src/configuration.cc index 14faecffcdd393b2d560b0f7b8535ad033f862d1..f47466e70ebe16f33b1a80d11459a81c919a2e9e 100644 --- a/src/configuration.cc +++ b/src/configuration.cc @@ -38,7 +38,6 @@ Configuration::Configuration() { quint32 window_per_floor = rooms_per_floor * windows_per_room; quint32 windows = floors * window_per_floor; pixels_ = windows * pixels_per_window; - factor_ = 8 - color_depth_; // Alpha channel is not supported by hardware // The image is stored using a 24-bit RGB format (8-8-8) frame_ = QImage(window_per_floor * horizontal_pixel_unit, @@ -120,8 +119,6 @@ quint8 Configuration::max_packet_number() const { return max_packet_number_; } quint8 Configuration::color_depth() const { return color_depth_; } -quint8 Configuration::factor() const { return factor_; } - bool Configuration::debug_mode() const { return debug_mode_; } } // namespace libmueb diff --git a/src/configuration.h b/src/configuration.h index 7ab8cbd0dcf65b9870f5311aaa34d4a40da0d142..2da7dd39886361cf238fead3e0c67d42e01bd33d 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -13,6 +13,8 @@ class Configuration final { Q_DISABLE_COPY(Configuration) public: + static constexpr quint8 kFactor{4}; + static Configuration& Instance(); QImage frame() const; @@ -39,8 +41,6 @@ class Configuration final { quint8 color_depth() const; - quint8 factor() const; - bool debug_mode() const; private: @@ -54,7 +54,6 @@ class Configuration final { quint16 broadcast_animation_port_; quint8 max_packet_number_; quint8 color_depth_; - quint8 factor_; bool debug_mode_; Configuration(); diff --git a/src/muebreceiver.cc b/src/muebreceiver.cc index c3f62edcc149eafda43af55a2c67a26d5b265298..9092f13bd91f6d8d65fc83ce4a2b6263ca4316db 100644 --- a/src/muebreceiver.cc +++ b/src/muebreceiver.cc @@ -65,8 +65,12 @@ void MuebReceiver::ReadPendingDatagrams() { if (d->configuration_.color_depth() < 5) { for (auto &i : data) { *frame_begin = i & 0xf0; + *frame_begin <<= + Configuration::kFactor - d->configuration_.color_depth(); frame_begin++; - *frame_begin = (i & 0x0f) << d->configuration_.factor(); + *frame_begin = (i & 0x0f) << Configuration::kFactor; + *frame_begin <<= + Configuration::kFactor - d->configuration_.color_depth(); frame_begin++; } // No compression diff --git a/src/muebtransmitter_p.h b/src/muebtransmitter_p.h index 0654c8f8ee1f6e396a26a6cf85632b95c47f62fa..b9ec1f41b313474fe2ea9754122322350eddcb47 100644 --- a/src/muebtransmitter_p.h +++ b/src/muebtransmitter_p.h @@ -58,7 +58,7 @@ class MuebTransmitterPrivate { // Compress 2 color components into 1 byte if (msb) { - compressed_colors.append(color << configuration_.factor()); + compressed_colors.append(color << Configuration::kFactor); } else { compressed_colors.back() = compressed_colors.back() | color; }