--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fax/faxclientandserver/faxio/CFAXIO.H Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,206 @@
+// Copyright (c) 1999-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:
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#if defined(__VC32__) && _MSC_VER==1100
+// Disable MSVC++ 5.0 aggressive warnings about non-expansion of inline functions.
+#pragma warning(disable : 4710) // function '...' not expanded
+#endif
+
+#if !defined(__CFAXIO_H__)
+#define __CFAXIO_H__
+
+#if !defined(__E32STD_H__)
+#include <e32std.h>
+#endif // __E32STD_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif // __E32BASE_H__
+
+#if !defined(__F32FILE_H__)
+#include <f32file.h>
+#endif // __F32FILE_H__
+
+#if !defined(__FAXDEFN_H__)
+#include <faxdefn.h>
+#endif // __FAXDEFN_H__
+
+/**
+@internalComponent
+*/
+typedef TUint32 TCodeDef;
+
+/**
+@publishedPartner
+@released
+*/
+const TInt KFaxFileStoreUidVal(268435712);
+
+class CFileWriteStream;
+class CFileReadStream;
+
+
+/**
+Fax line coding/decoding.
+
+Provides utility functions for encoding and decoding fax scan lines. The lines
+can be encoded/decoded as 1 dimensional modified Huffman or 2 dimensional
+modified Read.
+
+Users must first create a CFaxT4 object using NewL() or NewLC(). Specific
+functions are provided to encode/decode scan lines using the two coding schemes.
+In addition, general functions are provided which determine the coding type
+from the values specified when the object is initialised - using PageInitialise().
+
+In pre-v5.1 releases of Symbian OS, this class was defined in faxstore.h and
+its import library was faxst2.lib.
+
+@publishedPartner
+@released
+*/
+class CFaxT4 : public CBase // replaces FaxT4 class used up to faxstore 013
+ {
+public:
+ IMPORT_C static CFaxT4 * NewL ();
+ IMPORT_C static CFaxT4 * NewLC ();
+ IMPORT_C void EncodeScanLine(const TDesC8& aScanLine,TDes8& anEncodedScanLine);
+ IMPORT_C TInt DecodeScanLine(TDes8& aScanLine,const TDesC8& anEncodedScanLine);
+ IMPORT_C void EncodeScanLine1D(const TDesC8& aScanLine,TDes8& anEncodedScanLine);
+ IMPORT_C TInt DecodeScanLine1D(TDes8& aScanLine,const TDesC8& anEncodedScanLine);
+ IMPORT_C void EncodeScanLine2D(const TDesC8& aScanLine,TDes8& anEncodedScanLine);
+ IMPORT_C TInt DecodeScanLine2D(TDes8& aScanLine,const TDesC8& anEncodedScanLine);
+ IMPORT_C void PageInitialize (TFaxResolution aResolution, TFaxCompression aCompression, TInt aFlag2 = 0);
+
+private:
+ inline CFaxT4();
+
+ void DoEncodeScanLine2D (const TDesC8 & aScanLine, TDes8 & anEncodedScanLine);
+ void DecodeHuffman(const TDesC8 & aEncodedScanLine);
+
+private:
+ TFaxResolution iResolution;
+ TFaxCompression iCompression;
+ TInt iLineCount;
+ TInt iK;
+ TInt iReservedFlag2;
+ const TUint8* iEndRef;
+ TUint8 iRef[KFaxPixelsPerScanLine+4];
+ };
+
+/**
+Fax header line information.
+
+Contains the information needed to generate a fax header line from a font
+bitmap line and a header line template. For a detailed discussion of how this
+class interacts with others to generate the fax header line.
+
+In pre-v5.1 releases of Symbian OS, this class was defined in faxstore.h.
+
+The iOffset members specify an offset in a TRawScanLine. In other words, the
+offsets are specified in bytes rather than in characters or bits.
+
+@publishedPartner
+@released
+*/
+class TFaxHeaderInfo
+ {
+public:
+ /** Width of the font in bytes. */
+ TInt iHeaderFontWidthInBytes;
+ /** Height of the font in lines. */
+ TInt iHeaderFontHeightInLines;
+ /** Offset to two digit day of month. */
+ TInt iOffsetToDay;
+ /** Offset to two digits month of year. */
+ TInt iOffsetToMonth;
+ /** Offset to four digits year. */
+ TInt iOffsetToYear;
+ /** Offset to two digits hour (24 hour clock). */
+ TInt iOffsetToHour;
+ /** Offset to two digits minute. */
+ TInt iOffsetToMinute;
+ /** Offset to two digits for total pages. */
+ TInt iOffsetToTotalPages;
+ /** Offset to two digits for current page. */
+ TInt iOffsetToCurrentPage;
+ };
+
+/**
+Packages fax header information for transferring across the client-server boundary.
+
+@internalComponent
+*/
+typedef TPckgBuf < TFaxHeaderInfo > TFaxHeaderInfoPckg;
+
+
+/**
+Read/write fax header line data
+
+Allows applications to read and write information from the fax header line
+data file: including the header line template, a font bitmap, and character
+offset information. This data can be used to generate a fax header line -
+which contains send-time information - in real time.
+
+This class is not intended for user derivation.
+
+In pre-v5.1 releases of Symbian OS, this class was defined in faxstore.h and
+had an import library faxst2.lib.
+
+@publishedPartner
+@released
+*/
+class CFaxHeaderLines : public CBase
+ {
+public:
+ IMPORT_C static CFaxHeaderLines * NewL ();
+ IMPORT_C static CFaxHeaderLines * NewLC ();
+ ~CFaxHeaderLines ();
+
+ IMPORT_C void WriteRawFontLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine);
+ IMPORT_C void WriteRawHeaderLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine);
+ IMPORT_C void WriteFaxHeaderInfoL (TFaxHeaderInfo & aFaxHeaderInfo);
+ IMPORT_C void ReadRawFontLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine);
+ IMPORT_C void ReadRawHeaderLineL (const TInt alineNumber,TRawScanLine & aUncompressedDataLine);
+ IMPORT_C void ReadFaxHeaderInfoL (TFaxHeaderInfo & aFaxHeaderInfo);
+ IMPORT_C static CFaxHeaderLines * NewLC (RFile* aHeaderFile);
+ IMPORT_C static void GeneratePathForHeaderFileL(TDes& aPrivatePath);
+
+protected:
+ CFaxHeaderLines(RFile* aHeaderFile);
+ CFaxHeaderLines();
+ void ConstructL ();
+ static void GenerateHeaderPathL(TDes& aPrivatePath);
+ inline RFile& File();
+
+private:
+ RFs iFileSession;
+ RFile iFile;
+ TInt iSeekpos;
+ TInt iLineNumber;
+ RFile* iAdoptedHeaderFile;
+ TBool iUseAdpotedFileHandle;
+
+public:
+ /** The fax header information package. */
+ TFaxHeaderInfoPckg iOurFaxHeaderInfoPckg;
+ };
+
+#endif // __CFAXIO_H__