namespace RPiRgbLEDMatrix; /// /// Represents the matrix settings. /// public struct RGBLedMatrixOptions { /// /// Name of the hardware mapping used. If passed /// here, the default is used. /// public string? HardwareMapping = null; /// /// The "rows" are the number of rows supported by the display, so 32 or 16. /// Default: 32. /// public int Rows = 32; /// /// The "cols" are the number of columns per panel. Typically something /// like 32, but also 64 is possible. Sometimes even 40. /// cols * chain_length is the total length of the display, so you can /// represent a 64 wide display as cols=32, chain=2 or cols=64, chain=1; /// same thing, but more convenient to think of. /// public int Cols = 32; /// /// The chain_length is the number of displays daisy-chained together /// (output of one connected to input of next). Default: 1 /// public int ChainLength = 1; /// /// The number of parallel chains connected to the Pi; in old Pis with 26 /// GPIO pins, that is 1, in newer Pis with 40 interfaces pins, that can also /// be 2 or 3. The effective number of pixels in vertical direction is then /// thus rows * parallel. Default: 1 /// public int Parallel = 1; /// /// Set PWM bits used for output. Default is 11, but if you only deal with limited /// comic-colors, 1 might be sufficient. Lower require less CPU and increases refresh-rate. /// public int PwmBits = 11; /// /// Change the base time-unit for the on-time in the lowest significant bit in /// nanoseconds. Higher numbers provide better quality (more accurate color, less /// ghosting), but have a negative impact on the frame rate. /// public int PwmLsbNanoseconds = 130; /// /// The lower bits can be time-dithered for higher refresh rate. /// public int PwmDitherBits = 0; /// /// The initial brightness of the panel in percent. Valid range is 1..100 /// public int Brightness = 100; /// /// Scan mode. /// public ScanModes ScanMode = ScanModes.Progressive; /// /// Default row address type is 0, corresponding to direct setting of the /// row, while row address type 1 is used for panels that only have A/B, /// typically some 64x64 panels /// public int RowAddressType = 0; /// /// Type of multiplexing. /// public Multiplexing Multiplexing = Multiplexing.Direct; /// /// In case the internal sequence of mapping is not "RGB", this /// contains the real mapping. Some panels mix up these colors. /// public string? LedRgbSequence = null; /// /// A string describing a sequence of pixel mappers that should be applied /// to this matrix. A semicolon-separated list of pixel-mappers with optional /// parameter. public string? PixelMapperConfig = null; /// /// Panel type. Typically just empty, but certain panels (FM6126) /// requie an initialization sequence /// public string? PanelType = null; /// /// Allow to use the hardware subsystem to create pulses. This won't do /// anything if output enable is not connected to GPIO 18. /// public bool DisableHardwarePulsing = false; public bool ShowRefreshRate = false; public bool InverseColors = false; /// /// Limit refresh rate of LED panel. This will help on a loaded system /// to keep a constant refresh rate. <= 0 for no limit. /// public int LimitRefreshRateHz = 0; /// /// Slowdown GPIO. Needed for faster Pis/slower panels. /// public int GpioSlowdown = 1; /// /// Creates default matrix settings. /// public RGBLedMatrixOptions() { } }