diff -r cad71a31b7fc -r e36f3802f733 srsf/vcommandhandler/src/vcommandrecogmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srsf/vcommandhandler/src/vcommandrecogmanager.cpp Wed Sep 01 12:29:17 2010 +0100 @@ -0,0 +1,80 @@ +/* +* Copyright (c) 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: Constructs / destroyes the recognition selection handler +* +*/ + + +#include +#include +#include +#include +#include "vcommandinternalapi.h" +#include "rubydebug.h" +#include "vcommandrecogmanager.h" +#include "vcommandrecoghandler.h" + +/** +* Factory function +*/ +EXPORT_C CVCRecognitionManager* CVCRecognitionManager::NewL() + { + CVCRecognitionManager* self = new (ELeave) CVCRecognitionManager; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +/** +* Destructor +*/ +EXPORT_C CVCRecognitionManager::~CVCRecognitionManager() + { + RUBY_DEBUG0( "CVCRecognitionManager::~CVCRecognitionManager start" ); + delete iRecognitionHandler; + delete iSelectNotificationBuilder; + RUBY_DEBUG0( "CVCRecognitionManager::~CVCRecognitionManager end" ); + } + +/** +* Second-phase constructor +*/ +void CVCRecognitionManager::ConstructL() + { + RUBY_DEBUG_BLOCK( "CVCRecognitionManager::ConstructL" ); + CNssVASDBMgr* vasDbManager = CNssVASDBMgr::NewL(); + CleanupStack::PushL( vasDbManager ); + + vasDbManager->InitializeL(); + MNssContextMgr* contextManager = vasDbManager->GetContextMgr(); + + iSelectNotificationBuilder = CNssSelectNotificationBuilder::NewL(); + iSelectNotificationBuilder->InitializeL(); + MNssTagSelectNotification* tagSelectNotification = + iSelectNotificationBuilder->GetTagSelectNotification(); + + iRecognitionHandler = CVCRecognitionHandler::NewL(); + + MNssContext* context = contextManager->CreateContextL(); + CleanupDeletePushL( context ); + context->SetNameL( KVoiceCommandContext ); + context->SetGlobal( ETrue ); + tagSelectNotification->RegisterL( context, iRecognitionHandler ); + // Context is copied inside RegisterL - no need to keep it anymore + CleanupStack::PopAndDestroy( context ); + CleanupStack::PopAndDestroy( vasDbManager ); + } + +//End of file