gfxconversion/mifconv/inc/mifconv_mbmgenerator_pbmcomp.h
branchRCL_3
changeset 9 1f6339ced17d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gfxconversion/mifconv/inc/mifconv_mbmgenerator_pbmcomp.h	Mon Mar 15 12:42:44 2010 +0200
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+#ifndef __MIFCONVMBMGENERATORPBMCOMP_H__
+#define __MIFCONVMBMGENERATORPBMCOMP_H__
+
+#include "mifconv_mbmgenerator.h"
+#include "mifconv_util.h"
+
+class BitmapCompiler
+/**
+Historical note - Pbm is an abbreviation for "Symbian Bitmap"
+*/
+    {
+public:
+    BitmapCompiler(MifConvSourceFileList aSourcefilenames);
+    ~BitmapCompiler();
+    int Compile(const MifConvString& aDestfilename, const MifConvString& aPaletteFilename);
+private:
+    int AllocatePbmSourcesArray();
+    int LoadSourcefiles();
+    int FileImage();
+    int WriteFileheader();
+    int WriteFilebitmap(SEpocBitmapHeader* aPbm);
+    int WriteHeadStream();
+    int LoadPalette(const char* aPaletteFilename);
+    void CalculateInversePalette();
+    int CompressBitmap(SEpocBitmapHeader*& aPbm);
+    int CompressByteData(char*& aDest,char* aSrce,int aSize);
+    int WriteCompressedByteData(char*& aDest,char* aData,int aLength, const char* aDestEnd);
+    int WriteCompressedByteValues(char*& aDest,char aValue,int aLength, const char* aDestEnd);
+    int CompressTwelveBitData(char*& aDest,char* aSrce,int aSizeInBytes);
+    int WriteCompressedTwelveBitData(unsigned short*& aDest,unsigned short aData,int aLength);
+    int CompressSixteenBitData(char*& aDest,char* aSrce,int aSize);
+    int WriteCompressedSixteenBitData(char*& aDest,unsigned short* aData,int aLength, const char* aDestEnd);
+    int WriteCompressedSixteenBitValues(char*& aDest,unsigned short aValue,int aLength, const char* aDestEnd);
+    int CompressTwentyFourBitData(char*& aDest,char* aSrce,int aSizeInBytes);
+    int WriteCompressedTwentyFourBitData(char*& aDest,char* aData,int aLength, const char* aDestEnd);
+    int WriteCompressedTwentyFourBitValues(char*& aDest,char aComponent1,char aComponent2,char aComponent3,int aLength, const char* aDestEnd);
+    int CompressThirtyTwoUBitData(char*& aDest,char* aSrce,int aSizeInBytes);
+    int WriteCompressedThirtyTwoUBitData(char*& aDest,char* aData, int aLength, const char* aDestEnd);
+    int WriteCompressedThirtyTwoUBitValues(char*& aDest,char aComponent1, char aComponent2,char aComponent3, int aLength, const char* aDestEnd);
+    int TrueColorPointerCompare(char* aColorPointer,char aComponent1,char aComponent2,char aComponent3);
+    int CompressThirtyTwoABitData(char*& aDest,char* aSrce,int aSizeInBytes);
+    int WriteCompressedThirtyTwoABitData(char*& aDest,char* aData,int aLength,const char* aDestEnd);
+    int WriteCompressedThirtyTwoABitValues(char*& aDest,char aComponent1,char aComponent2,char aComponent3,char aComponent4,int aLength,const char* aDestEnd);
+    int ColorAlphaPointerCompare(char* aColorPointer,char aComponent1,char aComponent2,char aComponent3,char aComponent4);
+    int ReadHexString(char aHexBuf[10],char*& aDataPtr,char* aDataPtrLimit);
+    int HexToInt(char aHighNibble,char aLowNibble);
+    int HexToInt(char aNibble);
+private:
+    fstream iDestFile;
+    MifConvSourceFileList iSourcefilenames;
+    SEpocBitmapHeader** iPbmSources;
+    int iNumSources;
+    int iDefaultPalette;
+    TRgb iPalette[256];
+    char iInversePalette[4096];
+    };
+
+#endif