srsf/vcommandexecutor/inc/nssvcapplauncher.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:29:17 +0100
branchRCL_3
changeset 23 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:  Does the application launching of the recognized voice command
*
*/


#ifndef __NSSVCAPPLAUNCHER_H__
#define __NSSVCAPPLAUNCHER_H__

//  INCLUDES
//#include "AppControllerConstants.h"
#include "nssvcapplauncher.hrh"
#include <e32base.h>
#include <e32std.h>
#include <apgcli.h>
#include <barsc.h>       // RResourceFile

#include <remconcoreapicontrollerobserver.h>

#include <nssttsutility.h>
#include <nssttscommon.h>

// FORWARD DECLARATIONS
class RFs;
class RResourceFile;

// CLASS DECLARATION

/**
* This is the implementation class for launching applications and initiating profiles.
* @lib AppController.lib
* @since 3.0
*/

class CNssVCAppLauncher : public CBase, public MTtsClientUtilityObserver, public MRemConCoreApiControllerObserver
    {
    public:  // Constructors and destructor

        /**
        * Two-phased constructor.
        */
        static CNssVCAppLauncher* NewL();
        
        /**
        * Destructor.
        */
        virtual ~CNssVCAppLauncher();

    public: // New functions
        
        /**
        * Checks the id and calls the appropriate function.
        * @since Averell 2.0
        * @param aCommandId     ID of command to be executed.
        * @return TInt          KErrNone if OK, else value indicating error situation.
        */
        TInt ExecuteCommandL( TUint aCommandId );
    
    public: // Functions from base classes
        
        // From MTtsClientUtilityObserver
        void MapcPlayComplete( TInt aError );
        
        // From MTtsClientUtilityObserver
        void MapcInitComplete( TInt aError,
                               const TTimeIntervalMicroSeconds& aDuration );
        
        // Not implemented
        void MapcCustomCommandEvent( TInt /*aEvent*/, TInt /*aError*/ ) {};
                        
        /** 
	    A response has been received. 
	    @param aOperationId The operation ID. The response is to a previous 
	    command of this type.
	    @param The response error.
	    */
	    void MrccacoResponse( TRemConCoreApiOperationId aOperationId, TInt aError );

		
    private: // Constructors

        /**
        * C++ default constructor.
        */
        CNssVCAppLauncher();

        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();

	private: // New functions
	    
	    /**
        * Launches calendars day view to a selected day.
        * @since 3.0
        * @param day Which day will be opened in the wiew:
                      today | tomorrow | monday | tuesday | ...
        * @return void
        */
        void CalendarDayViewL( const TInt aDay );
        
        /**
        * Launches calendars week view to a selected week.
        * @since 3.0
        * @param week Which week will be opened in the wiew:
                      this week | next week
        * @return void
        */
        void CalendarWeekViewL( const TInt aWeek );
        
        /**
        * Launches calendars month view to a selected month.
        * @since 3.0
        * @param month Which month will be opened in the wiew:
                       this month | next month | january | february | ...
        * @return void
        */
        void CalendarMonthViewL( const TInt aMonth );
        
        /**
        * Opens browser with the user defined homepage.
        * @since 3.0
        * @return void
        */
        void OpenHomepageL();
        
        /**
        * Activates SMS reader
        * @since 3.0
        * @param aAppUid UID for SMS reader
        * @return
        */
        TInt SMSReaderL( const TUid aAppUid );
        
        /**
        * Provides the answer to the voice command "What time is it?"
        * @since 3.0
        * @return void
        */
        void StatusTimeL();
        
        /**
        * Provides the answer to the voice command "Who is my operator?"
        * @since 3.0
        * @return void
        */
        void StatusOperatorL();
        
        /**
        * Provides the answer to the voice command "What is the battery strength?"
        * @since 3.0
        * @return void
        */
        void StatusBatteryL();
        
        /**
        * Provides the answer to the voice command "What is the signal strength?"
        * @since 3.0
        * @return void
        */
        void StatusSignalL();
        
        /**
        * Performs text to speech answer for a status query.
        * @since 3.0
        * @return void
        */
        void PlaybackStatusInfoL();
        
        /**
        * Connects to RApaLsSession.
        * @since 3.0
        * @return void
        */  
        void CreateApaConnectionL();

        /* Activates an instance of an application.
        * @since 3.0
        * @param aUid Application UID
        * @param aCommandLine Command line parameters.
        * @return void
        */
        void ActivateAppInstanceL( const TUid aUid,
                                   const TDesC16* aCmdLine = NULL );
    
        /**
        * Used to launch applications. Checks whether an instance of the launched
        * application is already running.
        * @since 3.0
        * @param aUid The Uid of the specific application.
        * @param aCommandLine Command line parameters.
        * @param aMultipleInstances If true, the application is activated
        *        in multiple instances.
        * @return void
        */
        void ActivateAppL( const TUid aUid,
                           const TDesC16* aCmdLine = NULL,
                           TBool aMultipleInstances = EFalse );
        
        /**
        * Tells whether it is am or pm.
        * @since 3.0
        * @param aTime Current time
        * @return TTimeOfDay enum value for am or pm is put here
        */
        void GetAmOrPmL( const TTime& aTime, TAmPm& aTod );
        
        /**
        * Gets network operator's name.
        * @since 3.0
        * @param aOperator The name of the operator will be put here
        *        if it is found.
        * @return void
        */
        void GetOperatorL( TDesC*& aOperator );
        
        /**
        * Gets the battery strength.
        * @since 3.0
        * @param aBattStrength The battery strength will be put here
        * return void
        */
        void GetBatteryStrengthL( TSpokenStatusInfo& aBattStrength );
        
        /**
        * Gets the signal strength.
        * @since 3.0
        * @param aSignalStrength The signal strength will be put here
        * @return void
        */
        void GetSignalStrengthL( TSpokenStatusInfo& aSignalStrength );
        
        /**
        * Gets the name of the currently selected TSY.
        * @since 3.0
        * @param aTSYName The name of the currently selected TSY will be put
        *        here.
        * @return void
        */
        void GetTSYNameL( TDes& aTSYName );
        
        /**
        * Executes a media command using Symbian Remote Control FW.
        * @since 3.0
        * @param aCommandId The media command to be executed
        * @return void
        */
        void ExecuteMediaCommandL( TUint aMediaCommandId );
        
        /*
        * Gets localized string from the resource file for text-to-speech
        * status info.
        * @since 3.0
        * @param aStringId The string which we want
        * @param aString Localized string will be put here
        */
        void GetLocalizedStringL( TSpokenStatusInfo aStringId, HBufC*& aString );   


    private:     // Data
        
        RApaLsSession*   iApaLsSession;
		
		// Text to speech stuff
		CTtsUtility*     iTts;
        CTtsParsedText*  iParsedText;
        TTtsStyle        iStyle;
        // Answer for a status query
        HBufC*           iStatusInfo;
        
        // Wait loop for TTS callbacks
        CActiveSchedulerWait iWait;
    };

#endif      // __NSSVCAPPLAUNCHER_H__   
            
// End of File