aboutsummaryrefslogtreecommitdiffstats
path: root/os/kernel/include/ch.h
blob: a0b2ca6fdf0cd175c43f49a98663afdd4653fb2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
    ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.

    This file is part of ChibiOS/RT.

    ChibiOS/RT 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 3 of the License, or
    (at your option) any later version.

    ChibiOS/RT 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/>.
*/

/**
 * @file    ch.h
 * @brief   ChibiOS/RT main include file.
 * @details This header includes all the required kernel headers so it is the
 *          only kernel header you usually want to include in your application.
 *
 * @addtogroup kernel_info
 * @{
 */

#ifndef _CH_H_
#define _CH_H_

/**
 * @brief   ChibiOS/RT identification macro.
 */
#define _CHIBIOS_RT_

/**
 * @brief   Kernel version string.
 */
#define CH_KERNEL_VERSION       "1.5.2unstable"

/**
 * @brief   Kernel version major number.
 */
#define CH_KERNEL_MAJOR         1

/**
 * @brief   Kernel version minor number.
 */
#define CH_KERNEL_MINOR         5

/**
 * @brief   Kernel version patch number.
 */
#define CH_KERNEL_PATCH         2

/*
 * Common values.
 */
#ifndef FALSE
#define FALSE       0
#endif
#ifndef TRUE
#define TRUE        (!FALSE)
#endif

#include "chconf.h"
#include "chtypes.h"
#include "lists.h"
#include "chcore.h"
#include "sys.h"
#include "vt.h"
#include "scheduler.h"
#include "semaphores.h"
#include "mutexes.h"
#include "condvars.h"
#include "events.h"
#include "messages.h"
#include "mailboxes.h"
#include "memcore.h"
#include "heap.h"
#include "mempools.h"
#include "threads.h"
#include "registry.h"
#include "inline.h"
#include "queues.h"
#include "streams.h"
#include "channels.h"
#include "debug.h"

#endif /* _CH_H_ */

/** @} */
_rand * (((float)rand()) / ((float)(RAND_MAX)))); PLAY_SONG(clicky_song); } void clicky_freq_up(void) { float new_freq = clicky_freq * AUDIO_CLICKY_FREQ_FACTOR; if (new_freq < AUDIO_CLICKY_FREQ_MAX) { clicky_freq = new_freq; } } void clicky_freq_down(void) { float new_freq = clicky_freq / AUDIO_CLICKY_FREQ_FACTOR; if (new_freq > AUDIO_CLICKY_FREQ_MIN) { clicky_freq = new_freq; } } void clicky_freq_reset(void) { clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT; } void clicky_toggle(void) { audio_config.clicky_enable ^= 1; eeconfig_update_audio(audio_config.raw); } void clicky_on(void) { audio_config.clicky_enable = 1; eeconfig_update_audio(audio_config.raw); } void clicky_off(void) { audio_config.clicky_enable = 0; eeconfig_update_audio(audio_config.raw); } bool is_clicky_on(void) { return (audio_config.clicky_enable != 0); } bool process_clicky(uint16_t keycode, keyrecord_t *record) { if (keycode == CLICKY_TOGGLE && record->event.pressed) { clicky_toggle(); } if (keycode == CLICKY_ENABLE && record->event.pressed) { clicky_on(); } if (keycode == CLICKY_DISABLE && record->event.pressed) { clicky_off(); } if (keycode == CLICKY_RESET && record->event.pressed) { clicky_freq_reset(); } if (keycode == CLICKY_UP && record->event.pressed) { clicky_freq_up(); } if (keycode == CLICKY_DOWN && record->event.pressed) { clicky_freq_down(); } if (audio_config.enable && audio_config.clicky_enable) { if (record->event.pressed) { // Leave this separate so it's easier to add upstroke sound if (keycode != AU_OFF && keycode != AU_TOG) { // DO NOT PLAY if audio will be disabled, and causes issuse on ARM clicky_play(); } } } return true; } #endif // AUDIO_CLICKY