mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-22 11:10:29 +08:00
Merge pull request #141 from TomHodson/fix_simulated_led_color
Add support for bicolor led in the simulator
This commit is contained in:
commit
a209178ac0
|
@ -51,6 +51,14 @@
|
||||||
<stop offset="0.94" stop-color="#000d00" stop-opacity="0.05"/>
|
<stop offset="0.94" stop-color="#000d00" stop-opacity="0.05"/>
|
||||||
<stop offset="1" stop-opacity="0"/>
|
<stop offset="1" stop-opacity="0"/>
|
||||||
</radialGradient>
|
</radialGradient>
|
||||||
|
<filter id="ledcolor">
|
||||||
|
<feColorMatrix in="SourceGraphic" type="matrix"
|
||||||
|
values=" 0 0 0 0 0
|
||||||
|
0 1 0 0 0
|
||||||
|
0 0 0 0 0
|
||||||
|
0 0 0 1 0 "/>
|
||||||
|
|
||||||
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
<g id="Calque">
|
<g id="Calque">
|
||||||
<g id="Contours">
|
<g id="Contours">
|
||||||
|
@ -71,7 +79,7 @@
|
||||||
<rect x="293.5" y="520" width="683" height="334" rx="34.68" style="fill: #777b7a"/>
|
<rect x="293.5" y="520" width="683" height="334" rx="34.68" style="fill: #777b7a"/>
|
||||||
</g>
|
</g>
|
||||||
<g id="light" style="opacity: 0">
|
<g id="light" style="opacity: 0">
|
||||||
<rect x="293.5" y="520" width="683" height="334" rx="34.68" style="fill: url(#Dégradé_sans_nom_3)"/>
|
<rect x="293.5" y="520" width="683" height="334" rx="34.68" style="fill: url(#Dégradé_sans_nom_3)" filter="url(#ledcolor)"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g id="Textes">
|
<g id="Textes">
|
||||||
|
|
|
@ -32,7 +32,15 @@ void watch_disable_leds(void) {}
|
||||||
|
|
||||||
void watch_set_led_color(uint8_t red, uint8_t green) {
|
void watch_set_led_color(uint8_t red, uint8_t green) {
|
||||||
EM_ASM({
|
EM_ASM({
|
||||||
document.getElementById('light').style.opacity = $1 / 255;
|
// the watch svg contains an feColorMatrix filter with id ledcolor
|
||||||
|
// and a green svg gradient that mimics the led being on
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feColorMatrix
|
||||||
|
// this changes the color of the gradient to match the red+green combination
|
||||||
|
let filter = document.getElementById("ledcolor");
|
||||||
|
let color_matrix = filter.children[0].values.baseVal;
|
||||||
|
color_matrix[1].value = $0 / 255; // red value
|
||||||
|
color_matrix[6].value = $1 / 255; // green value
|
||||||
|
document.getElementById('light').style.opacity = Math.min(255, $0 + $1) / 255;
|
||||||
}, red, green);
|
}, red, green);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue