[sane-devel] Pixma future

Povilas Kanapickas povilas at radix.lt
Tue Nov 24 19:13:28 GMT 2020

Hi Ralph,

On 11/23/20 12:33 AM, Ralph Little wrote:
> Hi Povilas (and the group),
> I have been working some changes for pixma on a branch for issue #264,
> support for MX492.
> It has been quite a long meandering journey and, although I have fixed a
> few actual backend bugs, I'm not really happy with the direction that I
> have taken and would like to restart with a better idea in mind of where
> it is going to go.
> To be honest, I have learned a lot along the way and I would have
> preferred to be able to reduce the changes down to much smaller pieces.
> Much of that effort has been sorting out the distinction between
> frontend and backend line_size computed values which lay at the source
> of much of what doesn't work with the lineart support.
> So, I propose to terminate that branch and start afresh. I could open
> new branches and add the definite, smaller real bug fixes that are
> practical to review and individually merge. In particular, the
> revelations related to the imageClass ADF.
> It occurs to me that you probably have your own plans as to how you
> would like to develop the pixma backend and I would be interested in
> your views before I start anything major.
> In particular:
> 1) Are you intending a genesys-style rewrite, perhaps in C++?

Yes. I plan to extract reusable parts of the genesys backend and use
that from any other backends.

Even without that, I've found that at least in the case of genesys
backend, a rewrite to C++ fixed a large number of small bugs that
require strong discipline to avoid in C. The largest category were bugs
in error handling and bugs in memory handling. This is I guess not
surprising as both of these are done manually in C.

I plan to start the rewrite next month, so it would be great if any
fixes could be submitted until then as the codebase may change

> 2) What do you think about dropping emulated lineart from the backend
> altogether? That would certainly simplify the backend considerably.

The same has been done in the genesys backend. I think we need a wrapper
backend that would generate lineart automatically if the downstream
backend does not support that.

Right now I'm thinking about how this could be implemented.


More information about the sane-devel mailing list