LCOV - code coverage report
Current view: top level - src/Def - Def.hpp (source / functions) Hit Total Coverage
Test: 169c36a3797bc662d84b5726f34a3f37d3c58247 Lines: 2 2 100.0 %
Date: 2024-11-09 15:32:27 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* ✔ */
       2             : 
       3             : #pragma once
       4             : 
       5             : #include "Cable.hpp"
       6             : #include "Channel.hpp"
       7             : #include <AH/Containers/Array.hpp>
       8             : #include <AH/Hardware/Arduino-Hardware-Types.hpp>
       9             : #include <AH/Hardware/Hardware-Types.hpp>
      10             : #include <AH/STL/limits>
      11             : #include <Settings/NamespaceSettings.hpp>
      12             : #include <stddef.h> // size_t
      13             : #include <stdint.h> // uint8_t
      14             : 
      15             : BEGIN_CS_NAMESPACE
      16             : 
      17             : using ::ArduinoPin_t;
      18             : using AH::analog_t;
      19             : using AH::NO_PIN;
      20             : using AH::pin_t;
      21             : using AH::PinList;
      22             : 
      23             : using MappingFunction = analog_t (*)(analog_t);
      24             : 
      25             : using AH::Array;
      26             : using AH::Array2D;
      27             : 
      28             : /// @todo   This should be an array of type MIDIAddress.
      29             : template <uint8_t NumRows, uint8_t NumCols>
      30             : using AddressMatrix = Array2D<uint8_t, NumRows, NumCols>;
      31             : 
      32             : /// A struct for the pins of a rotary (quadrature) encoder with a switch.
      33             : struct EncoderSwitchPinList {
      34             :     /// Constructor for encoders with a switch.
      35           2 :     EncoderSwitchPinList(uint8_t A, uint8_t B, pin_t switchPin)
      36           2 :         : A(A), B(B), switchPin(switchPin) {}
      37             :     /// Constructor for encoders without a switch.
      38             :     EncoderSwitchPinList(uint8_t A, uint8_t B)
      39             :         : A(A), B(B), switchPin(NO_PIN) {}
      40             : 
      41             :     uint8_t A;       ///< The pin connected to the A pin of the encoder.
      42             :     uint8_t B;       ///< The pin connected to the B pin of the encoder.
      43             :     pin_t switchPin; ///< The pin connected to the switch pin of the encoder.
      44             : };
      45             : 
      46             : /// A struct for the pins of a rotary (quadrature) encoder without a switch.
      47             : struct EncoderPinList {
      48             :     uint8_t A; ///< The pin connected to the A pin of the encoder.
      49             :     uint8_t B; ///< The pin connected to the B pin of the encoder.
      50             : };
      51             : 
      52             : /// The type used for Selector%s.
      53             : using setting_t = uint8_t;
      54             : /// A special setting that indicates an unused or invalid setting.
      55             : constexpr setting_t NoSetting =
      56             :     (std::numeric_limits<setting_t>::max() >> 1) + 1;
      57             : 
      58             : // Updatable types:
      59             : struct Potentiometer {};
      60             : struct MotorFader {};
      61             : struct Display {};
      62             : 
      63             : /// A simple struct representing a pixel with integer coordinates.
      64             : struct PixelLocation {
      65             :     int16_t x;
      66             :     int16_t y;
      67             : };
      68             : 
      69             : END_CS_NAMESPACE

Generated by: LCOV version 1.15