srsf/vcommandhandler/src/vcommandrecoghandler.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 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:  Engine to perform the action corresponding to
*                the recognized and selected command
*
*/


#include <nssvasmtag.h>
#include <vcommandapi.h>
#include "vcommandinternalapi.h"
#include "rubydebug.h"
#include "tagcommandconverter.h"
#include "vcommandrecoghandler.h"

/**
* Factory function
*/
CVCRecognitionHandler* CVCRecognitionHandler::NewL()
	{
	CVCRecognitionHandler* self = new (ELeave) CVCRecognitionHandler;
	return self;
	}

// From MNssTagSelectHandler
/**
* Handle Tag Select Event - Event indicating a voice tag has been selected.
* @param aClientTag The voice tag which has been selected. This object is
*                   resonsible for deleting aClientTag.
* @return void
*/
void CVCRecognitionHandler::HandleTagSelect( MNssTag* aClientTag )
	{
	RUBY_DEBUG0( "CVCRecognitionHandler::HandleTagSelect start" );
	TRAPD( err, HandleTagSelectL( *aClientTag ) );
	if( err != KErrNone )
		{
		RUBY_ERROR1( "CVCRecognitionHandler::HandleTagSelectL failed with [%d] ", err );
		}
	
	delete aClientTag;
	RUBY_DEBUG0( "CVCRecognitionHandler::HandleTagSelect end" );
	}
	
void CVCRecognitionHandler::HandleTagSelectL( const MNssTag& aTag )
	{
	RUBY_DEBUG_BLOCK( "CVCRecognitionHandler::HandleTagSelectL" );
	CStoredVCommand* command = CTagCommandConverter::TagToCommandLC( aTag );
	command->Runnable().ExecuteL();
	CleanupStack::PopAndDestroy( command );
	}
	
//End of file