Releases: mback2k/wiasane
Alpha release - October 2016 - Update
winsane: Added extended auth callback with support for context data (#1)
winsane: Zero initialize auth callback variables
winsane: Reset auth callback variables on Exit
coisane: Fixed memory leak in case of unsupported option type
winsane: Fixed memory leak after setting an option's string value
winsane: Fixed memory leak in case of socket reconnect
devsane: Fixed memory leak during creation of device install info
winsane: Fixed socket leak in case of failure during initial connect
wiasane: Fixed invalid memory access if plReceived param is NULL
winsane: Fixed ignored result and logically dead code
winsane: Fixed deleting void pointers with undefined behavior
coisane: Fixed warning about missing break statement
wiasane: Fixed warning about missing break statement
wiasane: Fixed warning about missing break statement
winsane: Added bounds check to tainted length variable
winsane: Added bounds check to tainted record_size variable
winsane: Added bounds check to tainted array_length variable
winsane: Added bounds check to tainted num_options variable
winsane: Added bounds checks to tainted num_values variables
winsane: Fixed bounds checks of tainted variables
installer: Lowered minimal required Windows version to Vista SP1
wiasane: Migrated to extended auth callback with context data (#1)
coisane: Migrated to extended auth callback with context data (#1)
winsane: Enforce range constraint for fixed double values
winsane: Fixed and aligned range constraint to saned server
winsane: Enforce boolean constraint for double values
winsane: Fixed string list constraint to include string length
winsane: Separated value validation into type-specific functions
winsane: Added generic- and type-specific value constrain functions
winsane: Added function to create device directly from name
winsane: Added function to get session device directly from name
winsane: Fixed warning about possible return of invalid memory
winsane: Fixed possible memory overflow after string copy
winsane: Fixed string constrain algorithm to detect full matches
coisane: Added support for unlisted e.g. non-local scanners
wiasane: Added support for unlisted e.g. non-local scanners
wiasane: Fixed possible memory leak by re-using existing device
winsane: Renamed and consolidated device creation methods
Installer: Removed obsolete Windows 95/98/Me version number
Installer: Hardcoded VS2012 / VC110 CRT redistributable DLLs
devsane: Align resource file with other binaries
coisane: Fix possible invalid memory access
wiasane: Improve mode value mapping conditions
wiasane: Fix source value mapping conditions
wiasane: Fix possible memory leak if two valid values exist
wiasane: Add debug output for unsupported commands
signtool: Always use production signmode for debugging on Windows 10
wiasane: Add debug output to session and device handling
wiasane: Add debug output to driver interface
wiasane: Fix scanning of multiple pages using ADF (#2, #16)
Update copyright year of relevant files
Update COPYING and README.md
Update code signing certificate
Alpha release - October 2014 - Update
winsane-dbg: Added support for custom port parameter
installer: Added winsane-dbg.exe debug application to package
wiasane: Updated default scanner resolutions to include 75 dpi
coisane: Updated detection of supported resolutions
wiasane: Fixed default brightness and contrast values (#15)
wiasane: Added support for alternative sharpness option (#15)
wiasane: Replaced hardcoded option names in debug output
coisane: Pass whole context data to CreateResolutionList
coisane: Load list of default resolutions from driver inf-file
coisane: Fixed and improved searching for characters in strings
coisane: Removed dependency on shlwapi.lib
coisane: Removed obsolete shlwapi.h header
strutil: Added single- and multi-byte versions of StringDup
wiasane: Removed dependency on shlwapi.lib
wiasane: Added debug output to WIA option commands
Updated productive code signing certificate used for release builds
Alpha release - June 2014 - Update
Updated README.md
installer: Automatically execute device install action on Windows 8.x
coisane: Added UpdateDeviceConfigFlags utility function
coisane: Set flag to display finish-install wizard pages on cancel
wiasane: Respect reference count within ExitScannerSession
wiasane: Do not close session if ADF scan is in progress (#16)
wiasane: Handle multiple SCAN_FIRST calls during ADF load and scan (#16)
wiasane: Skip SCAN_FIRST if ADF is already loaded (#16)
Alpha release - June 2014 - Update
strutil: Check string pointers within Trace function
devsane: Check data pointers within driver functions
coisane: Check string pointers within device functions
coisane: Added WINAPI declaration to internal utility functions
coisane: Updated property page layout to match device manager pages
coisane: Updated wizard page layout to match hardware wizard pages
coisane: Added WINAPI declaration to internal helper functions
coisane: Renamed internal context variable from privateData to pData
coisane: Reduced duplicate property sheet page initialization code
coisane: Improved readability of entry condition
coisane: Added GetDlgItemAText utility function
coisane: Refactored to use the new GetDlgItemAText utility function
coisane: Keep track of window handles and check memory pointers
coisane: Load sti.dll and wiadefui.dll in addition to sti_ci.dll
coisane: Fixed error message in case of connection error
strutil: Added SetWindowTextR and SetDlgItemTextR resource functions
coisane: Updated wizard to use background threads and progress page (#5)
coisane: Cleanup resources
strutil: Fixed safe and secure memory freeing functions
strutil: Improved reliability of string formatting functions
strutil: Improved debug output Trace function
strutil: Improved reliability of registry functions
winsane: Fixed inconsistent line-endings
strutil: Improved reliability of resource functions
coisane: Improved reliability of utility functions
coisane: Fixed possible invalid memory access
coisane: Updated some resource strings
coisane: Take dialog instances into account for reference counting
coisane: Fixed compatibility with 64-bit platforms
coisane: Improved initialization of server wizard page
coisane: Improved initialization and free of progress wizard page
coisane: Updated scanner wizard page to use internal list of devices
coisane: Correctly keep track of dialog window handle
coisane: Renamed background thread functions
coisane: Automatically set focus to current wizard page
strutil: Fixed possible buffer overflow and renamed string functions
strutil: Fixed signed/unsigned mismatch on Win32
coisane: Splitted functionality of advanced property page
coisane: Updated advanced property page to use background threads (#5)
coisane: Correctly keep track of dialog window handle
coisane: Removed obsolete string length variables and pointer checks
coisane: Updated advanced property page to use internal list of devices
coisane: Prevent switching the property page during background task
coisane: Lock advanced property page during background operation
coisane: Use current credentials from dialog for authentication
coisane: Updated handling of property page notifications
coisane: Updated message handling for the advanced property page
coisane: Use currently selected device for button commands
coisane: Extended use of background threads for advanced property page (#5)
coisane: Use available heap instead of process heap
coisane: Lock wizard progress page during background operation
coisane: Change Apply-button to Close-button after applying changes
coisane: Updated message handling for the install wizard pages
coisane: Streamlined conditions for error messages
coisane: Updated property page background progress status texts
coisane: Added UpdateInstallDeviceFlagsEx utility function
coisane: Use new UpdateInstallDeviceFlagsEx utility function
coisane: Annotated return values of utility functions
coisane: Updated CreateResolutionList utility function
coisane: Renamed device variable to oDevice
coisane: Renamed parameters and variables of OpenInfFile
coisane: Fixed possible return of uninitialized string buffer
coisane: Fixed SAL annotation
coisane: Pass heap to CreateResolutionList instead of whole data
coisane: Fixed returned error codes
coisane: Added best-effort range-support to CreateResolutionList
coisane: Update UpdateDeviceData to verify that device data is written
coisane: Update QueryDeviceData to verify that device data is available
coisane: Updated error handling within UpdateDeviceInfo
coisane: Check that the device info and data is succesfully updated
coisane: Check that the device info was succesfully retrieved
coisane: Restore previously selected device on scanner page
coisane: Replaced PTSTR with LPTSTR type
coisane: Moved status text regarding opening the device
coisane: Extended use of background threads for advanced property page (#5)
Alpha release - June 2014
wiasane: Improved scan method as another try at byte gap issues (#11)
winsane: Fixed memory leak on incomplete scan
winsane: Reverse byte order only for frames with bit depth >= 16 (#11)
winsane: Replaced WINSANE_Scan_Result enum with SANE_Status values
winsane: Make Disconnect a public API call
winsane: Add GetByteOrder method to scan
wiasane: Debug output of byte-order and byte-gaps
wiasane: Only add additional y-bytes if there was not enough data (#11)
wiasane: Added more debug output
strutil: Consolidated Trace debug method in strutil library
wiasane: Fixed condition for rewinding obsolete x-bytes (#11)
wiasane: Fixed calculation for rewinding obsolete x-bytes (#11)
winsane: Update length variable in all relevant cases
winsane: Return EOF status code if scan has completed
wiasane: Only add additional y-bytes if the scanned image is complete (#11)
winsane: Partially revert 67df0a4 (#11)
wiasane: Moved GetErrorCode method to separate wiasane_util.[cpp|h]
wiasane: Moved Scan helper methods to separate wiasane_scan.[cpp|h]
wiasane: Added more debug output to WIA API functions
wiasane: Categorized WIA API functions and commands into on- and offline
winsane: Added explicit Disconnect function to WINSANE_Socket
winsane: Disconnect the socket in the Exit function of WINSANE_Session
winsane: Added basic Reconnect function to WINSANE_Socket
winsane: Reconnect the socket in the Init function of WINSANE_Session
winsane: Renamed IsConnected function to IsInitialized in WINSANE_Sessio
winsane: Renamed local variables within Connect function in WINSANE_Scan
wiasane: Fixed and expanded entry conditions for Scan helper functions
wiasane: Fixed and expanded entry conditions for device functions
wiasane: Moved FetchScannerParams to separate wiasane_scan.[cpp|h]
wiasane: Moved info and default methods to separate wiasane_def.[cpp|h]
wiasane: Unset all device IO handles on CMD_UNINITIALIZE
wiasane: Refactored session and device handling to be session-stateless (#4, #11)
wiasane: Fixed possible null-pointer dereferences
installer: Restore original status label after custom messages
winsane: Added extern "C" linkage-specification to sane.h
winsane: Pass session object into option objects
winsane: Added Authorize public API function to WINSANE_Session (#1)
winsane: Try to authorize the RPC using the given resource (#1)
coisane: Clear device combobox before adding all devices
strutil: Added StringTo conversion utility functions
winsane: Retry RPC after authorization using the given resource (#1)
winsane-dbg: Use environment variable to specify saned test server
winsane-dbg: Fixed reading user-input choice regarding test scan
winsane-dbg: Added support for the new authorization callback (#1)
winsane: Added native string functions to get devices and options
winsane: Added definition of WINSANE_API_CALLBACK declaration
coisane: Added support for the new authorization callback (#1)
wiasane: Read username and password credentials from registry
wiasane: Added support for the new authorization callback (#1)
winsane: Added support for MD5 password hashing during authorization
winsane: Fixed authentication loop to not rely on deleted memory
wiasane: Fixed possible memory leak of username and password
strutil: Moved registry functionality into string utility library
Made all global internal variables static
wiasane: Close device data registry key after reading from it
coisane: Make use of new registry functions in string utility library
strutil: Use WINAPI declaration for functions with fixed arguments
strutil: Added safe memory free functions to string utility library
strutil: Make use of new HeapSafeFree function
strutil: Provide more macro definitions for string conversions
devsane: Replaced internal Trace function with string utility library
wiasane: Make use of new HeapSafeFree and LocalSafeFree functions
coisane: Make use of the new HeapSafeFree function
devsane: Make use of the new HeapSafeFree function
Alpha release - May 2014
Alpha release - March 2014 - Update
wiasane: Fixed polling of device state at interval of 20 seconds (#9)
wiasane: Fixed mixed indentation
wiasane: Reordered internal functions
wiasane: Fixed SAL annotations
wiasane: Optimized entry conditions
wiasane: Fixed inconsistent SAL annotations
wiasane: Optimized entry conditions
wiasane: Re-grouped registry information functions
wiasane: Renamed scanner session functions
winsane: Close device if open within deconstructor
wiasane: Added check for supported data types
wiasane: Decouple local WIA interface from the network connection
Alpha release - March 2014
Fixed compiler optimization flags used for strutil
Added VS2012 / VC110 CRT redistributable DLLs to installer
strutil: Fixed SAL annotations
coisane: Fixed SAL annotations
devsane: Fixed SAL annotations and variable initialization
winsane: Fixed SAL annotations and variable initialization
wiasane: Fixed possible dereference of null pointer
winsane-dbg: Fixed null pointer usage and buffer initialization
wiasane: Fixed invalid argument to internal Scan function call
wiasane: Fixed possible buffer overflow during array read and write
winsane: Replaced mix of signed and unsigned types with LONG
winsane: Improved performance of Socket Read and Write functions
winsane: Fixed Socket Flush returning signed value as unsigned long
winsane: Fixed buffer being cleared in case no data was written
winsane: Handle connection loss by closing the socket
winsane: Provide Socket IsConnected function to check connectivity
winsane: Fixed usage of invalid array index variable
winsane: Provide Session IsConnected function to check connectivity
wiasane: Detect connection loss and set device state to offline
winsane: Detect connection loss and return I/O error status code
winsane: Fixed possible invalid memory access
winsane: Improved error handling during socket reads
winsane: Fixed indentation to fit overall code style
winsane: Fixed possible invalid memory access
winsane: Split GetDevices into FetchDevices and GetDevices
winsane: Split FetchOptions into FetchOptions and GetOptions
winsane: Pass values by reference to inner private function
docs: Updated copyright year and project name
wiasane: Trace commands if debugging is enabled
docs: Updated README to reflect current state of implementation
wiasane: Enable polling of device state and automatic port selection (#9)
wiasane: Set polling of device state to interval of 20 seconds (#9)
wiasane: First steps to improve the internal error handling
wiasane: Further steps to improve the internal error handling
winsane: Provide Device IsOpen function to check device state
winsane: Allow options to be retrieved while device is closed
wiasane: Handle device state using reference counted uses
wiasane: Decouple setting scan mode from session and device state
wiasane: Remove obsolete entry conditions
wiasane: Set resolution only once using X resolution
wiasane: Fixed OpenScannerDevice if session was previously closed
wiasane: Decouple pixel window from session and device state
wiasane: Fixed memory corruption due to access of freed memory
Alpha release - December 2013
Fixed small typos in README.md
Added configuration switch to installer source file
Improved compression structure of installer file
Make it possible to do an in-place update by replacing the driver
Fixed error handling during device uninstallation
Improved upgrade handling and error code handling during installation
Refactored internal device state machine
Improved console input reading within debug application
Fixed 701ecb9 since zero is a valid SANE handle
Print device information even if it could not be opened
Fixed invalid conditions with possible invalid memory access
Fixed small formatting issues
Added missing break statements
Improved experimental ADF support using the SANE scanning approach
Fixed friendly device name and vendor used in GUIs
Added delay between installer steps to avoid driver conflicts
Fixed installer to replace same version to avoid driver conflicts
Reset source after changing scan mode to avoid being stuck with ADF
Reset source if ADF is empty instead of after changing scan mode
Replaced inline option name strings with constants
Replace existing value if there is an explicit flatbed value
Updated scan mode and source detection logic
Remove static fallback values and depend on value detection logic
Fixed selection of configured scanner in property page
Return actual SANE status code instead of boolean value
Fixed exit status check after e3f66fb
Added string resource helper functions
Added logic behind device property page buttons
Streamlined object variable names
Fixed memory leak by using delete[] for allocated arrays
Fixed possible invalid memory access in CoInstaller GUI logic
Added pre-allocating string duplication function to strutil
Replaced string allocation using malloc/free with recommended heap
Fixed typo
Fixed invalid memory access
Fixed parameter value declarations
Converted from UCS-2 Little Endian to ANSI
Added usage information to README.md
First alpha release - November 2013
v0.0.0.1 Added README.md