aboutsummaryrefslogtreecommitdiff
path: root/docs/ja/custom_quantum_functions.md
diff options
context:
space:
mode:
authorumi <57262844+umi-umi@users.noreply.github.com>2021-01-06 14:07:07 +0900
committerGitHub <noreply@github.com>2021-01-06 14:07:07 +0900
commitdb8e88aae040a6f3b33f85fff6a3046ea47a4a88 (patch)
tree5b653bcad1fe9ad570e70be98a27d1304b880cf3 /docs/ja/custom_quantum_functions.md
parent495a61ad7a14bb7dd4022f1837fc18085026cfde (diff)
downloadqmk_firmware-db8e88aae040a6f3b33f85fff6a3046ea47a4a88.tar.gz
qmk_firmware-db8e88aae040a6f3b33f85fff6a3046ea47a4a88.zip
[Docs] Japanese translation of feature_led_indicators.md (#10960)
* add feature_led_indicators.md translation * update related document * add link on _summary
Diffstat (limited to 'docs/ja/custom_quantum_functions.md')
-rw-r--r--docs/ja/custom_quantum_functions.md106
1 files changed, 3 insertions, 103 deletions
diff --git a/docs/ja/custom_quantum_functions.md b/docs/ja/custom_quantum_functions.md
index 952b5d8a8..c19fea527 100644
--- a/docs/ja/custom_quantum_functions.md
+++ b/docs/ja/custom_quantum_functions.md
@@ -1,8 +1,8 @@
1# キーボードの挙動をカスタマイズする方法 1# キーボードの挙動をカスタマイズする方法
2 2
3<!--- 3<!---
4 original document: 0.10.33:docs/custom_quantum_functions.md 4 original document: 0.10.52:docs/custom_quantum_functions.md
5 git diff 0.10.33 HEAD -- docs/custom_quantum_functions.md | cat 5 git diff 0.10.52 HEAD -- docs/custom_quantum_functions.md | cat
6--> 6-->
7 7
8多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。 8多くの人にとって、カスタムキーボードはボタンの押下をコンピュータに送信するだけではありません。単純なボタンの押下やマクロよりも複雑なことを実行できるようにしたいでしょう。QMK にはコードを挿入したり、機能を上書きしたり、様々な状況でキーボードの挙動をカスタマイズできるフックがあります。
@@ -93,106 +93,6 @@ keyrecord_t record {
93} 93}
94``` 94```
95 95
96# LED 制御
97
98QMK は HID 仕様で定義された5つの LED の読み取りメソッドを提供します:
99
100* Num Lock
101* Caps Lock
102* Scroll Lock
103* Compose
104* Kana
105
106ロック LED の状態を取得するには2つの方法があります:
107
108* `bool led_update_kb(led_t led_state)` あるいは `_user(led_t led_state)` を実装する、または
109* `led_t host_keyboard_led_state()` を呼び出す
110
111!> `host_keyboard_led_state()` は `led_update_user()` が呼ばれる前に新しい値を既に反映している場合があります。
112
113LED の状態を `uint8_t` として提供する2つの非推奨の関数があります:
114
115* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)`
116* `uint8_t host_keyboard_leds()`
117
118## `led_update_user()`
119
120この関数はこれら5つの LED のいずれかの状態が変化すると呼ばれます。LED の状態を構造体のパラメータとして受け取ります。
121
122慣例により、`led_update_kb()` にそのコードを実行するようフックさせるために `led_update_user()` から `true` を返し、`led_update_kb()` でコードを実行したくない場合は `false` を返します。
123
124以下はいくつかの例です:
125
126- レイヤー表示のような何かのために LED を使うために LED を上書きする
127 - `_kb()` 関数を実行したくないので、`false` を返します。これはレイヤーの挙動を上書きするためです。
128- LED がオンあるいはオフになった時に音楽を再生する。
129 - `_kb` 関数を実行したいので、`true` を返します。これはデフォルトの LED の挙動に追加されます。
130
131?> `led_set_*` 関数は `bool` の代わりに `void` を返すため、キーボードの LED 制御を上書きすることができません。従って、代わりに `led_update_*` を使うことをお勧めします。
132
133### `led_update_kb()` の実装例
134
135```c
136bool led_update_kb(led_t led_state) {
137 bool res = led_update_user(led_state);
138 if(res) {
139 // writePin は 1 でピンを high に、0 で low に設定します。
140 // この例では、ピンは反転していて、
141 // low/0 は LED がオンになり、high/1 は LED がオフになります。
142 // この挙動は、LED がピンと VCC の間にあるか、ピンと GND の間にあるかどうかに依存します。
143 writePin(B0, !led_state.num_lock);
144 writePin(B1, !led_state.caps_lock);
145 writePin(B2, !led_state.scroll_lock);
146 writePin(B3, !led_state.compose);
147 writePin(B4, !led_state.kana);
148 }
149 return res;
150}
151```
152
153### `led_update_user()` の実装例
154
155この不完全な例は Caps Lock がオンまたはオフになった場合に音を再生します。また LED の状態を保持する必要があるため、`true` を返します。
156
157```c
158#ifdef AUDIO_ENABLE
159 float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
160 float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
161#endif
162
163bool led_update_user(led_t led_state) {
164 #ifdef AUDIO_ENABLE
165 static uint8_t caps_state = 0;
166 if (caps_state != led_state.caps_lock) {
167 led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
168 caps_state = led_state.caps_lock;
169 }
170 #endif
171 return true;
172}
173```
174
175### `led_update_*` 関数のドキュメント
176
177* キーボード/リビジョン: `bool led_update_kb(led_t led_state)`
178* キーマップ: `bool led_update_user(led_t led_state)`
179
180## `host_keyboard_led_state()`
181
182最後に受信した LED の状態を `led_t` として取得するためにこの関数を呼びます。これは、`led_update_*` の外部から、例えば [`matrix_scan_user()`](#matrix-scanning-code) の中で LED の状態を読み取るのに便利です。
183
184## 物理的な LED の状態の設定
185
186一部のキーボードの実装は、物理的な LED の状態を設定するための便利なメソッドを提供しています。
187
188### Ergodox キーボード
189
190Ergodox の実装は、個々の LED をオンあるいはオフにするために `ergodox_right_led_1`/`2`/`3_on`/`off()` と、インデックスによってそれらをオンあるいはオフにするために `ergodox_right_led_on`/`off(uint8_t led)` を提供します。
191
192さらに、LED の明度を指定することができます。全ての LED に同じ明度を指定するなら `ergodox_led_all_set(uint8_t n)` を使い、個別の LED の明度を指定するなら `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` を使い、LED のインデックスを指定して明度を指定するには `ergodox_right_led_set(uint8_t led, uint8_t n)` を使います。
193
194Ergodox キーボードは、最低の明度として `LED_BRIGHTNESS_LO` を、最高の輝度(これはデフォルトです)として `LED_BRIGHTNESS_HI` も定義しています。
195
196# キーボードの初期化コード 96# キーボードの初期化コード
197 97
198キーボードの初期化プロセスには幾つかのステップがあります。何をしたいかによって、どの関数を使うべきかに影響します。 98キーボードの初期化プロセスには幾つかのステップがあります。何をしたいかによって、どの関数を使うべきかに影響します。
@@ -347,7 +247,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
347} 247}
348``` 248```
349 249
350特定のレイヤーの状態を確認するには、 `IS_LAYER_ON_STATE(state, layer)` と `IS_LAYER_OFF_STATE(state, layer)` マクロを使います。 250特定のレイヤーの状態を確認するには、`IS_LAYER_ON_STATE(state, layer)` と `IS_LAYER_OFF_STATE(state, layer)` マクロを使います。
351 251
352`layer_state_set_*` 関数の外では、グローバルなレイヤー状態を確認するために `IS_LAYER_ON(layer)` と `IS_LAYER_OFF(layer)` マクロを使えます。 252`layer_state_set_*` 関数の外では、グローバルなレイヤー状態を確認するために `IS_LAYER_ON(layer)` と `IS_LAYER_OFF(layer)` マクロを使えます。
353 253