Commit graph

282 commits

Author SHA1 Message Date
Solomon Peachy 320c84f770 common: Add support for backends to support aliases.
This also renames the reported names for mitsu9550, dnpds40, and
kodak6800 to mitsu9xxx, dnp_citizen, and kodak68x0.  Backwards
compatibility is maintained!
2018-03-16 13:35:17 -04:00
Solomon Peachy 4c36cec972 dnpds40: The OP900ii is closer to the CY/RX1 than DS40. 2018-03-07 09:51:39 -05:00
Solomon Peachy 1fb411dc88 DNP: DS40 1.61 supports full cutter control, 3.5x5 *2 and 6x6" prints. 2018-03-03 08:35:52 -05:00
Solomon Peachy 0652afb7ea dnpds40: Taking a stab at detecting RX1HS media vs non-HS media.
(The non-HS media will *not* work in an HS printer, but HS media will
 work in a non-HS printer!)
2018-02-28 19:23:46 -05:00
Solomon Peachy ad3409b600 It's 2018, update appropriately. 2018-02-22 06:02:49 -05:00
Solomon Peachy 4dd9470834 dnp: RX1 2.06 FW adds square printing 2018-02-22 06:01:31 -05:00
Solomon Peachy d9f84f6f6f dnpds40: Add in missing USB PIDs for Citizen printers. 2018-02-20 07:56:07 -05:00
Solomon Peachy c824c549fb all: use BACKEND_CUPS_RETRY_CURRENT for memory allocation failures. 2018-02-16 10:49:21 -05:00
Solomon Peachy 96e4ef4ed5 multiple: Fast return should not be used when backend generates copies 2017-12-07 14:09:26 -05:00
Solomon Peachy 5b40d2e216 All: Add 'SPDX-License-Identifier' headers to all source files.
(GPL-3.0+ for everything but the S6145 backend, which is GPL-3.0+
   with an additional permission)
2017-11-17 13:34:26 -05:00
Solomon Peachy 56cd04bd2a all: Clean up the manufacturer override field in the devices. 2017-11-08 19:19:00 -05:00
Solomon Peachy b38363f387 DNP: DS620 v1.52 adds stable "fine matte" printing. 2017-09-25 10:30:52 -04:00
Solomon Peachy 487ccc9f71 Fix up bad whitespacing. 2017-07-10 20:15:56 -04:00
Solomon Peachy 11829f2f45 Merge a pile spelling fixes from Ville Skyttä <scop@sf> 2017-05-05 08:11:04 -04:00
Solomon Peachy cd1f20d79c It's now 2017; Update copyright year for the code that's seen changes. 2017-01-13 08:39:53 -05:00
Solomon Peachy 6202b06936 dnp: Add support for the DS820 printer. 2017-01-05 16:28:50 -05:00
Solomon Peachy e16a555e2c dnp: DS620 supports fine matte. 2016-12-27 09:29:46 -05:00
Solomon Peachy 53c34dcab4 DNP: Don't report negative prints remaining when there's no loaded media. 2016-09-30 22:38:14 +03:00
Solomon Peachy 3af7523f0e DNP: You'd think a simple "prints remaining" counter would be simple..
*grumblegrumblestupidpfirmwarequirks*
2016-09-06 17:32:01 -04:00
Solomon Peachy 7b52082af7 DNP: avoid a divide-by-zero error if we encounter unknown media. 2016-09-06 17:19:36 -04:00
Solomon Peachy 9fe2e31b8b DNP: RX1 2.00 supports mediaoffset *and* mqty_default. 2016-08-30 15:04:06 -04:00
Solomon Peachy 87b76be8c5 DNP: RX1 1.20 supports 3.5x5 * 2 2016-08-30 14:55:26 -04:00
Solomon Peachy 332c060681 Marker message should include media type where it's known. 2016-08-24 20:55:28 -04:00
Solomon Peachy f06fb9eec2 DNP: Fix a pile of cppcheck warnings. 2016-08-21 09:50:05 -04:00
Solomon Peachy b210c5a5c0 all: Major updates to CUPS marker reporting
* use 'ribbonWax' instead of 'ink-ribbon'  (as per RFC)
 * return media type as the 'marker' name, if known or inferrable
 * Selphy CP series gained support
 * Mitsu D70 family gained support for uppper and lower decks
