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