- Add docs/PIPELINE.md with comprehensive pipeline flowchart - Document camera modes (vertical, horizontal, omni, floating) - Update AGENTS.md with pipeline documentation instructions
119 lines
2.5 KiB
Markdown
119 lines
2.5 KiB
Markdown
# Mainline Pipeline
|
|
|
|
## Content to Display Rendering Pipeline
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
subgraph Sources["Data Sources"]
|
|
RSS[("RSS Feeds")]
|
|
Poetry[("Poetry Feed")]
|
|
Ntfy[("Ntfy Messages")]
|
|
Mic[("Microphone")]
|
|
end
|
|
|
|
subgraph Fetch["Fetch Layer"]
|
|
FC[fetch_all]
|
|
FP[fetch_poetry]
|
|
Cache[(Cache)]
|
|
end
|
|
|
|
subgraph Prepare["Prepare Layer"]
|
|
MB[make_block]
|
|
Strip[strip_tags]
|
|
Trans[translate]
|
|
end
|
|
|
|
subgraph Scroll["Scroll Engine"]
|
|
CAM[Camera]
|
|
NH[next_headline]
|
|
RTZ[render_ticker_zone]
|
|
Grad[lr_gradient]
|
|
VT[vis_trunc / vis_offset]
|
|
end
|
|
|
|
subgraph Effects["Effect Pipeline"]
|
|
subgraph EffectsPlugins["Effect Plugins"]
|
|
Noise[NoiseEffect]
|
|
Fade[FadeEffect]
|
|
Glitch[GlitchEffect]
|
|
Firehose[FirehoseEffect]
|
|
Hud[HudEffect]
|
|
end
|
|
EC[EffectChain]
|
|
ER[EffectRegistry]
|
|
end
|
|
|
|
subgraph Render["Render Layer"]
|
|
RL[render_line]
|
|
TL[apply_ticker_layout]
|
|
end
|
|
|
|
subgraph Display["Display Backends"]
|
|
TD[TerminalDisplay]
|
|
PD[PygameDisplay]
|
|
SD[SixelDisplay]
|
|
KD[KittyDisplay]
|
|
WSD[WebSocketDisplay]
|
|
ND[NullDisplay]
|
|
end
|
|
|
|
Sources --> Fetch
|
|
RSS --> FC
|
|
Poetry --> FP
|
|
FC --> Cache
|
|
FP --> Cache
|
|
Cache --> MB
|
|
Strip --> MB
|
|
Trans --> MB
|
|
MB --> NH
|
|
NH --> RTZ
|
|
CAM --> RTZ
|
|
Grad --> RTZ
|
|
VT --> RTZ
|
|
RTZ --> EC
|
|
EC --> ER
|
|
ER --> EffectsPlugins
|
|
EffectsPlugins --> RL
|
|
RL --> Display
|
|
Ntfy --> RL
|
|
Mic --> RL
|
|
|
|
style Sources fill:#f9f,stroke:#333
|
|
style Fetch fill:#bbf,stroke:#333
|
|
style Scroll fill:#bfb,stroke:#333
|
|
style Effects fill:#fbf,stroke:#333
|
|
style Render fill:#ffb,stroke:#333
|
|
style Display fill:#bff,stroke:#333
|
|
```
|
|
|
|
## Camera Modes
|
|
|
|
```mermaid
|
|
stateDiagram-v2
|
|
[*] --> Vertical
|
|
Vertical --> Horizontal: mode change
|
|
Horizontal --> Omni: mode change
|
|
Omni --> Floating: mode change
|
|
Floating --> Vertical: mode change
|
|
|
|
state Vertical {
|
|
[*] --> ScrollUp
|
|
ScrollUp --> ScrollUp: +y each frame
|
|
}
|
|
|
|
state Horizontal {
|
|
[*] --> ScrollLeft
|
|
ScrollLeft --> ScrollLeft: +x each frame
|
|
}
|
|
|
|
state Omni {
|
|
[*] --> Diagonal
|
|
Diagonal --> Diagonal: +x, +y each frame
|
|
}
|
|
|
|
state Floating {
|
|
[*] --> Bobbing
|
|
Bobbing --> Bobbing: sin(time) for x,y
|
|
}
|
|
```
|