Updated 4. Architecture (markdown)

Ben Olden-Cooligan 2023-01-14 17:29:10 -08:00
parent 8d3dd23e9c
commit dbfa28ee49

@ -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, 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`.
The NAPS2 scanning architecture is fairly complicated as it needs to support multiple platforms, 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.