srsf/nssvasapi/nssvascore/src/nssvasctrainingparams.cpp
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:29:17 +0100
branchRCL_3
changeset 19 e36f3802f733
parent 0 bf1d17376201
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2003-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:  Saves training parameters, which include pronunciation language
*
*/


// INCLUDE FILES
#include "nssvasctrainingparameters.h"
#include "nssvasdbkonsts.h"

// ================= MEMBER FUNCTIONS =======================

// ---------------------------------------------------------
// CNssTrainingParameters::NewL
// Two-phased constructor
// ---------------------------------------------------------
//
EXPORT_C CNssTrainingParameters* CNssTrainingParameters::NewL()
    {
    CNssTrainingParameters *me = CNssTrainingParameters::NewLC();
    CleanupStack::Pop( me );
    return( me );
    }

// ---------------------------------------------------------
// CNssTrainingParameters::NewLC
// Two-phased constructor
// ---------------------------------------------------------
//
EXPORT_C CNssTrainingParameters* CNssTrainingParameters::NewLC()
    {
    CNssTrainingParameters *me = new (ELeave) CNssTrainingParameters();
    CleanupStack::PushL( me );

    me->ConstructL();

    return( me );
    }

// ---------------------------------------------------------
// CNssTrainingParameters::CNssTrainingParameters
// C++ constructor
// ---------------------------------------------------------
//
CNssTrainingParameters::CNssTrainingParameters()
 : iSeparator(' ')
    {
    // Nothing
    }

// ---------------------------------------------------------
// CNssTrainingParameters::ConstructL
// Second-phase constructor
// ---------------------------------------------------------
//
void CNssTrainingParameters::ConstructL()
    {
    iLanguages = new (ELeave) RArray<TLanguage>;
    }

// ---------------------------------------------------------
// CNssTrainingParameters::~CNssTrainingParameters
// Destructor
// ---------------------------------------------------------
//
EXPORT_C CNssTrainingParameters::~CNssTrainingParameters()
    {
    if ( iLanguages )
        {
        iLanguages->Close();
        delete iLanguages;
        }
    ResetSindeLanguageArray();
    
    }

// ---------------------------------------------------------
// CNssTrainingParameters::SetLanguages
// Sets the language list
// ---------------------------------------------------------
//
EXPORT_C void CNssTrainingParameters::SetLanguages( RArray<TLanguage>* aLanguageArray )
    {
    if ( iLanguages )
        {
        iLanguages->Close();
        delete iLanguages;
        }
    iLanguages = aLanguageArray;
    }

// ---------------------------------------------------------
// CNssTrainingParameters::Languages
// Returns the language list
// ---------------------------------------------------------
//
EXPORT_C const RArray<TLanguage>& CNssTrainingParameters::Languages() const
    {
    return( *iLanguages );
    }

// ---------------------------------------------------------
// CNssTrainingParameters::SetSeparator
// Sets the separator char
// ---------------------------------------------------------
//
EXPORT_C void CNssTrainingParameters::SetSeparator( TChar aSeparator )
    {
    iSeparator = aSeparator;
    }

// ---------------------------------------------------------
// CNssTrainingParameters::Separator
// Returns the separator char
// ---------------------------------------------------------
//
EXPORT_C TChar CNssTrainingParameters::Separator() const
    {
    return( iSeparator );
    }

// ---------------------------------------------------------
// CNssTrainingParameters::SetLanguages
// Sets the SINDE language list
// ---------------------------------------------------------
//
EXPORT_C void CNssTrainingParameters::SetSindeLanguages( 
                const RArray<RTrainingLanguageArray>& aLanguageArray )
    {
    ResetSindeLanguageArray();
    
    for ( TInt i = 0; i < aLanguageArray.Count(); i++ )
        {
        const RTrainingLanguageArray& array = aLanguageArray[i];
        RTrainingLanguageArray copiedArray;
        for ( TInt j = 0; j < array.Count(); j++ )
            {
            copiedArray.Append( array[j] );
            }
        iSindeLanguages.Append( copiedArray );
        }
    
    }
    
// ---------------------------------------------------------
// CNssTrainingParameters::Languages
// Returns the SINDE language list
// ---------------------------------------------------------
//
EXPORT_C const RArray<RTrainingLanguageArray>& CNssTrainingParameters::SindeLanguagesL() const
    {
    if ( iSindeLanguages.Count() == 0 )
        {
        User::Leave( KErrNotFound );
        }
    
    return iSindeLanguages;
    }
    
// ---------------------------------------------------------
// CNssTrainingParameters::ResetSindeLanguageArray
// Resets SINDE language array
// ---------------------------------------------------------
//    
void CNssTrainingParameters::ResetSindeLanguageArray()
    {
    for ( TInt i = 0; i < iSindeLanguages.Count(); i++ )
        {
        RTrainingLanguageArray& array = iSindeLanguages[i];
        array.Close();
        }
    iSindeLanguages.Reset();
    iSindeLanguages.Close();
    }

// End of File