srsf/ttscontrollerplugin/src/ttsplugindataloader.cpp
branchRCL_3
changeset 18 cad71a31b7fc
parent 17 8ce15fced3a6
child 19 e36f3802f733
--- a/srsf/ttscontrollerplugin/src/ttsplugindataloader.cpp	Thu Aug 19 09:56:14 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,483 +0,0 @@
-/*
-* Copyright (c) 2004-2006 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:  Data buffer loader for TTPHwDevice test executable
-*
-*/
-
-
-// INCLUDE FILES
-#include    "ttsplugindataloader.h"
-
-
-
-
-// CONSTANTS
-
-_LIT( KDriveZ, "z:" );
-
-// Assuming language data file name is something like SRSF_2_x[y|yz].bin
-const TInt KBeginningOfLanguageId = 7;
-#ifdef __SIND_AUTOCONF_LID
-const TUint32 KTtpAutoConfLidPackageType = 1;
-const TUint32 KTtpAutoConfLidPackageID   = 1;
-const TInt KLidBufGranularity = 1000;
-#endif  // __SIND_AUTOCONF_LID
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoaderLoader::CTTSDataLoader
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CTTSDataLoader::CTTSDataLoader( RFs& aFs,
-                                TFileName& aGeneralFileName,
-                                TFileName& aPrefixOfTTPFileName,
-                                TFileName& aPostfixOfTTPFileName, 
-                                TFileName& aTTSFilename,
-                                TFileName& aPostfixOfTTSFilename ) :
-    iGeneralFileName( aGeneralFileName ),
-    iPrefixOfTTPFileName( aPrefixOfTTPFileName ),
-    iPostfixOfTTPFileName( aPostfixOfTTPFileName ),
-    iTTSFileName( aTTSFilename ),
-    iPostfixOfTTSFileName( aPostfixOfTTSFilename ),
-    iFs( aFs )
-    {
-    // Nothing
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CTTSDataLoader::ConstructL()
-    {
-    // Nothing
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CTTSDataLoader* CTTSDataLoader::NewL( RFs& aFs,
-                                      TFileName& aGeneralFileName,
-                                      TFileName& aPrefixOfTTPFileName,
-                                      TFileName& aPostfixOfTTPFileName,
-                                      TFileName& aTTSFilename,
-                                      TFileName& aPostfixOfTTSFilename )
-    {
-    CTTSDataLoader* self = new ( ELeave ) CTTSDataLoader( aFs,
-                                                          aGeneralFileName,
-                                                          aPrefixOfTTPFileName,
-                                                          aPostfixOfTTPFileName,
-                                                          aTTSFilename,
-                                                          aPostfixOfTTSFilename );
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::~CTTSDataLoader
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CTTSDataLoader::~CTTSDataLoader()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::LoadGeneralData
-// Load general TTP data
-// -----------------------------------------------------------------------------
-//
-HBufC8* CTTSDataLoader::LoadGeneralData( const TInt aPackageType,
-                                         const TInt aDataID,
-                                         TUint32 aStartPosition, 
-                                         TUint32 aEndPosition )
-    {
-    TFileName fileName( iGeneralFileName );
-    fileName.AppendNum( aPackageType );
-    fileName.Append( _L( "_" ) );
-    fileName.AppendNum( aDataID );
-    fileName.Append( iPostfixOfTTPFileName );
-
-    HBufC8* buffer( NULL );
-#ifdef __SIND_AUTOCONF_LID
-
-	// If LID data is requested, construct it from installed LID binary files
-	// Otherwise run normal data loading
-
-	if( aPackageType == KTtpAutoConfLidPackageType &&
-		aDataID   == KTtpAutoConfLidPackageID )
-	    {
-		TRAPD( err, buffer = ConstructLidDataL() );
-		if ( !err )
-		    {
-		    return buffer;
-		    }
-	    }
-	    
-#endif  // __SIND_AUTOCONF_LID    
-    TRAPD( error, buffer = DoLoadL( fileName, aStartPosition, aEndPosition ) );
-    if ( error == KErrNone )
-        {
-        return buffer;
-        }
-    else
-        {
-        return NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::LoadLanguageData
-// Load TTP language data
-// -----------------------------------------------------------------------------
-//	
-HBufC8* CTTSDataLoader::LoadLanguageData( const TInt aPackageType, 
-                                          TLanguage aLanguage,
-                                          TUint32 aStartPosition, 
-                                          TUint32 aEndPosition )
-    {
-    TFileName fileName( iPrefixOfTTPFileName );
-    fileName.AppendNum( aPackageType );
-    fileName.Append( _L( "_" ) );
-    fileName.AppendNum( ( TInt ) aLanguage );
-    fileName.Append( iPostfixOfTTPFileName );
-    
-    HBufC8* buffer( NULL );
-    TRAPD( error, buffer = DoLoadL( fileName, aStartPosition, aEndPosition ) );
-    if ( error == KErrNone )
-        {
-        return buffer;
-        }
-    else
-        {
-        return NULL;
-        }    
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::LoadTtsData
-// Load TTS general/language data
-// -----------------------------------------------------------------------------
-//	
-HBufC8* CTTSDataLoader::LoadTtsData( const TInt aPackageType, 
-                                     const TInt aDataID,
-                                     TUint32 aStartPosition, 
-                                     TUint32 aEndPosition )
-    {
-    TFileName fileName( iTTSFileName );
-    fileName.AppendNum( aPackageType );
-    fileName.Append( _L( "_" ) );
-    fileName.AppendNum( aDataID );
-    fileName.Append( iPostfixOfTTSFileName );
-    
-    HBufC8* buffer( NULL );
-    
-#ifdef __SIND_AUTOCONF_LID
-
-	// If LID data is requested, construct it from installed LID binary files
-	// Otherwise run normal data loading
-	if( aPackageType == KTtpAutoConfLidPackageType &&
-		aDataID   == KTtpAutoConfLidPackageID )
-	    {
-		TRAPD( err, buffer = ConstructLidDataL() );
-		if ( !err )
-		    {
-		    return buffer;
-		    }
-	    }
-#endif  // __SIND_AUTOCONF_LID
-
-    
-    TRAPD( error, buffer = DoLoadL( fileName, aStartPosition, aEndPosition ) );
-    if ( error == KErrNone )
-        {
-        return buffer;
-        }
-    else
-        {
-        return NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::GetSupportedLanguagesL
-// Fill aLanguages with supported language ids
-// -----------------------------------------------------------------------------
-//	
-void CTTSDataLoader::GetSupportedLanguagesL( RArray<TLanguage>& aLanguages )
-    {
-    // Get pts languages    
-    TFileName mask;
-    mask.Append( KDriveZ );
-    mask.Append( iTTSFileName );
-    mask.Append( _L( "2_*" ) );
-    
-    DoGetSupportedLanguagesL( aLanguages, mask);
-    
-    // Get ttp languages
-    RArray<TLanguage> ttpLanguages;
-    CleanupClosePushL( ttpLanguages );
-    
-    mask.Zero();
-    mask.Append( KDriveZ );
-    mask.Append( iTTSFileName );
-    mask.Append( _L( "0_*" ) );
-    
-    DoGetSupportedLanguagesL( ttpLanguages, mask);
-    
-    // remove languages which are not supported in ttp
-    for ( TInt i(0); i < aLanguages.Count(); i++ )
-        {
-        if ( ttpLanguages.Find( aLanguages[i] ) == KErrNotFound )
-            {
-            aLanguages.Remove( i );
-            }
-        }
-    CleanupStack::PopAndDestroy( &ttpLanguages );
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::DoLoadL
-// Loads the given file.
-// -----------------------------------------------------------------------------
-//	
-HBufC8* CTTSDataLoader::DoLoadL( TFileName& iFile,
-                                 TUint32 aStartPosition, 
-                                 TUint32 aEndPosition )
-    {
-    TInt fileSize( 0 );
-    RFile dataFile;
-    TInt readLength;
-    
-    TFileName completeFile;
-    completeFile.Append( KDriveZ );
-    completeFile.Append( iFile );
-    
-    
-    // Try to open file from Z drive
-    TInt err = dataFile.Open( iFs, completeFile, EFileRead );
-
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-
-
-    // Try to resolve how much should be read
-    readLength = aEndPosition - aStartPosition;
-    if ( dataFile.Size( fileSize ) != KErrNone )
-        {
-        dataFile.Close();
-        return NULL;
-        }
-    if ( fileSize == 0 )
-        {
-        dataFile.Close();
-        return NULL;
-        }
-
-    if ( aEndPosition != KMaxTUint32 )
-        {
-        // Cannot read more than filesize
-        if ( ( readLength > fileSize ) || ( readLength < 0 ) )
-            {
-            readLength = fileSize;
-            }
-        }
-    else
-        {
-        readLength = fileSize;
-        }
-    
-    // Seek the starting point
-    // Casting needed to convert from uint to int which is needed by Seek()
-    TInt startPosition = (TInt)aStartPosition;
-    dataFile.Seek( ESeekStart, startPosition );
-
-    // Reserve enough memory for the data
-    HBufC8* fileBuffer = HBufC8::NewL( readLength );
-
-    TPtr8 bufferPtr( fileBuffer->Des() );
-    
-    err = dataFile.Read( bufferPtr );
-    
-    dataFile.Close();
-    
-    if ( err != KErrNone )
-        {
-        delete fileBuffer;
-        return NULL;
-        }
-    
-    return fileBuffer;
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::DoGetSupportedLanguagesL
-// Fill aLanguages with supported language ids 
-// -----------------------------------------------------------------------------
-//	
-void CTTSDataLoader::DoGetSupportedLanguagesL( RArray<TLanguage>& aLanguages,
-                                               TFileName& aMask )
-    {
-    CDir *directoryList( NULL );
-    TInt error = iFs.GetDir( aMask, KEntryAttDir, ESortByName, directoryList );
-    CleanupStack::PushL( directoryList );
-
-    if ( !error )
-        {
-        TInt count = directoryList->Count();
-        
-        for ( TInt i( 0 ); i < count; i++ )
-            {
-            TPtrC tmp = (*directoryList)[i].iName;
-            
-            TInt64 id;
-            TLex parser( tmp.Mid( KBeginningOfLanguageId , 
-                                  tmp.Find( _L(".") ) - KBeginningOfLanguageId  ) );
-
-            User::LeaveIfError( parser.Val( id) );
-            
-            TLanguage lang( (TLanguage)id );
-            
-            if ( aLanguages.Find( lang ) == KErrNotFound )
-                {
-                aLanguages.AppendL( lang );
-                }
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( directoryList );
-    }
-    
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::PackageName
-// Construct filename for requested package
-// -----------------------------------------------------------------------------
-//	
-void CTTSDataLoader::PackageName (TFileName &aFileName, TUint32 aPackageType, TUint32 aPackageID) 
-{
-	// Resolve the name of the file
-	// filename is <iPrefixOfTTPFileName>_<PackageType>_<aPackageID><iPostfixOfFileName>
-
-	aFileName.Copy( iPrefixOfTTPFileName );          //  path/SRSF_
-	aFileName.AppendNumUC( aPackageType );           //  path/SRSF_1
-	aFileName.Append( _L( "_" ) );                   //  path/SRSF_1_
-	aFileName.AppendNumUC( aPackageID );             //  path/SRSF_1_326
-	aFileName.Append( iPostfixOfTTPFileName );       //  path/SRSF_1_326.bin
-}
-    
-#ifdef __SIND_AUTOCONF_LID
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::AppendLoadL
-// Load language package file to the end of buffer
-// -----------------------------------------------------------------------------
-//	
-void CTTSDataLoader::AppendLoadL( CBufBase *aBuffer,
-								TUint32 aPackageType, 
-								TUint32 aPackageID ) 
-{
-	// Resolve filename
-	TFileName fileName;
-	PackageName (fileName, aPackageType, aPackageID);
-
-	// Load data
-	HBufC8* buffer = NULL;
-	
-	TRAPD( err, buffer = DoLoadL( fileName, 0, KMaxTUint32 ));  // IMPLICIT: LID packages are loaded completely
-
- 	if( err == KErrNone && buffer ) 
- 	{
-		CleanupStack::PushL( buffer );                    // ResizeL may leave below
-
-		TInt prevSize = aBuffer->Size();                  // size before resize
-		TInt newSize  = aBuffer->Size() + buffer->Size(); // new size for lid data buffer
-
-		aBuffer->ResizeL( newSize );                      // resize lid data buffer
-		aBuffer->Write( prevSize, *buffer );              // append data from read buffer
-
-		CleanupStack::PopAndDestroy(buffer);              // buffer copied -> free
-	}
-}
-
-
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::LoadSysLangPackagesL
-// Load LID language data to a buffer according to installed system languages
-// -----------------------------------------------------------------------------
-//	
-void CTTSDataLoader::SysLangPackagesToBufferL( CBufBase *aBuffer ) 
-    {        
-
-	// Get installed languages
-	RArray<TLanguage> languages;
-    CleanupClosePushL( languages );
-	
-	TFileName mask;
-    mask.Append( KDriveZ );
-    mask.Append( iTTSFileName );
-    mask.Append( _L( "1_*" ) );
-    DoGetSupportedLanguagesL( languages, mask);
-	
-	// Loop over installed languages
-	for ( TInt i = 0 ; i < languages.Count(); i++ )
-	    {
-		AppendLoadL(aBuffer, KTtpAutoConfLidPackageType, languages[i] );
-	    }// next language
-	
-	CleanupStack::PopAndDestroy( &languages );
-    }
-
-// -----------------------------------------------------------------------------
-// CTTSDataLoader::ConstructLidDataL
-// Load LID language data to a buffer according to installed system languages
-// -----------------------------------------------------------------------------
-//	
-HBufC8* CTTSDataLoader::ConstructLidDataL()
-    {
-	CBufBase* lidDataBuffer = CBufSeg::NewL( KLidBufGranularity ) ; // accumulates the binary data from lid model files
-	CleanupStack::PushL( lidDataBuffer ) ;
-
-	SysLangPackagesToBufferL (lidDataBuffer);
-
-	// Prepare returnable data
-	HBufC8* dataBuffer = NULL;
-	
-	if( lidDataBuffer->Size() > 0 ) 
-	    {
-		// If any data was loaded, create a buffer for it
-		dataBuffer = HBufC8::NewL( lidDataBuffer->Size() );     // create a returnable buffer
-
-		TPtr8 dataBufferPtr = dataBuffer->Des();                        // get a modifiable pointer to it
-		lidDataBuffer->Read( 0, dataBufferPtr, lidDataBuffer->Size() ); // put the lid data into it
-    	}
-
-	CleanupStack::PopAndDestroy( lidDataBuffer ) ;  
-
-	return dataBuffer;
-    }
-#endif  // __SIND_AUTOCONF_LID
-
-// End of File