Facsimile and static presentation processing – Static presentation processing
Reexamination Certificate
1998-10-05
2002-09-10
Wallerson, Mark (Department: 2622)
Facsimile and static presentation processing
Static presentation processing
C358S001600, C358S001700
Reexamination Certificate
active
06449050
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to automatic generation of code in a higher level language (such as C or C++), with the generated code thereafter being compilable so as to obtain an executable to implement a printer driver.
2. Description of the Related Art
During initial development and writing of computer programs, software developers have come to rely on automatic code generators to generate source code in a high-level language (such as C or C++) that implements basic functionality of the new computer program. The code generator is, itself, a computer program that leads the software developer through a question-and-answer session, inquiring into the desired functionality of the new software, and thereafter generating source code to implement such functionality after the questions have been answered. After obtaining the generated source code from the code generator, the software developer can compile the software so as to obtain an executable which is a basic working version of his desired software. The source code can also be modified by the software developer so as to implement more specific aspects of the new software. Code generators are sometimes referred to as “wizards”, and have been designed to generate code in any of a variety of high-level languages such as C, C++, Visual Basic, COBOL, Fortran, Pascal, PL/1, Mesa, ADA, and other non-object source code.
One technological area where automatic code generators have not generally been applied is the area of device drivers such as printer drivers. One reason for this is as follows: to obtain the highest quality printed output for modern day printers, printer drivers typically employ techniques that are unique for each individual manufacturer and model of printer, and these techniques are generally proprietary. Since automatic code generators generate source code, such techniques would be immediately apparent, rendering them non-proprietary. For example, in the case of color ink jet printers, color conversion techniques and halftone processing often employ specifics that are proprietary to the manufacturer of the printer.
Moreover, even to the extent that automatic code generators for printer drivers might be available, they are available only for interface to the GDI kernel of the Windows® operating system from Microsoft Corporation. Resulting printer drivers are therefore not compatible with other operating systems, such as the UNIX operating system and real-time operating systems such as WindRiver's Vx Works™ and Integrated Systems' pSOS™. These other operating systems, since they do not insulate the printer driver from the physical printer port like the Windows® GDI kernel, require printer drivers to be independently executable modules which access directly to the printer port.
These other operating systems also do not necessarily insulate the printer driver from system resources in the same way as the Windows® operating system. Depending on the operating system, the printer driver must directly access these system resources. For example, the printer driver might need to directly access input devices such as an image input device and user input devices (e.g., a mouse and a keyboard), memory management resources, process control resources, resource locking resources, output devices such as a display, storage devices such as a hard disk, and any other resources required for operation of the printer driver. These system resources typically are accessed either through a port or through an operating system function. These system resources can be implemented in hardware, or in software as operating system functions. The printer driver also might need to access other operating system functions such as controlled printed job termination functions and any other system functions that access system resources in ways that differ from one operating system to another. In addition, the printer driver might contain customized equivalents of these operating system functions.
The printer driver must know how to access these ports, including the printer port, and these operating system functions. In a case that the printer driver includes customized equivalents to operating system functions, the printer driver must know how to interact with the operating system in order to execute these equivalents.
SUMMARY OF THE INVENTION
It is therefore an object of the invention to provide a code generator for a printer driver which automatically generates source code for a printer driver that is compilable into an executable that directly accesses the printer port, and that accesses any other necessary ports and operating system functions, while at the same time shielding the software developer from any proprietary techniques for driving the printer.
Briefly, according to one aspect of the invention, an automatic code generator for a printer driver obtains, from the software developer, the design parameters for the printer driver. Design parameters generally concern input processing, user interface and output functionality. The design parameters can be obtained through an interactive question-and-answer session with the developer, through a database, through a script, or through other equivalent means.
Examples of parameters for input functionality include image input type and format. Parameters for processing functionality include, for example, complexity and flexibility of color transform and matching techniques available to the end user of the software, halftoning techniques such as selection between dither or error diffusion, and spooling support. Examples of parameters for user interface functionality include whether input from the end user is to be accepted, if a graphical interface is to be used for such input, and the design of such an interface. Parameters for output functionality include, for example, output format such as bitmap or one of several available page description languages (such as PCL5 or PostScript), font support and recording medium support (such as plain paper or transparency in the context of computer-aided tomography equipment).
The software developer also needs to provide a pointer to a function that interfaces directly to the printer port so that the printer driver can send print data to the printer port. Specifically, because each different operating system, and each different system in which the operating system resides, employs a different printer port and different printer port protocol, it is necessary for the software developer himself to provide a printer port function that actually interfaces to the printer port. According to the invention, the code generator generates source code that includes a call to this function whenever the printer driver needs to output printer data.
In addition to calling a printer port function, the printer driver might need to access system resources. Each different operating system, and each different system in which the operating system resides, can employ different ports and/or operating system functions for accessing system resources, and indeed the software developer may have written customized equivalents to such operating system functions. It is therefore necessary for the software developer himself to provide pointers to functions that access the ports or call the operating system functions that actually interface to these resources. According to the invention, the source code includes calls to the functions identified by these pointers whenever the printer driver needs to access the system resources. For example, in order to access system resources such as memory allocation or release, the generated code includes a call to the appropriate function using a pointer provided by the software developer. That function, in turn, accesses the system resource through the appropriate port or operating system function.
In further aspects of the invention, the source code generated by the code generator does not include source code relating to proprietary printer functions, such as proprietary co
Fitzpatrick ,Cella, Harper & Scinto
Wallerson Mark
LandOfFree
Code generator for printer driver does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Code generator for printer driver, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Code generator for printer driver will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2836490