diff -r 000000000000 -r ff3b6d0fd310 satengine/SatServer/Commands/SendDtmfCmd/inc/CSendDtmfHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/satengine/SatServer/Commands/SendDtmfCmd/inc/CSendDtmfHandler.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,253 @@ +/* +* Copyright (c) 2002-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: SendDtmf command handler +* +*/ + + +#ifndef CSENDDTMFHANDLER_H +#define CSENDDTMFHANDLER_H + +#include + +#include "CSatCommandHandler.h" +#include "SatSTypes.h" + +class CSatDtmfSender; + +/** + * Command handler for SendDtmf command. + * + * @lib SendDtmfCmd.lib + * @since S60 v3.0 + */ +class CSendDtmfHandler : public CSatCommandHandler + { + +public: + + static CSendDtmfHandler* NewL( MSatUtils* aUtils ); + + virtual ~CSendDtmfHandler(); + + /** + * Gets the result of DTMF sending. + * + * @since S60 3.2 + * @param aErrCode result of completed DTMF sending. + */ + void SendDtmfComplete( const TInt aErrCode ); + +// from base class MSatCommand + + /** + * From MSatCommand. + * Response from the client + * + */ + void ClientResponse(); + +// from base class CSatCommandHandler + + /** + * From CSatCommandHandler + * Overrides the default implementation. + * + * @param aEvent Identifies the event. + */ + void Event( TInt aEvent ); + +protected: + +// from base class CActive + + /** + * From CActive + * Cancels the usat request. + * + */ + void DoCancel(); + +// from base class CSatCommandHandler + + /** + * From CSatCommandHandler + * Requests the command notification. + * + * @param aStatus Request status + */ + void IssueUSATRequest( TRequestStatus& aStatus ); + + /** + * From CSatCommandHandler + * Precheck before executing the command. + * + * @return TBool indicating command is currently allowed. + */ + TBool CommandAllowed(); + + /** + * From CSatCommandHandler + * Need for ui session. + * + * @return TBool indicating need of ui session. + */ + TBool NeedUiSession(); + + /** + * From CSatCommandHandler + * Called when USAT API notifies that command. + * + */ + void HandleCommand(); + + /** + * From CSatCommandHandler + * Called when UI launch fails + * + */ + void UiLaunchFailed(); + +private: + + CSendDtmfHandler(); + + void ConstructL(); + + /** + * Converts extended BCD string into UCS2 string + * + * @param aDtmfString destination string, to contain DTMF as UCS2 + * @return ETrue if DTMF string in iSendDtmfData contains valid DTMF characters only + * (0-9,*,#,pause) + */ + TBool ConvertDtmfStringToUcs2( TDes& aDtmfString ); + + /** + * converts an extended BCD character according to GSM 11.11 into a UCS2 character + * + * @param aExtBcd extended BCD character + * @param aEndOfString ETrue iff aExtBcd signals end of string + * @param aDtmfCharacter ETrue iff aExtBcd represents DTMF character (0-9,*,#,pause) + * @param aUcs2Char DTMF character in UCS2 representation - only valid if aDtmfCharacter is true + */ + void ConvertDtmfCharacterToUcs2( + const TChar& aExtBcd, + TBool& aEndOfString, + TBool& aDtmfCharacter, + TChar& aUcs2Char ) const; + + /** + * Handles the result of DTMF sending and sends terminal response + * + */ + void HandleResult(); + + /** + * Sends terminal response. Makes sure that terminal response + * is not send more that once / command. + * + */ + void SendTerminalResponse(); + +private: // data + + /** + * SendDtmf command data from SIM. + */ + RSat::TSendDtmfV1 iSendDtmfData; + + /** + * SendDtmf command package. + */ + RSat::TSendDtmfV1Pckg iSendDtmfPckg; + + /** + * SendDtmf response data from client. + */ + RSat::TSendDtmfRspV1 iSendDtmfRsp; + + /** + * SendDtmf response package + */ + RSat::TSendDtmfRspV1Pckg iSendDtmfRspPckg; + +// UI notification data + + /** + * SendDtmf notification send data + */ + TSatNotificationV1 iNotificationData; + + /** + * SendDtmf notification package + */ + TSatNotificationV1Pckg iNotificationDataPckg; + + /** + * SendDtmf notification Response data + */ + TSatNotificationRspV1 iNotificationRsp; + + /** + * SendDtmf notification Response package + */ + TSatNotificationRspV1Pckg iNotificationRspPckg; + + /** + * DTMF handling + */ + CSatDtmfSender* iDtmfSender; + + /** + * Result of completed DTMF sending. + */ + TInt iDtmfResult; + + /** + * Indicates is terminal response sent + */ + TBool iTerminalRespSent; + + /** + * Indicates do we need UI + */ + TBool iNeedUiSession; + + /** + * Converted DTMF string container. + * Own. + */ + HBufC16* iDtmfStringUcs2; + + /** + * Flag to signal that command has icon data + * To be removed when icons are allowed in this command + */ + TBool iIconCommand; + + /** + * Wait scheduler for fast UI event cases. + */ + CActiveSchedulerWait iWait; + + /** + * Indicates if client response is received. + */ + TBool iClientResponseReceived; + + }; + +#endif // CSENDDTMFHANDLER_H +