Skip to content
Snippets Groups Projects
configuration.h 2.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • #ifndef LIBMUEB_CONFIGURATION_H_
    #define LIBMUEB_CONFIGURATION_H_
    
    #include <QHostAddress>
    #include <QImage>
    #include <QObject>
    #include <QSettings>
    #include <cstdint>
    
    // TODO check, remove unused parameters
    // TODO check, variable types
    class Configuration : public QObject {
      Q_OBJECT
    
     public:
      explicit Configuration(QObject *parent = nullptr);
    
      QImage frame() const;
    
      QHostAddress target_address() const;
    
      std::uint32_t floors() const;
    
      std::uint32_t rooms_per_floor() const;
    
      std::uint32_t windows_per_room() const;
    
      std::uint32_t vertical_pixel_unit() const;
    
      std::uint32_t horizontal_pixel_unit() const;
    
      std::uint32_t pixels_per_window() const;
    
      std::uint32_t window_per_floor() const;
    
      std::uint32_t windows() const;
    
      std::uint32_t pixels() const;
    
      std::int32_t width() const;
    
      std::int32_t height() const;
    
      std::uint8_t protocol_type() const;
    
      std::uint32_t window_byte_size() const;
    
      std::uint32_t max_windows_per_datagram() const;
    
      std::uint32_t packet_header_size() const;
    
      std::uint32_t packet_size() const;
    
      std::uint32_t packet_payload_size() const;
    
      std::uint32_t max_pixel_per_datagram() const;
    
      std::uint32_t remainder_packet_size() const;
    
      std::uint16_t unicast_animation_port() const;
    
      std::uint16_t broadcast_animation_port() const;
    
      std::uint8_t max_packet_number() const;
    
      std::uint8_t color_depth() const;
    
      std::uint8_t factor() const;
    
      bool debug_mode() const;
    
     private:
      QImage frame_;
      QSettings settings_;
      QHostAddress target_address_;
      std::uint32_t floors_;
      std::uint32_t rooms_per_floor_;
      std::uint32_t windows_per_room_;
      std::uint32_t vertical_pixel_unit_;
      std::uint32_t horizontal_pixel_unit_;
      std::uint32_t pixels_per_window_;
      std::uint32_t window_per_floor_;
      std::uint32_t windows_;
      std::uint32_t pixels_;
      // Qt width, height is signed
      std::int32_t width_;
      std::int32_t height_;
      //
      std::uint8_t protocol_type_;
      std::uint32_t window_byte_size_;
      std::uint32_t max_windows_per_datagram_;
      std::uint32_t packet_header_size_;
      std::uint32_t packet_size_;
      std::uint32_t packet_payload_size_;
      std::uint32_t max_pixel_per_datagram_;
      std::uint32_t remainder_packet_size_;
      std::uint16_t unicast_animation_port_;
      std::uint16_t broadcast_animation_port_;
      std::uint8_t max_packet_number_;
      std::uint8_t color_depth_;
      std::uint8_t factor_;
      bool debug_mode_;
    
      void LoadSettings();
    };
    
    #endif  // LIBMUEB_CONFIGURATION_H_