Updated 4. Architecture (markdown)

Ben Olden-Cooligan 2023-01-14 17:28:55 -08:00
parent e1d7103526
commit 8d3dd23e9c

@ -1,6 +1,6 @@
# Scan Pipeline
The NAPS2 scanning architecture is fairly complicated as it needs to support multiple platforms, differing process architectures, and driver types. Core scanning functionality lives in `NAPS2.Sdk` while functionality specific to the NAPS2 desktop app is in `NAPS2.Lib`.
The NAPS2 scanning architecture is fairly complicated as it needs to support multiple platforms, differing process architectures, and driver types, while efficiently performing various kinds of processing. Core scanning functionality lives in `NAPS2.Sdk` while functionality specific to the NAPS2 desktop app is in `NAPS2.Lib`.
- `ScanPerformer` - This contains business logic for the NAPS2 desktop application. It converts `ScanProfile` (user profile settings) + `ScanParams` (contextual settings) into `ScanOptions`, prompts for a device if needed, does Auto Save, records scan events, etc.
- `ScanController` - This is the entry point for scanning in `NAPS2.Sdk`, and encompasses all core scanning functionality.