[LWN Logo]
[LWN.net]

Omni Printer Driver Release 0.2.0

MH: Mark Hamzy
LWN: Linux Weekly News (Forrest Cook)

LWN: Please fill us in on the features of the Omni Printer Driver.

MH: The Omni printer driver is trying to address several important issues
related to printer driver development and usage:

* Simplifying printer driver development by the componitization of specific
print functions into objects.  For example, if a new printer requires a
specific format of data to be sent to the device, the only component that
would need to be created for the new device would be the device blitter
component.

* Human editable device descriptions are kept in XML files which provides
the important capability of creating new devices by editing the XML
descriptions.  Part of the build process of the Omni driver takes these XML
files and converts them to C++ objects which are then used to drive the
device.

The future will provide a user interface for creating a new device.

* The combination of the XML device descriptions and the Object
componentization allow for maximum code and data reuse which lowers test
requirement and simplifies defect maintenance.

* Dynamic loading of printer devices which will simplify installation.

* provides an interface for querying the printer driver for available job
properties which can simplify installation and configuration.

* Create a large volume of device support while working on the proper
driver interfaces including installation.

LWN: Could you tell me what's new with the release?

MH: If you want to see the entire release history of the Omni driver, it is in
the file docs/Omni.readme.1st.  For this release, the most important thing
was the addition of a proposed implementation of the inkjet architecture.
The new inkjet architecture is being discussed on the mailing list located
at: http://www.linuxprinting.org/cgi-bin/mailman/listinfo/inkjet-list

We added the ability for applications to call beginJob () with new
job properties.  This allows for the creation of a device, displaying
job properties dialog, and then setting the new job properties for
the print job at beginJob () time.

We included 25 more Epson devices that were not being compiled.

We added a DeviceOrientation class to the Omni driver.  This makes the
Omni driver more consistent and allows for the enumeration of
orientations that a printer may support.

We fixed a form margin bug which was not rescaled to thousandths of a mm.

LWN: I'm curious about the lack of HP products in the list of printers
that are supported by Omni, is there a reason for that?

MH: Yes.  We have currently 50 DeskJet devices (plus some clones) in an
internal version of our driver.  For these devices, we need some help
in their color definition and page sizes.  Also, in general, we would
like to support back-channel communication to these devices.
HP has since then released some of their devices under a different
license.  We are considering whether the community wants another
implementation for HP printers.

LWN: Thanks for the information.

MH: Also, although you have not asked about it, I would like to point out
that there are still a set of devices that we still have to "port"
from the OS/2 implementation of the Omni printer driver.

The URL for documetation of Omni is located at
   http://prdownloads.sourceforge.net/omniprint/OMNI_Mas.htm

Mark Hamzy

Take a look at the Linux Omni printer driver at
http://www.ibm.com/linux/ltc/projects/omni/