CHANGES for the SANE Mustek USB backend

2004-03-02
  * Release of version 1.0-18.

2004-03-02
  * Added workaround for data0 toggle bug. I think this is a bug in the
    chipset. The chipset doesn't set the toggle to data0 when the endpoints
    are reset. As this is done whenever the device files/libusb is closed,
    this backend worked only once. Now we count the number of URBs and
    just read/write some crap if the number is odd.

2003-09-21
  * Release of version 1.0-17.

2003-09-21
  * Fixed check for single quotation marks.

2003-02-22:
  * Release of version 1.0-16.

2003-02-22:
  * Iniatialize global variables explicitly.
  * Mention ma1509.

2002-11-20:
  * Man page updated concerning The BSDs.

2002-11-19:
  * Added desc file hint to the gt68xx backend.

2002-11-17:
  * Fixed minor issues in the man page. Removed beta status. Added links
    to other backends for Mustek scanners.

2002-07-17:
  * Release of version 1.0-15.

2002-07-17:
  * Added manufacturer comment in mustek_usb.desc.
  * Changed brightness to threshold.
  * Fixed some warnings.
  * Really check the status in usb_low_open.

2002-04-24:
  * Release of version 1.0-14.

2002-04-24:
  * Undef MIN and MAX if they are defined in mustek_usb_low.h to avoid
    warnings.

2002-04-23:
  * Free devlist in sane_exit.

2002-04-10:
  * Release of version 1.0-13.

2002-04-10:
  * sane_set_io_mode must return SANE_STAUS_GOOD if non_blocking is false.
    Check if scanning.
  * sane_get_select_fd: Check if scanning.
  * sane_control_option: Cleanup. Avoid segfaults. Catch unknown options.
  * sane_exit: set freed variable to 0.

2002-03-20:
  * Release of version 1.0-12.

2002-03-19:
  * Option 0 has an empty name now.
  * Group options have size 0 now.
  * Checked also for SANE_ACTION_SET_AUTO.
  * Removed buggy output in sane_control_option.
  * Added more debug output in sane_control_option.

2002-03-17:
  * Release of version 1.0-11.

2002-03-16:
  * mustek_usb.c: Fixed segfault when opening device again after closing.
  * mustek_usb.c: Fixed possible segfault when name="".
  * mustek_usb.c: Type for option 0 must be set to SANE_TYPE_INT explicitly.

2002-02-14:
  * Fixed some problems with wrong formats in DBG statements.

2002-02-09
  * Fixed wrong output in usb_low_read_reg().

2002-01-23:
  * Fixed undefined operation warnings.

2002-01-11
  * Release of version 1.0-10.

2002-01-11
  * mustek_usb_high.(c|h), mustek_usb_mid.(c|h): commented out unused CCD code.
  * mustek_usb_mid.h: Fixed OFFSET_TABLE_SIZE.
  * mustek_usb.c: Fixed bug concerning opening with empty name.
  * mustek_usb.c, mustek_usb_high.c: Make sure usb_low_exit is only called once
    per device. Fixed segfault.

2002-01-10
  * mustek_usb.desc: Status is "beta" now.

2002-01-03
  * Added link to plustek to manual page.

2001-12-08
  * Release of version 1.0-9.

2001-12-08

  * Added option max_block_size to limit amount of data acquired in one turn.

2001-12-07

  * usb_low_read_rows: Retry until all the data is received. Set maximum
    size of data acquired in one turn.

2001-11-15
  * Release of version 1.0-8.

2001-11-15
  * Updated manual page concerning FreeBSD and kernel configuration.

2001-11-14

  * Added 600 USB detection. No support at all yet.
  * Removed unnecessary calls to usb_low_open and usb_low_close. This
    fixed the FreeBSD problems.
  * Updated all SANE comments ("1200UB and similar").

2001-11-11

  * Added function usb_high_scan_adjust_mono_600_exposure.

2001-10-14

  * Added start values for the 1200USB.
  * Removed load_private_profile (now in usb_high_scan_init).

2001-10-07
  * Release of version 1.0-7.

2001-10-07

  * usb_low: fixed output if scanner has wrong vendor/product id.
  * usb_high: Added the detection of 300&600 sensor again. Mustek seems to
    have used both sensors in the Mustek 1200 UB, so we must distinguish them.
  * Disabled 1200 USB for release.

2001-09-30
  * 1200CU_Plus has Canon600 sensor (fixed).

