fax/faxclientandserver/FAXCLI/CFAXSET.CPP
branchRCL_3
changeset 65 630d2f34d719
parent 61 17af172ffa5f
child 66 07a122eea281
--- a/fax/faxclientandserver/FAXCLI/CFAXSET.CPP	Thu Aug 19 11:03:36 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-// 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:
-//
-
-#include "CFAX32.H"
-#include "faxsettings.h"
-
- #include <commsdattypesv1_1.h>
- 
- using namespace CommsDat;
-
-// amended August 1998 as follows :
-
-// 1. TFaxSettings is defined, with its internalize and externalize functions,
- // in this module solely for use by the apps that use faxtrans.  They should
- // decide where the setting are stored and get or set them using the
- // functions here. A reference to the settings to use are passed to
- // faxtrans as parameters on instantiation of the CFaxTransfer object - eg
- //
- // CFaxTransfer * session =  CFaxTransfer::NewL (aFaxSettings);
- //
- // 2. A number of items previous part of TFaxSettings are now kept as part of
- // the modem definitions by Dialstor - these include both ModemInitString
- // and FaxInitString, together with the CSY module name and the comm port
- // name and number.  Most importantly, the fax modem class is now part of the
- // Dialstor data. A TDialstorModemPreferences object with this information in it is now
- // part of the TFaxSettings, but this need NOT be initialized in the
- // reference passed to CFaxTransfer on instantiation.  If the modem class
- // does happen to be unknown, then a special CFaxModemDriver is used which
- // does autodetection and nothing else.
- //
- // 3. As a conseqence, CFaxSettings no longer has Get or Set functions
- // for TFaxSettings.  Instead, we have a ValidateAndGetClass function to
- // validate the passed values in TFaxSettings (in case they are
- // nonsense) and get the values from DialStore.
- //
-
-/********************************************************************/
-
-EXPORT_C TFaxSettings& TFaxSettings::operator=(const TFaxSettings& aFaxSettings)
-/** Assignment operator.
-
-Copies the content of one TFaxSettings into another, replacing the existing 
-content.
-
-@param aFaxSettings A reference to the TFaxSettings to be copied. 
-@return A reference to this TFaxSettings. 
-@capability None
-*/
-	{
-	iFaxId = aFaxSettings.iFaxId;
-	iMaxSpeed = aFaxSettings.iMaxSpeed;
-	iMinSpeed = aFaxSettings.iMinSpeed;
-	iPreferredResolution = aFaxSettings.iPreferredResolution;
-	iPreferredCompression = aFaxSettings.iPreferredCompression;
-	iPreferredECM = aFaxSettings.iPreferredECM;
-	iVerbose = aFaxSettings.iVerbose;
-	iFaxOnDemandDelay = aFaxSettings.iFaxOnDemandDelay;
-	iFaxClass = aFaxSettings.iFaxClass;
-	return (*this);
-	}
-
-/********************************************************************/
-
-EXPORT_C void TFaxSettings::ExternalizeL (RWriteStream & inifile) const
-/** Externalises the TFaxSettings object to a write stream. The presence of this
-function means that the standard templated operator<<() (defined in s32strm.h) is available
-to externalise objects of this class.
-
-@param inifile  The stream to which the object should be externalised. 
-@capability None
-*/
-   {
-   inifile << iFaxId;
-   inifile.WriteInt32L (iMaxSpeed);
-   inifile.WriteInt32L (iMinSpeed);
-   inifile.WriteInt32L (iPreferredResolution);
-   inifile.WriteInt32L (iPreferredCompression);
-   inifile.WriteInt32L (iPreferredECM);
-   inifile.WriteInt32L (iVerbose);
-   inifile.WriteInt32L (iFaxOnDemandDelay);
-   inifile.WriteInt32L (iFaxClass);
-   }
-/********************************************************************/
-
-EXPORT_C void TFaxSettings::InternalizeL (RReadStream & inifile)
-/** Internalises the TFaxSettings object from a read stream. The presence of this
-function means that the standard templated operator>>() (defined in s32strm.h) is 
-available to internalise objects of this class. This function may leave if there 
-is a problem reading from the stream, or if internalisation causes an out of memory 
-error. 
-@param inifile  The stream from which the object should be internalised. 
-@capability None
-*/
-   {
-   inifile >> iFaxId;
-   iMaxSpeed = inifile.ReadInt32L ();
-   iMinSpeed = inifile.ReadInt32L ();
-   iPreferredResolution = (TFaxResolution) inifile.ReadInt32L ();
-   iPreferredCompression = (TFaxCompression) inifile.ReadInt32L ();
-   iPreferredECM = inifile.ReadInt32L ();
-   iVerbose = inifile.ReadInt32L ();
-   iFaxOnDemandDelay = inifile.ReadInt32L ();
-   iFaxClass = (TFaxClass) inifile.ReadInt32L ();
-   }
-/********************************************************************/
-
-CFaxSettings *CFaxSettings::NewLC ()
-   {
-   CFaxSettings *self = new (ELeave) CFaxSettings;
-   CleanupStack::PushL (self);
-   self->ConstructL ();
-   return self;
-   }
-/********************************************************************/
-
-CFaxSettings *CFaxSettings::NewL ()
-   {
-   CFaxSettings *self = NewLC ();
-   CleanupStack::Pop ();
-   return self;
-   }
-/********************************************************************/
-
-void CFaxSettings::ConstructL()
-	{
-
-	}
-/********************************************************************/
-
-CFaxSettings::~CFaxSettings ()
-   {
-   }
-/********************************************************************/
-
-void CFaxSettings::ValidateAndSetClassL (TFaxSettings * aFaxSettings)
-	{
-	TInt badspeed;
-
-	TFaxClass passedFaxClass = aFaxSettings->iFaxClass;
-	// first we check that the settings we are making are within range
-
-	badspeed = aFaxSettings->iMaxSpeed % 2400;
-	if (badspeed)
-		aFaxSettings->iMaxSpeed -= badspeed;
-	if ((aFaxSettings->iMaxSpeed > 14400) || (aFaxSettings->iMaxSpeed < 2400))
-		aFaxSettings->iMaxSpeed = 9600;
-
-	badspeed = aFaxSettings->iMinSpeed % 2400;
-	if (badspeed)
-		aFaxSettings->iMinSpeed -= badspeed;
-	if ((aFaxSettings->iMinSpeed > 14400) || (aFaxSettings->iMinSpeed < 2400))
-		aFaxSettings->iMinSpeed = 2400;
-
-	if (aFaxSettings->iMinSpeed > aFaxSettings->iMaxSpeed)
-		aFaxSettings->iMinSpeed = aFaxSettings->iMaxSpeed;
-
-	if (aFaxSettings->iPreferredResolution != EFaxNormal)
-		aFaxSettings->iPreferredResolution = (TFaxResolution)EFaxFine;
-
-	if (aFaxSettings->iPreferredCompression != (TFaxCompression)EModifiedHuffman)
-		aFaxSettings->iPreferredCompression = (TFaxCompression)EModifiedRead;
-
-	// second we read the current modem class
-
-	// AnnW, 9/8/99 - This all assumes that we are taking the modem settings from the 
-	// dial out IAP, which is fince for now, but may not be in the future?  This may also 
-	// need modifying for Linda?
-
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-	CleanupStack::PushL(db);
-	
-	// Read the currently selected connection preference and find preferred IAP
-	TInt prefRank  = 1;
-	
-	CCDConnectionPrefsRecord *connectionPrefs =
-		static_cast<CCDConnectionPrefsRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdConnectionPrefsRecord));
-	CleanupStack::PushL(connectionPrefs);
-	connectionPrefs->iRanking = prefRank;
-	connectionPrefs->iDirection = ECommDbConnectionDirectionOutgoing;
-	connectionPrefs->FindL(*db);
-	
-	// The following code is a temporary solution until an issue has been resolved in CommsDat
-	// start
-	CCDIAPRecord* tempPIapRecord =
-		static_cast<CCDIAPRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
-	tempPIapRecord->SetRecordId(connectionPrefs->iDefaultIAP);
-	connectionPrefs->iDefaultIAP.iLinkedRecord = tempPIapRecord;
-	
-	CCDIAPRecord* pIapRecord = (CCDIAPRecord*)connectionPrefs->iDefaultIAP.iLinkedRecord;
-	pIapRecord->SetRecordId(connectionPrefs->iDefaultIAP);
-	pIapRecord->LoadL(*db);
-	
-	CCDBearerRecordBase* tempBearerRecord =
-		static_cast<CCDBearerRecordBase*>(CCDRecordBase::RecordFactoryL(KCDTIdModemBearerRecord));
-	tempBearerRecord->SetRecordId(pIapRecord->iBearer);
-	pIapRecord->iBearer.iLinkedRecord = tempBearerRecord;
-
-	CCDBearerRecordBase* pBearerRecord = (CCDBearerRecordBase*) pIapRecord->iBearer.iLinkedRecord;
-	pBearerRecord->SetRecordId(pIapRecord->iBearer);
-	pBearerRecord->LoadL(*db);
-	// end
-	
-	TUint32 iapId = pBearerRecord->iRecordTag;
-	
-	CMDBField<TUint32>* bearerField = new(ELeave) CMDBField<TUint32>(KCDTIdIAPBearer);
-	CleanupStack::PushL(bearerField);
-	bearerField->SetRecordId(iapId);
-	bearerField->LoadL(*db);
-	TUint32 modemId = *bearerField;
-	CleanupStack::PopAndDestroy(bearerField);
-		
-	CMDBField<TUint32>* faxField = new(ELeave) CMDBField<TUint32>(KCDTIdFaxClassPref);
-	CleanupStack::PushL(faxField);
-	faxField->SetRecordId(modemId);
-	faxField->LoadL(*db);
-	TUint32 faxClass;
-	faxClass = *faxField;
-	aFaxSettings->iFaxClass = static_cast<TFaxClass>(faxClass);
-		
-	// finally we validate the modem class - if not class 1 or 2 or 2.0 we
-	// write back the class we came in with, which is assumed to be correct
-	// - this is how we update the Comms database  - other settings are ignored
-	
-	if ((aFaxSettings->iFaxClass != EClass1)
-		&& (aFaxSettings->iFaxClass != EClass2)
-		&& (aFaxSettings->iFaxClass != EClass2point0))
-		{
-		aFaxSettings->iFaxClass = passedFaxClass;
-		db->OpenTransactionL();
-		*faxField = aFaxSettings->iFaxClass;
-		faxField->ModifyL(*db);
-		db->CommitTransactionL();
-		}
-	CleanupStack::PopAndDestroy(faxField);
-		
-	CleanupStack::PopAndDestroy(2);		// db, connectionPrefs 
-		
-	}
-
-/********************************************************************/