2016-08-19 17:40:12 -04:00
Solomon Peachy a0c6637dba dnpds40: Add a media database for legacy models
So we can calculate a proper "prints remaining" percentage on printers
that don't support the mqty_default command.
2016-08-18 00:12:35 -04:00
Solomon Peachy 41f5f688f7 All: Use 'ink-ribbon' instead of 'ribbon' for the supply type. 2016-08-17 23:54:08 -04:00
Solomon Peachy aee1e6a800 dnpds40: Add support for CUPS marker attributes:
* Report actual % of remaining media on printers that support it.

TODO:  Add a table so we can infer this on other models/versions.
2016-08-17 22:06:44 -04:00
Solomon Peachy 061020a000 DNP: always send QTY to the printer, even for 1 copy jobs. 2016-07-27 12:19:32 -04:00
Solomon Peachy 4016c45759 dnp: Always report a sane value for half-size prints.
* On printers that predate rewind support, this was never reported.
* On DS620A, it was reported incorrectly.
2016-07-21 17:23:31 -04:00
Solomon Peachy ba721f6834 DNP: Clean up media quantity reporting.
* Fix it all up.
2016-07-19 18:46:10 -04:00
Solomon Peachy bebdb72f21 DNP: Fix formatting of 'media lot code' 2016-07-17 10:56:33 -04:00
Solomon Peachy a5ce2e21b4 dnp: Log the actual printer type in the info dump. 2016-07-16 00:31:38 -04:00
Solomon Peachy 980abd7ed0 dnpds40: Another minor fix for counter output. 2016-07-14 20:49:25 -04:00
Solomon Peachy 1d27d98d93 dnpds40: Clean up output a bit. 2016-07-07 22:59:39 -04:00
Solomon Peachy 7fb50e97bd dnp: Insert a sleep after sending the last of the image data.
This keeps us from immediately querying the printer status before the
printer has had a chance to get going.
2016-06-30 16:31:28 -04:00
Solomon Peachy a63d5b84f0 dnpds40: Initial support for DNP RX1HS 2016-06-28 17:55:26 -04:00
Solomon Peachy 829570e2be DNP: DNP/EU has released firmware (1.34) with lustre support. 2016-06-26 22:13:32 -04:00
Solomon Peachy 5a996b70e3 DNP: Prettier output for some status messages. 2016-06-25 13:00:45 -04:00
Solomon Peachy 1045fa9f3f dnpds40: Add support for job cancel and printer reset.
And fix iserial support.
2016-06-25 11:28:08 -04:00
Solomon Peachy 6efd1242f8 dnpds40: Discovered USB IDs for DS80DX and CW02 2016-06-24 16:29:06 -04:00
Solomon Peachy 15e60abbcf dnpds40: Minor status message change. 2016-06-19 08:58:57 -04:00
Solomon Peachy cc9b1531a9 Nuke two features from the DS40 from firmware that was never released. 2016-06-12 09:38:45 -04:00
Solomon Peachy 1abae91127 dnpds40: Correct a bug in the matte state tracking 2016-02-08 17:53:28 -05:00
Solomon Peachy 9eaea2d609 dnpds40: the DS620 also has a 'HEAD' counter; report that. 2016-02-07 17:04:50 -05:00
Solomon Peachy bbc404472e dnpds40: Query last matte state after we attach to the printer.
Otherwise we don't know the serial number.
2016-02-07 09:17:29 -05:00
Solomon Peachy ae0c99d118 dnpds40: Improvements in matte state tracking.
* Handle the more advanced matte modes
 * Load state at startup only
 * Write state after each *successful* print