2001-09-15
  * Added functions for sensor nec600 (1200 USB) in mustek_usb_mid.
  * Changed init_asic and exposure times for 1200 USB.

2001-09-13
  * Release of version 1.0-6.

2001-09-13
  * Added check for negative width and height.
  * Changed status to NEW (internally: beta).
  * Added check for too high gamma values (xscanimage is buggy).
  * Return SANE_STATUS_CANCELLED in sane_read if scan was cancelled.
  * Updated manual page.

2001-09-12
  * Added support for fitting lines (recalculation of resolution) for
    color mode
  * Added support for fitting lines (recalculation of resolution) for
    lineart mode
  * Better debug output for unmatched dpi in mustek_usb_mid.
  * Changed default mode to "gray".
  * Added gamma table support (software) for color + gray, stayed with
    brightness for lineart.
  * Added output of total bytes scanned (+ check).
  * Decreased maximum width and height to avoid freezing the scanner.
  * Added check for unknown options in mustek_usb.
  * Code cleanup in mustek_usb, mustek_usb_high.
  * Added SANE_I18N macro.

2001-09-11
  * Added support for idependent x and y resolution.
  * Changed option resolution to constraint_range.
  * Increased motor speed when returning back home for 600 dpi motor.
  * Increased resolution to 1200 dpi for 1200CU, 1200CU Plus and 1200 UB.
  * Increased resolution to 600 dpi for 600CU.
  * Added support for fitting lines (recalculation of resolution) for
    gray mode

2001-09-10
  * Release of version 1.0-5.

2001-09-10
  * mustek_usb_mid: Added functions for 300 dpi sensor.
  * mustek_usb_mid: Fixed 200 dpi mode.
  * mustek_usb_mid: added general sensor functions.

2001-09-09
  * mustek_usb_mid: Added functions for 600 dpi motor.
  * mustek_usb_mid, usb_high: Added functions for selecting the motor
    functions.

2001-09-06
  * Release of version 1.0-4.

2001-09-06
  * usb_high: use only lower case for functions.
  * mustek_usb: use only lower case for variables and functions.
  * mustek_usb: remove unnecessary functions.

2001-09-01
  * usb_high: removed unnecessary macros and types.
  * usb_high: use only lower case for variables and upper/lower mixed for
    types.

2001-08-30
  * usb_low, usb_mid: use only lower case for functions. Fixed some
    spellings and debug messages.

2001-08-29
  * usb_low: use only lower case for variables and upper/lower mixed for types.
    remove unnecessary types.

2001-08-28
  * Also include sane-usb man page in tar.gz file to avoid make errors.
  * Only use arrays of SANE_Byte for data transfer to scanner in usb_low.

