summaryrefslogtreecommitdiff
path: root/TODO.md
blob: b4c2f5898368d4f11fed4fce973d2191bf983805 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# To-Do List

This file tracks the next set of immediate, actionable tasks for the project.

## Next Up

-   **Task #8: Implement Final Build Stripping**
    - [ ] Define and document a consistent set of rules for code stripping under the `STRIP_ALL` macro.
    - [ ] Example sub-tasks: remove unused functions, strip debug fields from structs, simplify code paths where possible.

-   **Task #19: Update README.md with Quick Start**
    - [ ] Add a top-level "Quick Start" section to `README.md` with brief build and run instructions for `demo64k`.

-   ** Task #?: scripts/build_win.sh is always copying MinGW DLLs file ("Copy MinGW DLLs"). Add a check on date or file size to prevent useless systematic copy.

-   ** Task #?: Code hygiene
    - [ ] make a pass on the code and make sure all useless code is protected by STRIP_ALL #ifdef's
    - [ ] analyze the #include and check if some standard header inclusion could be removed (<algorithm>, etc.)
    - [ ] see if all usage of std structs, container, etc. are appropriate:
           == is this std::map<> needed?
           == could we remove this std::set<>?
           == Can this std::vector<T> be replaced by a simple C-like "const T*" array?
           == are these std::string needed or can they be replaced by some 'const char*' ?
           == etc.

## Future Goals

-   **Task #5: Implement Spectrogram Editor**
    - [ ] Develop a web-based tool (`tools/editor`) for creating and editing `.spec` files visually.
    - [ ] The tool should support generating `.spec` files from elementary shapes (lines, curves) for extreme compression.
-   **Phase 2: Advanced Size Optimization**
    - [ ] Replace GLFW with a minimal native Windows API layer.
    - [ ] Investigate and implement advanced asset compression techniques (e.g., logarithmic frequency, quantization).
    - [ ] Explore replacing the standard C/C++ runtime with a more lightweight alternative.

## Past Tasks

-   Centralize generated files into `src/generated`.
-   Vertically compact C++ source code.
-   Create top-level `README.md`.
-   Move non-essential documentation to `doc/`.
-   **Task #4b:** Create `scripts/check_all.sh` to build and test all platform targets (macOS, Windows, Linux) to ensure stability before commits.
-   **Task #10:** Modify `spectool` to trim leading and trailing silent frames from `.spec` files to reduce asset size.