337
341
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_VIDEO_BPP, m_iBPP);
338
342
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_VIDEO_X, dwWidth/m_iBPP);
339
343
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_VIDEO_Y, m_dwLastRaster);
340
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_RET, RET_ON);
341
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_TONER_SAVE, (cqm == QUALITY_DRAFT) ? 1 : 0);
346
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_RET, RET_ON);
347
i += SendItem (szStr+i, ZJIT_UINT32, ZJI_TONER_SAVE, (cqm == QUALITY_DRAFT) ? 1 : 0);
343
350
err = Send ((const BYTE *) szStr, i);
505
/*JBig Compress for SID
506
Separate function written for SID since for SID, compression is done for whole plane data at a time
507
whereas Yoda does compression for 100 lines of each plane*/
508
DRIVER_ERROR LJZjs::JbigCompress_SID ()
510
DRIVER_ERROR err = NO_ERROR;
511
HPLJZjcBuff myBuffer;
513
int iPlanes = (m_cmColorMode == COLOR) ? 4 : 1;
514
int arrPlanesOrder[] = {3,2,1,4};
519
BYTE *pbUnCompressedData = NULL;
523
m_pszInputRasterData,
524
m_pszInputRasterData + (m_dwWidth * m_iBPP * m_dwLastRaster),
525
m_pszInputRasterData + (m_dwWidth * m_iBPP * m_dwLastRaster * 2),
526
m_pszInputRasterData + (m_dwWidth * m_iBPP * m_dwLastRaster * 3)
529
myBuffer.pszCompressedData = new BYTE[m_dwWidth * m_dwLastRaster * m_iBPP];
530
if(NULL == myBuffer.pszCompressedData)
532
return ALLOCMEM_ERROR;
534
myBuffer.dwTotalSize = 0;
536
for (int nPlaneCount = 0; nPlaneCount < iPlanes; nPlaneCount++)
539
memset (myBuffer.pszCompressedData, 0, m_dwWidth * m_dwLastRaster * m_iBPP);
540
myBuffer.dwTotalSize = 0;
542
if(4 == iPlanes)/*If there are 4 planes follow SID order of 3 2 1 4*/
544
pbUnCompressedData = bitmaps[arrPlanesOrder[nPlaneCount]-1] ;
546
else /* Should not happen */
552
iHeight = m_dwLastRaster; /*Send all scan lines at one go*/
554
HPLJJBGCompress (m_dwWidth * 8 * m_iBPP, iHeight, &pbUnCompressedData, &myBuffer, &se);
558
StartPage (se.xd, se.yd);
561
err = this->SendPlaneData (arrPlanesOrder[nPlaneCount], &se, &myBuffer, FALSE);
565
delete [] myBuffer.pszCompressedData;
566
m_dwCurrentRaster = 0;
567
m_pszCurPtr = m_pszInputRasterData;
568
memset (m_pszCurPtr, 0, (m_dwWidth * m_dwLastRaster * iPlanes * m_iBPP));
497
575
DRIVER_ERROR HeaderLJZjs::EndJob ()
499
577
DRIVER_ERROR err = NO_ERROR;