~ruther/qmk_firmware

abfd6ed9613013d3c9f15da8b575a902d9bcf274 — Joel Challis 5 years ago e3a2134
Move tmk_core/common/backlight to quantum/backlight (#6710)

* Move tmk_core/common/backlight to quantum/backlight

* Add guards to backlight inclusion

* Add guards to backlight inclusion

* Update backlight guards on clueboard/60

* Use full paths to avoid vpath issues
M common_features.mk => common_features.mk +5 -0
@@ 246,6 246,11 @@ ifneq ($(strip $(BACKLIGHT_ENABLE)), no)
        CIE1931_CURVE = yes
    endif


    COMMON_VPATH += $(QUANTUM_DIR)/backlight
    SRC += $(QUANTUM_DIR)/backlight/backlight.c
    OPT_DEFS += -DBACKLIGHT_ENABLE

    ifeq ($(strip $(BACKLIGHT_ENABLE)), custom)
        OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
    endif

M keyboards/clueboard/60/led.c => keyboards/clueboard/60/led.c +5 -5
@@ 16,21 16,21 @@
*/

#include "hal.h"
#include "backlight.h"
#include "led.h"
#include "printf.h"

#ifdef BACKLIGHT_ENABLE
#include "backlight.h"

void backlight_init_ports(void) {
    printf("backlight_init_ports()\n");
    #ifdef BACKLIGHT_ENABLE

    palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL);
    palSetPad(GPIOB, 8);
    #endif
}

