speechsrv_plat/vas_api/inc/nssvasctrainingparameters.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:29:17 +0100
branchRCL_3
changeset 23 e36f3802f733
parent 0 bf1d17376201
child 10 5d89ffd32b48
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* 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:  CTag implements MTag. In addition, it provides members for use
*               by VAS internal components.
*
*/


#ifndef NSSVASCTRAININGPARAMETERS_H
#define NSSVASCTRAININGPARAMETERS_H

// includes
#include <nssvasmspeechitem.h>
#include "nssvasmtag.h"
#include "nssvasmcontext.h"
#include "nssvasmrrd.h"
#include "nssvascoreconstant.h"

// TYPEDEFS
typedef RArray<TLanguage> RTrainingLanguageArray;

// CLASS DECLARATION

/**
*  CTag is the implementation class for MTag interface. 
*  It encapsulates tag data. A tag cannot be directly created by a client. 
*  A client has to own an instance of Tag Manager which has methods for creating 
*  tag objects. The CTag class also provides additional members for internal 
*  use by VAS.
*  @lib VASApi.lib
*  @since 2.8
*/
class CNssTrainingParameters: public CBase
    {
    public:

        /**
        * Two-phased constructor
        * @since 2.8
        * @return Created instance
        */
        IMPORT_C static CNssTrainingParameters* NewL();

        /**
        * Two-phased constructor
        * @since 2.8
        * @return Created instance
        */
        IMPORT_C static CNssTrainingParameters* NewLC();

        /**
        * Virtuous destructor. Inherited from CBase.
        * @since 2.8
        */
        IMPORT_C virtual ~CNssTrainingParameters();

        /**
        * When text is transformed into pronunciation, the outcome depends on
        * language. List the languages, for which pronunciations should be
        * generated.
        * @since 2.8
        * @param aLanguageArray The list of languages
        */
        IMPORT_C void SetLanguages( RArray<TLanguage>* aLanguageArray );

        /**
        * When text is transformed into pronunciation, the outcome depends on
        * language. List the languages, for which pronunciations should be
        * generated.
        * @since 2.8
        * @return Array of languages.
        */
        IMPORT_C const RArray<TLanguage>& Languages() const;

        /**
        * Set the separator between the first name and the last name.
        * @since 2.8
        * @param aSeparator The separator
        */
        IMPORT_C void SetSeparator( TChar aSeparator );

        /**
        * Returns the separator character.
        * @since 2.8
        * @return The separator between the first name and the last name.
        */
        IMPORT_C TChar Separator() const;
        
        /**
        * Sets languages for SINDE type of training
        * @since 3.1
        * @param aLanguageArray Two dimensional language array
        */
        IMPORT_C void SetSindeLanguages( const RArray<RTrainingLanguageArray>& aLanguageArray );
        
        /**
        * Returns the list of SIND training languages.
        * @since 3.1
        * @return Array of language arrays
        */
        IMPORT_C const RArray<RTrainingLanguageArray>& SindeLanguagesL() const;

    private:
    
        /**
        * C++ constructor.
        */
        CNssTrainingParameters();

        /**
        * 2nd phase constructor.
        */
        void ConstructL();
        
        /**
        * Destroys SIND language array.
        */
        void CNssTrainingParameters::ResetSindeLanguageArray();

    private:

        // Word separator
        TChar iSeparator;

        // Language array, owned
        RArray<TLanguage>* iLanguages;
        
        // Array of language arrays for SINDE training, owned
        RArray<RTrainingLanguageArray> iSindeLanguages;
};

#endif // NSSVASCTRAININGPARAMETERS_H  
            
// End of File