diff --git a/conventions.md b/conventions.md index 00b3c67..222255c 100644 --- a/conventions.md +++ b/conventions.md @@ -134,29 +134,34 @@ When the custom preprocessor is available, `__FILE__` and `__LINE__` will be rep ``` video-setup/ - modules/ - translation units; each has a .h, a .c, and a Makefile - common/ - shared types (error, base definitions); no external dependencies - / - dev/ - development aids; not part of the final deliverable - cli/ - exploratory CLI drivers, one per module - experiments/ - freeform experiments - tests/ - automated tests (later) - Makefile - top-level build + src/ - all C source files + modules/ - translation units; each has a .c and a Makefile + common/ - shared types (error, base definitions); no external dependencies + / + node/ - video node entry point and integration (later) + include/ - public headers (.h files) + dev/ - development aids; not part of the final deliverable + cli/ - exploratory CLI drivers, one per module + experiments/ - freeform experiments + tests/ - automated tests (later) + Makefile - top-level build ``` -Modules live only in `modules/`. CLI drivers and experiments live in `dev/`. Nothing in `dev/` is a dependency of anything in `modules/`. +Source files live in `src/`. Public headers live in `include/`. CLI drivers and experiments live in `dev/`. Nothing in `dev/` is a dependency of anything in `src/`. --- ## Module Structure -Each module directory contains: +Each module has its source under `src/modules//` and its public header under `include/`: ``` -modules// - .h - public API; minimal includes, no implementation details +src/modules// .c - implementation - Makefile - builds a static object; links against common only + Makefile - builds a static object + +include/ + .h - public API; minimal includes, no implementation details ``` The corresponding CLI driver lives at `dev/cli/_cli.c`. diff --git a/planning.md b/planning.md index 6f1f116..c0db72c 100644 --- a/planning.md +++ b/planning.md @@ -12,10 +12,13 @@ The final binary is a single configurable node program. That integration work co ``` video-setup/ - modules/ - common/ - shared definitions (error types, base types) - media_ctrl/ - Linux Media Controller API (topology, pad formats, links) - v4l2_ctrl/ - V4L2 camera controls (enumerate, get, set) + src/ + modules/ + common/ - shared definitions (error types, base types) + media_ctrl/ - Linux Media Controller API (topology, pad formats, links) + v4l2_ctrl/ - V4L2 camera controls (enumerate, get, set) + node/ - video node entry point and top-level integration (later) + include/ - public headers dev/ cli/ - exploratory CLI drivers, one per module experiments/ - freeform experiments