Files
seedbox/firmware/test/json.h
Gee 2196633ed5
Some checks failed
check / check (push) Has been cancelled
Seedbox v0.1 + firmware, generic kit/synth, ROOT/SCALE pages
First commit of the repo. Contents beyond the v0.1 simulator and layout:

- Full Pico 2 W firmware (firmware/app, drivers, engine port, host test).
- BANK page and 404 mode A/B removed; learned pads play exactly what was learned.
- 404/MiniFreak renamed to KIT/SYNTH throughout (jacks, code, sim, docs,
  layout labels; wiring rebuilt).
- ROLL returns to page select after a re-roll; a freshly learned track turns on.
- LCD contrast 66.
- ROOT and SCALE pages: 21 scales, AUTO = the seed picks; global and sticky.

Intended music change: the scale table grew from 8 to 21 and AUTO picks from
all of them, so every seed's scale changed. Vectors regenerated with
npm run vectors, plus new key-override cases. Flash record is now version 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:39:36 +03:00

21 lines
684 B
C

/* Minimal JSON reader for the host test runner (not used on the Pico). Integers only, no escapes beyond \" and \\. */
#ifndef SEEDBOX_JSON_H
#define SEEDBOX_JSON_H
typedef enum { J_NULL, J_BOOL, J_NUM, J_STR, J_ARR, J_OBJ } jtype;
typedef struct jval {
jtype type;
long long num; /* J_NUM, J_BOOL */
char *str; /* J_STR */
char *key; /* set when the value sits inside an object */
struct jval **items; /* J_ARR, J_OBJ */
int n;
} jval;
jval *json_parse_file(const char *path);
jval *json_get(const jval *obj, const char *key); /* NULL if missing */
jval *json_at(const jval *arr, int i);
void json_free(jval *v);
#endif