!7 compact module HeadphoneDetection > DynBigNumber { Bool pluggedIn; // null if unknown int minValue = 100, maxValue; start { setDescription("HEADPHONES"); if (isLinux()) ret with setValue("Linux only, sorry"); doEveryAndNow(10.0, r actualUpdate); } void actualUpdate { int raw = linux_rawHeadphonesCount(); setField(minValue := min(minValue, raw)); setField(maxValue := max(maxValue, raw)); setField(pluggedIn := minValue == maxValue ? null : raw > minValue); setValue(nullFalseTrue(pluggedIn, "?", "NO", "YES")); } }