Some checks failed
check / check (push) Has been cancelled
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>
21 lines
684 B
C
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
|