srsf/speechsynthesis/tsrc/speechsynthesistest/src/speechsynthesistester.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) 2006-2007 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:  
*
*/


// INCLUDE FILES

#include "speechsynthesistester.h"
#include "rubydebug.h"


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

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CSpeechSynthesisTester* CSpeechSynthesisTester::NewL( MTesterObserver& aObserver )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::NewL" );
    
    CSpeechSynthesisTester* self =
        new ( ELeave ) CSpeechSynthesisTester( aObserver );
        
    CleanupStack::PushL( self );
    self->ConstructL();
    CleanupStack::Pop( self ); 
    
    return self;
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::CSpeechSynthesisTester
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CSpeechSynthesisTester::CSpeechSynthesisTester( MTesterObserver& aObserver ):
    CActive( EPriorityStandard ),
    iTestStatus( EIdle ),
    iObserver( aObserver )
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::CSpeechSynthesisTester" );
    
    CActiveScheduler::Add( this );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::ConstructL()
    {
    RUBY_DEBUG_BLOCKL( "CSpeechSynthesisTester::ConstructL" );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::~CSpeechSynthesisTester
// Destructor.
// -----------------------------------------------------------------------------
//
CSpeechSynthesisTester::~CSpeechSynthesisTester()
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::~CSpeechSynthesisTester" );
    
    Cancel();
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::Open
// 
// -----------------------------------------------------------------------------
//
TInt CSpeechSynthesisTester::Open()
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::Open" );
    
    return iSpeechSynthesis.Open();
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::Close
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::Close()
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::Close" );
    
    iSpeechSynthesis.Close();
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::SynthesisInit
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::SynthesisInit( TDesC& aText, const TDesC& aFileName )
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::SynthesisInit" );
    
    Cancel();
    SetActive();
    
    iTestStatus = EPriming;
    
    if ( aFileName.Length() > 0 )
        {
        iSpeechSynthesis.InitialiseSynthesis( aText, aFileName, iStatus );
        }
    else
        {
        iSpeechSynthesis.InitialiseSynthesis( aText, iStatus );
        }
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::Synthesise
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::Synthesise()
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::Synthesise" );
    
    Cancel();
    SetActive();
        
    iTestStatus = EPlaying;
    
    iSpeechSynthesis.Synthesise( iStatus );
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::StopL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::StopL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::StopL" );
    
    iSpeechSynthesis.StopL();
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::PauseL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::PauseL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::PauseL" );
    
    iSpeechSynthesis.PauseL();
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::GetSupportedLanguagesL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::GetSupportedLanguagesL(  RArray<TLanguage>& aLanguages )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::GetSupportedLanguagesL" );
    
    iSpeechSynthesis.GetLanguagesL( aLanguages );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::GetSupportedVoicesL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::GetSupportedVoicesL( RArray<TVoice>& aVoices, 
                                                  TLanguage aLanguage )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::GetSupportedVoicesL" );
    
    iSpeechSynthesis.GetVoicesL( aVoices, aLanguage );
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::VoiceL
// 
// -----------------------------------------------------------------------------
//
TVoice CSpeechSynthesisTester::VoiceL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::VoiceL" );
    
    return iSpeechSynthesis.VoiceL();
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::SetVoiceL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::SetVoiceL( TVoice& aVoice )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::SetVoiceL" );
    
    iSpeechSynthesis.SetVoiceL( aVoice );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::MaxVolumeL
// 
// -----------------------------------------------------------------------------
//
TInt CSpeechSynthesisTester::MaxVolumeL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::MaxVolumeL" );
    
    return iSpeechSynthesis.MaxVolumeL();
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::VolumeL
// 
// -----------------------------------------------------------------------------
//
TInt CSpeechSynthesisTester::VolumeL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::VolumeL" );
    
    return iSpeechSynthesis.VolumeL();
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::SetVolumeL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::SetVolumeL( TInt aVolume )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::SetVolumeL" );
    
    iSpeechSynthesis.SetVolumeL( aVolume );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::MaxSpeakingRateL
// 
// -----------------------------------------------------------------------------
//
TInt CSpeechSynthesisTester::MaxSpeakingRateL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::MaxSpeakingRateL" );
    
    return iSpeechSynthesis.MaxSpeakingRateL();
    }
        
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::SpeakingRateL
// 
// -----------------------------------------------------------------------------
//
TInt CSpeechSynthesisTester::SpeakingRateL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::SpeakingRateL" );
    
    return iSpeechSynthesis.SpeakingRateL();
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::SetSpeakingRateL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::SetSpeakingRateL( TInt aRate )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::SetSpeakingRateL" );
    
    iSpeechSynthesis.SetSpeakingRateL( aRate );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::SetAudioPriorityL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::SetAudioPriorityL( TInt aPriority, TInt aPreference )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::SetAudioPriorityL" );
    
    iSpeechSynthesis.SetAudioPriorityL( aPriority, aPreference );
    }

// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::CustomCommandL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::CustomCommandL( TInt aCommand, TInt aValue )
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::CustomCommandL" );
    
    iSpeechSynthesis.CustomCommandL( aCommand, aValue );
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::RunL
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::RunL()
    {
    RUBY_DEBUG_BLOCK( "CSpeechSynthesisTester::RunL" );
    
    switch( iTestStatus )
        {
        case EPriming:
        
            iObserver.SynthesisInitComplete( iStatus.Int() ); 
         
            break;
            
        case EPlaying:
        
            iObserver.SynthesisComplete( iStatus.Int() ); 
            
            break;
        
        default:
        
            RUBY_ERROR0( "CSpeechSynthesisTester::RunL - In default!" );
             
        }

    iTestStatus = EIdle;
    }
    
// -----------------------------------------------------------------------------
// CSpeechSynthesisTester::DoCancel
// 
// -----------------------------------------------------------------------------
//
void CSpeechSynthesisTester::DoCancel()
    {
    RUBY_DEBUG0( "CSpeechSynthesisTester::DoCancel" );
    
    iTestStatus = EIdle;
    }
    
// End of File