-
Jonathan Marten authored
This is for a cleaner API and to finally eliminate the global data of KScanDevice. A KScanOption now remembers the KScanDevice that it belongs to, so that it can perform SANE operations. Only the KScanDevice may construct a KScanOption, all other callers must obtain (and optionally create) one via KScanDevice::getOption(). There is only a single instance of a KScanOption object for a given scanner parameter. Since without the global data there can now be more than one KScanDevice, this is no longer a singleton class and one can be constructed in the usual way (although Kooka only ever creates one at a time). The 'apply' operation is performed by the KScanOption instead of KScanDevice, so the KScanOption now has 4 orthogonal operations 'set', 'apply', 'reload' and 'get'. A KScanOptSet stores only the name-value pair of the options, not the complete KScanOption object. There is therefore no need for KScanOption to have a copy constructor or assignment operator, which in turn means that it does not need the hack for maintaining common gamma table values. These 3 classes, plus ScanParams, now have complete API documentation. Squashed commit of the following: commit 4a5fe08946b761b8f90dc725384dfa1c20217c4b Author: Jonathan Marten <jjm@keelhaul.me.uk> Date: Wed Mar 9 09:03:10 2011 +0000
402ff8ef