--- a/fax/faxclientandserver/FAXCLI/CFAXSET.CPP Fri Mar 19 09:55:57 2010 +0200
+++ /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
-
- }
-
-/********************************************************************/