Routenvorschlaege: Schwierigkeit aus Distanz+Hoehenmetern + Yaro-Navi mit echtem Gebell
Schwierigkeit (Wunsch Rene): ORS elevation=true -> ascent; leicht <4km & <50hm,
mittel <=7km & <150hm, sonst anspruchsvoll (vorher NUR km — flache 6km galten
als 'anspruchsvoll'). ACHTUNG: elevation=true codiert die Polyline 3D —
eigener _decode_polyline3d (Roundtrip-getestet), Track enthaelt jetzt alt;
Hoehenmeter im Vorschlag als Pill ('X hm') + in der API (hoehenmeter).
Navi-Sounds: echtes Schaeferhund-Gebell (Renes Aufnahme zugeschnitten):
/sounds/wuff.mp3 (0,34s Einzel-Beller, 2x=links 1x=rechts) +
/sounds/klaeffen.mp3 (2,8s Sequenz, falscher Weg — spielt 1x statt 4x);
mono, loudnorm -14 LUFS, Fades. /sounds-Mount (main.py), SW-Precache
(bellt auch im Funkloch). Synthese bleibt Fallback.
pytest 39 passed. Bump v1243
This commit is contained in:
parent
0967623342
commit
2042a3f513
10 changed files with 65 additions and 24 deletions
|
|
@ -102,13 +102,16 @@ window.Page_routes = (() => {
|
|||
function _barks(n, pitch, gap) {
|
||||
if (!enabled()) return;
|
||||
const sample = files && (pitch > 1.3 ? files.klaeffen : files.wuff);
|
||||
if (sample) { // echte Aufnahme: n-mal hintereinander
|
||||
if (sample) { // echte Aufnahme (Schäferhund, /sounds/*.mp3)
|
||||
// klaeffen.mp3 ist bereits eine ~2,8-s-Bell-SEQUENZ → nur 1× abspielen;
|
||||
// wuff.mp3 ist ein einzelner Beller → n-mal mit Pause.
|
||||
const reps = sample === files.klaeffen ? 1 : n;
|
||||
let i = 0;
|
||||
const play = () => {
|
||||
if (i++ >= n) return;
|
||||
if (i++ >= reps) return;
|
||||
sample.currentTime = 0;
|
||||
sample.play().catch(() => {});
|
||||
setTimeout(play, gap * 1000 + 200);
|
||||
setTimeout(play, gap * 1000 + 350);
|
||||
};
|
||||
play();
|
||||
return;
|
||||
|
|
@ -672,6 +675,9 @@ window.Page_routes = (() => {
|
|||
<span style="${_pillStyle('rgba(107,114,128,0.10)','#9ca3af','rgba(107,114,128,0.30)')}">
|
||||
${UI.icon('timer')} ${UI.escape(durStr)}
|
||||
</span>
|
||||
${result.hoehenmeter != null ? `<span style="${_pillStyle('rgba(107,114,128,0.10)','#9ca3af','rgba(107,114,128,0.30)')}">
|
||||
${UI.icon('trend-up')} ${result.hoehenmeter} hm
|
||||
</span>` : ''}
|
||||
${diffLabel ? `<span style="${_pillStyle(
|
||||
{leicht:'rgba(22,163,74,0.10)',mittel:'rgba(234,179,8,0.10)',anspruchsvoll:'rgba(220,38,38,0.10)'}[result.schwierigkeit]||'rgba(107,114,128,0.10)',
|
||||
{leicht:'#4ade80',mittel:'#facc15',anspruchsvoll:'#f87171'}[result.schwierigkeit]||'#9ca3af',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue