~toykeeper/flashlight-firmware/fsm

483.12.30 by Selene ToyKeeper
D4v2 FET+1 model: works again, and now uses dynamic PWM (lower lows)
1
// channel modes for RGB aux LEDs
2
// Copyright (C) 2023 Selene ToyKeeper
3
// SPDX-License-Identifier: GPL-3.0-or-later
4
#pragma once
5
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
6
#define RGB_AUX_ENUMS  \
7
    CM_AUXRED, \
8
    CM_AUXYEL, \
9
    CM_AUXGRN, \
10
    CM_AUXCYN, \
11
    CM_AUXBLU, \
12
    CM_AUXPRP, \
13
    CM_AUXWHT
14
15
#define RGB_AUX_CM_ARGS  0,0,0,0,0,0,0
16
17
#define NUM_RGB_AUX_CHANNEL_MODES  7
18
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
19
// include / exclude field based on compile options
20
#ifdef USE_CHANNEL_MODE_ARGS
21
    #define AUX_RGB_HAS_ARGS , .has_args = 0
22
#else
23
    #define AUX_RGB_HAS_ARGS
24
#endif
25
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
26
#define RGB_AUX_CHANNELS \
27
    { \
28
        .set_level    = set_level_auxred, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
29
        .gradual_tick = gradual_tick_null \
30
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
31
    }, \
32
    { \
33
        .set_level    = set_level_auxyel, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
34
        .gradual_tick = gradual_tick_null \
35
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
36
    }, \
37
    { \
38
        .set_level    = set_level_auxgrn, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
39
        .gradual_tick = gradual_tick_null \
40
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
41
    }, \
42
    { \
43
        .set_level    = set_level_auxcyn, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
44
        .gradual_tick = gradual_tick_null \
45
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
46
    }, \
47
    { \
48
        .set_level    = set_level_auxblu, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
49
        .gradual_tick = gradual_tick_null \
50
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
51
    }, \
52
    { \
53
        .set_level    = set_level_auxprp, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
54
        .gradual_tick = gradual_tick_null \
55
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
56
    }, \
57
    { \
58
        .set_level    = set_level_auxwht, \
483.12.72 by Selene ToyKeeper
fixed d4v2, kr4, m44, emisar-2ch (using new refactor),
59
        .gradual_tick = gradual_tick_null \
60
        AUX_RGB_HAS_ARGS \
483.12.71 by Selene ToyKeeper
refactored how channel modes are defined, and converted emisar-2ch build
61
    }
62
483.12.30 by Selene ToyKeeper
D4v2 FET+1 model: works again, and now uses dynamic PWM (lower lows)
63
void set_level_auxred(uint8_t level);
483.12.47 by Selene ToyKeeper
D4v2: added the rest of the aux RGB colors as channel modes,
64
void set_level_auxyel(uint8_t level);
483.12.30 by Selene ToyKeeper
D4v2 FET+1 model: works again, and now uses dynamic PWM (lower lows)
65
void set_level_auxgrn(uint8_t level);
483.12.47 by Selene ToyKeeper
D4v2: added the rest of the aux RGB colors as channel modes,
66
void set_level_auxcyn(uint8_t level);
483.12.30 by Selene ToyKeeper
D4v2 FET+1 model: works again, and now uses dynamic PWM (lower lows)
67
void set_level_auxblu(uint8_t level);
483.12.47 by Selene ToyKeeper
D4v2: added the rest of the aux RGB colors as channel modes,
68
void set_level_auxprp(uint8_t level);
69
void set_level_auxwht(uint8_t level);
483.12.30 by Selene ToyKeeper
D4v2 FET+1 model: works again, and now uses dynamic PWM (lower lows)
70
71
bool gradual_tick_null(uint8_t gt);
72