mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-05 08:10:40 -07:00
6838e69ebe
## Link to GitHub Issue or related Pull Request, if one exists #618 ## Description of change Add rest of the LED strip lights. ## Testing Tested U region.
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace tapeledutils {
|
|
|
|
enum led_tape_color_pick_algorithm {
|
|
TAPE_LED_USE_NONE = 0,
|
|
TAPE_LED_USE_FIRST = 1,
|
|
TAPE_LED_USE_MIDDLE = 2,
|
|
TAPE_LED_USE_LAST = 3,
|
|
TAPE_LED_USE_AVERAGE = 4,
|
|
};
|
|
|
|
extern led_tape_color_pick_algorithm TAPE_LED_ALGORITHM;
|
|
|
|
typedef struct {
|
|
float r;
|
|
float g;
|
|
float b;
|
|
} rgb_float3_t;
|
|
|
|
struct tape_led {
|
|
std::vector<rgb_float3_t> data;
|
|
int index_r, index_g, index_b; // Averaged RGB light output indexes
|
|
uint8_t max_value;
|
|
std::string lightName;
|
|
|
|
tape_led(
|
|
size_t data_size,
|
|
int index_r, int index_g, int index_b,
|
|
std::string lightName)
|
|
: data(
|
|
std::vector<rgb_float3_t>(data_size)),
|
|
index_r(index_r), index_g(index_g), index_b(index_b),
|
|
max_value(0),
|
|
lightName(std::move(lightName)) {}
|
|
|
|
tape_led(
|
|
size_t data_size,
|
|
int index_r, int index_g, int index_b,
|
|
uint8_t max_value,
|
|
std::string lightName)
|
|
: data(
|
|
std::vector<rgb_float3_t>(data_size)),
|
|
index_r(index_r), index_g(index_g), index_b(index_b),
|
|
max_value(max_value),
|
|
lightName(std::move(lightName)) {}
|
|
};
|
|
|
|
bool is_enabled();
|
|
rgb_float3_t pick_color_from_led_tape(tape_led &light, uint8_t *data, size_t data_size);
|
|
rgb_float3_t pick_color_from_led_tape(uint8_t *data, size_t data_size);
|
|
size_t get_led_index_using_avg_algo(size_t data_size);
|
|
}
|