summaryrefslogtreecommitdiff
path: root/prnt/hpijs/job.h
diff options
context:
space:
mode:
Diffstat (limited to 'prnt/hpijs/job.h')
-rw-r--r--prnt/hpijs/job.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/prnt/hpijs/job.h b/prnt/hpijs/job.h
new file mode 100644
index 0000000..fcb041f
--- /dev/null
+++ b/prnt/hpijs/job.h
@@ -0,0 +1,161 @@
+/*****************************************************************************\
+ job.h : Interface/Implimentation for the Job class
+
+ Copyright (c) 1996 - 2001, Hewlett-Packard Co.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of Hewlett-Packard nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PATENT INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+\*****************************************************************************/
+
+
+#ifndef APDK_JOB_H
+#define APDK_JOB_H
+
+APDK_BEGIN_NAMESPACE
+
+#if defined(APDK_VIP_COLORFILTERING)
+class TErnieFilter;
+#endif
+
+class RasterSender;
+class Header;
+class TextTranslator;
+class TextManager;
+class Halftoner;
+class ColorMatcher;
+class Scaler;
+
+
+//Job
+//! Manages processes to create output for the device
+/*! \class Job job.h "hpprintapi.h"
+This object receives processes and transmits data to be printed by one device
+on successive pages. The PrintContext and Job together form the core of the
+driver proper.
+
+\sa PrintContext
+******************************************************************************/
+class Job
+{
+friend class RasterSender;
+
+public:
+ Job(PrintContext* pPC);
+
+ virtual ~Job();
+
+ DRIVER_ERROR constructor_error; // caller must check upon return
+
+ DRIVER_ERROR SendRasters(BYTE* ImageData=(BYTE*)NULL);
+
+ DRIVER_ERROR SendRasters(BYTE* BlackImageData, BYTE* ColorImageData);
+
+ DRIVER_ERROR SupportSeparateBlack(BOOL* bSeparateBlack);
+
+#if defined(APDK_FONTS_NEEDED)
+ DRIVER_ERROR TextOut(const char* pTextString, unsigned int iLenString,
+ const Font& font, int iAbsX, int iAbsY );
+ // return theTextManager->TextOut(pTextString,iLenString,font,iAbsX,iAbsY);
+#endif
+
+ DRIVER_ERROR Flush();
+ DRIVER_ERROR NewPage();
+
+private:
+
+ PrintContext* thePrintContext;
+ SystemServices* pSS;
+ Printer* thePrinter;
+ Pipeline* thePipeline;
+ TextTranslator* pText;
+ RasterSender* pSender;
+ Halftoner* pHalftoner;
+ ColorMatcher* pColorMatcher;
+ Scaler* pResSynth;
+ Scaler* pBlackPlaneReplicator;
+ Scaler* pReplicator;
+ Compressor* theCompressor;
+ Compressor* pBlackPlaneCompressor;
+ Header* pHead;
+#if defined(APDK_VIP_COLORFILTERING)
+ TErnieFilter* pErnie;
+#endif
+
+#if defined(APDK_FONTS_NEEDED)
+ TextManager* theTextManager;
+#endif
+
+ PrintMode* CurrentMode;
+
+ unsigned int fcount;
+ unsigned int skipcount;
+ unsigned int RowsInput;
+ BYTE* BlankRaster;
+ BYTE* BlackRaster;
+
+ unsigned int CAPy; // maintains cursor-pos for graphics purposes,
+ // independent of intervening text positioning
+ BOOL DataSent;
+
+ unsigned int ResBoost; // for horizontal expansion
+ unsigned int numrows[MAXCOLORPLANES]; // rows per call for mixed-res only
+ unsigned int OutputWidth;
+ unsigned int InputWidth;
+ unsigned int ScaleFactor;
+
+ DRIVER_ERROR Configure();
+ DRIVER_ERROR InitScaler();
+
+ DRIVER_ERROR newpage();
+ DRIVER_ERROR SetupHalftoning(HALFTONING_ALGORITHM eHT);
+ DRIVER_ERROR SetupColorMatching();
+ DRIVER_ERROR SendCAPy();
+ DRIVER_ERROR sendrasters(BYTE* BlackImageData=(BYTE*)NULL, BYTE* ColorImageData=(BYTE*)NULL);
+ DRIVER_ERROR setblankraster();
+ DRIVER_ERROR setblackraster();
+ void SetOutputWidth();
+
+#ifdef APDK_CAPTURE
+ void Capture_Job(PrintContext* pPC);
+ void Capture_dJob();
+ void Capture_SendRasters(BYTE* BlackImageData, BYTE* ColorImageData);
+#if defined(APDK_FONTS_NEEDED)
+ void Capture_TextOut(const char* pTextString, unsigned int iLenString,
+ const Font& font, unsigned int iAbsX, unsigned int iAbsY );
+#endif
+ void Capture_NewPage();
+#endif
+
+#ifdef APDK_USAGE_LOG
+ int UTextCount;
+ int UText;
+#define UTextSize 100
+ char UHeader[UTextSize*2];
+#endif
+
+}; //Job
+
+APDK_END_NAMESPACE
+
+#endif //APDK_JOB_H