Phase 3: dictionary loading pipeline + binary embedding
- engine_init.cc: loads StenoDictionaryCollection from embedded binary, validates JSC4 magic + timestamp, constructs dict list + full processor pipeline (Repeat → AllUp → JeffModifiers → Engine) - dict_embed.S: embeds compiled dict binary via .incbin directive. Falls back to null placeholder if no dict available - CMakeLists.txt: dict binary discovery (dicts/steno_dict.bin or JAVELIN_DICT_BIN cmake var), assembly embedding - tools/dict_compiler/compile_dict.py: stroke parser + skeleton compiler. Full JSC4 binary format not yet implemented — for now, use Javelin web tool (lim.au) to generate dict binary - dicts/: directory for compiled dictionary binaries Dict compiler is the remaining gap — JSC4 format requires exact XIP pointer layout matching Javelin's C++ struct casting.
This commit is contained in:
parent
d4dc836b52
commit
1751171667
6 changed files with 411 additions and 46 deletions
|
|
@ -7,14 +7,13 @@ extern "C" {
|
|||
void zmk_javelin_steno_init(void);
|
||||
void zmk_javelin_steno_process_key(int steno_key_index, bool is_press);
|
||||
|
||||
// Linker symbols for the embedded dictionary binary
|
||||
extern const uint8_t _javelin_dict_start[];
|
||||
extern const uint8_t _javelin_dict_end[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
class StenoDictionary;
|
||||
struct StenoOrthography;
|
||||
|
||||
// Complete engine initialization with loaded dictionary.
|
||||
// Called from dictionary loading code once flash data is validated.
|
||||
void zmk_javelin_steno_init_engine(StenoDictionary &dictionary,
|
||||
const StenoOrthography &orthography);
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue