speechsrv_plat/nss_tts_utility_api/inc/nssttsutility.h
changeset 13 57b735022c18
parent 1 b13cd05eeb2f
equal deleted inserted replaced
1:b13cd05eeb2f 13:57b735022c18
     1 /*
       
     2 * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Utility API for client to access TTS functionality.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef NSSTTSUTILITY_H
       
    20 #define NSSTTSUTILITY_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <mdaaudiosampleplayer.h>
       
    24 #include <nssttscommon.h>
       
    25 #include <nssttsutilitybase.h>
       
    26 #include <nssttsutilityobserver.h>
       
    27 
       
    28 // FORWARD DECLARATIONS
       
    29 class CTtsUtilityBody;
       
    30 
       
    31 // CLASS DECLARATION
       
    32 
       
    33 /**
       
    34 * Tts Utility interface.  
       
    35 *
       
    36 * @lib nssttsutility.lib
       
    37 * @since 2.8
       
    38 */
       
    39 class CTtsUtility : public CBase, public MTtsUtilityBase
       
    40     {
       
    41     public: // Constructors and destructor
       
    42         
       
    43         /**
       
    44         * Two-phased constructor.
       
    45         *
       
    46         * @since 2.8
       
    47         * @param "MTtsClientUtilityObserver& aObserver" Observer reference.
       
    48         * @return Pointer to created object.
       
    49         */
       
    50         IMPORT_C static CTtsUtility* NewL( MTtsClientUtilityObserver& aObserver );
       
    51  
       
    52         /**
       
    53         * Destructor.
       
    54         */
       
    55         IMPORT_C virtual ~CTtsUtility();
       
    56 
       
    57         /*
       
    58         * Creates instance of CTtsUtility
       
    59         * Needed when dynamically loading nssttsutility.dll
       
    60         * Direct users of nssttsutility.lib should not use this.
       
    61         * Returns M-class pointer to MTtsUtilityBase as TAny*        
       
    62         *
       
    63         * @return Created instance
       
    64         * @see CreateInstanceSecondPhaseL
       
    65         */
       
    66         IMPORT_C static TAny* CreateInstanceL();
       
    67 
       
    68         /**
       
    69         * Does the second phase initialization of CTtsUtility
       
    70         * Needed when dynamically loading nssttsutility.dll
       
    71         * Direct users of nssttsutility.lib should not use this        
       
    72         *
       
    73         * @param "const MTtsClientUtilityObserver& aObserver" Observer reference
       
    74         */
       
    75         IMPORT_C void CreateInstanceSecondPhaseL( MTtsClientUtilityObserver& aObserver );   
       
    76         
       
    77     public: // New functions in 3.2
       
    78 
       
    79         /**
       
    80         * Opens connection to a specific plugin.
       
    81         *
       
    82         * @param "TUid aUid" Plugin UID which will be instantiated
       
    83         * @since 3.2        
       
    84         */
       
    85         IMPORT_C void OpenPluginL( TUid aUid );
       
    86         
       
    87         /**
       
    88         * Lists UIDs of available Text-To-Speech plugins.
       
    89         *
       
    90         * @param "RArray<TUid>& aUids" Output parameter which will contain the
       
    91         *                              list of plugin UIDs after function call.
       
    92         * @since 3.2         
       
    93         */
       
    94         IMPORT_C void ListPluginsL( RArray<TUid>& aUids );              
       
    95                        
       
    96         /**
       
    97         * Sets the default style parameters for synthesis.
       
    98         *
       
    99         * @param "const TTtsStyle& aStyle" Style created by the client
       
   100         * @since 3.2        
       
   101         */
       
   102         IMPORT_C void SetDefaultStyleL( const TTtsStyle& aStyle );
       
   103         
       
   104         /**
       
   105         * Returns the registered default style
       
   106         *
       
   107         * @return Style reference
       
   108         * @leave KErrNotReady if no plugin is loaded to handle the function call
       
   109         * @since 3.2             
       
   110         */
       
   111         IMPORT_C TTtsStyle& DefaultStyleL();
       
   112         
       
   113         /**
       
   114         * Sets the speaking rate of synthesizer.
       
   115         *
       
   116         * @param TInt aRate Speaking rate value
       
   117         * @leave KErrNotSupported if synthesizer does not support speaking rate setting
       
   118         * @since 3.2        
       
   119         */        
       
   120         IMPORT_C void SetSpeakingRateL( TInt aRate );
       
   121         
       
   122         /**
       
   123         * Returns the current speaking rate value.
       
   124         *
       
   125         * @return Speaking rate value
       
   126         * @leave KErrNotSupported if synthesizer does not support speaking rate setting
       
   127         * @leave KErrNotReady if no plugin is loaded to handle the function call
       
   128         * @since 3.2        
       
   129         */
       
   130         IMPORT_C TInt SpeakingRateL();
       
   131        
       
   132         /**
       
   133         * Open a descriptor ready for playback
       
   134         *
       
   135         * @param "const TDesC& aDescriptor" Descriptor containing the text to be synthesized.
       
   136         * @since 3.2        
       
   137         */
       
   138         IMPORT_C void OpenDesL( const TDesC& aDescriptor ); 
       
   139 
       
   140         /**
       
   141         * Opens a descriptor and plays it.
       
   142         *
       
   143         * @param "const TDesC& aDescriptor" Descriptor to play 
       
   144         * @since 3.2        
       
   145         */
       
   146         IMPORT_C void OpenAndPlayDesL( const TDesC& aDescriptor );  
       
   147         
       
   148         /**
       
   149         * Returns the list of supported languages.
       
   150         * 
       
   151         * @param "RArray<TLanguage>& aLanguages" Output parameter which contains the languages
       
   152         * @leave KErrNotReady if no plugin is loaded to handle the function call
       
   153         * @since 3.2        
       
   154         */
       
   155         IMPORT_C void GetSupportedLanguagesL( RArray<TLanguage>& aLanguages );
       
   156         
       
   157         /**
       
   158         * Returns the list of supported voices for a certain language.
       
   159         * 
       
   160         * @param "TLanguage aLanguage" Language
       
   161         * @param "RArray<TTtsStyle>& aVoices" Output parameter which contains the voices
       
   162         * @leave KErrNotReady if no plugin is loaded to handle the function call
       
   163         * @since 3.2
       
   164         */        
       
   165         IMPORT_C void GetSupportedVoicesL( TLanguage aLanguage, RArray<TTtsStyle>& aVoices );
       
   166         
       
   167         /**
       
   168         * Sets data sink to be a file for the next synthesis event
       
   169         *
       
   170         * @param "RFile& aFile" Open file handle where the output is written 
       
   171         * @leave KErrNotReady if no plugin is loaded to handle the function call
       
   172         * @since 3.2
       
   173         */
       
   174         IMPORT_C void SetOutputFileL( const RFile& aFile ); 
       
   175         
       
   176     public: // New functions          
       
   177         
       
   178         /**
       
   179         * Adds new style to style collection.
       
   180         *
       
   181         * @since 2.8
       
   182         * @param "TTtsStyle& aStyle" Reference to style.
       
   183         * @return Assigned style ID.
       
   184         */
       
   185         IMPORT_C TTtsStyleID AddStyleL( const TTtsStyle& aStyle );
       
   186 
       
   187         /**
       
   188         * Deletes style from the style collection.
       
   189         *
       
   190         * @since 2.8
       
   191         * @param "TTtsStyle& aStyle" Reference to style.
       
   192         * @return Error code.
       
   193         */
       
   194         IMPORT_C TInt DeleteStyle( TTtsStyleID aID );
       
   195 
       
   196         /**
       
   197         * Returns number of styles.
       
   198         *
       
   199         * @since 2.8
       
   200         * @return Number of styles.
       
   201         */
       
   202         IMPORT_C TUint16 NumberOfStyles();
       
   203 
       
   204         /**
       
   205         * Returns style based on style ID
       
   206         *
       
   207         * @since 2.8
       
   208         * @param "TTtsStyleID aStyleID" Style identifier.
       
   209         * @return Reference to found style.
       
   210         */
       
   211         IMPORT_C TTtsStyle& StyleL( TTtsStyleID aStyleID );
       
   212 
       
   213         /**
       
   214         * Returns style based on index.
       
   215         *
       
   216         * @since 2.8
       
   217         * @param "TUint16 aIndex" Index.
       
   218         * @return Reference to found style.
       
   219         */
       
   220         IMPORT_C TTtsStyle& StyleL( TUint16 aIndex );
       
   221 
       
   222         /**
       
   223         * Begins playback of the initialised audio sample at the current volume
       
   224         * and priority levels.
       
   225         *
       
   226         * When playing of the audio sample is complete, successfully or
       
   227         * otherwise, the callback function
       
   228         * <code>MMdaAudioPlayerCallback::MapcPlayComplete()</code> is
       
   229         * called. 
       
   230         *
       
   231         * @since 2.8
       
   232         */
       
   233         IMPORT_C void Play();
       
   234 
       
   235         /**
       
   236         * Stops playback of the audio sample as soon as possible.
       
   237         *
       
   238         * If the audio sample is playing, playback is stopped as soon as
       
   239         * possible. If playback is already complete, nothing further happens as
       
   240         * a result of calling this function. The callback function
       
   241         * <code>MMdaAudioPlayerCallback::MapcPlayComplete()</code> is not
       
   242         * called.
       
   243         *
       
   244         * @since 2.8
       
   245         */
       
   246         IMPORT_C void Stop();
       
   247         
       
   248         /**
       
   249         * Changes the current playback volume to a specified value.
       
   250         *
       
   251         * The volume can be changed before or during playback and is effective
       
   252         * immediately. The function raises a CMdaAudioPlayerUtility 1 panic if
       
   253         * the audio player utility is not initialised.
       
   254         *
       
   255         * @since 2.8
       
   256         * @param	"TInt aVolume"
       
   257         *          The volume setting. This can be any value from zero to
       
   258         *          the value returned by a call to
       
   259         *          <code>CMdaAudioPlayerUtility::MaxVolume()</code>.
       
   260         *          Setting a zero value mutes the sound. Setting the
       
   261         *          maximum value results in the loudest possible sound.
       
   262         */
       
   263         IMPORT_C void SetVolume( TInt aVolume );
       
   264         
       
   265         /**
       
   266         * Sets the number of times the audio sample is to be repeated during the
       
   267         * playback operation.
       
   268         *
       
   269         * A period of silence can follow each playing of the sample. The audio
       
   270         * sample can be repeated indefinitely.
       
   271         *
       
   272         * @since 2.8
       
   273         * @param	"TInt aRepeatNumberOfTimes"
       
   274         *          The number of times the audio sample, together with
       
   275         *          the trailing silence, is to be repeated. If this is
       
   276         *          set to <code>KMdaRepeatForever</code>, then the audio
       
   277         *          sample, together with the trailing silence, is
       
   278         *          repeated indefinitely or until <code>Stop()</code> is
       
   279         *          called. If this is set to zero, then the audio sample
       
   280         *          is not repeated.
       
   281         * @param   "const TTimeIntervalMicroSeconds& aTrailingSilence"
       
   282         *          The time interval of the trailing silence.
       
   283         */
       
   284         IMPORT_C void SetRepeats( TInt aRepeatNumberOfTimes, 
       
   285                                   const TTimeIntervalMicroSeconds& aTrailingSilence );
       
   286         
       
   287         /**
       
   288         * Returns the duration of the audio sample.
       
   289         *
       
   290         * The function raises a CMdaAudioPlayerUtility 1 panic if the audio
       
   291         * player utility is not initialised.
       
   292         *
       
   293         * @since 2.8
       
   294         * @returns "TTimeIntervalMicroSeconds&"
       
   295         *          The duration in microseconds
       
   296         */
       
   297         IMPORT_C const TTimeIntervalMicroSeconds& Duration();
       
   298         
       
   299         /**
       
   300         * Returns an integer representing the maximum volume.
       
   301         *
       
   302         * This is the maximum value which can be passed to
       
   303         * <code>CMdaAudioPlayerUtility::SetVolume()</code>. The function raises a
       
   304         * CMdaAudioPlayerUtility 1 panic if the audio player utility is not
       
   305         * initialised.
       
   306         *
       
   307         * @since 2.8
       
   308         * @returns "TInt"
       
   309         *          The maximum volume. This value is platform dependent
       
   310         *          but is always greater than or equal to one.
       
   311         */
       
   312         IMPORT_C TInt MaxVolume();
       
   313         
       
   314         /**
       
   315         * Opens a descriptor source and plays it.
       
   316         *
       
   317         * @since 2.8
       
   318         * @param "TDesC8& aDescriptor" Descriptor to play (in UTF-8 format).
       
   319         */
       
   320         IMPORT_C void OpenAndPlayDesL( const TDesC8& aDescriptor );
       
   321 
       
   322         /**
       
   323         * Opens a file source and plays it.
       
   324         *
       
   325         * @since 2.8
       
   326         * @param "TDesC& aFileName" File to play.
       
   327         */
       
   328         IMPORT_C void OpenAndPlayFileL( const TDesC& aFileName );
       
   329 
       
   330         /**
       
   331         * Opens a parsed text source and plays it.
       
   332         *
       
   333         * @since 2.8
       
   334         * @param "CTtsParsedText& aText" Parsed text object to play.
       
   335         */
       
   336         IMPORT_C void OpenAndPlayParsedTextL( CTtsParsedText& aText );
       
   337 
       
   338         /**
       
   339         * Open a clip from a file
       
   340         *
       
   341         * @since 2.8
       
   342         * @param	"const TDesC& aFileName" 
       
   343         *			File to open
       
   344         * @leave	Leaves with one of the system wide error codes if a problem is encountered
       
   345         *			opening the file
       
   346         */
       
   347         IMPORT_C void OpenFileL( const TDesC& aFileName );
       
   348 
       
   349         /**
       
   350         * Open a clip from a descriptor
       
   351         *
       
   352         * @since 2.8
       
   353         * @param	"const TDesC8& aDescriptor" 
       
   354         *			Descriptor containing audio clip
       
   355         * @leave	Leaves with one of the system wide error codes if a problem is encountered
       
   356         *			opening the file
       
   357         */
       
   358         IMPORT_C void OpenDesL( const TDesC8& aDescriptor );
       
   359 
       
   360         /**
       
   361         * Open parsed text source.
       
   362         *
       
   363         * @since 2.8
       
   364         * @param "CTtsParsedText& aText" Reference to parsed text object.
       
   365         */
       
   366         IMPORT_C void OpenParsedTextL( CTtsParsedText& aText );
       
   367 
       
   368         /**
       
   369         * Pauses playback of text to speech
       
   370         *
       
   371         * @since 2.8
       
   372         * @returns One of the system-wide error codes
       
   373         */
       
   374         IMPORT_C TInt Pause();
       
   375         
       
   376         /**
       
   377         * Closes the connection to the controller plugin.
       
   378         *
       
   379         * @since 2.8
       
   380         */
       
   381         IMPORT_C void Close();
       
   382         
       
   383         /**
       
   384         * Returns the current playback position in microseconds
       
   385         *
       
   386         * @since 2.8
       
   387         * @retval "TTimeIntervalMicroSeconds& aPosition"
       
   388         *          The current time position in microseconds from the start of the file
       
   389         * @returns One of the global error codes
       
   390         */
       
   391         IMPORT_C TInt GetPosition( TTimeIntervalMicroSeconds& aPosition );
       
   392         
       
   393         /**
       
   394         * Returns the current playback position in word index.
       
   395         *
       
   396         * @since 2.8
       
   397         * @retval "TInt& aWordIndex" The current position in words.
       
   398         * @return Error code.
       
   399         */
       
   400         IMPORT_C TInt GetPosition( TInt& aWordIndex );
       
   401 
       
   402         /**
       
   403         * Set the current playback position in microseconds from the start of the file
       
   404         *
       
   405         * @since 2.8
       
   406         * @param "TTimeIntervalMicroSeconds& aPosition"
       
   407         *          The position to move to in microseconds past the start of the file
       
   408         */
       
   409         IMPORT_C void SetPosition( const TTimeIntervalMicroSeconds& aPosition );
       
   410         
       
   411         /**
       
   412         * Set the current playback position in word index.
       
   413         *
       
   414         * @since 2.8
       
   415         * @param "TInt aWordIndex" Playback position.
       
   416         */
       
   417         IMPORT_C void SetPosition( TInt aWordIndex );
       
   418 
       
   419         /**
       
   420         *
       
   421         * Set the priority for playback. This is used to arbitrate between multiple 
       
   422         * objects trying to access a single sound device
       
   423         *
       
   424         * @since 2.8
       
   425         * @param "TInt aPriority" Audio priority for playback
       
   426         * @param "TMdaPriorityPreference aPref" Preference value for playback
       
   427         * 
       
   428         * @returns "TInt" One of the global error codes
       
   429         */
       
   430         IMPORT_C TInt SetPriority( TInt aPriority, TMdaPriorityPreference aPref );
       
   431         
       
   432         /**
       
   433         * Returns the current playback volume
       
   434         *
       
   435         * @since 2.8
       
   436         * @retval "TInt& aVolume"
       
   437         *          A volume value between 0 and the value returned by <code>MaxVolume()</code>
       
   438         * @returns "TInt" One of the global error codes
       
   439         */
       
   440         IMPORT_C TInt GetVolume( TInt& aVolume );
       
   441         
       
   442         /**
       
   443         * Sets the current playback balance
       
   444         *
       
   445         * @since 2.8
       
   446         * @param "TInt& aBalance"
       
   447         *        A value between <code>KMMFBalanceMaxLeft</code> 
       
   448         *        and <code>KMMFBalanceMaxRight</code>. The default value is 
       
   449         *        <code>KMMFBalanceCenter</code>
       
   450         * @returns "TInt" One of the global error codes
       
   451         */
       
   452         IMPORT_C TInt SetBalance( TInt aBalance = KMMFBalanceCenter );
       
   453         
       
   454         /**
       
   455         * Returns the current playback balance
       
   456         *
       
   457         * @since 2.8
       
   458         * @retval "TInt& aBalance"
       
   459         *         A value between <code>KMMFBalanceMaxLeft</code> 
       
   460         *         and <code>KMMFBalanceMaxRight</code>
       
   461         * @returns "TInt" One of the global error codes
       
   462         */
       
   463         IMPORT_C TInt GetBalance( TInt& aBalance );
       
   464         
       
   465         /**
       
   466         * Send a synchronous custom command to the controller
       
   467         *
       
   468         * @since 2.8
       
   469         * @param "aDestination"	"The destination of the message, consisting of the uid of
       
   470         *        the interface of this message."
       
   471         * @param "aFunction" "The function number to indicate which function is to be called
       
   472         *        on the interface defined in the aDestination parameter."
       
   473         * @param "aDataTo1" "A reference to the first chunk of data to be copied to the controller 
       
   474         *        framework. The exact contents of the data are dependent on the 
       
   475         *        interface being called.  Can be KNullDesC8."
       
   476         * @param "aDataTo2" "A reference to the second chunk of data to be copied to the controller 
       
   477         *        framework. The exact contents of the data are dependent on the 
       
   478         *        interface being called.  Can be KNullDesC8."
       
   479         * @param "aDataFrom" "A reference to an area of memory to which the controller framework will 
       
   480         *        write any data to be passed back to the client.  Can't be KNullDesC8."
       
   481         * @return "The result of the request. Exact range of values is dependent on the interface."
       
   482         */
       
   483         IMPORT_C TInt CustomCommandSync( const TMMFMessageDestinationPckg& aDestination, 
       
   484                                          TInt aFunction, 
       
   485                                          const TDesC8& aDataTo1, 
       
   486                                          const TDesC8& aDataTo2, 
       
   487                                          TDes8& aDataFrom);
       
   488         /**
       
   489         * Send a synchronous custom command to the controller
       
   490         *
       
   491         * @since 2.8
       
   492         * @param "aDestination" "The destination of the message, consisting of the uid of
       
   493         *		 the interface of this message."
       
   494         * @param "aFunction" "The function number to indicate which function is to be called
       
   495         *        on the interface defined in the aDestination parameter."
       
   496         * @param "aDataTo1" "A reference to the first chunk of data to be copied to the controller 
       
   497         *         framework. The exact contents of the data are dependent on the 
       
   498         *         interface being called.  Can be KNullDesC8."
       
   499         * @param "aDataTo2" "A reference to the second chunk of data to be copied to the controller 
       
   500         *         framework. The exact contents of the data are dependent on the 
       
   501         *         interface being called.  Can be KNullDesC8."
       
   502         * @return "The result of the request. Exact range of values is dependent on the interface."
       
   503         */
       
   504         IMPORT_C TInt CustomCommandSync( const TMMFMessageDestinationPckg& aDestination, 
       
   505                                          TInt aFunction, 
       
   506                                          const TDesC8& aDataTo1, 
       
   507                                          const TDesC8& aDataTo2 );
       
   508         /**
       
   509         * Send a asynchronous custom command to the controller
       
   510         * Note: This method will return immediately.  The RunL of the active object owning the 
       
   511         * <code>aStatus<\code> parameter will be called when the command is completed by the 
       
   512         * controller framework.
       
   513         *
       
   514         * @since 2.8
       
   515         * @param "aDestination" "The destination of the message, consisting of the uid of
       
   516         *        the interface of this message."
       
   517         * @param "aFunction" "The function number to indicate which function is to be called
       
   518         *        on the interface defined in the aDestination parameter."
       
   519         * @param "aDataTo1" "A reference to the first chunk of data to be copied to the controller 
       
   520         *        framework. The exact contents of the data are dependent on the 
       
   521         *        interface being called.  Can be KNullDesC8."
       
   522         * @param "aDataTo2" "A reference to the second chunk of data to be copied to the controller 
       
   523         *        framework. The exact contents of the data are dependent on the 
       
   524         *        interface being called.  Can be KNullDesC8."
       
   525         * @param "aDataFrom" "A reference to an area of memory to which the controller framework will 
       
   526         *        write any data to be passed back to the client.  Can't be KNullDesC8."
       
   527         * @param "aStatus" "The TRequestStatus of an active object.  This will contain the 
       
   528         *        result of the request on completion.  The exact range of 
       
   529         *        result values is dependent on the interface."
       
   530         */
       
   531         IMPORT_C void CustomCommandAsync( const TMMFMessageDestinationPckg& aDestination,  
       
   532                                           TInt aFunction, 
       
   533                                           const TDesC8& aDataTo1, 
       
   534                                           const TDesC8& aDataTo2, 
       
   535                                           TDes8& aDataFrom, 
       
   536                                           TRequestStatus& aStatus );
       
   537         /**
       
   538         * Send a asynchronous custom command to the controller
       
   539         * Note: This method will return immediately.  The RunL of the active object owning the 
       
   540         * <code>aStatus<\code> parameter will be called when the command is completed by the 
       
   541         * controller framework.
       
   542         *
       
   543         * @since 2.8
       
   544         * @param "aDestination" "The destination of the message, consisting of the uid of
       
   545         *        the interface of this message."
       
   546         * @param "aFunction" "The function number to indicate which function is to be called
       
   547         *        on the interface defined in the aDestination parameter."
       
   548         * @param "aDataTo1" "A reference to the first chunk of data to be copied to the controller 
       
   549         *        framework. The exact contents of the data are dependent on the 
       
   550         *        interface being called.  Can be KNullDesC8."
       
   551         * @param "aDataTo2" "A reference to the second chunk of data to be copied to the controller 
       
   552         *        framework. The exact contents of the data are dependent on the 
       
   553         *        interface being called.  Can be KNullDesC8."
       
   554         * @param "aStatus" "The TRequestStatus of an active object.  This will contain the 
       
   555         *        result of the request on completion.  The exact range of 
       
   556         *        result values is dependent on the interface."
       
   557         */
       
   558         IMPORT_C void CustomCommandAsync( const TMMFMessageDestinationPckg& aDestination, 
       
   559                                           TInt aFunction, 
       
   560                                           const TDesC8& aDataTo1, 
       
   561                                           const TDesC8& aDataTo2, 
       
   562                                           TRequestStatus& aStatus );
       
   563 
       
   564     private:
       
   565         
       
   566         /**
       
   567         * C++ default constructor.
       
   568         *
       
   569         * @since 2.8
       
   570         */
       
   571         CTtsUtility();
       
   572         
       
   573         /**
       
   574         * By default Symbian 2nd phase constructor is private.
       
   575         * 
       
   576         * @since 2.8
       
   577         * @param "MTtsClientUtilityObserver& aObserver" Observer reference.
       
   578         */
       
   579         void ConstructL( MTtsClientUtilityObserver& aObserver );
       
   580         
       
   581         // Prohibit copy constructor
       
   582         CTtsUtility( const CTtsUtility& );
       
   583         // Prohibit assigment operator
       
   584         CTtsUtility& operator=( const CTtsUtility& );
       
   585         
       
   586     private: // Data
       
   587 
       
   588         // Real implementation
       
   589         CTtsUtilityBody* iBody;
       
   590 
       
   591         // Reserved pointer for future extension
       
   592         TAny* iReserved;
       
   593         
       
   594     };
       
   595 
       
   596 #endif // NSSTTSUTILITY_H   
       
   597 
       
   598 // End of File