From 7f57eda606c717e9dbeb4038d6b2c42f2a2a6bda Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Mon, 14 Mar 2016 09:10:13 -0700 Subject: [PATCH] various fixes around rendering of pin values --- sim/libmbit.ts | 7 +++++-- sim/simsvg.ts | 3 +++ sim/state.ts | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sim/libmbit.ts b/sim/libmbit.ts index 837f38a1..cb1bffcf 100644 --- a/sim/libmbit.ts +++ b/sim/libmbit.ts @@ -387,12 +387,14 @@ namespace ks.rt.micro_bit { } export function enablePitch(pin: Pin) { - pin.mode = PinMode.Analog | PinMode.Output | PinMode.Pitch; + board().pins.filter(p => !!p).forEach(p => p.pitch = false); + pin.pitch = true; } export function pitch(frequency: number, ms: number) { // update analog output - let pin = board().pins.filter(pin => !!pin && (pin.mode & PinMode.Pitch) != 0)[0] || board().pins[0]; + let pin = board().pins.filter(pin => !!pin && pin.pitch)[0] || board().pins[0]; + pin.mode = PinMode.Analog | PinMode.Output; if (frequency <= 0) { pin.value = 0; pin.period = 0; @@ -410,6 +412,7 @@ namespace ks.rt.micro_bit { AudioContextManager.stop(); pin.value = 0; pin.period = 0; + pin.mode = PinMode.Unused; board().updateView(); cb() }, ms); diff --git a/sim/simsvg.ts b/sim/simsvg.ts index 2bf687fd..e1efae95 100644 --- a/sim/simsvg.ts +++ b/sim/simsvg.ts @@ -228,6 +228,9 @@ namespace ks.rt.micro_bit { else if (pin.mode & PinMode.Touch) { v = pin.touched ? '0%' : '100%'; if (text) text.textContent = ""; + } else { + v = '100%'; + if(text) text.textContent = ''; } if (v) Svg.setGradientValue(this.pinGradients[index], v); } diff --git a/sim/state.ts b/sim/state.ts index abbf7778..8a8d7482 100644 --- a/sim/state.ts +++ b/sim/state.ts @@ -14,8 +14,7 @@ namespace ks.rt.micro_bit { Analog = 0x0002, Input = 0x0004, Output = 0x0008, - Touch = 0x0010, - Pitch = 0x0020 + Touch = 0x0010 } export class Pin { @@ -24,6 +23,7 @@ namespace ks.rt.micro_bit { value = 0; period = 0; mode = PinMode.Unused; + pitch = false; isTouched(): boolean { this.mode = PinMode.Touch;