diff -r 630d2f34d719 -r 07a122eea281 fax/faxclientandserver/FAXSVR/FAXSTUB.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fax/faxclientandserver/FAXSVR/FAXSTUB.H Wed Sep 01 12:40:21 2010 +0100 @@ -0,0 +1,190 @@ +// Copyright (c) 1997-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 + @internalComponent */ +#ifndef __FAXSTUB_H +#define __FAXSTUB_H + +#if !defined(__E32STD_H__) +#include +#endif + +#include "etel.h" +#include "FAXLOG.H" + +#if !defined(__E32BASE_H__) +#include +#endif + +#include "FAXSTD.H" +/** +@internalComponent +*/ +#define KMaxDialLength 50 +#define KConfigStringLength 32 + +//********************************** +// TFaxServerSessionSettings +//********************************** +/** +@internalComponent +*/ +struct TFaxServerSessionSettings + { + TFaxServerSessionSettings& operator=(const TFaxServerSessionSettings& aSettings); + TBuf8 iPhoneNumber; + TBool iLogging; + TBuf8 iFaxInitString; + TFaxMode iMode; + TFaxClass iFaxClass; + TFileName iPortDriverName; + TName iCommPortName; + TBuf iFaxId; + TInt iMaxSpeed; + TInt iMinSpeed; + TInt iPreferredECM; + TInt iFaxOnDemandDelay; +// Tx Settings + TFaxResolution iTxResolution; + TFaxCompression iTxCompression; + TInt iTxPages; +// Rx Settings + TFaxResolution iRxResolution; + TFaxCompression iRxCompression; + }; + +class MFaxCompletionBase +/** +@internalTechnology +*/ + { +public: + virtual void RxConnectComplete(TInt aError)=0; + virtual void RxFaxDataComplete(TInt aError)=0; + virtual void RxPostPageComplete(TInt aError)=0; + virtual void TxConnectComplete(TInt aError)=0; + virtual void TxFaxDataComplete(TInt aError)=0; + virtual void TxPostPageComplete(TInt aError)=0; + + virtual void GetCadenceAndTimeOfLastRing(TTimeIntervalMicroSeconds& aCadence,TTime& aTime)=0; + }; + + +#ifdef __MARM__ +/** +@internalComponent +*/ +const TInt KEtelFaxTimerGranularity = 31000; +#else +const TInt KEtelFaxTimerGranularity = 80000; +#endif +/** +@internalComponent +*/ +#define KDefaultLastUpdateTime 5 +#define KDefaultAnswerBack _L("01814590381") +#define KDefaultPhase ENotYetStarted +#define KDefaultResolution EFaxNormal; +#define KDefaultCompression EModifiedHuffman; +#define KDefaultPageNumber 1 +#define KDefaultLinesNumber 3 +#define KDefaultSpeed 9600 + +#define ASYNC_TIMEOUT 10000 +#define ASYNC_LONGTIMEOUT 500000 + +class TTsyTimer +/** +@internalTechnology +*/ + { +public: + TTsyTimer(); + TBool iPending; + TDeltaTimerEntry iEntry; + }; + +class CFaxTimer; +class CFaxSession : public CBase +/** +@internalTechnology +*/ + { +public: + static CFaxSession * NewL (); + static CFaxSession * NewLC (); + + CFaxSession(); + void ConstructL(); + ~CFaxSession(); + + virtual TInt FxOpen(TFaxServerSessionSettings& aFaxSettings,RFax::TProgress* aProgress); + virtual TInt FxClose(); + +// Rx Fax + virtual void RxConnect(); + virtual void RxFaxData(TDes8& aData); + virtual void RxPostPage(); +// Tx Fax + virtual void TxConnect(); + virtual void TxFaxData(const TDesC8& aData); + virtual void TxPostPage(); + virtual void Cancel(); + virtual void SetCallBack(MFaxCompletionBase* aBase); + + static TInt RxConnectHandler(TAny* aPtr); + static TInt RxFaxDataHandler(TAny* aPtr); + static TInt RxPostPageHandler(TAny* aPtr); + static TInt TxConnectHandler(TAny* aPtr); + static TInt TxFaxDataHandler(TAny* aPtr); + static TInt TxPostPageHandler(TAny* aPtr); + static TInt ProgressChanger(TAny* aPtr); +public: + RFax::TProgress* iTransferProgress; + + // Timer + CFaxTimer* iFaxTimer; + TTsyTimer iRxConnect; + TTsyTimer iRxFaxData; + TTsyTimer iRxPostPage; + TTsyTimer iTxConnect; + TTsyTimer iTxFaxData; + TTsyTimer iTxPostPage; + TTsyTimer iProgressChanger; + MFaxCompletionBase* iCompletion; + }; + +class CFaxTimer: public CBase +/** +@internalTechnology +*/ + { +public: + static CFaxTimer* NewL(); + CFaxTimer(); + void ConstructL(); + ~CFaxTimer(); + + void QueueTimer(TTsyTimer& aTsyTimer, + TTimeIntervalMicroSeconds32 aTimeInMicroSeconds, + TInt (*aFunction)(TAny *aPtr), TAny* aPtr); + TBool RemoveTimer(TTsyTimer& aHandle); + void ResetPending(TTsyTimer& aHandle); +private: + CDeltaTimer* iTimer; + }; + +#endif //__FAXSTUB_H