diff -r 7b872347d83b -r 6d0b9f605b61 voipplugins/ipapputils/src/cipappphoneutils.cpp --- a/voipplugins/ipapputils/src/cipappphoneutils.cpp Tue Feb 02 00:05:57 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* Copyright (c) 2007-2010 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: Utility class to phone functionality -* -*/ - - -#include -#include -#include - -#include "cipappphoneutils.h" - -const TUint8 KSVPLineFeed2 = '\n'; -const TInt KHwVersionIn3rdRow = 4; -_LIT8( KSVPSpaceMark, " " ); -_LIT8( KSVPLineFeed, "\n" ); -_LIT( KSVPSalesModelFileName, "\\resource\\versions\\model.txt" ); -_LIT( KSVPCopyright, "©" ); -_LIT( KSVPCopyright2, "(C)" ); -_LIT( KSVPCopyright3, "(c)" ); -_LIT( KSVPSpace2, " " ); -_LIT( KSVPS60,"S60" ); - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CIpAppPhoneUtils::CIpAppPhoneUtils() - { - } - - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -EXPORT_C CIpAppPhoneUtils* CIpAppPhoneUtils::NewL() - { - CIpAppPhoneUtils* self = CIpAppPhoneUtils::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -EXPORT_C CIpAppPhoneUtils* CIpAppPhoneUtils::NewLC() - { - CIpAppPhoneUtils* self = new( ELeave ) CIpAppPhoneUtils; - CleanupStack::PushL( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CIpAppPhoneUtils::~CIpAppPhoneUtils() - { - } - -// --------------------------------------------------------------------------- -// CIpAppPhoneUtils::GetTerminalTypeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CIpAppPhoneUtils::GetTerminalTypeL( TDes& aTerminalType ) const - { - RFs fsSession; - User::LeaveIfError( fsSession.Connect() ); - CleanupClosePushL( fsSession ); - - GetTerminalTypeL( aTerminalType, fsSession ); - - CleanupStack::PopAndDestroy( &fsSession ); - } - -// --------------------------------------------------------------------------- -// CIpAppPhoneUtils::GetTerminalTypeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CIpAppPhoneUtils::GetTerminalTypeL( - TDes& aTerminalType, RFs& aFs ) const - { - RBuf swVersion; - CleanupClosePushL( swVersion ); - TInt lineFeedCount = 0; - TBuf8< KSVPMaxTerminalTypeLength > terminalType; - - TBuf< KSVPMaxTerminalTypeLength > firstRow; - TBuf< KSVPPhoneModelLength > phoneModel; - TRAP_IGNORE( GetPhoneModelL( phoneModel, aFs ) ); - - swVersion.CreateL( KSysUtilVersionTextLength ); - User::LeaveIfError( SysUtil::GetSWVersion( swVersion ) ); - - const TInt swVersionLength( swVersion.Length() ); - for ( TInt i = 0; i < swVersionLength ; i++ ) - { - if ( !lineFeedCount && ( KSVPLineFeed2 != swVersion[i] ) ) - { - firstRow.Append( swVersion[i] ); // this is 1st row a.k.a SW-version - } - if ( KSVPLineFeed2 == swVersion[i] ) - { - lineFeedCount++; - if( lineFeedCount == 2 ) - { - // Delete 1st and 2nd row. - swVersion.Delete( 0, i ); - const TInt swVersionLength2( swVersion.Length() ); - - for ( TInt k = 0; k < swVersionLength2 ; k++ ) - { - if ( KSVPLineFeed2 == swVersion[k] ) - { - lineFeedCount++; - } - if ( lineFeedCount == KHwVersionIn3rdRow ) - { - // HW version is in 3rd row, delete rest of SWversion - const TInt charsToDelete( swVersionLength2 - k ); - swVersion.Delete( k, charsToDelete ); - break; - } - } - break; - } - } - } - - terminalType.Append( phoneModel ); // Add HW manufacturer, e.g. our company - terminalType.Append( swVersion ); // Add HW version - terminalType.Append( KSVPSpaceMark ); - terminalType.Append( firstRow ); // Add SW version - - // Replace linefeeds with space marks - TInt linefeedIndex = 0; - for ( ; KErrNotFound != linefeedIndex ; ) - { - linefeedIndex = terminalType.Find( KSVPLineFeed ); - if ( KErrNotFound != linefeedIndex ) - { - // 1 is the length of KSpaceMark - terminalType.Replace( linefeedIndex, 1, KSVPSpaceMark ); - } - } - aTerminalType.Copy( terminalType ); - CleanupStack::PopAndDestroy( &swVersion ); - } - - -// --------------------------------------------------------------------------- -// CIpAppPhoneUtils::GetPhoneModelL -// --------------------------------------------------------------------------- -// -EXPORT_C void CIpAppPhoneUtils::GetPhoneModelL( TDes& aPhoneModel ) const - { - RFs fsSession; - User::LeaveIfError( fsSession.Connect() ); - CleanupClosePushL( fsSession ); - - GetPhoneModelL( aPhoneModel, fsSession ); - - CleanupStack::PopAndDestroy( &fsSession ); - } - -// --------------------------------------------------------------------------- -// CIpAppPhoneUtils::GetPhoneModelL -// --------------------------------------------------------------------------- -// -EXPORT_C void CIpAppPhoneUtils::GetPhoneModelL( TDes& aPhoneModel, - RFs& aFs ) const - { - RFile file; - TParse parse; - parse.Set( PathInfo::RomRootPath(), NULL, NULL); - TFileName myfile( parse.Drive() ); - myfile.Append( KSVPSalesModelFileName ); - User::LeaveIfError( file.Open( aFs, - myfile, EFileShareReadersOnly | EFileRead ) ); - - CleanupClosePushL( file ); - - HBufC* phoneModel = HBufC::NewLC( KSVPPhoneModelLength ); - TPtr ptr = phoneModel->Des(); - - // Read the data from file. - TFileText reader; - reader.Set( file ); - User::LeaveIfError( reader.Read( ptr ) ); - - // Phone model to aPhoneModel - aPhoneModel.Append( *phoneModel ); - - TInt copyrightPosition = aPhoneModel.Find( KSVPCopyright ); - if ( KErrNotFound != copyrightPosition ) - { - // Delete copyright mark. - aPhoneModel.Delete( copyrightPosition, 1 ); - } - - copyrightPosition = aPhoneModel.Find( KSVPCopyright2 ); - if ( KErrNotFound != copyrightPosition ) - { - // Delete copyright mark. - aPhoneModel.Delete( copyrightPosition, KSVPCopyright2().Length() ); - } - copyrightPosition = aPhoneModel.Find( KSVPCopyright3 ); - if ( KErrNotFound != copyrightPosition ) - { - // Delete copyright mark. - aPhoneModel.Delete( copyrightPosition, KSVPCopyright3().Length() ); - } - - TInt spacePosition = aPhoneModel.Find( KSVPSpace2 ); - TInt modelLength = aPhoneModel.Length(); - - while ( 0 == spacePosition ) - { - // Delete leading space character. - aPhoneModel.Delete( 0, 1 ); - modelLength = aPhoneModel.Length(); - spacePosition = aPhoneModel.Find( KSVPSpace2 ); - } - - if ( ( KErrNotFound != spacePosition ) && ( 0 != spacePosition ) ) - { - // We don't need the whole HW version, just 1st word - aPhoneModel.Delete( spacePosition, modelLength - spacePosition ); - } - - if ( !modelLength ) - { - // If manufacturer name wasn't found add platform name - aPhoneModel.Append( KSVPS60 ); - } - - CleanupStack::PopAndDestroy( 2, &file ); // phoneModel, file - } - -// End of file