[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
substantially.

> 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.

Cheers,
Povilas




More information about the sane-devel mailing list