Commit graph

111 commits

Author SHA1 Message Date
Solomon Peachy db0c7d8b99 all: Eliminate the multi-stage cmdline parsing.
Unfortunately this means we lose the '-B backend' method, but the
overall control flow is much, much simpler now.
2015-08-13 21:09:56 -04:00
Solomon Peachy de8a32424c all: Unified approach to extra_vid/pid/type
This required a modification to all attach() methods.

Also, fix canonselphy's parsing/attachment code.
2015-08-12 22:56:29 -04:00
Solomon Peachy ba2f964c6a dnpds40: More fixes to rewind support on the DS620.
Previous comit broke all sizes that couldn't legitimately be rewound.  oops.
2015-08-10 20:00:58 -04:00
Solomon Peachy 84575600e4 dnpds40: Allow usb iserialnumber visibility to be configured.
Also, decouple it from the DS620, since it'll be available on other
models eventually
2015-08-06 09:54:49 -04:00
Solomon Peachy 0a44ac0906 dnpds40: Left out 4x6*2. 2015-07-31 20:57:15 -04:00
Solomon Peachy 36463c70c6 dnpds40: Fix rewind support in the presence of multiple copies.
(Actually, rewind support was broken, period, but now it's all good..)
2015-07-21 22:01:24 -04:00
Solomon Peachy 6b11607c93 dnpds40: DS40 "forgets" 2x6 cutter mode when resuming from an out-of-media error
...So resort to manual copy generation.

TODO:  See if newer DS40 firmware fixes this?
2015-07-21 18:00:58 -04:00
Solomon Peachy 869a255f2f dnpds40: Add support for disabling the printer's native copy generation.
DS40 v1.40 "forgets" 2x6 strip mode when we run out of media during the job.

DS620 v1.10 (probably) might not support rewind and multi-copy simultaneously. Might also break pipelining!

Note that neither condition is actually enabled right now, need to test
more first.
2015-07-21 17:57:23 -04:00
Solomon Peachy bc746cc56b dnpds40: Handful of improvements:
* RX1 also supports querying MQTY_DEFAULT
 * Don't query resolution, return last print status only.
 * Query Media Class
 * Query Ribbon ID code
 * Query 300 and 600dpi color checksum data independently for all models
2015-07-11 15:12:47 -04:00
Solomon Peachy 30d9b050df dsnpds40: 6*4.5 prints can be rewound, and are presumably legal on 6x8 media. 2015-07-06 17:47:19 -04:00
Solomon Peachy 2181ae04b9 all: Clean up a small pile of warnings that clang-analyzer found. 2015-07-04 11:03:52 -04:00
Solomon Peachy c9c3cb859a dnpds40: Fix help text. 2015-06-30 21:35:05 -04:00
Solomon Peachy 992e551a02 all: Fix command like parsing when the argument has an option.
This was a longstanding bug.  Oops.
2015-06-30 21:33:02 -04:00
Solomon Peachy 14af6acbb9 dnpds40: Decode sensor information as much as possible. 2015-06-30 20:51:30 -04:00
Solomon Peachy 24c3550feb all: Ensure all malloc() failures are caught and logged. 2015-06-23 20:48:52 -04:00
Solomon Peachy 980fada366 dnpds40: Max printjob size was too small.
Resulted in 8x12 @600dpi prints failing to fully parse due to buffer overflows.

Also added a log message when we fail to read things.
2015-06-23 19:40:35 -04:00
Solomon Peachy 19ce36f65b dnpds40: Distinguish between soft (user-correctable) and fatal errors. 2015-06-23 19:25:23 -04:00
Solomon Peachy 476318bbec dnpds40: Don't repeat media query. 2015-06-22 23:55:48 -04:00
Solomon Peachy 189631d9b4 dnpds40: Add some #ifdefs 2015-06-22 23:51:17 -04:00
Solomon Peachy 2cce68aa81 dnpds40: Minor update. 2015-06-22 23:48:30 -04:00
Solomon Peachy 64a85a4a42 dnpds40: Push media query into early attachment code.
Also, move all sanity checks into the job parsing function, out of the
main loop.  Only stuff like remaining media, rewind, etc belong in the
main loop.
2015-06-22 23:32:48 -04:00
Solomon Peachy d63c075015 dnpds40: correct media offset. 2015-06-22 19:26:23 -04:00
Solomon Peachy a2bd3946d1 dnpds40: Display total media quantity *before* remaining prints. 2015-06-22 18:58:19 -04:00
Solomon Peachy f90f2ba558 dnpds40: Add support for 6x4.5 and 6x4.5*2 prints 2015-06-22 18:46:26 -04:00
Solomon Peachy 9f69513f8a dnpds40: DS620 bugfixes. Fix 6x9 detection, and color data checksum. 2015-06-21 13:49:28 -04:00
Solomon Peachy 7e56920868 dnpds40: Bugfixes. Typo in version checking. Double free in main
loop.  Log remaining prints on status page.  Multicut detection fixes.
2015-06-20 16:33:39 -04:00
Solomon Peachy b57b415bbe dnpds40: Add USB VID/PID for the DNP DS620
In theory, the DS620 is now fully supported.  Just needs some testing.
2015-06-19 13:47:43 -04:00
Solomon Peachy 3e08415a81 dnpds40: Disable PQTY query until we can figure out its use. 2015-06-17 22:59:01 -04:00
Solomon Peachy a2584443b5 dnpds40: Query serial number and version just once, at attachment time.
Also add disabled code that stores and restores the last matte status.
2015-06-17 22:57:31 -04:00
Solomon Peachy f5484d0573 dnpds40: Add standby mode set for DS620 printers. 2015-06-17 21:02:51 -04:00
Solomon Peachy 504ff4cd37 dnpds40: Decode the standby status code. 2015-06-17 20:55:29 -04:00
Solomon Peachy b1905b15ca dnpds40: Log when we detect the DS620 being in standby. 2015-06-17 20:53:22 -04:00
Solomon Peachy 68a64d544b dnpds80: Fix a couple of comments, and RX1 has its own type now. 2015-06-16 20:26:27 -04:00
Solomon Peachy df4437f275 dnpds40: Correct remaining print count. 2015-06-16 18:54:58 -04:00
Solomon Peachy 26bffc806c ... 2015-06-16 18:47:58 -04:00
Solomon Peachy c4a36dbc2f dnpds40: Add support for DS620-specific multicut-types 2015-06-16 18:47:12 -04:00
Solomon Peachy dc86a3a345 whitespace cleanup 2015-06-14 15:28:20 -04:00
Solomon Peachy e373d06760 dnpds40: Query remaining media to see if we can complete job
* This lets us properly halt the queue if the media has run out
 * Print a warning if we can start, but have insufficient media to finish
2015-06-14 11:33:08 -04:00
Solomon Peachy 7b8844daa9 dnpds40: Query DS620-specific configuration flags.
* Media end keep mode
 * Report serial number in USB descriptor
 * Standby delay time

Still need to allow them to be set
2015-06-14 09:23:02 -04:00
Solomon Peachy 15a8bd7761 dnpds40: Add Color data version/checksum fetches for DS620. 2015-06-14 09:15:24 -04:00
Solomon Peachy 9b52766140 dnpds40: Add support for DS620 media rewind
Also:

   * sanity-check FULL_CUTTER
   * detect standby support.

Note that Gutenprint still needs updating for DS620.
2015-06-14 09:05:55 -04:00
Solomon Peachy e635d804e9 dnpds40: Handle (and sanity-check) 3.5x5*2 prints.
still needs work on Gutenprint.
2015-06-13 22:34:54 -04:00
Solomon Peachy 000f6aa1cc dnpds40: Query firmware version, and sanity-check print job against it.
Error out if the firmware doesn't support requested job -- eg matte
printing, or 2x6 printing.  Also, only allow 2x6 cuts on 6x4 or 6x8
prints.
2015-06-13 17:20:19 -04:00
Solomon Peachy a53eb4c09d dnpds40: Validate horizontal size to determine if job is for DS80 or everything else. 2015-06-13 12:25:45 -04:00
Solomon Peachy c661edaff0 dnpds40: Don't perform job sanity checks if there is no job! 2015-06-13 12:06:33 -04:00
Solomon Peachy d7e2685a0f dnpds40: Be more flexible with the multicut validation.
It's primarily used for media/buffer validation and optimization, so if
it's missing use the most conservative settings and warn the user.

Newer gutenprint (5.2.11-pre) won't trigger this.
2015-06-13 12:01:08 -04:00
Solomon Peachy b6d6351bbd dnpds40: Improve error message WRT multicut. 2015-06-11 08:42:52 -04:00
Solomon Peachy 95651e7685 dnpds40: Handle the presence (or lack thereof) of the BUFFCNTRL
and QTY commands in the data stream.
2015-06-11 08:41:25 -04:00
Solomon Peachy 4e3282377f dnpds40: Start trying to tokenize the sensor data.
Also add placeholders for the DS80DX and DS620.
2015-06-10 23:37:27 -04:00
Solomon Peachy 8c4be91f64 dnpds40: Move the MULTICUT detection to earlier in the process.
Basically, we abort as soon as we know it's missing.
2015-06-09 08:33:13 -04:00