# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268401618 -7200 # Node ID a2f12998bb04e70d476b2a07d804ee9152571d4e # Parent 11d83199e2d92a24586d4db02ab7987ab882869e Revision: 201007 Kit: 201008 diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -1467,11 +1467,13 @@ if ( aMode & KModeVerbose ) // verbose mode ON { iAtCmdExt.ReportVerboseModeChange( ETrue ); + iVerboseOn = ETrue; FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyVerboseStatusChange() verbose mode changed ON" ) )); } else // verbose mode OFF { iAtCmdExt.ReportVerboseModeChange( EFalse ); + iVerboseOn = EFalse; FTRACE(FPrint( _L("CDunAtCmdHandler::NotifyVerboseStatusChange() verbose mode changed OFF" ) )); } FTRACE(FPrint( _L("CDunAtCmdHandler::ManageVerboseModeChange() (change) complete" ) )); diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -286,10 +286,15 @@ void CDunAtCmdPusher::SendReplyData( TBool aRecvBuffer ) { FTRACE(FPrint( _L("CDunAtCmdPusher::SendReplyData()") )); - TDesC8* sendBuffer = &iRecvBuffer; - if ( !aRecvBuffer ) + TDesC8* sendBuffer = iOkBuffer; + if ( aRecvBuffer ) { - sendBuffer = iOkBuffer; + sendBuffer = &iRecvBuffer; + // Check if last block of long push and remove "OK" if exists + if ( iReplyType==EReplyTypeOther && iReplyBytesLeft==0 ) + { + CheckAndRemoveOkString(); + } } FTRACE(FPrint( _L("CDunAtCmdPusher::SendReplyData() send reply:") )); FTRACE(FPrintRaw(*sendBuffer) ); @@ -310,7 +315,6 @@ { FTRACE(FPrint( _L("CDunAtCmdPusher::ManageReplyTypeChange() EReplyTypeOther") )); iNoErrorReceived = ETrue; - CheckAndRemoveOkString(); SendReplyData(); } break; diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/headset/inc/headset.h --- a/localconnectivityservice/headset/inc/headset.h Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/headset/inc/headset.h Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 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" @@ -317,7 +317,7 @@ * Handle doubleclick timer expiration * */ - void ExpiredDubleClickTimer(); + void ExpiredDoubleClickTimer(); /** * Handle long press timer expiration @@ -450,6 +450,11 @@ RASCliSession iAlarmServerSession; /** + * Incoming call status + */ + TBool iIncomingCallStatus; + + /** * Alarm statusd */ TBool iAlarmStatus; diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/headset/src/headset.cpp --- a/localconnectivityservice/headset/src/headset.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/headset/src/headset.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 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" @@ -40,6 +40,7 @@ const TInt KHidUndefinedKeyCode = 0; const TInt KHidNotSetKeyValue = 0; const TInt KDoubleClickTimeout = 900000; // 0,9 seconds +const TInt KDoubleClickTimeoutRing = 500000; // 0,5 seconds const TInt KScanClickTimeout = 500000; // 0,5 seconds const TInt KLongClickTimeout = 3000000; // 3 seconds @@ -734,15 +735,47 @@ switch ( hookStatus ) { case EOnHook: - TRACE_INFO(_L("[HID]\tCHidHeadsetDriver Hook On Pressed")); - iOnHookPressed = ETrue; - break; + if ( !iIncomingCallStatus ) + { + // For the first click, trigger the timer + // single click is handled in ExpiredDoubleClickTimer + if ( iDoubleClicktimer ) + { + delete iDoubleClicktimer; + iDoubleClicktimer = NULL; + } + TRAP_IGNORE( iDoubleClicktimer = CKeyPressTimer::NewL( this, + TTimeIntervalMicroSeconds32( KDoubleClickTimeoutRing ), + EDoubleClickTimer ) ); + if ( iDoubleClicktimer ) + { + iIncomingCallStatus = ETrue; + } + else // If fail to create timer, handle as single click, + // for double click case, the next click will hang off + { + iIncomingCallStatus = EFalse; + iOnHookPressed = ETrue; + } + break; // switch + } + else + { + iIncomingCallStatus = EFalse; + if ( iDoubleClicktimer ) + { + delete iDoubleClicktimer; + iDoubleClicktimer = NULL; + } + // This is the double click case, handle as EOffHook + } + // No break here case EOffHook: TRACE_INFO(_L("[HID]\tCHidHeadsetDriver Hook Off Pressed")); iOffHookPressed = ETrue; break; case ENoHook: - TRACE_INFO(_L("[HID]\tCHidHeadsetDriver Hook None Pressed")); + TRACE_INFO(_L("[HID]\tCHidHeadsetDriver Hook None Pressed")); TRAP_IGNORE( HandleNoneHookPressL() ); break; default: @@ -1030,7 +1063,7 @@ switch ( aTimerType ) { case EDoubleClickTimer: - ExpiredDubleClickTimer(); + ExpiredDoubleClickTimer(); break; case ELongPressTimer: ExpiredLongClickTimer(); @@ -1053,16 +1086,23 @@ } // --------------------------------------------------------------------------- -// ExpiredDubleClickTimer() +// ExpiredDoubleClickTimer() // --------------------------------------------------------------------------- // -void CHidHeadsetDriver::ExpiredDubleClickTimer() +void CHidHeadsetDriver::ExpiredDoubleClickTimer() { TRACE_FUNC_ENTRY if ( iDoubleClicktimer ) { delete iDoubleClicktimer; iDoubleClicktimer = NULL; + + if ( iIncomingCallStatus ) + { + iIncomingCallStatus = EFalse; + iOnHookPressed = ETrue; + ReleaseHookKey(); + } if ( iAlarmStatus ) { RProperty::Set( KPSUidAlarmExtCntl, KAlarmStopKey, diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lccustomplugin/inc/lccustomplugin.h --- a/localconnectivityservice/lccustomplugin/inc/lccustomplugin.h Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lccustomplugin/inc/lccustomplugin.h Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -15,7 +15,6 @@ * */ - #ifndef C_LCCUSTOMPLUGIN_H #define C_LCCUSTOMPLUGIN_H @@ -23,6 +22,7 @@ class CLcCustomPlugin; +/** Character types: carriage return, line feed or backspace */ enum TCharacterTypes { ECharTypeCR, // Carriage return @@ -30,12 +30,30 @@ ECharTypeBS // Backspace }; +/** Type of modes (quiet, verbose) */ enum TModeTypes { EModeTypeQuiet, // Quiet mode EModeTypeVerbose // Verbose mode }; +/** Handler types for the four types */ +enum TCmdHandlerType + { + ECmdHandlerTypeUndefined = KErrNotFound, + ECmdHandlerTypeBase = 0x01, // For command "AT+COMMAND" + ECmdHandlerTypeSet = 0x02, // For command "AT+COMMAND=" + ECmdHandlerTypeRead = 0x04, // For command "AT+COMMAND?" + ECmdHandlerTypeTest = 0x08, // For command "AT+COMMAND=?" + }; + +/** Detected commands */ +enum TDetectedCmd + { + EDetectedCmdUndefined, + EDetectedCmdCLAC // For command "AT+CLAC" + }; + /** * Class for common AT command handler interface * @@ -116,8 +134,6 @@ * * @since S60 5.0 * @param aReplyType Type of reply - * @param aDstBuffer Destination buffer; used for the API requiring the - * AT command reply * @param aSrcBuffer Source buffer; used only if aReplyType is EReplyTypeOther * @param aError Completion code. If not KErrNone then other arguments are * ignored and the request is completed to ATEXT with @@ -125,7 +141,6 @@ * @return None */ virtual TInt CreateReplyAndComplete( TATExtensionReplyType aReplyType, - RBuf8& aDstBuffer, const TDesC8& aSrcBuffer=KNullDesC8, TInt aError=KErrNone ) = 0; @@ -142,6 +157,17 @@ TBool aOkReply ) = 0; /** + * Checks if the command is a base, set, read or test type of command + * + * @since TB9.2 + * @param aCmdBase Base part of the command to check + * @param aCmdFull Full command to check + * @return Type of command + */ + virtual TCmdHandlerType CheckCommandType( const TDesC8& aCmdBase, + const TDesC8& aCmdFull ) = 0; + + /** * Returns the array of supported commands * * @since S60 5.0 @@ -347,8 +373,6 @@ * * @since S60 5.0 * @param aReplyType Type of reply - * @param aDstBuffer Destination buffer; used for the API requiring the - * AT command reply * @param aSrcBuffer Source buffer; used only if aReplyType is EReplyTypeOther * @param aError Completion code. If not KErrNone then other arguments are * ignored and the request is completed to ATEXT with @@ -356,7 +380,6 @@ * @return None */ TInt CreateReplyAndComplete( TATExtensionReplyType aReplyType, - RBuf8& aDstBuffer, const TDesC8& aSrcBuffer=KNullDesC8, TInt aError=KErrNone ); @@ -375,6 +398,18 @@ /** * From MLcCustomPlugin. + * Checks if the command is a base, set, read or test type of command + * + * @since S60 5.0 + * @param aCmdBase Base part of the command to check + * @param aCmdFull Full command to check + * @return Type of command + */ + TCmdHandlerType CheckCommandType( const TDesC8& aCmdBase, + const TDesC8& aCmdFull ); + + /** + * From MLcCustomPlugin. * Returns the array of supported commands * * @since S60 5.0 @@ -420,6 +455,18 @@ CLcCustomPluginBase* iHandler; /** + * Buffer for handle command's command + * Not own. + */ + const TDesC8* iHcCmd; + + /** + * Buffer for handle command reply + * Not own. + */ + RBuf8* iHcReply; + + /** * Global reply buffer for the AT command replies */ RBuf8 iReplyBuffer; diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lccustomplugin/inc/lclistallcmd.h --- a/localconnectivityservice/lccustomplugin/inc/lclistallcmd.h Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lccustomplugin/inc/lclistallcmd.h Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -11,24 +11,15 @@ * * Contributors: * -* Description: Handles the commands "AT+CLAC?" and "AT+CLAC" +* Description: Handles the commands "AT+CLAC=?" and "AT+CLAC" * */ - #ifndef C_LCLISTALLCMD_H #define C_LCLISTALLCMD_H #include "lccustomplugin.h" -/** Handler types for the two AT commands */ -enum TCmdHandlerType - { - ECmdHandlerTypeUndefined, - ECmdHandlerTypeQuery, // For command "AT+CLAC=?" - ECmdHandlerTypeList // For command "AT+CLAC" - }; - /** * Class for handling commands "AT+CLAC=?" and "AT+CLAC" * @@ -58,6 +49,25 @@ void ConstructL(); /** + * Checks command types + * + * @since TB9.2 + * @param aCmd Command to check + * @return ETrue if command understood, EFalse otherwise + */ + TBool CheckCommand( const TDesC8& aCmd ); + + /** + * Main command handler (leaving version) + * + * @since TB9.2 + * @return ETrue if command understood, EFalse otherwise + */ + TBool HandleCommandL(); + +// from base class MLcCustomPluginBase + + /** * Reports the support status of an AT command. This is a synchronous API. * * @param aCmd The AT command. Its format may vary depending on the @@ -126,6 +136,11 @@ */ TCmdHandlerType iCmdHandlerType; + /** + * Detected command + */ + TDetectedCmd iDetectedCmd; + }; #endif // C_LCLISTALLCMD_H diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lccustomplugin/src/20021360.rss --- a/localconnectivityservice/lccustomplugin/src/20021360.rss Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lccustomplugin/src/20021360.rss Fri Mar 12 15:46:58 2010 +0200 @@ -16,6 +16,7 @@ */ +#include #include // Declares info for two implementations @@ -29,7 +30,7 @@ INTERFACE_INFO { // UID of interface that is implemented - interface_uid = 0x2001CBEE; // ATEXT_INTERFACE_DUN_UID + interface_uid = ATEXT_INTERFACE_DUN_UID; implementations = { // Info for BTSAC @@ -38,7 +39,7 @@ implementation_uid = 0x20021375; version_no = 1; display_name = "LC Custom Plugin DUN"; - default_data= "PAT+CLAC"; + default_data= "MAT+CLAC"; opaque_data = ""; } }; @@ -46,7 +47,7 @@ INTERFACE_INFO { // UID of interface that is implemented - interface_uid = 0x2001CBEF; // ATEXT_INTERFACE_HFP_UID + interface_uid = ATEXT_INTERFACE_HFP_UID; implementations = { // Info for BTSAC @@ -55,7 +56,7 @@ implementation_uid = 0x20021376; version_no = 1; display_name = "LC Custom Plugin HFP"; - default_data= "PAT+CLAC"; + default_data= "MAT+CLAC"; opaque_data = ""; } }; diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lccustomplugin/src/lccustomplugin.cpp --- a/localconnectivityservice/lccustomplugin/src/lccustomplugin.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lccustomplugin/src/lccustomplugin.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -15,7 +15,6 @@ * */ - #include "lccustomplugin.h" #include "lclistallcmd.h" #include "debug.h" @@ -53,6 +52,8 @@ CLcCustomPlugin::CLcCustomPlugin() : CATExtPluginBase() { iHandler = NULL; + iHcCmd = NULL; + iHcReply = NULL; } // --------------------------------------------------------------------------- @@ -83,6 +84,8 @@ TBool CLcCustomPlugin::IsCommandSupported( const TDesC8& aCmd ) { TRACE_FUNC_ENTRY + iHcCmd = NULL; + iHcReply = NULL; TInt i; TInt count = iHandlers.Count(); for ( i=0; iHandleCommand( aCmd, aReply, aReplyNeeded ); } TRACE_FUNC_EXIT @@ -201,13 +206,13 @@ // Reports about external handle command error condition. // This is for cases when for example DUN decided the reply contained an // error condition but the plugin is still handling the command internally. -// Example: in command line "AT+TEST;ATDT1234" was given. "AT+TEST" returns -// "OK" and "ATDT" returns "CONNECT". Because "OK" and "CONNECT" are -// different reply types the condition is "ERROR" and DUN ends processing. -// This solution keeps the pointer to the last AT command handling plugin -// inside ATEXT and calls this function there to report the error. -// It is to be noted that HandleCommandCancel() is not sufficient to stop -// the processing as the command handling has already finished. +// Example: "AT+TEST;+TEST2" was given in command line; "AT+TEST" returns +// non-EReplyTypeError condition and "AT+TEST2" returns EReplyTypeError. +// As the plugin(s) returning the non-EReplyTypeError may still have some +// ongoing operation then these plugins are notified about the external +// EReplyTypeError in command line processing. It is to be noted that +// HandleCommandCancel() is not sufficient to stop the processing as the +// command handling has already finished. // --------------------------------------------------------------------------- // void CLcCustomPlugin::ReportExternalHandleCommandError() @@ -252,23 +257,28 @@ // --------------------------------------------------------------------------- // TInt CLcCustomPlugin::CreateReplyAndComplete( TATExtensionReplyType aReplyType, - RBuf8& aDstBuffer, const TDesC8& aSrcBuffer, - TInt aError ) + TInt aError ) { TRACE_FUNC_ENTRY iReplyBuffer.Close(); if ( aError != KErrNone ) { HandleCommandCompleted( aError, EReplyTypeUndefined ); + iHcCmd = NULL; + iHcReply = NULL; TRACE_FUNC_EXIT return KErrNone; } - TInt retVal = KErrNone; + if ( !iHcReply ) + { + TRACE_FUNC_EXIT + return KErrGeneral; + } switch ( aReplyType ) { case EReplyTypeOther: - if ( iQuietMode || !iVerboseMode ) + if ( iQuietMode ) { iReplyBuffer.Create( KNullDesC8 ); } @@ -276,25 +286,23 @@ { iReplyBuffer.Create( aSrcBuffer ); } - CreatePartOfReply( aDstBuffer ); - HandleCommandCompleted( KErrNone, aReplyType ); break; case EReplyTypeOk: CreateOkOrErrorReply( iReplyBuffer, ETrue ); - CreatePartOfReply( aDstBuffer ); - HandleCommandCompleted( KErrNone, aReplyType ); break; case EReplyTypeError: CreateOkOrErrorReply( iReplyBuffer, EFalse ); - CreatePartOfReply( aDstBuffer ); - HandleCommandCompleted( KErrNone, aReplyType ); break; default: - retVal = KErrGeneral; - break; + TRACE_FUNC_EXIT + return KErrGeneral; } + CreatePartOfReply( *iHcReply ); + HandleCommandCompleted( KErrNone, aReplyType ); + iHcCmd = NULL; + iHcReply = NULL; TRACE_FUNC_EXIT - return retVal; + return KErrNone; } // --------------------------------------------------------------------------- @@ -349,6 +357,58 @@ // --------------------------------------------------------------------------- // From MLcCustomPlugin. +// Checks if the command is a base, set, read or test type of command +// --------------------------------------------------------------------------- +// +TCmdHandlerType CLcCustomPlugin::CheckCommandType( + const TDesC8& aCmdBase, + const TDesC8& aCmdFull ) + { + TRACE_FUNC_ENTRY + TInt retTemp = KErrNone; + TBuf8 atCmdBuffer; + atCmdBuffer.Copy( aCmdBase ); + // Check "base" command ("AT+COMMAND") + retTemp = aCmdFull.Compare( atCmdBuffer ); + if ( retTemp == 0 ) + { + TRACE_FUNC_EXIT + return ECmdHandlerTypeBase; + } + // Check "read" command ("AT+COMMAND?") + // Add last question mark + atCmdBuffer.Append( '?' ); + retTemp = aCmdFull.Compare( atCmdBuffer ); + if ( retTemp == 0 ) + { + TRACE_FUNC_EXIT + return ECmdHandlerTypeRead; + } + // Check "test" command ("AT+COMMAND=?") + // Add "=" before the question mark + _LIT8( KAssignmentMark, "=" ); + atCmdBuffer.Insert( atCmdBuffer.Length()-1, KAssignmentMark ); + retTemp = aCmdFull.Compare( atCmdBuffer ); + if ( retTemp == 0 ) + { + TRACE_FUNC_EXIT + return ECmdHandlerTypeTest; + } + // Check "set" command ("AT+COMMAND=") + // Remove last question mark + atCmdBuffer.SetLength( atCmdBuffer.Length() - 1 ); + retTemp = aCmdFull.Compare( atCmdBuffer ); + if ( retTemp == 0 ) + { + TRACE_FUNC_EXIT + return ECmdHandlerTypeSet; + } + TRACE_FUNC_EXIT + return ECmdHandlerTypeUndefined; + } + +// --------------------------------------------------------------------------- +// From MLcCustomPlugin. // Returns the array of supported commands // --------------------------------------------------------------------------- // diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lccustomplugin/src/lclistallcmd.cpp --- a/localconnectivityservice/lccustomplugin/src/lclistallcmd.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lccustomplugin/src/lclistallcmd.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -15,16 +15,14 @@ * */ - #include "lclistallcmd.h" #include "debug.h" -_LIT8( KListAllQueryCmd, "AT+CLAC=?" ); -_LIT8( KListAllCmd, "AT+CLAC" ); - const TInt KCrLfLength = 2; // CR+LF const TInt KOkReplyLength = 6; // CR+LF+"OK"+CR+LF +_LIT8( KClacCmd, "AT+CLAC" ); + // --------------------------------------------------------------------------- // Two-phased constructor. // --------------------------------------------------------------------------- @@ -69,28 +67,42 @@ } // --------------------------------------------------------------------------- +// Checks command types +// --------------------------------------------------------------------------- +// +TBool CLcListAllCmd::CheckCommand( const TDesC8& aCmd ) + { + TRACE_FUNC_ENTRY + // The AT+CLAC command supports two types: base and test + iCmdHandlerType = iCallback->CheckCommandType( KClacCmd, aCmd ); + if ( iCmdHandlerType==ECmdHandlerTypeBase || + iCmdHandlerType==ECmdHandlerTypeTest ) + { + iDetectedCmd = EDetectedCmdCLAC; + TRACE_FUNC_EXIT + return ETrue; + } + TRACE_FUNC_EXIT + return EFalse; + } + +// --------------------------------------------------------------------------- // Reports the support status of an AT command. This is a synchronous API. // --------------------------------------------------------------------------- // TBool CLcListAllCmd::IsCommandSupported( const TDesC8& aCmd ) { TRACE_FUNC_ENTRY - TInt retTemp = KErrNone; - retTemp = aCmd.Compare( KListAllQueryCmd ); - if ( retTemp == 0 ) + // Set all to undefined if either the command or its type is unknown + // HandleCommand() should be round only when both are set + TBool cmdUnderstood = CheckCommand( aCmd ); + if ( cmdUnderstood ) { - iCmdHandlerType = ECmdHandlerTypeQuery; - TRACE_FUNC_EXIT - return ETrue; - } - retTemp = aCmd.Compare( KListAllCmd ); - if ( retTemp == 0 ) - { - iCmdHandlerType = ECmdHandlerTypeList; TRACE_FUNC_EXIT return ETrue; } iCmdHandlerType = ECmdHandlerTypeUndefined; + iDetectedCmd = EDetectedCmdUndefined; TRACE_FUNC_EXIT return EFalse; } @@ -102,7 +114,7 @@ // --------------------------------------------------------------------------- // void CLcListAllCmd::HandleCommand( const TDesC8& /*aCmd*/, - RBuf8& aReply, + RBuf8& /*aReply*/, TBool aReplyNeeded ) { TRACE_FUNC_ENTRY @@ -111,52 +123,45 @@ TRACE_FUNC_EXIT return; } - if ( iCmdHandlerType == ECmdHandlerTypeQuery ) + if ( iCmdHandlerType == ECmdHandlerTypeTest ) { - iCallback->CreateReplyAndComplete( EReplyTypeOk, - aReply ); + iCallback->CreateReplyAndComplete( EReplyTypeOk ); TRACE_FUNC_EXIT return; } - // Else here means ECmdHandlerTypeList + // Else here means ECmdHandlerTypeBase // First check the quiet mode and verbose mode. // These are handled in CreateReplyAndComplete() TInt retTemp; TBool quietMode = EFalse; - TBool verboseMode = EFalse; retTemp = iCallback->GetModeValue( EModeTypeQuiet, quietMode ); - retTemp |= iCallback->GetModeValue( EModeTypeVerbose, verboseMode ); if ( retTemp != KErrNone ) { - iCallback->CreateReplyAndComplete( EReplyTypeError, - aReply ); - TRACE_FUNC_EXIT - return; - } - if ( quietMode || !verboseMode ) - { - iCallback->CreateReplyAndComplete( EReplyTypeOther, - aReply ); + iCallback->CreateReplyAndComplete( EReplyTypeError ); TRACE_FUNC_EXIT return; } RBuf8 reply; + if ( quietMode ) + { + iCallback->CreateReplyAndComplete( EReplyTypeOther, reply ); + reply.Close(); + TRACE_FUNC_EXIT + return; + } TBool error = CreateSupportedList( reply ); if ( error ) { - iCallback->CreateReplyAndComplete( EReplyTypeError, - aReply ); + iCallback->CreateReplyAndComplete( EReplyTypeError ); reply.Close(); TRACE_FUNC_EXIT return; } RBuf8 okReply; iCallback->CreateOkOrErrorReply( okReply, ETrue ); - reply.Append( okReply); + reply.Append( okReply ); okReply.Close(); - iCallback->CreateReplyAndComplete( EReplyTypeOther, - aReply, - reply ); + iCallback->CreateReplyAndComplete( EReplyTypeOther, reply ); reply.Close(); TRACE_FUNC_EXIT } @@ -199,6 +204,7 @@ linearSize += KCrLfLength; } } + linearSize += KCrLfLength; // Now we have the length of the linear region, // use that to create the reply TChar carriageReturn; @@ -223,6 +229,8 @@ aReply.Append( lineFeed ); } } + aReply.Append( carriageReturn ); + aReply.Append( lineFeed ); // Delete the array as it is no longer needed commands.ResetAndDestroy(); commands.Close(); diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lcstylustap/data/lcstylustaprsc.rss --- a/localconnectivityservice/lcstylustap/data/lcstylustaprsc.rss Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lcstylustap/data/lcstylustaprsc.rss Fri Mar 12 15:46:58 2010 +0200 @@ -33,6 +33,6 @@ { } RESOURCE TBUF r_lcstylustap_bt_name { buf = qtn_bt_title_bluetooth; } -RESOURCE TBUF r_lcstylustap_usb_name { buf = qtn_usb_title; } +RESOURCE TBUF r_lcstylustap_usb_name { buf = qtn_usb_stylus_tap; } RESOURCE TBUF r_lcstylustap_usb_mem_eject { buf = qtn_usb_mem_eject; } diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/lcstylustap/tsrc/LcStylusTapTest/conf/ui_LcStylusTapTest.cfg --- a/localconnectivityservice/lcstylustap/tsrc/LcStylusTapTest/conf/ui_LcStylusTapTest.cfg Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/lcstylustap/tsrc/LcStylusTapTest/conf/ui_LcStylusTapTest.cfg Fri Mar 12 15:46:58 2010 +0200 @@ -2,7 +2,7 @@ * 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 the License "Eclipse Public License v1.0" +* 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". * diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/obexreceiveservices/bip/src/BIPController.cpp --- a/localconnectivityservice/obexreceiveservices/bip/src/BIPController.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/obexreceiveservices/bip/src/BIPController.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -45,7 +45,7 @@ _LIT8(KBipCapabilityType, "x-bt/img-capabilities\0"); -const TInt KBufferSize = 0x4000; // 16kB +const TInt KBufferSize = 0x10000; // 64 kB // ================= MEMBER FUNCTIONS ======================= diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/obexreceiveservices/opp/src/oppcontroller.cpp --- a/localconnectivityservice/obexreceiveservices/opp/src/oppcontroller.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/obexreceiveservices/opp/src/oppcontroller.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -37,7 +37,7 @@ // CONSTANTS -const TInt KBufferSize = 0x4000; // 16kB +const TInt KBufferSize = 0x10000; // 64 kB // ================= MEMBER FUNCTIONS ======================= diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/obexserviceman/utils/src/obexutilsdialog.cpp --- a/localconnectivityservice/obexserviceman/utils/src/obexutilsdialog.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/obexserviceman/utils/src/obexutilsdialog.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -201,7 +201,9 @@ if( iProgressDialog ) { + iProgressDialog->SetCallback(NULL); iProgressDialog->ProcessFinishedL(); + iProgressDialog = NULL; if ( iObexDialogTimer ) { diff -r 11d83199e2d9 -r a2f12998bb04 localconnectivityservice/obexserviceman/utils/src/obexutilsuilayer.cpp --- a/localconnectivityservice/obexserviceman/utils/src/obexutilsuilayer.cpp Fri Feb 19 23:43:38 2010 +0200 +++ b/localconnectivityservice/obexserviceman/utils/src/obexutilsuilayer.cpp Fri Mar 12 15:46:58 2010 +0200 @@ -27,21 +27,8 @@ #include #include #include -#ifdef NO101APPDEPFIXES #include -#else //NO101APPDEPFIXES -enum TMuiuConsts - { - EMbmMuiuQgn_prop_mce_ir_unread = 16402, - EMbmMuiuQgn_prop_mce_ir_unread_mask = 16403, - EMbmMuiuQgn_prop_mce_ir_read = 16404, - EMbmMuiuQgn_prop_mce_ir_read_mask = 16405, - EMbmMuiuQgn_prop_mce_bt_unread = 16406, - EMbmMuiuQgn_prop_mce_bt_unread_mask = 16407, - EMbmMuiuQgn_prop_mce_bt_read = 16408, - EMbmMuiuQgn_prop_mce_bt_read_mask = 16409 - }; -#endif //NO101APPDEPFIXES + #include #include