It would still be REALLY nice if the printer allowed us to query
ths disposition of the current job.
2016-02-07 09:11:48 -05:00
Solomon Peachy 323e20f80d dnpds40: when waiting for job completion, sleep between each loop. 2016-02-05 23:32:54 -05:00
Solomon Peachy f0e9c04257 dnpds40: Don't send the printer any of the job until we know it's ready.
Also, don't modify jobs inline, instead strip out commands we may need
to modify and explicitly re-insert them as necessary.
2016-02-05 07:42:15 -05:00
Solomon Peachy 08a5e31183 dnpds40: Split apart 6x6 vs 5x5 support. 2016-02-03 22:53:57 -05:00
Solomon Peachy 0ec6b0465a dnpds40: Replace lots of magic numbers with proper constants.
Makes the logic a lot easier to follow in some places.
2016-02-03 22:48:54 -05:00
Solomon Peachy 11ed078eb1 dnpds40: Strip buffcntrl from the input stream.
The backend will insert its own if the situation merits.
2016-01-29 23:50:47 -05:00
Solomon Peachy 8e35e5608b all: It's 2016 now, update the copyright text.
Also, correct the initial dates for a few of the backends.
2016-01-24 09:44:19 -05:00
Solomon Peachy 6d8eb1434a dnpds40: Newer DS620 FW supports fullcutter on non-6x8 prints. 2016-01-21 19:16:52 -05:00
Solomon Peachy 24ef3b445d dnpds40: Enable use of fast return mode
Or more accurately, block until print complete if not in fast return mode.
2016-01-20 20:11:54 -05:00
Solomon Peachy b443cb34a1 dnpds40: Media color offset is decoded better now.
Not sure if it's anything other than informational...
2016-01-01 21:20:48 -05:00
Solomon Peachy e1919da138 dnpds40: Incorrect color sensor decoding in the sensor query.
(Actually a documentation error)
2015-11-22 20:34:41 -05:00
Solomon Peachy aea73e3e24 dnpds40: Go ahead and attempt to print if the printer's out of media.
This will cause the printer error light to come on, so the user can tell
something's wrong.
2015-10-14 10:44:02 -04:00
Solomon Peachy 20b35e90ad dnpds40: Fix an inverted test in the square print arena. 2015-09-13 13:09:16 -04:00
Solomon Peachy 1de2cf6114 dnpds40: Handle an odd number of pages printed in duplex mode.
If it's an odd number of pages, manually force the printer to eject.
2015-09-03 01:22:56 -04:00
Solomon Peachy 8d2f7bcc44 dnpds40: Comment updates. 2015-08-29 07:13:59 -04:00
Solomon Peachy be1fc6a46f dnpds40: Don't allow BUFCNTRL on DS80D when not using roll media. 2015-08-28 20:49:31 -04:00
Solomon Peachy ac59030199 dnpds40: Counter_P support has minimum FW requirements too. 2015-08-28 20:46:03 -04:00
Solomon Peachy 8d5b52fe6d dnpds40: Rearrange sanity checks, and add in DS80D media validation. 2015-08-28 20:37:28 -04:00
Solomon Peachy 152384d82e dnpds40: Fix three bugs:
* Validation error if a job comes in with rewind pre-enabled
 * Minor bug with 8x10 media validation
 * Rewindable job could trigger crash if multicut cmd not present in job
2015-08-28 20:09:39 -04:00
Solomon Peachy 2a0f680ac6 dnpds40: Add queries for Duplexer FW version, counter, and status. 2015-08-28 19:30:16 -04:00
Solomon Peachy 535d0efea0 dnpds40: Add an early attempt to query DS80D duplexer status.
And it doesn't work on a DS80 at all, so further DS80D work will have to
wait.
2015-08-26 22:54:18 -04:00
Solomon Peachy 2b68e3bc83 dnpds40: make square print support a feature flag instead of model-dependent. 2015-08-26 21:49:52 -04:00
Solomon Peachy 5dda0018d2 all: Get rid of a little more getopt detritus. 2015-08-25 22:47:26 -04:00
Solomon Peachy b343d56f1e all: Get rid of the remainder of the old two-stage cmdline parsing
All backend->cmdline_arg() invocations are done with intent to execute!
2015-08-24 18:49:51 -04:00
Solomon Peachy cc87cd1cc3 all: Add some print quantity range checks where we can.
Most backends don't verify against remaining media though.
2015-08-20 23:22:35 -04:00
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
Solomon Peachy 338da49377 dnpds40: Media lot code is ASCII. 2015-06-08 23:45:06 -04:00
Solomon Peachy 5d376819d2 dnpds40: Update Media Lot Code query to reflect full data width. 2015-06-08 23:40:04 -04:00
Solomon Peachy 460cce639a dnpds40: Turn on resumption of print job when a soft error is resolved.
(ie when we run out of media, resume printing when we continue)

Also implement a couple of minor cleanups.

