diff --git a/src/add-ons/print/drivers/canon_lips/lips3/Lips3.cpp b/src/add-ons/print/drivers/canon_lips/lips3/Lips3.cpp index 1e219f673d..41a45dbd13 100644 --- a/src/add-ons/print/drivers/canon_lips/lips3/Lips3.cpp +++ b/src/add-ons/print/drivers/canon_lips/lips3/Lips3.cpp @@ -6,7 +6,7 @@ #include "Lips3.h" -#include +#include #include #include @@ -51,7 +51,7 @@ LIPS3Driver::StartDocument() } catch (TransportException& err) { return false; - } + } } @@ -66,7 +66,7 @@ LIPS3Driver::StartPage(int) } catch (TransportException& err) { return false; - } + } } @@ -79,7 +79,7 @@ LIPS3Driver::EndPage(int) } catch (TransportException& err) { return false; - } + } } @@ -95,7 +95,7 @@ LIPS3Driver::EndDocument(bool) } catch (TransportException& err) { return false; - } + } } @@ -162,13 +162,10 @@ LIPS3Driver::NextBand(BBitmap* bitmap, BPoint* offset) int compressedSize; const uchar* buffer; - uchar* in_buffer = new uchar[in_size]; - uchar* out_buffer = new uchar[out_size]; + std::vector in_buffer(in_size); + std::vector out_buffer(out_size); - auto_ptr _in_buffer (in_buffer); - auto_ptr _out_buffer(out_buffer); - - uchar* ptr2 = static_cast(in_buffer); + uchar* ptr2 = &in_buffer[0]; DBGMSG(("move\n")); @@ -181,12 +178,12 @@ LIPS3Driver::NextBand(BBitmap* bitmap, BPoint* offset) y++; } - compressedSize = compress3(out_buffer, in_buffer, in_size); + compressedSize = compress3(&out_buffer[0], &in_buffer[0], in_size); if (compressedSize < in_size) { compressionMethod = 9; // compress3 - buffer = out_buffer; + buffer = &out_buffer[0]; } else if (compressedSize > out_size) { BAlert* alert = new BAlert("memory overrun!!!", "warning", "OK"); @@ -195,7 +192,7 @@ LIPS3Driver::NextBand(BBitmap* bitmap, BPoint* offset) return false; } else { compressionMethod = 0; - buffer = in_buffer; + buffer = &in_buffer[0]; compressedSize = in_size; } @@ -228,7 +225,7 @@ LIPS3Driver::NextBand(BBitmap* bitmap, BPoint* offset) alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); return false; - } + } } diff --git a/src/add-ons/print/drivers/canon_lips/lips4/Lips4.cpp b/src/add-ons/print/drivers/canon_lips/lips4/Lips4.cpp index 8f9fd51cc6..3180d05fa2 100644 --- a/src/add-ons/print/drivers/canon_lips/lips4/Lips4.cpp +++ b/src/add-ons/print/drivers/canon_lips/lips4/Lips4.cpp @@ -6,7 +6,7 @@ #include "Lips4Cap.h" -#include +#include #include #include @@ -53,7 +53,7 @@ LIPS4Driver::StartDocument() } catch (TransportException& err) { return false; - } + } } @@ -68,7 +68,7 @@ LIPS4Driver::StartPage(int) } catch (TransportException& err) { return false; - } + } } @@ -81,7 +81,7 @@ LIPS4Driver::EndPage(int) } catch (TransportException& err) { return false; - } + } } @@ -97,7 +97,7 @@ LIPS4Driver::EndDocument(bool) } catch (TransportException& err) { return false; - } + } } @@ -172,13 +172,10 @@ LIPS4Driver::NextBand(BBitmap* bitmap, BPoint* offset) int compressed_size; const uchar* buffer; - uchar* in_buffer = new uchar[in_size]; - uchar* out_buffer = new uchar[out_size]; + std::vector in_buffer(in_size); + std::vector out_buffer(out_size); - auto_ptr _in_buffer (in_buffer); - auto_ptr _out_buffer(out_buffer); - - uchar* ptr2 = static_cast(in_buffer); + uchar* ptr2 = &in_buffer[0]; DBGMSG(("move\n")); @@ -193,11 +190,11 @@ LIPS4Driver::NextBand(BBitmap* bitmap, BPoint* offset) DBGMSG(("PackBits\n")); - compressed_size = pack_bits(out_buffer, in_buffer, in_size); + compressed_size = pack_bits(&out_buffer[0], &in_buffer[0], in_size); if (compressed_size < in_size) { compression_method = 11; - buffer = out_buffer; + buffer = &out_buffer[0]; } else if (compressed_size > out_size) { BAlert* alert = new BAlert("memory overrun!!!", "warning", "OK"); alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); @@ -205,7 +202,7 @@ LIPS4Driver::NextBand(BBitmap* bitmap, BPoint* offset) return false; } else { compression_method = 0; - buffer = in_buffer; + buffer = &in_buffer[0]; compressed_size = in_size; } @@ -238,7 +235,7 @@ LIPS4Driver::NextBand(BBitmap* bitmap, BPoint* offset) alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); return false; - } + } } diff --git a/src/add-ons/print/drivers/pcl5/PCL5.cpp b/src/add-ons/print/drivers/pcl5/PCL5.cpp index 518c27a518..c1fcd1a77b 100644 --- a/src/add-ons/print/drivers/pcl5/PCL5.cpp +++ b/src/add-ons/print/drivers/pcl5/PCL5.cpp @@ -7,7 +7,7 @@ #include "PCL5.h" -#include +#include #include #include @@ -45,7 +45,7 @@ PCL5Driver::StartDocument() } catch (TransportException& err) { return false; - } + } } @@ -65,7 +65,7 @@ PCL5Driver::EndPage(int) } catch (TransportException& err) { return false; - } + } } @@ -82,7 +82,7 @@ PCL5Driver::EndDocument(bool) } catch (TransportException& err) { return false; - } + } } @@ -148,11 +148,8 @@ PCL5Driver::NextBand(BBitmap* bitmap, BPoint* offset) int compressedSize; const uchar* buffer; - uchar* in_buffer = new uchar[in_size]; - uchar* out_buffer = new uchar[out_size]; - - auto_ptr _in_buffer (in_buffer); - auto_ptr _out_buffer(out_buffer); + std::vector in_buffer(in_size); + std::vector out_buffer(out_size); DBGMSG(("move\n")); @@ -161,36 +158,36 @@ PCL5Driver::NextBand(BBitmap* bitmap, BPoint* offset) const bool color = GetJobData()->GetColor() == JobData::kColor; const int num_planes = color ? 3 : 1; - + if (color) { fHalftone->SetPlanes(Halftone::kPlaneRGB1); fHalftone->SetBlackValue(Halftone::kLowValueMeansBlack); } - + for (int i = rc.top; i <= rc.bottom; i++) { - + for (int plane = 0; plane < num_planes; plane ++) { - - fHalftone->Dither(in_buffer, ptr, x, y, width); - - compressedSize = pack_bits(out_buffer, in_buffer, in_size); - + + fHalftone->Dither(&in_buffer[0], ptr, x, y, width); + + compressedSize = pack_bits(&out_buffer[0], &in_buffer[0], in_size); + if (compressedSize + _BytesToEnterCompressionMethod(2) < in_size + _BytesToEnterCompressionMethod(0)) { compressionMethod = 2; // back bits - buffer = out_buffer; + buffer = &out_buffer[0]; } else { compressionMethod = 0; // uncompressed - buffer = in_buffer; + buffer = &in_buffer[0]; compressedSize = in_size; } - + _RasterGraphics( compressionMethod, buffer, compressedSize, plane == num_planes - 1); - + } ptr += delta; @@ -216,7 +213,7 @@ PCL5Driver::NextBand(BBitmap* bitmap, BPoint* offset) alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); return false; - } + } } diff --git a/src/add-ons/print/drivers/pcl6/PCL6.cpp b/src/add-ons/print/drivers/pcl6/PCL6.cpp index a953e871e1..feefd91288 100644 --- a/src/add-ons/print/drivers/pcl6/PCL6.cpp +++ b/src/add-ons/print/drivers/pcl6/PCL6.cpp @@ -26,7 +26,7 @@ #include "ValidRect.h" -// DeltaRowStreamCompressor writes the delta row directly to the +// DeltaRowStreamCompressor writes the delta row directly to the // in the contructor specified stream. class DeltaRowStreamCompressor : public AbstractDeltaRowCompressor { @@ -37,15 +37,15 @@ public: AbstractDeltaRowCompressor(rowSize, initialSeed), fWriter(writer) {} - + protected: void AppendByteToDeltaRow(uchar byte) { fWriter->Append(byte); } - + private: - PCL6Writer* fWriter; + PCL6Writer* fWriter; }; @@ -79,7 +79,7 @@ PCL6Driver::StartDocument() } catch (TransportException& err) { return false; - } + } } @@ -94,7 +94,7 @@ PCL6Driver::EndDocument(bool) } catch (TransportException& err) { return false; - } + } } @@ -105,7 +105,7 @@ PCL6Driver::NextBand(BBitmap* bitmap, BPoint* offset) try { int y = (int)offset->y; - + PCL6Rasterizer* rasterizer; if (_UseColorMode()) { #if COLOR_DEPTH == 8 @@ -113,7 +113,7 @@ PCL6Driver::NextBand(BBitmap* bitmap, BPoint* offset) #elif COLOR_DEPTH == 1 rasterizer = new ColorRasterizer(fHalftone); #else - #error COLOR_DEPTH must be either 1 or 8! + #error COLOR_DEPTH must be either 1 or 8! #endif } else rasterizer = new MonochromeRasterizer(fHalftone); @@ -121,14 +121,14 @@ PCL6Driver::NextBand(BBitmap* bitmap, BPoint* offset) auto_ptr _rasterizer(rasterizer); bool valid = rasterizer->SetBitmap((int)offset->x, (int)offset->y, bitmap, GetPageHeight()); - + if (valid) { rasterizer->InitializeBuffer(); - + // Use compressor to calculate delta row size DeltaRowCompressor* deltaRowCompressor = NULL; if (_SupportsDeltaRowCompression()) { - deltaRowCompressor = + deltaRowCompressor = new DeltaRowCompressor(rasterizer->GetOutRowSize(), 0); if (deltaRowCompressor->InitCheck() != B_OK) { delete deltaRowCompressor; @@ -137,15 +137,15 @@ PCL6Driver::NextBand(BBitmap* bitmap, BPoint* offset) } auto_ptr_deltaRowCompressor(deltaRowCompressor); int deltaRowSize = 0; - - // remember position + + // remember position int xPage = rasterizer->GetX(); int yPage = rasterizer->GetY(); - + while (rasterizer->HasNextLine()) { - const uchar* rowBuffer = + const uchar* rowBuffer = static_cast(rasterizer->RasterizeNextLine()); - + if (deltaRowCompressor != NULL) { int size = deltaRowCompressor->CalculateSize(rowBuffer, true); @@ -153,9 +153,9 @@ PCL6Driver::NextBand(BBitmap* bitmap, BPoint* offset) // two bytes for the row byte count } } - + y = rasterizer->GetY(); - + uchar* outBuffer = rasterizer->GetOutBuffer(); int outBufferSize = rasterizer->GetOutBufferSize(); int outRowSize = rasterizer->GetOutRowSize(); @@ -179,7 +179,7 @@ PCL6Driver::NextBand(BBitmap* bitmap, BPoint* offset) alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); return false; - } + } } @@ -207,17 +207,17 @@ PCL6Driver::_WriteBitmap(const uchar* buffer, int outSize, int rowSize, int x, } } #endif - + // write bitmap _Move(x, y); - + _StartRasterGraphics(x, y, width, height, compressionMethod); _RasterGraphics(buffer, outSize, dataSize, rowSize, height, compressionMethod); _EndRasterGraphics(); - + #if DISPLAY_COMPRESSION_STATISTICS fprintf(stderr, "Out Size %d %2.2f\n", (int)outSize, 100.0); #if ENABLE_RLE_COMPRESSION @@ -257,16 +257,16 @@ PCL6Driver::StartPage(int) if (GetJobData()->GetOrientation() == JobData::kLandscape) { orientation = PCL6Writer::kLandscape; } - - PCL6Writer::MediaSize mediaSize = + + PCL6Writer::MediaSize mediaSize = _MediaSize(GetJobData()->GetPaper()); - PCL6Writer::MediaSource mediaSource = + PCL6Writer::MediaSource mediaSource = _MediaSource(GetJobData()->GetPaperSource()); if (GetJobData()->GetPrintStyle() == JobData::kSimplex) { fWriter->BeginPage(orientation, mediaSize, mediaSource); } else if (GetJobData()->GetPrintStyle() == JobData::kDuplex) { // TODO move duplex binding option to UI - fWriter->BeginPage(orientation, mediaSize, mediaSource, + fWriter->BeginPage(orientation, mediaSize, mediaSource, PCL6Writer::kDuplexVerticalBinding, fMediaSide); if (fMediaSide == PCL6Writer::kFrontMediaSide) @@ -275,7 +275,7 @@ PCL6Driver::StartPage(int) fMediaSide = PCL6Writer::kFrontMediaSide; } else return false; - + // PageOrigin from Windows NT printer driver int x = 142 * GetJobData()->GetXres() / 600; int y = 100 * GetJobData()->GetYres() / 600; @@ -300,7 +300,7 @@ PCL6Driver::_StartRasterGraphics(int x, int y, int width, int height, #elif COLOR_DEPTH == 1 colorDepth = PCL6Writer::k1Bit; #else - #error COLOR_DEPTH must be either 1 or 8! + #error COLOR_DEPTH must be either 1 or 8! #endif } else colorDepth = PCL6Writer::k1Bit; @@ -324,7 +324,7 @@ PCL6Driver::_RasterGraphics(const uchar* buffer, int bufferSize, int dataSize, { // write bitmap byte size fWriter->EmbeddedDataPrefix32(dataSize); - + // write data if (compressionMethod == PCL6Writer::kRLECompression) { // use RLE compression @@ -339,18 +339,18 @@ PCL6Driver::_RasterGraphics(const uchar* buffer, int bufferSize, int dataSize, if (compressor.InitCheck() != B_OK) { return; } - + const uint8* row = buffer; for (int i = 0; i < height; i ++) { // write row byte count int32 size = compressor.CalculateSize(row); fWriter->Append((uint16)size); - + if (size > 0) { // write delta row compressor.Compress(row); } - + row += rowSize; } } else { @@ -369,7 +369,7 @@ PCL6Driver::EndPage(int) } catch (TransportException& err) { return false; - } + } } diff --git a/src/add-ons/print/drivers/postscript/PS.cpp b/src/add-ons/print/drivers/postscript/PS.cpp index 5be890a2b0..a1a743e807 100644 --- a/src/add-ons/print/drivers/postscript/PS.cpp +++ b/src/add-ons/print/drivers/postscript/PS.cpp @@ -8,7 +8,7 @@ #include "PS.h" -#include +#include #include #include @@ -96,7 +96,7 @@ PSDriver::_WritePSString(const char* format, ...) } -void +void PSDriver::_WritePSData(const void* data, size_t size) { if (fFilterIO) @@ -120,7 +120,7 @@ PSDriver::StartDocument() } catch (TransportException& err) { return false; - } + } } @@ -149,7 +149,7 @@ PSDriver::EndPage(int) } catch (TransportException& err) { return false; - } + } } @@ -165,7 +165,7 @@ PSDriver::_SetupCTM() GetJobData()->GetPaperRect().Height()-topMargin); } else { // landscape: - // move origin from bottom left to margin top and left + // move origin from bottom left to margin top and left // and rotate page contents _WritePSString("%f %f translate\n", topMargin, leftMargin); _WritePSString("90 rotate\n"); @@ -190,7 +190,7 @@ PSDriver::EndDocument(bool) } catch (TransportException& err) { return false; - } + } } @@ -202,7 +202,7 @@ ToHexDigit(uchar value) } -bool +bool PSDriver::NextBand(BBitmap* bitmap, BPoint* offset) { DBGMSG(("> nextBand\n")); @@ -266,14 +266,11 @@ PSDriver::NextBand(BBitmap* bitmap, BPoint* offset) int compressed_size; const uchar* buffer; - uchar* in_buffer = new uchar[in_size]; + std::vector in_buffer(in_size); // gray values - uchar* out_buffer = new uchar[out_size]; + std::vector out_buffer(out_size); // gray values in hexadecimal - auto_ptr _in_buffer(in_buffer); - auto_ptr _out_buffer(out_buffer); - DBGMSG(("move\n")); int size = color ? width * 3 : in_size; @@ -281,7 +278,7 @@ PSDriver::NextBand(BBitmap* bitmap, BPoint* offset) for (int i = rc.top; i <= rc.bottom; i++) { if (color) { - uchar* out = out_buffer; + uchar* out = &out_buffer[0]; uchar* in = ptr; for (int w = width; w > 0; w --) { *out++ = ToHexDigit((in[2]) >> 4); @@ -293,21 +290,21 @@ PSDriver::NextBand(BBitmap* bitmap, BPoint* offset) in += 4; } } else { - fHalftone->Dither(in_buffer, ptr, x, y, width); + fHalftone->Dither(&in_buffer[0], ptr, x, y, width); + + uchar* in = &in_buffer[0]; + uchar* out = &out_buffer[0]; - uchar* in = in_buffer; - uchar* out = out_buffer; - for (int w = in_size; w > 0; w --, in ++) { *in = ~*in; // invert pixels *out++ = ToHexDigit((*in) >> 4); *out++ = ToHexDigit((*in) & 15); } } - - { + + { compression_method = 0; // uncompressed - buffer = out_buffer; + buffer = &out_buffer[0]; compressed_size = out_size; } @@ -339,11 +336,11 @@ PSDriver::NextBand(BBitmap* bitmap, BPoint* offset) alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); return false; - } + } } -void +void PSDriver::_JobStart() { // PostScript header @@ -360,14 +357,14 @@ PSDriver::_JobStart() GetJobData()->GetPaperRect().IntegerHeight()); _WritePSString("%%%%Pages: (atend)\n"); _WritePSString("%%%%EndComments\n"); - + _WritePSString("%%%%BeginDefaults\n"); _WritePSString("%%%%PageMedia: Plain\n"); _WritePSString("%%%%EndDefaults\n"); } -void +void PSDriver::_StartRasterGraphics(int x, int y, int width, int height, int widthByte) { @@ -391,14 +388,14 @@ PSDriver::_StartRasterGraphics(int x, int y, int width, int height, } -void +void PSDriver::_EndRasterGraphics() { _WritePSString("grestore\n"); } -void +void PSDriver::_RasterGraphics(int compression_method, const uchar* buffer, int size) { @@ -410,7 +407,7 @@ PSDriver::_RasterGraphics(int compression_method, const uchar* buffer, } -void +void PSDriver::_JobEnd() { _WritePSString("%%%%Pages: %d\n", fPrintedPages);