2001-08-26
  * Check the result of all mallocs.
  * Sensor is now only in mustek_usb_low.
  * Removed gamma functions from code (weren't used anyway).
  * Contrast is only active for color and gray scans.

2001-08-26
  * Release of version 1.0-3.

2001-08-26
  * Set up motor600 functions using the motor1200 with double dpi. This
    doesn't work for 200 dpi, however. Removed 200 dpi from list until I
    understand what's going on.
  * Updated manual page
  * Updated .conf file

2001-08-25
  * Used proper SANE_Status return values in mustek_usb_mid for all functions.
  * Used proper SANE_Status return values in mustek_usb for all functions.
  * Added Trust scanner to mustek_usb.desc.
  * Removed Mono4 and Mono1 functions.

2001-08-23
  * Removed ifdefs in mustek_usb_mid.

2001-08-22
  * Removed GREENGRAY macro and included code (didn't work anyway).
  * Removed 36 and 48 bit calibration.
  * Added RIE (return if error) macro.

2001-08-19
  * Removed io functions in mustek_usb_low.
  * Used proper SANE_Status return values in mustek_usb_low for all functions.
  * Fixed lots of debug output in mustek_usb_low.
  * Formatting update in mustek_usb_low.
  * Used proper SANE_Status return values in mustek_usb_high for all functions.
  * Fixed lots of debug output in mustek_usb_high.
  * removed unnecessary modes in mustek_usb_high.

2001-08-18
  * Added manual selection of scanner type in mustek_usb.conf
  * It's checked now if the scanner was autodetected or manually selected
  * Set maximum resolution to 300 for 600 CU.
  * Changed nUSBPipe to fd, which is more appropriate.
  * Removed #ifdef 0 code from mustek_usb_high
  * Used proper SANE_Status return values in mustek_usb_low for
    - io_Open
    - Open
    - io_WriteReg
    - io_ReadReg

2001-08-08
  * Fixed some format issues
  * Better debug output
  * Added support for CANON300 sensor (for 600 CU)

2001-08-07
  * Added support for sanei_usb v2.
  * Check vendor/product directly after sane_open.

2001-08-06
  * Added scan buffer. It's used if the buffer supplied with sane_read is
    smaller than one scan line.

2001-08-06
  * Released mustek_usb-backend 1.0-2.

2001-08-05
  * Support more than one scanner in the .conf file
  * Use sanei_usb functions
  * Allow usb vendor device in .conf
  * Only use usb statements in .conf for all three scanners, comment out
    device files
  * Now the correct names are returned if autodetection works
  * Manual page updates

2001-08-05
  * Released mustek_usb-backend 1.0-1.

2001-08-04

  * mustek_usb_low:
    - fixed compilation warnings
    - fixed compilation problems
    - fixed C++ to C transition issues (e.g. "initializer element is not
      computable at load time")
    - fixed debug output
    - adjusted some names
    - removed MEMFREE, MALLOC, LP*
  * mustek_usb_mid:
    - fixed compilation warnings
    - changed printf to DBG
    - fixed debug output
    - reformatted
  * mustek_usb_high:
    - fixed some DBG statements
    - fixed compilation warnings
    - moved global variable to Mustek_Usb_Device
    - reformatted
  * mustek_usb:
    - fixed compilation warnings
    --> compile runs successfully for the first time since restructuring
    - removed DWORDS etc.
    - moved CScanner into Mustek_Usb_device
    - removed global variables
  * mustek_usb.conf: updated
  * removed references to "WORD"
  * ifdefed unused functions
  * fixed bug concerning wrong x-resolution after the first scan for
    low resolutions (e.g. preview). This also fixed the problems with
    1200 CU.
  --> Scanning works with 1200 UB, 1200 CU and probably 1200 CU Plus.
  * added manual page
  * updated mustek_usb.desc

2001-08-02

  * mustek_usb_high:
    - fixed lots of compilation problems.
    - removed LP..., huge*, far*
    - removed MEMFREE, MEMALLOC
    - added several "return SANE_TRUE" to SANE_Bool functions
    - changed printf to DBG
    - changed Sleep to usleep

2001-07-22
  * mustek_usb_low: Only one data structure: ma1017.
  * mustek_usb_mid:
    - removed //
    - remove SANE disclaimers
    - use SANE types
    - changed to use new usb_low style
    - made everything static
    - renamed functions to usb_mid_*
  * mustek_usb_high:
    - removed remaining //
    - reformatted
    - used SANE types
    - made everything static
    - renamed
  * Fixed quite some compilation errors

2001-07-08
  * mustek_usb_low:
    - renamed functions to usb_low/usb_low_io
    - made all functions static
    - used DBG instead of printf
    - moved all status information from global to struct ma1017
    - rename constructor/destructor
    - included io constructor/destructor in usb_low

2001-07-01
  * Added more debug output in attach () when device file couldn't be opened.
  * Added some tests for NULL pointers in attach ()
  * fixed segfault in sane_exit ()
  * indented all files
  * fixed mustek_usb_high:
    - changed // to /* */
    - reformatted
  * fixed mustek_usb_low:
    - changed // to /* */
    - reformatted
    - removed most non-standard types

2001-05-26
  * Started working based on the Mustek source code from their FTP
    server.
  * Renamed backend to mustek_usb. All files start with this name.
  * Created:
    - mustek_usb(.c .h) from 1200ub(.c .h)
    - mustek_usb_low from ma1017 and ma1017io
    - mustek_usb_mid from ada*
    - mustek_usb_high from scanner and calibrator
  * Used "../include/sane" in #include statements
  * Used /dev/usbscanner in mustek_usb.conf
  * Fixed mustek_usb.desc
  * Fixed mustek_usb.*:
    - use correct names
    - no leading "_"
    - use only C-style comments
    - moved defines to .h,
    - reformatted using GNU style
    - use /dev/usbscanner as default
    - Fixed DBG output
    - don't use printf
    - added more DBG output
    - added "static" to internal functions
    - commented out all references to c_scanner
    - removed references to WORD and other non-standard types
    - moved read_rows from global to Mustek_Usb_Scanner
    --> mustek_usb.* compiles