Still to come:  Query printer version, and sanity-check features.  Also
perhaps query the remaining media before a print?
2015-06-08 23:17:12 -04:00
Solomon Peachy 0edced1c9f dnpds40: Sanity-check printjob type against loaded media.
Also cleanly abort the job if the printer kicks back a data/mediatype
error.
2015-06-08 08:06:18 -04:00
Solomon Peachy fbb4cdf441 dnpds40: Fix errors in the free buffer detection code.
Some other code rearrangements too.
2015-05-31 18:00:39 -04:00
Solomon Peachy b731dc04f8 Update copyright notice. 2015-01-05 21:39:22 -05:00
Solomon Peachy e84afdb816 dnpds40: Mitsubishi CP3800 uses the same VID/PID as the DNP DS80 2014-12-03 00:10:53 -05:00
Solomon Peachy 60540baf0e dnpds40: Get rid of the CW01/OP900 entries, it's not handled in this backend. 2014-10-29 22:11:46 -04:00
Solomon Peachy f77357977d dnpds40: Only error out if we get a non-idle/printing/cooling status. 2014-10-29 22:07:58 -04:00
Solomon Peachy aa236d1ae6 dnpds40: Log the status in raw form too, when we fail. 2014-10-29 22:02:11 -04:00
Solomon Peachy 325cf58e0d dnpds40: Fix a use-after-free. 2014-10-07 07:58:39 -04:00
Solomon Peachy 1f26903ffa dnpds40: Fix citizen cw-01 definition.
It almost certianly will *NOT* work with this backend.
2014-10-05 21:18:03 -04:00
Solomon Peachy d92bb77ced dnpds40: Add USB ID for Citizen CW-01. Experimental. 2014-10-05 18:57:26 -04:00
Solomon Peachy 0244c757db Udpate documentation, plus another shoutout to LiveLink for their
support in making this stuff possible.
2014-06-03 20:43:31 -04:00
Solomon Peachy 812c26a29c dnpds40: use CUPS_BACKEND_* return codes. 2014-04-20 11:51:06 -04:00
Solomon Peachy 3bb29676ea dnpds40: Fix spurious printout. 2014-04-20 10:16:28 -04:00
Solomon Peachy 85d613bcad dnpds40: Fix an endian bug (unncessary byte swap) 2014-02-26 08:46:43 -05:00
Solomon Peachy 1faa032ea6 backends: Revamp cmdline args so you can specify multiple backend args at once. 2014-02-11 22:45:14 -05:00
Solomon Peachy a7eff10ed6 dnpds40: Properly trim trailing spaces on strings that come from the printer. 2014-02-11 20:49:08 -05:00
Solomon Peachy 5f8780cc3c More cppcheck-driven fixes. Mainly a bunch of memory leaks. 2014-02-11 20:11:33 -05:00
Solomon Peachy 1e8c0ae99a Silence a pile of 'cppcheck' warnings.
...And fix a legitimate bug in the process!
2014-02-11 13:41:55 -05:00
Solomon Peachy ce4edeea65 dnpds40: Fix setting the 'P' counter. 2014-02-10 22:21:55 -05:00
Solomon Peachy d7db0bbdbe Massive overhaul of command line handling.
Completely untested with real printers.

That happens tonight!  :)
2014-02-10 20:10:36 -05:00
Solomon Peachy 20c662a70f Add DNP DSRX1 to version string. 2014-02-08 13:58:58 -05:00
Solomon Peachy 58f32eb7a2 dnpds40: Apparently the Citizen CX/CY use the same USB IDs as the DNP
models.
2014-02-04 19:24:20 -05:00
Solomon Peachy a9cbbbae5e dnpds40: Add more dopplegangers of the DS40/DS80 family. 2014-02-03 19:31:57 -05:00
Solomon Peachy 11cd411855 dnpds40: When switching between matte and glossy prints, we always need
both buffers free.
2014-02-02 14:17:12 -05:00
Solomon Peachy 7914f95d9c dnpds40: More granular detection of the number of buffers needed to
print a given job.

300dpi, only 1 buffer needed.
600dpi w/ DS80: if matte and >8x11 length, 2 needed
600dpi w/ DS40: if matte and 5x7, 2 needed.
                if >=6x8 length, 2 needed
2014-02-02 14:11:17 -05:00
Solomon Peachy 2886b6ecd7 The Citizen CW-01 and OP900 are similar to their later models.
Also, the OP900 was rebadged by several manufacturers.  All of these are
theoretically supportable if we get the appropriate USB IDs here.
2014-02-01 13:33:37 -05:00