diff -r 7d48bed6ce0c -r 987c9837762f phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h Tue Aug 31 15:45:17 2010 +0300 +++ b/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h Wed Sep 01 12:15:03 2010 +0100 @@ -20,12 +20,13 @@ #define CPHONEHANDLERCONTROL_H // INCLUDES -#include "phonehandlerservice.h" -#include -#include +#include "PhoneHandlerService.h" +#include +#include #include -#include +#include #include +#include // CONSTANTS @@ -42,6 +43,8 @@ class CRemConCallHandlingTarget; class CPhoneHandlerResponse; class CPhoneHandlerCallState; +class CPhoneHandlerCallArray; +class MCall; /** * Receives call handling related key presses from accessories and executes @@ -51,15 +54,15 @@ * @since S60 3.1 */ NONSHARABLE_CLASS( CPhoneHandlerControl ) : public CBase, - public MRemConCallHandlingTargetObserver - { + public MRemConCallHandlingTargetObserver + { public: // Constructors and destructor /** * Two-phased constructor. */ static CPhoneHandlerControl* NewL( - CRemConInterfaceSelector* aIfSelector = NULL ); + CRemConInterfaceSelector* aIfSelector = NULL ); /** * Destructor. @@ -68,7 +71,7 @@ public: // New functions - /** + /** * Returns phone number for dial or speed dial. * @since S60 3.1 * @param void @@ -107,36 +110,36 @@ * @return TChar DTMF tone */ const TChar& Tone() const; - - /** + + /** * Returns reference to API used to communicate with accessory who * initiated key press. * @since S60 3.1 * @param void * @return CRemConCallHandlingTarget& reference to API - */ - CRemConCallHandlingTarget& CommandInitiator() const; - - /** + */ + CRemConCallHandlingTarget& CommandInitiator() const; + + /** * Informs the latest call state. - * @since S60 3.1 - * @param aState Call state from KTelephonyCallState P&S key - * @return void + * @since S60 9.2 + * @param aCall Call from MCallInformationObserver + * @return void */ - void NotifyCallState( const TInt aState ); + void NotifyCallStateL( const MCall* aCall ); - /** + /** * Get iSwitchCall flag, if this flag is ETrue, it means * "Send" key in remote target is pressed in multiparty call, * otherwise EFalse * @since S60 3.1 * @return TBool */ - TBool SwitchCall(); + TBool SwitchCall(); - + public: // Functions from base classes - + protected: // New functions protected: // Functions from base classes @@ -152,79 +155,93 @@ * By default Symbian 2nd phase constructor is private. */ void ConstructL( CRemConInterfaceSelector* aIfSelector = NULL ); - - /** - * From MRemConCallHandlingTargetObserver. Answer an incoming phone call. - */ - virtual void AnswerCall(); + + /** + * From MRemConCallHandlingTargetObserver. Answer an incoming phone call. + */ + virtual void AnswerCall(); - /** - * From MRemConCallHandlingTargetObserver. End an incoming/ongoing - * phone call. - */ - virtual void EndCall(); - - /** - * From MRemConCallHandlingTargetObserver. Answer an incoming phone call, - * or end an ongoing call according to call status. - */ - virtual void AnswerEndCall(); - - /** - * From MRemConCallHandlingTargetObserver. Make a voice call. - */ - virtual void VoiceDial( const TBool aActivate ); - - /** - * From MRemConCallHandlingTargetObserver. Redial last phone call. - */ - virtual void LastNumberRedial(); - - /** - * From MRemConCallHandlingTargetObserver. Dial a phone call. + /** + * From MRemConCallHandlingTargetObserver. End an incoming/ongoing + * phone call. + */ + virtual void EndCall(); + + /** + * From MRemConCallHandlingTargetObserver. Answer an incoming phone call, + * or end an ongoing call according to call status. + */ + virtual void AnswerEndCall(); + + /** + * From MRemConCallHandlingTargetObserver. Make a voice call. + */ + virtual void VoiceDial( const TBool aActivate ); + + /** + * From MRemConCallHandlingTargetObserver. Redial last phone call. + */ + virtual void LastNumberRedial(); + + /** + * From MRemConCallHandlingTargetObserver. Dial a phone call. + */ + virtual void DialCall( const TDesC8& aTelNumber ); + + /** + * From MRemConCallHandlingTargetObserver. Make multiparty call. + */ + virtual void MultipartyCalling( const TDesC8& aData ); + + /** + * Generates DTMF signal. + */ + virtual void GenerateDTMF( const TChar aChar ); + + /** + * From MRemConCallHandlingTargetObserver. Make a speed dial call. + */ + virtual void SpeedDial( const TInt aIndex ); + + /** + * Starts processing service corresponding to key press. + */ + void StartProcessing( + const TRemConExtCallHandlingApiOperationId aOperation ); + + /** + * Creates service. + */ + MPhoneHandlerService* CreateServiceL( + const TRemConExtCallHandlingApiOperationId aOperation ); + + /** + * Initializes speed dial. + */ + void InitializeSpeedDialL(); + + /** + * Returns call status. + */ + void CallStatusL( RPhone::TLineInfo& aLineInfo ); + + /** + * Returns autolock status */ - virtual void DialCall( const TDesC8& aTelNumber ); - - /** - * From MRemConCallHandlingTargetObserver. Make multiparty call. - */ - virtual void MultipartyCalling( const TDesC8& aData ); - - /** - * Generates DTMF signal. - */ - virtual void GenerateDTMF( const TChar aChar ); - - /** - * From MRemConCallHandlingTargetObserver. Make a speed dial call. + TBool IsAutoLockOn() const; + + /** + * Returns BT accessory command status */ - virtual void SpeedDial( const TInt aIndex ); - - /** - * Starts processing service corresponding to key press. - */ - void StartProcessing( - const TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * Creates service. - */ - MPhoneHandlerService* CreateServiceL( - const TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * Returns call status. - */ - void CallStatusL( RPhone::TLineInfo& aLineInfo ); - - + TBool IsBTAccessoryCmd() const; + private: // Data // Provides e.g. service to listen accessory key presses. - CRemConInterfaceSelector* iInterfaceSelector; // owned + CRemConInterfaceSelector* iInterfaceSelector; // owned // API notifying PhoneCmdHandler about call handling key presses. - CRemConCallHandlingTarget* iTarget; // owned + CRemConCallHandlingTarget* iTarget; // owned // Phone number for dial call/speed dial. TPhCltTelephoneNumber iTelNumber; @@ -253,16 +270,13 @@ // Previous call state TInt iPrevState; - // Number of active calls - // Used to determine whether there's a multicall case when call state - TInt iActiveCalls; - // switch phonecall by press "Send" key TBool iSwitchCall; // Listens to phone call state changes. CPhoneHandlerCallState* iCallStateObserver; + CPhoneHandlerCallArray* iCallArray; public: // Friend classes