--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/srsf/speechsynthesis/tsrc/testapplication/src/testappappui.cpp Wed Sep 01 12:29:17 2010 +0100
@@ -0,0 +1,348 @@
+/*
+* Copyright (c) 2005-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:
+*
+*/
+
+
+// INCLUDE FILES
+#include "TestAppAppUi.h"
+#include "TestAppContainer.h"
+#include <TestApplication.rsg>
+#include "TestApp.hrh"
+#include <aknNoteDialog.h>
+#include <aknNoteWrappers.h>
+#include <eikmenup.h>
+#include <avkon.hrh>
+
+#include "testappengine.h"
+
+#include "rubydebug.h"
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------------
+// CTestAppAppUi::ConstructL()
+//
+// ----------------------------------------------------------
+//
+void CTestAppAppUi::ConstructL()
+ {
+ BaseConstructL();
+
+ iAppContainer = new (ELeave) CTestAppContainer;
+ iAppContainer->SetMopParent(this);
+ iAppContainer->ConstructL( ClientRect() );
+
+ iAppEngine = CTestAppEngine::NewL( *this );
+
+ AddToStackL( iAppContainer );
+ }
+
+// ----------------------------------------------------
+// CTestAppAppUi::~CTestAppAppUi()
+// Destructor
+// Frees reserved resources
+// ----------------------------------------------------
+//
+CTestAppAppUi::~CTestAppAppUi()
+ {
+ if ( iAppContainer )
+ {
+ RemoveFromStack( iAppContainer );
+ delete iAppContainer;
+ }
+
+ if ( iAppEngine )
+ {
+ TRAP_IGNORE( iAppEngine->DisconnectL() );
+ delete iAppEngine;
+ }
+ }
+
+// ------------------------------------------------------------------------------
+// CTestAppAppUi::::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
+// This function is called by the EIKON framework just before it displays
+// a menu pane. Its default implementation is empty, and by overriding it,
+// the application can set the state of menu items dynamically according
+// to the state of application data.
+// ------------------------------------------------------------------------------
+//
+void CTestAppAppUi::DynInitMenuPaneL(
+ TInt aResourceId, CEikMenuPane* aMenuPane )
+ {
+ if ( aResourceId==R_TEST_APPLICATION_MENU )
+ {
+ if (iServerConnected)
+ {
+ aMenuPane->SetItemDimmed( ETestAppCmdAppConnect, ETrue );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppDisconnect, EFalse );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppSayText, EFalse );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppSayTextToFile, EFalse );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppChangeVoice, EFalse );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppVolumeDown, EFalse );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppVolumeUp, EFalse );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( ETestAppCmdAppConnect, EFalse );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppDisconnect, ETrue );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppSayText, ETrue );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppSayTextToFile, ETrue );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppChangeVoice, ETrue );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppVolumeDown, ETrue );
+ aMenuPane->SetItemDimmed( ETestAppCmdAppVolumeUp, ETrue );
+ }
+ }
+ }
+
+// ----------------------------------------------------
+// CTestAppAppUi::HandleKeyEventL(
+// const TKeyEvent& aKeyEvent,TEventCode /*aType*/)
+// ----------------------------------------------------
+//
+TKeyResponse CTestAppAppUi::HandleKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ TKeyResponse response( EKeyWasNotConsumed );
+
+ if ( aType == EEventKey && iServerConnected )
+ {
+ response = EKeyWasConsumed;
+
+ switch ( aKeyEvent.iCode )
+ {
+ case EKeyOK:
+
+ HandleCommandL( ETestAppCmdAppSayText );
+ break;
+
+ case EKeyDownArrow:
+
+ HandleCommandL( ETestAppCmdAppChangeVoice );
+ break;
+
+ case EKeyUpArrow:
+
+ HandleCommandL( ETestAppCmdAppChangeRate );
+ break;
+
+ case EKeyLeftArrow:
+
+ HandleCommandL( ETestAppCmdAppVolumeDown );
+ break;
+
+ case EKeyRightArrow:
+
+ HandleCommandL( ETestAppCmdAppVolumeUp );
+ break;
+
+ case 50: // a
+
+ HandleCommandL( ETestAppCmdAppChangeAudioOutput );
+ break;
+
+ case 55: // p
+
+ HandleCommandL( ETestAppCmdAppPause );
+ break;
+
+ case 56: // t
+
+ HandleCommandL( ETestAppCmdAppPlay );
+ break;
+
+ case 57: // w
+
+ HandleCommandL( ETestAppCmdAppStop );
+ break;
+
+ default:
+
+ response = EKeyWasNotConsumed;
+
+ }
+ }
+
+ return response;
+ }
+
+// ----------------------------------------------------
+// CTestAppAppUi::HandleCommandL
+//
+// ----------------------------------------------------
+//
+void CTestAppAppUi::HandleCommandL(TInt aCommand)
+ {
+ TInt value( -1 );
+ TVoice voice;
+
+ switch ( aCommand )
+ {
+ case EAknSoftkeyExit:
+ case EEikCmdExit:
+ case EKeyPhoneEnd:
+ case EKeyEscape:
+ Exit();
+ break;
+
+ case ETestAppCmdAppConnect:
+
+ ShowNoteL( _L("Connect") );
+
+ iAppEngine->ConnectL();
+ iServerConnected = ETrue;
+
+ ChangeTextL( 0, _L("Server: Connected") );
+
+ break;
+
+ case ETestAppCmdAppDisconnect:
+
+ ShowNoteL( _L("Disconnect") );
+
+ iAppEngine->DisconnectL();
+ iServerConnected = EFalse;
+
+ ChangeTextL( 0, _L("Server: Disconnected") );
+
+ break;
+
+ case ETestAppCmdAppSayText:
+
+ ShowNoteL( _L("Say text") );
+
+ iAppEngine->InitTextL();
+
+ break;
+
+ case ETestAppCmdAppSayTextToFile:
+
+ ShowNoteL( _L("Say text to file") );
+
+ iAppEngine->InitTextToFileL();
+
+ break;
+
+ case ETestAppCmdAppChangeVoice:
+
+ voice = iAppEngine->ChangeVoiceL();
+
+ ShowNoteL( voice.iVoiceName, voice.iLanguage );
+ ChangeTextL( 1, voice.iVoiceName, voice.iLanguage );
+
+ break;
+
+ case ETestAppCmdAppVolumeDown:
+
+ value = iAppEngine->VolumeDownL();
+
+ ShowNoteL( _L("Volume"), value );
+ ChangeTextL( 2, _L("Volume"), value );
+
+ break;
+
+ case ETestAppCmdAppVolumeUp:
+
+ value = iAppEngine->VolumeUpL();
+
+ ShowNoteL( _L("Volume"), value );
+ ChangeTextL( 2, _L("Volume"), value );
+
+ break;
+
+ case ETestAppCmdAppChangeRate:
+
+ value = iAppEngine->RateUpL();
+
+ ShowNoteL( _L("Speaking rate"), value );
+ ChangeTextL( 3, _L("Speking Rate"), value );
+ break;
+
+ case ETestAppCmdAppChangeAudioOutput:
+
+ iAppEngine->ChangeAudioOutputL();
+
+ ShowNoteL( _L("Audio output changed") );
+ break;
+
+ case ETestAppCmdAppPause:
+
+ ShowNoteL( _L("Paused") );
+ iAppEngine->PauseL();
+
+ break;
+
+ case ETestAppCmdAppPlay:
+
+ ShowNoteL( _L("Play") );
+ iAppEngine->PlayL();
+
+ break;
+
+ case ETestAppCmdAppStop:
+
+ ShowNoteL( _L("Stopped") );
+
+ iAppEngine->StopL();
+
+ break;
+
+ default:
+
+ break;
+ }
+ }
+
+// ----------------------------------------------------
+// CTestAppAppUi::ShowNoteL
+//
+// ----------------------------------------------------
+//
+void CTestAppAppUi::ShowNoteL( TPtrC aText, TInt aNumber )
+ {
+ TBuf<64> buf( aText );
+
+ if ( aNumber > -1 )
+ {
+ buf.Append( _L(": ") );
+ buf.AppendNum( aNumber );
+ }
+
+ iEikonEnv->InfoMsg( buf );
+
+ ChangeTextL( 5, buf.PtrZ() );
+ }
+
+// ----------------------------------------------------
+// CTestAppAppUi::ChangeTextL
+//
+// ----------------------------------------------------
+//
+void CTestAppAppUi::ChangeTextL( TInt aIndex,
+ TPtrC aText,
+ TInt aNumber )
+ {
+ TBuf<64> buf( aText );
+
+ if ( aNumber != -1 )
+ {
+ buf.Append( _L(": ") );
+ buf.AppendNum( aNumber );
+ }
+
+ iAppContainer->ChangeTextL( aIndex, buf );
+ }
+
+// End of File