ADR-005: Hardware Support - Printer Switching
Status: Accepted
Context
The photobooth app must support multiple printer models with different specifications. Users should be able to seamlessly switch between printers without code changes, and print output should automatically adjust to match each printer's DPI and paper size.
Decision
We will implement a printer abstraction layer that:
- Supports Multiple Printers: Canon Selphy CP1500, POS thermal printers (Epson, Panda), Instax Mini Link, Niimbot B21
- Dynamic Canvas Adjustment: Auto-adjust canvas dimensions based on selected printer
- Printer Selection UI: Dropdown in settings to switch active printer
Consequences
Positive
- Single app supports various hardware setups
- Automatic sizing reduces print errors
- Easy to add new printer support in future
Negative & Risks
- Each printer driver may have different APIs/connection methods
- Testing complexity across multiple devices