void backlight_set(uint8_t level) {
    printf("backlight_set(%d)\n", level);
    #ifdef BACKLIGHT_ENABLE
    if (level == 0) {
        // Turn backlight off
        palSetPad(GPIOB, 8);


@@ 38,8 38,8 @@ void backlight_set(uint8_t level) {
        // Turn backlight on
        palClearPad(GPIOB, 8);
    }
    #endif
}
#endif

void led_set_kb(uint8_t usb_led) {
    printf("led_set_kb(%d)\n", usb_led);

M quantum/backlight/backlight.c => quantum/backlight/backlight.c +193 -1
@@ 1,1 1,193 @@
// TODO: Add common code here, for example cie_lightness implementation
/*
Copyright 2013 Mathias Andersson <wraul@dbox.se>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "backlight.h"
#include "eeconfig.h"
#include "debug.h"

backlight_config_t backlight_config;

/** \brief Backlight initialization
 *
 * FIXME: needs doc
 */
void backlight_init(void) {
    /* check signature */
    if (!eeconfig_is_enabled()) {
        eeconfig_init();
    }
    backlight_config.raw = eeconfig_read_backlight();
    if (backlight_config.level > BACKLIGHT_LEVELS) {
        backlight_config.level = BACKLIGHT_LEVELS;
    }
    backlight_set(backlight_config.enable ? backlight_config.level : 0);
}

/** \brief Backlight increase
 *
 * FIXME: needs doc
 */
void backlight_increase(void) {
    if (backlight_config.level < BACKLIGHT_LEVELS) {
        backlight_config.level++;
    }
    backlight_config.enable = 1;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight increase: %u\n", backlight_config.level);
    backlight_set(backlight_config.level);
}

/** \brief Backlight decrease
 *
 * FIXME: needs doc
 */
void backlight_decrease(void) {
    if (backlight_config.level > 0) {
        backlight_config.level--;
        backlight_config.enable = !!backlight_config.level;
        eeconfig_update_backlight(backlight_config.raw);
    }
    dprintf("backlight decrease: %u\n", backlight_config.level);
    backlight_set(backlight_config.level);
}

/** \brief Backlight toggle
 *
 * FIXME: needs doc
 */
void backlight_toggle(void) {
    bool enabled = backlight_config.enable;
    dprintf("backlight toggle: %u\n", enabled);
    if (enabled)
        backlight_disable();
    else
        backlight_enable();
}

/** \brief Enable backlight
 *
 * FIXME: needs doc
 */
void backlight_enable(void) {
    if (backlight_config.enable) return;  // do nothing if backlight is already on

    backlight_config.enable = true;
    if (backlight_config.raw == 1)  // enabled but level == 0
        backlight_config.level = 1;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight enable\n");
    backlight_set(backlight_config.level);
}

/** \brief Disable backlight
 *
 * FIXME: needs doc
 */
void backlight_disable(void) {
    if (!backlight_config.enable) return;  // do nothing if backlight is already off

    backlight_config.enable = false;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight disable\n");
    backlight_set(0);
}

/** /brief Get the backlight status
 *
 * FIXME: needs doc
 */
bool is_backlight_enabled(void) { return backlight_config.enable; }

/** \brief Backlight step through levels
 *
 * FIXME: needs doc
 */
void backlight_step(void) {
    backlight_config.level++;
    if (backlight_config.level > BACKLIGHT_LEVELS) {
        backlight_config.level = 0;
    }
    backlight_config.enable = !!backlight_config.level;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight step: %u\n", backlight_config.level);
    backlight_set(backlight_config.level);
}

/** \brief Backlight set level
 *
 * FIXME: needs doc
 */
void backlight_level(uint8_t level) {
    if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS;
    backlight_config.level  = level;
    backlight_config.enable = !!backlight_config.level;
    eeconfig_update_backlight(backlight_config.raw);
    backlight_set(backlight_config.level);
}

/** \brief Get backlight level
 *
 * FIXME: needs doc
 */
uint8_t get_backlight_level(void) { return backlight_config.level; }

#ifdef BACKLIGHT_BREATHING
/** \brief Backlight breathing toggle
 *
 * FIXME: needs doc
 */
void backlight_toggle_breathing(void) {
    bool breathing = backlight_config.breathing;
    dprintf("backlight breathing toggle: %u\n", breathing);
    if (breathing)
        backlight_disable_breathing();
    else
        backlight_enable_breathing();
}

/** \brief Enable backlight breathing
 *
 * FIXME: needs doc
 */
void backlight_enable_breathing(void) {
    if (backlight_config.breathing) return;  // do nothing if breathing is already on

    backlight_config.breathing = true;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight breathing enable\n");
    breathing_enable();
}

/** \brief Disable backlight breathing
 *
 * FIXME: needs doc
 */
void backlight_disable_breathing(void) {
    if (!backlight_config.breathing) return;  // do nothing if breathing is already off

    backlight_config.breathing = false;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight breathing disable\n");
    breathing_disable();
}

/** \brief Get the backlight breathing status
 *
 * FIXME: needs doc
 */
bool is_backlight_breathing(void) { return backlight_config.breathing; }
#endif

R tmk_core/common/backlight.h => quantum/backlight/backlight.h +0 -0
M quantum/keymap_common.c => quantum/keymap_common.c +4 -1
@@ 26,9 26,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "action.h"
#include "action_macro.h"
#include "debug.h"
#include "backlight.h"
#include "quantum.h"

#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
#endif

#ifdef MIDI_ENABLE
#    include "process_midi.h"
#endif

M quantum/quantum.c => quantum/quantum.c +4 -2
@@ 24,8 24,10 @@
#    include "outputselect.h"
#endif

#include "backlight.h"
extern backlight_config_t backlight_config;
#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
    extern backlight_config_t backlight_config;
#endif

#ifdef FAUXCLICKY_ENABLE
#    include "fauxclicky.h"

M tmk_core/common.mk => tmk_core/common.mk +0 -5
@@ 153,11 153,6 @@ ifeq ($(strip $(NO_SUSPEND_POWER_DOWN)), yes)
    TMK_COMMON_DEFS += -DNO_SUSPEND_POWER_DOWN
endif

ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
    TMK_COMMON_SRC += $(COMMON_DIR)/backlight.c
    TMK_COMMON_DEFS += -DBACKLIGHT_ENABLE
endif

ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
    TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE
	TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK

M tmk_core/common/action.c => tmk_core/common/action.c +4 -1
@@ 20,7 20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "mousekey.h"
#include "command.h"
#include "led.h"
#include "backlight.h"
#include "action_layer.h"
#include "action_tapping.h"
#include "action_macro.h"


@@ 28,6 27,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "action.h"
#include "wait.h"

#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
#endif

#ifdef DEBUG_ACTION
#    include "debug.h"
#else

M tmk_core/common/avr/suspend.c => tmk_core/common/avr/suspend.c +4 -1
@@ 4,7 4,6 @@
#include <avr/interrupt.h>
#include "matrix.h"
#include "action.h"
#include "backlight.h"
#include "suspend_avr.h"
#include "suspend.h"
#include "timer.h"


@@ 16,6 15,10 @@
#    include "lufa.h"
#endif

#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
#endif

#ifdef AUDIO_ENABLE
#    include "audio.h"
#endif /* AUDIO_ENABLE */

D tmk_core/common/backlight.c => tmk_core/common/backlight.c +0 -193
@@ 1,193 0,0 @@
/*
Copyright 2013 Mathias Andersson <wraul@dbox.se>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "backlight.h"
#include "eeconfig.h"
#include "debug.h"

backlight_config_t backlight_config;

/** \brief Backlight initialization
 *
 * FIXME: needs doc
 */
void backlight_init(void) {
    /* check signature */
    if (!eeconfig_is_enabled()) {
        eeconfig_init();
    }
    backlight_config.raw = eeconfig_read_backlight();
    if (backlight_config.level > BACKLIGHT_LEVELS) {
        backlight_config.level = BACKLIGHT_LEVELS;
    }
    backlight_set(backlight_config.enable ? backlight_config.level : 0);
}

/** \brief Backlight increase
 *
 * FIXME: needs doc
 */
void backlight_increase(void) {
    if (backlight_config.level < BACKLIGHT_LEVELS) {
        backlight_config.level++;
    }
    backlight_config.enable = 1;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight increase: %u\n", backlight_config.level);
    backlight_set(backlight_config.level);
}

/** \brief Backlight decrease
 *
 * FIXME: needs doc
 */
void backlight_decrease(void) {
    if (backlight_config.level > 0) {
        backlight_config.level--;
        backlight_config.enable = !!backlight_config.level;
        eeconfig_update_backlight(backlight_config.raw);
    }
    dprintf("backlight decrease: %u\n", backlight_config.level);
    backlight_set(backlight_config.level);
}

/** \brief Backlight toggle
 *
 * FIXME: needs doc
 */
void backlight_toggle(void) {
    bool enabled = backlight_config.enable;
    dprintf("backlight toggle: %u\n", enabled);
    if (enabled)
        backlight_disable();
    else
        backlight_enable();
}

/** \brief Enable backlight
 *
 * FIXME: needs doc
 */
void backlight_enable(void) {
    if (backlight_config.enable) return;  // do nothing if backlight is already on

    backlight_config.enable = true;
    if (backlight_config.raw == 1)  // enabled but level == 0
        backlight_config.level = 1;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight enable\n");
    backlight_set(backlight_config.level);
}

/** \brief Disable backlight
 *
 * FIXME: needs doc
 */
void backlight_disable(void) {
    if (!backlight_config.enable) return;  // do nothing if backlight is already off

    backlight_config.enable = false;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight disable\n");
    backlight_set(0);
}

/** /brief Get the backlight status
 *
 * FIXME: needs doc
 */
bool is_backlight_enabled(void) { return backlight_config.enable; }

/** \brief Backlight step through levels
 *
 * FIXME: needs doc
 */
void backlight_step(void) {
    backlight_config.level++;
    if (backlight_config.level > BACKLIGHT_LEVELS) {
        backlight_config.level = 0;
    }
    backlight_config.enable = !!backlight_config.level;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight step: %u\n", backlight_config.level);
    backlight_set(backlight_config.level);
}

/** \brief Backlight set level
 *
 * FIXME: needs doc
 */
void backlight_level(uint8_t level) {
    if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS;
    backlight_config.level  = level;
    backlight_config.enable = !!backlight_config.level;
    eeconfig_update_backlight(backlight_config.raw);
    backlight_set(backlight_config.level);
}

/** \brief Get backlight level
 *
 * FIXME: needs doc
 */
uint8_t get_backlight_level(void) { return backlight_config.level; }

#ifdef BACKLIGHT_BREATHING
/** \brief Backlight breathing toggle
 *
 * FIXME: needs doc
 */
void backlight_toggle_breathing(void) {
    bool breathing = backlight_config.breathing;
    dprintf("backlight breathing toggle: %u\n", breathing);
    if (breathing)
        backlight_disable_breathing();
    else
        backlight_enable_breathing();
}

/** \brief Enable backlight breathing
 *
 * FIXME: needs doc
 */
void backlight_enable_breathing(void) {
    if (backlight_config.breathing) return;  // do nothing if breathing is already on

    backlight_config.breathing = true;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight breathing enable\n");
    breathing_enable();
}

/** \brief Disable backlight breathing
 *
 * FIXME: needs doc
 */
void backlight_disable_breathing(void) {
    if (!backlight_config.breathing) return;  // do nothing if breathing is already off

    backlight_config.breathing = false;
    eeconfig_update_backlight(backlight_config.raw);
    dprintf("backlight breathing disable\n");
    breathing_disable();
}

/** \brief Get the backlight breathing status
 *
 * FIXME: needs doc
 */
bool is_backlight_breathing(void) { return backlight_config.breathing; }
#endif

M tmk_core/common/chibios/suspend.c => tmk_core/common/chibios/suspend.c +4 -1
@@ 8,10 8,13 @@
#include "action_util.h"
#include "mousekey.h"
#include "host.h"
#include "backlight.h"
#include "suspend.h"
#include "wait.h"

#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
#endif

/** \brief suspend idle
 *
 * FIXME: needs doc

M tmk_core/common/command.c => tmk_core/common/command.c +4 -1
@@ 32,10 32,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "sleep_led.h"
#include "led.h"
#include "command.h"
#include "backlight.h"
#include "quantum.h"
#include "version.h"

#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
#endif

#ifdef MOUSEKEY_ENABLE
#    include "mousekey.h"
#endif

M tmk_core/common/keyboard.c => tmk_core/common/keyboard.c +3 -1
@@ 29,8 29,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#include "util.h"
#include "sendchar.h"
#include "eeconfig.h"
#include "backlight.h"
#include "action_layer.h"
#ifdef BACKLIGHT_ENABLE
#    include "backlight.h"
#endif
#ifdef BOOTMAGIC_ENABLE
#    include "bootmagic.h"
#else