# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271419193 -10800 # Node ID d9b6a8729acde65f674fcd9be033475b1c41a8b3 # Parent 6dc066157ed496759e00751fe884f6c4a0e1d9a9 Revision: 201015 Kit: 201015 diff -r 6dc066157ed4 -r d9b6a8729acd group/bld.inf --- a/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* 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: Telephony / videotelephony -* -*/ - - - -#include "../vtprotocolplugins/group/bld.inf" -#include "../vtengines/group/bld.inf" -#include "../vtuis/group/bld.inf" -#include "../videotelephony_plat/group/bld.inf" - -// End of File \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd layers.sysdef.xml --- a/layers.sysdef.xml Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ - - -]> - - - - - - - - - - - - - - - - - - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd package_definition.xml --- a/package_definition.xml Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 6dc066157ed4 -r d9b6a8729acd sysdef_1_4_0.dtd --- a/sysdef_1_4_0.dtd Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/group/bld.inf --- a/videotelephony_plat/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* -* 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: Includes all the Domain API specific bld.inf files, which -* export files. -* -*/ - - - -#include "../video_telephony_control_mediator_api/group/bld.inf" -#include "../video_telephony_media_configuration_api/group/bld.inf" diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/video_telephony_control_mediator_api/group/bld.inf --- a/videotelephony_plat/video_telephony_control_mediator_api/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2008 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: File that exports the files belonging to -: Video Telephony Control Mediator API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/videotelcontrolmediatorapi.h APP_LAYER_PLATFORM_EXPORT_PATH( videotelcontrolmediatorapi.h) diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/video_telephony_control_mediator_api/inc/videotelcontrolmediatorapi.h --- a/videotelephony_plat/video_telephony_control_mediator_api/inc/videotelcontrolmediatorapi.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Telephony specific message services sent from Phone -* Application to Video Telephony. -* -*/ - - -#ifndef VIDEOTELCONTROLMEDIATORAPI_H -#define VIDEOTELCONTROLMEDIATORAPI_H - -// INCLUDES -#include - -/** The category UID for the messages in this header file. */ -const TUid KCatPhoneToVideotelCommands = { 0x200159A1 }; - -/** Version number of this API */ -const TInt KPhoneToVideotelCmdVersionMajor( 1 ); -const TInt KPhoneToVideotelCmdVersionMinor( 0 ); -const TInt KPhoneToVideotelCmdVersionBuild( 0 ); - -/** package for passing dataport name to Video Telephony */ -typedef TPckgBuf TDataPortPackage; - -/** Video Telephony related commands. */ -enum TPhoneToVideotelCommands - { - /** - * Commands Video Telephony to enable microphone. - */ - EVtCmdUnmute = 0, - - /** - * Commands Video Telephony to disable microphone. - */ - EVtCmdMute, - - /** - * Commands Video Telephony to use dataport. Command paramemeter is - * TDataPortPackage. This should be called when dataport is loaned. - * When this is sent, dataport recovery is allowed only after - * 1) later issued EVtCmdShutdown response is received. - * 2) call is ended by network/peer (i.e. local phone doesn't do hangup) - * 3) EPhoneCmdEndActiveCall command is received (see Mediator Commands To - * Telephony API) - * Otherwise H.245 (VT) signalling may fail if call is released in two - * stage. - */ - EVtCmdUseDataport, - - EVtCmdReleaseDataport - }; - -#endif // VIDEOTELCONTROLMEDIATORAPI_H - diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/video_telephony_control_mediator_api/video_telephony_control_mediator_api.metaxml --- a/videotelephony_plat/video_telephony_control_mediator_api/video_telephony_control_mediator_api.metaxml Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ - - - Video Telephony Control Mediator API - An interface for exchanging video telephony related commands (e.g. call initiation and termination) and providing data synchronization (e.g. contact data and audio mute state) between Phone and Video Telephone applications. - c++ - vtengines - - - - - - - - no - no - - diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/video_telephony_media_configuration_api/group/bld.inf --- a/videotelephony_plat/video_telephony_media_configuration_api/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* 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: File that exports the files belonging to -: Video Telephony Media Configuration API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/VideoTelephonyDomainPSKeys.h APP_LAYER_PLATFORM_EXPORT_PATH(videotelephonydomainpskeys.h) diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/video_telephony_media_configuration_api/inc/VideoTelephonyDomainPSKeys.h --- a/videotelephony_plat/video_telephony_media_configuration_api/inc/VideoTelephonyDomainPSKeys.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 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: Video Telephony Domain Publish and Subscribe keys. -* -*/ - - -#ifndef VIDEOTELEPHONYDOMAINPSKEYS_H -#define VIDEOTELEPHONYDOMAINPSKEYS_H - -#include - - -// CONSTANTS - -/** -* Media Configuration API for video telephony. -*/ -const TUid KPSUidVTMediaConfiguration = {0x1020736A}; - -/** -* Preferred camera that the application should use as source. -* @type RProperty::EInt -*/ -const TUint32 KPSPreferredCamera = 0x00000000; -enum EPSPreferredCamera - { - EPSPreferredCameraUnknown, - EPSPreferredCameraInwards, - EPSPreferredCameraOutwards - }; - - -#endif // VIDEOTELEPHONYDOMAINPSKEYS_H - -// End of file \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd videotelephony_plat/video_telephony_media_configuration_api/video_telephony_media_configuration_api.metaxml --- a/videotelephony_plat/video_telephony_media_configuration_api/video_telephony_media_configuration_api.metaxml Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ - - - Video Telephony Media Configuration API - An interface to access transient (run-time) media configuration related to video telephony, e.g. preferred camera in VT. - c++ - vtengines - - - - - - - - no - no - - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/group/bld.inf --- a/vtengines/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Build information for Vtengines subsystem. -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -// Include components' bld.inf files -#include "../videoteleng/Group/bld.inf" -#include "../vtmediatorplugin/group/bld.inf" - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Bmarm/VIDEOTELENGU.DEF --- a/vtengines/videoteleng/Bmarm/VIDEOTELENGU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -EXPORTS - Audio__C11CVtEngModel @ 1 NONAME R3UNUSED ; CVtEngModel::Audio(void) const - CommandHandler__C11CVtEngModel @ 2 NONAME R3UNUSED ; CVtEngModel::CommandHandler(void) const - Extension__FRC4TUid @ 3 NONAME R3UNUSED ; Extension(TUid const &) - Media__C11CVtEngModel @ 4 NONAME R3UNUSED ; CVtEngModel::Media(void) const - NewL__11CVtEngModelR19MVtEngEventObserverR21MVtEngCommandObserver @ 5 NONAME R3UNUSED ; CVtEngModel::NewL(MVtEngEventObserver &, MVtEngCommandObserver &) - Session__C11CVtEngModel @ 6 NONAME R3UNUSED ; CVtEngModel::Session(void) const - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Bmarm/CSCALLCTRLU.DEF --- a/vtengines/videoteleng/CallCtrl/Bmarm/CSCALLCTRLU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - CreateFactory__Fv @ 1 NONAME R3UNUSED ; CreateFactory(void) - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Bwins/CSCALLCTRLU.DEF --- a/vtengines/videoteleng/CallCtrl/Bwins/CSCALLCTRLU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?CreateFactory@@YAPAVCVtCtlFactory@@XZ @ 1 NONAME ; class CVtCtlFactory * __cdecl CreateFactory(void) - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/EABI/CSCallCtrlU.DEF --- a/vtengines/videoteleng/CallCtrl/EABI/CSCallCtrlU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z13CreateFactoryv @ 1 NONAME - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Group/bld.inf --- a/vtengines/videoteleng/CallCtrl/Group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2004 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: videocallctrl build information file. -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -../Group/videocallctrl.mmp - -//PRJ_TESTMMPFILES -// CsCallCtrl CVT case. -//../tsrc/group/CsCallCtrl_CVT_Test.mmp - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Group/videocallctrl.mmp --- a/vtengines/videoteleng/CallCtrl/Group/videocallctrl.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2004 - 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: This is project specification file for the Video Call Control. -* -*/ - - -#include - -#include "../Inc/VtCtlConfig.hrh" - -// default vendor id -VENDORID VID_DEFAULT - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -TARGET cscallctrl.dll -TARGETTYPE dll -UID 0x1000008d 0x101F867F - -SOURCEPATH ../Src -SOURCE CVtCtlFactory.cpp -#if defined VTCALLCONTROLSTUB -// call state connected, previous state alerting -SOURCE CVtCtlCallControlStub.cpp -DOCUMENT CVtCtlCallControl.cpp -#else -SOURCE CVtCtlCallControl.cpp -DOCUMENT CVtCtlCallControlStub.cpp -#endif -SOURCE CVtCtlSessionContainer.cpp -SOURCE CVtCtlCallStatusMonitor.cpp -SOURCE CVtCtlLineMonitor.cpp -SOURCE CVtCtlVideoCall.cpp -SOURCE VtCtlPanic.cpp - -DOCUMENT ../Group/bld.inf - -USERINCLUDE ../Inc -SYSTEMINCLUDE ../../../../inc -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY etel.lib -LIBRARY etelmm.lib -DEBUGLIBRARY vtlogger.lib - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/CVtCtlCallControl.h --- a/vtengines/videoteleng/CallCtrl/Inc/CVtCtlCallControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Call control -* -*/ - - - -#ifndef CVTCTLCALLCONTROL_H -#define CVTCTLCALLCONTROL_H - -// INCLUDES -#include -#include "MVtCtlCallControl.h" -#include "MVtCtlCallStatusObserver.h" -#include - -// FORWARD DECLARATIONS -class MVtCtlEventObserver; -class CVtCtlSessionContainer; - -// CLASS DECLARATION - -/** -* Call control implementation. -* -* @lib CSCallCtrl.lib -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtCtlCallControl ) : - public CBase, - public MVtCtlCallControl, - public MVtCtlCallStatusObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aEventObserver reference to event observer - * @param aCommandObserver reference to command observer - * @return call control - */ - static CVtCtlCallControl* NewL( - MVtCtlEventObserver& aEventObserver ); - - /** - * Destructor. - */ - virtual ~CVtCtlCallControl(); - - public: // From MVtCtlCallControl - - /** - * @see MVtCtlCallControl::GetDuration - */ - virtual TInt GetDuration( - TVtCtlSessionId aId, - TVtCtlDuration& aDuration ); - - - /** - * @see MVtCtlCallControl::GetSessionInfoL - */ - virtual void GetSessionInfoL( - TVtCtlSessionId aId, - TDes8& aInfo ); - - /** - * @see MVtCtlCallControl::GetSessionState - */ - virtual TVtCtlState GetSessionState( - TVtCtlSessionId aId ) const; - - /** - * @see MVtCtlCallControl::GetPreviousPreviousState - */ - virtual TVtCtlState GetPreviousPreviousState( - TVtCtlSessionId aId ) const; - - public: // from MVtCtlCallStatusObserver - - /** - * @see MVtCtlCallStatusObserver::HandleCallStatusChangeL - */ - virtual void HandleCallStatusChangeL( - TVtCtlSessionId aId, - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ); - - private: - - /** - * C++ constructor. - */ - CVtCtlCallControl( - MVtCtlEventObserver& aEventObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: - - /** - * Validates that data passed as descriptor is of - * correct type. If not leaves KErrNotSupported. - * @param aData TVtCtlType derived class represented as descriptor - * @param aExtension expected type - */ - static void ValidateDataExtensionL( - TDesC8& aData, - TInt aExtension ); - - private: // Data - - // Event observer - MVtCtlEventObserver& iEventObserver; - - // Container for ETel sessions - CVtCtlSessionContainer* iContainer; - }; - -#endif // CVTCTLCALLCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/CVtCtlCallStatusMonitor.h --- a/vtengines/videoteleng/CallCtrl/Inc/CVtCtlCallStatusMonitor.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2004 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: Monitors call status. -* -*/ - - - -#ifndef CVTCTLCALLSTATUSMONITOR_H -#define CVTCTLCALLSTATUSMONITOR_H - -// INCLUDES - -#include "MVtCtlCallControl.h" -#include -#include - -/** -* Array for resolving call status (TMobileCallStatus) transition validity. -* Transition to lower value is not possible with exception to 0 priority -* (always possible to go to idle state). Initial state is EStatusUnknown. -*/ -static const TInt KVtCtlStatusTransitionPriorities[] = - { - 1, // EStatusUnknown - 0, // EStatusIdle, possible from any - 2, // EStatusDialling - 2, // EStatusRinging - 3, // EStatusAnswering - 3, // EStatusConnecting - 4, // EStatusConnected - 5, // EStatusDisconnecting - // Status values below are not valid in video calls => should not happen. - 5, // EStatusDisconnectingWithInband - 0, // EStatusReconnectPending - 0, // EStatusHold - 0, // EStatusWaitingAlternatingCallSwitch - 0, // EStatusTransferring - 0 // EStatusTransferAlerting - }; - -// FORWARD DECLARATIONS -class MVtCtlCallStatusObserver; - -// CLASS DECLARATION - -/** -* Monitor for call status -* -* @lib CSCallCtrl -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtCtlCallStatusMonitor ) : public CActive - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aCall call subsession - * @param aObserver call status observer - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CVtCtlCallStatusMonitor( - RMobileCall& aCall, - MVtCtlCallStatusObserver& aObserver ); - - /** - * Destructor. - */ - virtual ~CVtCtlCallStatusMonitor(); - - public: // New functions - - /** - * Starts monitoring - */ - void Start(); - - private: // From CActive - - /** - * Cancel monitoring. - */ - virtual void DoCancel(); - - /** - * Handles call status change. - */ - virtual void RunL(); - - /** - * Handles leave in RunL. - * @param aError error code - * @return KErrNone - */ - virtual TInt RunError( TInt aError ); - - public: // New functions - - /** - * Maps Etel status to internal state - * @param aStatus mobile call status - * @return session state, see TVtCtlState - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static MVtCtlCallControl::TVtCtlState MapState( - const RMobileCall::TMobileCallStatus aStatus ); - - /** - * Checks if call state transition specified by arguments is legal. - * @param aNewState proposed new call state - * @param aCurrentState current call state - * @return ETrue if transition is valid - */ - static TBool IsLegalNewState( - const RMobileCall::TMobileCallStatus aNewState, - const RMobileCall::TMobileCallStatus aCurrentState ); - - private: // Data - - // Data call - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileCall& iCall; - - // Observer for call status changes - MVtCtlCallStatusObserver& iObserver; - - // Call status and previous status - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileCall::TMobileCallStatus iCallStatus; - RMobileCall::TMobileCallStatus iPreviousStatus; - }; - -#endif // CVTCTLCALLSTATUSMONITOR_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/CVtCtlFactory.h --- a/vtengines/videoteleng/CallCtrl/Inc/CVtCtlFactory.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Factory for creating call control -* -*/ - - - -#ifndef CVTCTLFACTORY_H -#define CVTCTLFACTORY_H - -// INCLUDES -#include -#include "VtCtlDefs.h" - -// CONSTANTS -_LIT( KVtCtlLibraryName, "CSCallCtrl" ); - -// FORWARD DECLARATIONS -class MVtCtlEventObserver; -class MVtCtlCommandObserver; -class MVtCtlCallControl; - -/** -* Factory class for instantiating call control. -* -* @lib CSCallCtrl -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtCtlFactory ) : public CBase - { - public: - - /** - * Instantiates call control - * @param aEventObserver - * @param aCommandObserver - * @return call control - */ - virtual MVtCtlCallControl* CreateCallControlL( - MVtCtlEventObserver& aEventObserver ); - - /** - * Destructs call control created with CreateCallControlL. - * @param aCallControl pointer to call control instance - */ - virtual void Delete( MVtCtlCallControl* aCallControl ); - }; - -/** -* Creates call control factory -* @return factory -*/ -IMPORT_C CVtCtlFactory* CreateVtCtlFactory(); - -#endif // CVTCTLFACTORY_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/CVtCtlLineMonitor.h --- a/vtengines/videoteleng/CallCtrl/Inc/CVtCtlLineMonitor.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* -* Copyright (c) 2004 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: Monitors new calls on data line. -* -*/ - - - -#ifndef CVTCTLLINEMONITOR_H -#define CVTCTLLINEMONITOR_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS - -class MVtCtlLineEventObserver; - -// CLASS DECLARATION - -/** -* Monitor for new calls -* -* @lib CSCallCtrl -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtCtlLineMonitor ) : public CActive - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aLine line subsession - * @param aObserver line event observer - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CVtCtlLineMonitor( - RMobileLine& aLine, - MVtCtlLineEventObserver& aObserver); - - /** - * Destructor. - */ - virtual ~CVtCtlLineMonitor(); - - public: // New functions - - /** - * Starts monitoring - */ - void Start(); - - private: // Functions from CActive - - /** - * Cancel monitoring. - */ - virtual void DoCancel(); - - /** - * Handles new call on line. - */ - virtual void RunL(); - - /** - * Error handler for leave in RunL - * @param aError error code - * @return KErrNone - */ - virtual TInt RunError( TInt aError ); - - private: // Data - - // Data line - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileLine& iLine; - - // Observer for new calls on line - MVtCtlLineEventObserver& iObserver; - - // Call name - TName iName; - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileCall::TMobileCallStatus iLastLineStatus; - RMobileCall::TMobileCallStatus iLineStatus; - }; - -#endif // CVTCTLLINEMONITOR_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/CVtCtlSessionContainer.h --- a/vtengines/videoteleng/CallCtrl/Inc/CVtCtlSessionContainer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,216 +0,0 @@ -/* -* Copyright (c) 2004 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: Container for ETel session and subsessions -* -*/ - - - -#ifndef CVTCTLSESSIONCONTAINER_H -#define CVTCTLSESSIONCONTAINER_H - -// INCLUDES -#include -#include -#include "MVtCtlLineEventObserver.h" -#include "MVtCtlCallStatusObserver.h" -#include "MVtCtlCallControl.h" - -// FORWARD DECLARATIONS -class CVtCtlLineMonitor; -class CVtCtlCallMonitor; -class CVtCtlVideoCall; - -// CLASS DECLARATION - -/** -* Container for ETel (sub)session(s). -* -* @lib CSCallCtrl -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtCtlSessionContainer ) : - public CBase, - public MVtCtlLineEventObserver, - public MVtCtlCallStatusObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aObserver call status observer - */ - static CVtCtlSessionContainer* NewL( - MVtCtlCallStatusObserver& aObserver ); - - /** - * Destructor. - */ - virtual ~CVtCtlSessionContainer(); - - public: // MVtCtlLineEventObserver - - /** - * @see MVtCtlLineEventObserver::HandleLineEventL - */ - virtual void HandleLineEventL( - const TLineEvent aEvent, - TDesC& aCallName ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - virtual void HandleLineEventL( - const TLineEvent aEvent, - const RMobileCall::TMobileCallStatus aStatus ); - - public: // MVtCtlCallStatusObserver - - /** - * @see MVtCtlLineEventObserver::HandleCallStatusChangeL - */ - virtual void HandleCallStatusChangeL( - TVtCtlSessionId aId, - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ); - - public: // New functions - - /** - * Finds call by name. - * @param aCallName search key - * @return call or NULL if not found - */ - CVtCtlVideoCall* FindCall( TDesC& aCallName ) const; - - /** - * Finds call by session id. - * @param aId search key - * @return call or NULL if not found - */ - CVtCtlVideoCall* FindCall( TVtCtlSessionId aId ) const; - - /** - * Gets sessions. - * @param aArray sessions are returned in this - * @return number of sessions in aArray - */ - TInt GetSessions( RVtCtlSessionIdArray& aArray ) const; - - private: - - /** - * Removes call from array and deletes it. - * @param aId session id - */ - void DestructCall( TVtCtlSessionId aId ); - - /** - * Checks that call is of correct type (multimedia) - * @param aName call object - * @param aName call name - * @return ETrue if call is multimedia call - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - TBool CheckCallTypeL( - RMobileCall& aCall, - const TName& aName ); - - /** - * Initializes video call object - * @param aCallName call name - * @return ETrue if call was initialized - */ - TBool InitCallL( const TName& aCallName ); - - private: - - /** - * C++ constructor. - * @param aObserver call status observer - */ - CVtCtlSessionContainer( MVtCtlCallStatusObserver& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: - - /** - * Class for maintaining session identities - */ - class TVtCtlSessionIdentities - { - public: - // c++ default constructor - TVtCtlSessionIdentities(); - - /** - * Create new session id - * @return session id - */ - TVtCtlSessionId Create(); - - /** - * Returns current session id - * @return session id - */ - TVtCtlSessionId Current() const; - - private: - // Last session id - TVtCtlSessionId iCurrentId; - }; - - private: // Data - - // ETel session - RTelServer iServer; - - // Phone session - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone iPhone; - - // Data line - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileLine iLine; - - // Monitors new calls on line. - CVtCtlLineMonitor* iLineMonitor; - - // Array of ongoing video calls - RPointerArray iCalls; - - // Session id management - TVtCtlSessionIdentities iSessionIds; - - // Call status observer - MVtCtlCallStatusObserver& iObserver; - }; - -#endif // CVTCTLSESSIONCONTAINER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/CVtCtlVideoCall.h --- a/vtengines/videoteleng/CallCtrl/Inc/CVtCtlVideoCall.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -/* -* Copyright (c) 2004 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: Video call abstraction -* -*/ - - - -#ifndef CVTCTLVIDEOCALL_H -#define CVTCTLVIDEOCALL_H - -// INCLUDES -#include -#include "MVtCtlCallControl.h" -#include "MVtCtlCallStatusObserver.h" - - -// FORWARD DECLARATIONS -class CVtCtlCallStatusMonitor; - -// CLASS DECLARATION - -/** -* Video call abstraction -* -* @lib CSCallCtrl -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtCtlVideoCall ) : - public CBase, - public MVtCtlCallStatusObserver - { - public: - - /** - * Call information - */ - struct TVtCtlCallInfo - { - // Session state - MVtCtlCallControl::TVtCtlState iStatus; - // Previous session state - MVtCtlCallControl::TVtCtlState iPreviousStatus; - // Session id - TVtCtlSessionId iId; - // Session direction - MVtCtlCallControl::TVtCtlDirection iDirection; - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aDataLine line subsession - * @param aId session id - * @param aObserver call status observer - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static CVtCtlVideoCall* NewL( - RMobileLine& aDataLine, - TVtCtlSessionId aId, - MVtCtlCallStatusObserver& aObserver - ); - - /** - * Destructor. - */ - virtual ~CVtCtlVideoCall(); - - public: // New functions - - /** - * Returns call info - * @return reference to call info - */ - const CVtCtlVideoCall::TVtCtlCallInfo& CallInfo() const; - - /** - * Returns Etel call info - * @return call info - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - const RMobileCall::TMobileCallInfoV1& MobileInfo() const; - - /** - * Opens call subsession and starts monitoring call status. - * @param aCallName call name - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - void InitializeCallL( RMobileCall& aCall ); - - /** - * Updates call information from ETel - * @return Symbian OS error code - */ - TInt UpdateCallInfo(); - - /** - * Returns call duration from Etel - * @param aDuration duration - * @return Symbian OS error code - */ - TInt GetDuration( TVtCtlDuration& aDuration ); - - /** - * Obtains video call state from the server and returns it. - * @param aState updated call state - * @return Symbian OS error code - * @since S60 3.1 - */ - TInt GetCallState( MVtCtlCallControl::TVtCtlState& aState ); - - protected: // From MVtCtlCallStatusObserver - - /** - * @see MVtCtlCallStatusObserver::HandleCallStatusChangeL - */ - virtual void HandleCallStatusChangeL( - TVtCtlSessionId aId, - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ); - - private: - - /** - * C++ constructor. - * @param aDataLine data line - * @param aId session id - * @param aObserver observer - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CVtCtlVideoCall( - RMobileLine& aDataLine, - TVtCtlSessionId aId, - MVtCtlCallStatusObserver& aObserver ); - - private: // Data - - // Call information - TVtCtlCallInfo iCallInfo; - - // Etel call - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileCall* iCall; - - // Data line - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileLine& iLine; - - // Etel call information - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileCall::TMobileCallInfoV1 iMobileCallInfo; - - // Call status monitor - CVtCtlCallStatusMonitor* iStatusMonitor; - - // Call status observer - MVtCtlCallStatusObserver& iObserver; - }; - -#endif // CVTCTLVIDEOCALL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/MVtCtlCallControl.h --- a/vtengines/videoteleng/CallCtrl/Inc/MVtCtlCallControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Call control interface -* -*/ - - - -#ifndef MVTCTLCALLCONTROL_H -#define MVTCTLCALLCONTROL_H - -// INCLUDES -#include "VtCtlDefs.h" -#include "TVtCtlType.h" - -// CLASS DECLARATION - -/** -* Call control class -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class MVtCtlCallControl - { - public: // new functions - - /** - * Session state - * EIdle idle, no connection - * EInitializing initializing MO session - * EAlerting alerting at remote end - * ERinging incoming session ringing - * EConnected session is established - * EDisconnecting disconnecting session - */ - enum TVtCtlState { - EUnknown, // 0 - EIdle, // 1 - EInitializing, // 2 - EAlerting, // 3 - ERinging, // 4 - EConnected, // 5 - EDisconnecting // 6 - }; - - /** - * Session direction - * EDirectionUnknown unknown direction - * EDirectionMobileOriginated MO session - * DirectionMobileTerminated MT session - */ - enum TVtCtlDirection - { - EDirectionUnknown, - EDirectionMobileOriginated, - DirectionMobileTerminated - }; - - /** - * Gets session duration - * @param aId session id - * @param aDuration session duration - * @return Symbian OS error code - */ - virtual TInt GetDuration( - TVtCtlSessionId aId, - TVtCtlDuration& aDuration ) = 0; - - /** - * Gets information on a session. - * @param aId session id - * @param aInfo packetized object derived from TVtCtlType - */ - virtual void GetSessionInfoL( - TVtCtlSessionId aId, - TDes8& aInfo ) = 0; - - /** - * Returns session state - * @param aId session id - * @return session state - */ - virtual TVtCtlState GetSessionState( - TVtCtlSessionId aId ) const = 0; - - /** - * Returns previous session state - * @param aId session id - * @return session state - */ - virtual TVtCtlState GetPreviousPreviousState( - TVtCtlSessionId aId ) const = 0; - - }; - -#endif // MVTCTLCALLCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/MVtCtlCallStatusObserver.h --- a/vtengines/videoteleng/CallCtrl/Inc/MVtCtlCallStatusObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2004 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: Call status observer interface -* -*/ - - - -#ifndef MVTCTLCALLSTATUSOBSERVER_H -#define MVTCTLCALLSTATUSOBSERVER_H - -// INCLUDES -#include "MVtCtlCallControl.h" - -// CLASS DECLARATION - -/** -* Call status observer interface -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class MVtCtlCallStatusObserver - { - public: // new functions - - /** - * Handles call status change. - * @param aId session id - * @param aStatus new session status - * @param aPreviousStatus previous session status - */ - virtual void HandleCallStatusChangeL( - TVtCtlSessionId aId, - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ) = 0; - }; - -#endif // MVTCTLCALLSTATUSOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/MVtCtlCommandObserver.h --- a/vtengines/videoteleng/CallCtrl/Inc/MVtCtlCommandObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2004 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: Session command observer interface -* -*/ - - - -#ifndef MVTCTLCOMMANDOBSERVER_H -#define MVTCTLCOMMANDOBSERVER_H - -// INCLUDES -#include "MVtCtlCallControl.h" - -// CLASS DECLARATION - -/** -* Session command observer interface -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class MVtCtlCommandObserver - { - public: // new functions - - /** - * Handles command completion in session control. - * @param aCmd command - * @param aResult completion result - */ - virtual void HandleVtSessionCommandL( - MVtCtlCallControl::TVtCtlCmd aCmd, - TInt aResult ) = 0; - }; - -#endif // MVTCTLCOMMANDOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/MVtCtlEventObserver.h --- a/vtengines/videoteleng/CallCtrl/Inc/MVtCtlEventObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2004 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: Session event observer interface. -* -*/ - - - -#ifndef MVTCTLEVENTOBSERVER_H -#define MVTCTLEVENTOBSERVER_H - -// INCLUDES -#include "VtCtlEvents.h" - -/** -* Session event observer interface -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class MVtCtlEventObserver - { - public: // new functions - - /** - * Handles event from session control. - * @param aEvent session event - * @param aParams parameters related to event. - * Actual type depends on event. - */ - virtual void HandleVtSessionEventL( - TInt aEvent, - TAny* aParams ) = 0; - }; - -#endif // MVTCTLEVENTOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/MVtCtlLineEventObserver.h --- a/vtengines/videoteleng/CallCtrl/Inc/MVtCtlLineEventObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2004 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: Observer interface for line events. -* -*/ - - - -#ifndef MVTCTLLINEEVENTOBSERVER_H -#define MVTCTLLINEEVENTOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer interface for line events -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class MVtCtlLineEventObserver - { - public: // new functions - - /** - * ELineEventCallAdded call added to line - * ELineEventIncomingCall incoming call - * ELineEventStatusChange line status changed - */ - enum TLineEvent { - ELineEventCallAdded, - ELineEventIncomingCall, - ELineEventStatusChange - }; - - /** - * Event handler for line events. - * @param aEvent line event - * @param aCallName call name - */ - virtual void HandleLineEventL( - const TLineEvent aEvent, - TDesC& aCallName ) = 0; - - /** - * Event handler for line events. - * @param aEvent line event - * @param aCallName call name - * @param aStatus call status - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - virtual void HandleLineEventL( - const TLineEvent aEvent, - const RMobileCall::TMobileCallStatus aStatus ) = 0; - }; - -#endif // MVTCTLLINEEVENTOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/TVtCtlType.h --- a/vtengines/videoteleng/CallCtrl/Inc/TVtCtlType.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2004 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: Session type base class. -* -*/ - - - -#ifndef MVTCTLSESSIONINFO_H -#define MVTCTLSESSIONINFO_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Base class data types. -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class TVtCtlType - { - public: - - /** - * Returns extension id - * @return extension id - */ - inline TInt Extension() const; - - protected: - // Extension id to be used in defining actual data type. - TInt iExtension; - }; - -#include "TVtCtlType.inl" - -#endif // MVTCTLSESSIONINFO_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/TVtCtlType.inl --- a/vtengines/videoteleng/CallCtrl/Inc/TVtCtlType.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2004 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: Inline methods of class TVtCtlType. -* -*/ - - - -// ----------------------------------------------------------------------------- -// TVtCtlType::Extension -// Returns extension id. -// ----------------------------------------------------------------------------- -// -inline TInt TVtCtlType::Extension() const { return iExtension; } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/VtCtlConfig.hrh --- a/vtengines/videoteleng/CallCtrl/Inc/VtCtlConfig.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2004 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: Project configuration file. -* -*/ - - -#ifndef VTCTLCONFIG_HRH -#define VTCTLCONFIG_HRH - -// INCLUDES - -/** -* Macro that chooses stub implementation for CsCallCtrl. -* In stub following attributes are effective -* - duration = 5 -* - session info returns : -* direction = MO -* state = connected -* previous state = alerting -* tel number = 0501234567 -* duration = 5 -*/ -//#define VTCALLCONTROLSTUB - -#endif // VTCTLCONFIG_HRH - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/VtCtlDefs.h --- a/vtengines/videoteleng/CallCtrl/Inc/VtCtlDefs.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2004 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: General definitions for Video telephony call control -* -*/ - - - -#ifndef VTCTLDEFS_H -#define VTCTLDEFS_H - -// INCLUDES -#include - -// CONSTANTS - -// Null session id -const TInt KNullSessionId = -1; - -// Session id for active session -const TInt KActiveSessionId = -2; - -/** -* Active object priorities -*/ -const TInt KVtCtlCallAdditionMonitorPriority = CActive::EPriorityStandard; -const TInt KVtCtlCallStatusMonitorPriority = CActive::EPriorityStandard; - -/** -* Maximum length for telephone number -*/ -const TInt KVtCtlTelNumberLength = 100; - - -// DATA TYPES - -/** -* Remote end address -*/ -typedef TBuf TVtCtlTelNumber; - -/** -* Session duration -*/ -typedef TTimeIntervalSeconds TVtCtlDuration; - -/** -* Session array -*/ -typedef RArray RVtCtlSessionIdArray; - -/** -* Session id -*/ -typedef TInt TVtCtlSessionId; - -/** -* Session command -*/ -typedef TInt TVtCtlCmd; - -/** -* Extension ids -*/ -enum { - EVtCtlCSSessionInfoExtensionId = 1 - }; - -#endif // VTCTLDEFS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/VtCtlEvents.h --- a/vtengines/videoteleng/CallCtrl/Inc/VtCtlEvents.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2004 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: Call control events -* -*/ - - - -#ifndef VTCLTDEFS_H -#define VTCLTDEFS_H - -// INCLUDES -#include - -// DATA TYPES -typedef TInt TVtCtlEvent; - -// CONSTANTS - -/** -* Session status is changed. aParams in -* MVtCtlEventObserver::HandleVtSessionEventL is of -* type MVtCtlCallControl::TVtCtlState -*/ -const TVtCtlEvent KVtCtlEventSessionStatusChanged = 1; - -/** -* Session duration is changed. aParams -* MVtCtlEventObserver::HandleVtSessionEventL is of -* type TVtCtlDuration -*/ -const TVtCtlEvent KVtCtlEventDurationChanged = 2; - -#endif // VTCLTDEFS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/VtCtlPanic.h --- a/vtengines/videoteleng/CallCtrl/Inc/VtCtlPanic.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2004 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: Data types for call control -* -*/ - - - -#ifndef VTCTLPANIC_H -#define VTCTLPANIC_H - -// INCLUDES - -#include - -// CONSTANTS - -/** -* Panic text -*/ -_LIT( KVtCtlPanicCategory, "VtCSCall" ); - -// DATA TYPES - -/** -* Panic values -*/ -enum TVtCtlPanic { - //** Line subsession handle is null */ - EVtCtlPanicLineHandleNull, - /** Call subsession handle is null */ - EVtCtlPanicCallHandleNull - }; - -// FUNCTION PROTOTYPES - -/** -* Call control panic. -* @param aPanic panic value -*/ -void Panic( TVtCtlPanic aPanic ); - -#endif // VTCTLPANIC_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/VtCtlTypes.h --- a/vtengines/videoteleng/CallCtrl/Inc/VtCtlTypes.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2004 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: Data types for call control -* -*/ - - -#ifndef VTCTLTYPES_H -#define VTCTLTYPES_H - -// INCLUDES -#include "VtCtlDefs.h" -#include "TVtCtlType.h" - -/** -* CS Session information. -* -* @lib CSCallCtrl -* @since 2.6 -*/ -class TVtCtlCSSessionInfoV1 : public TVtCtlType - { - public: // constructors - /** - * C++ default contructor. - */ - inline TVtCtlCSSessionInfoV1(); - - public: // data members - - // Session duration - TVtCtlDuration iDuration; - - // Address - TVtCtlTelNumber iTelNumber; - - // Session state - MVtCtlCallControl::TVtCtlState iState; - - // Previous session state - MVtCtlCallControl::TVtCtlState iPreviousState; - - // Session direction MO/MT - MVtCtlCallControl::TVtCtlDirection iDirection; - }; - -/** -* Data passed in MVtCtlEventObserver::HandleVtSessionEventL -* when event is KVtCtlEventSessionStatusChanged. -*/ -struct TVtCtlSessionStateEvent - { - /** - * Session state - */ - MVtCtlCallControl::TVtCtlState iState; - - /** - * Previous session state - */ - MVtCtlCallControl::TVtCtlState iPreviousState; - - /** - * Session id - */ - TVtCtlSessionId iSessionId; - }; - -#include "VtCtlTypes.inl" - -#endif // VTCTLTYPES_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Inc/VtCtlTypes.inl --- a/vtengines/videoteleng/CallCtrl/Inc/VtCtlTypes.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004 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: Data types for call control -* -*/ - - - -// ----------------------------------------------------------------------------- -// TVtCtlCSSessionInfoV1::TVtCtlSessionInfoV1 -// c++ default constructor -// ----------------------------------------------------------------------------- -// -inline TVtCtlCSSessionInfoV1::TVtCtlCSSessionInfoV1() - : iDuration( 0 ), - iState( MVtCtlCallControl::EUnknown ), - iPreviousState( MVtCtlCallControl::EUnknown ), - iDirection( MVtCtlCallControl::EDirectionUnknown ) - { - iExtension = EVtCtlCSSessionInfoExtensionId; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlCallControl.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlCallControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,252 +0,0 @@ -/* -* Copyright (c) 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: CVtCtlCallControl class implementation. -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include -#include "CVtCtlCallControl.h" -#include "MVtCtlEventObserver.h" -#include "CVtCtlSessionContainer.h" -#include "CVtCtlVideoCall.h" -#include "VtCtlTypes.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::NewL -// two-phase constructor -// ----------------------------------------------------------------------------- -// -CVtCtlCallControl* CVtCtlCallControl::NewL( - MVtCtlEventObserver& aEventObserver ) - { - __VTPRINTENTER( "CVtCtlCallControl.NewL" ) - CVtCtlCallControl* self = new ( ELeave ) - CVtCtlCallControl( aEventObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtCtlCallControl.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::~CVtCtlCallControl -// Destructor -// ----------------------------------------------------------------------------- -// -CVtCtlCallControl::~CVtCtlCallControl() - { - __VTPRINTENTER( "CVtCtlCallControl.~" ) - delete iContainer; - // uninitialize logging (if enabled) - VTLOGUNINIT - __VTPRINTEXIT( "CVtCtlCallControl.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::CVtCtlCallControl -// c++ constructor -// ----------------------------------------------------------------------------- -// -CVtCtlCallControl::CVtCtlCallControl( - MVtCtlEventObserver& aEventObserver ) : - iEventObserver( aEventObserver ) - { - __VTPRINTENTER( "CVtCtlCallControl.CVtCtlCallControl" ) - __VTPRINTEXIT( "CVtCtlCallControl.CVtCtlCallControl" ) - } - - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::ConstructL() - { - __VTPRINTENTER( "CVtCtlCallControl.ConstructL" ) - // initialize logging (if enabled) - VTLOGINIT - iContainer = CVtCtlSessionContainer::NewL( *this ); - __VTPRINTEXIT( "CVtCtlCallControl.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetDuration -// -// ----------------------------------------------------------------------------- -// -TInt CVtCtlCallControl::GetDuration( - TVtCtlSessionId aId, - TVtCtlDuration& aDuration ) - { - __VTPRINTENTER( "CVtCtlCallControl.GetDuration" ) - CVtCtlVideoCall* call = iContainer->FindCall( aId ); - TInt err( KErrNotFound ); - if ( call ) - { - err = call->GetDuration( aDuration ); - } - __VTPRINTEXIT( "CVtCtlCallControl.GetDuration" ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetSessionInfoL -// -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CVtCtlCallControl::GetSessionInfoL( - TVtCtlSessionId aId, - TDes8& aInfo ) - { - __VTPRINTENTER( "CVtCtlCallControl.GetSessionInfoL" ) - ValidateDataExtensionL( aInfo, EVtCtlCSSessionInfoExtensionId ); - CVtCtlVideoCall* call = iContainer->FindCall( aId ); - if ( call ) - { - TPckg& pckg = - reinterpret_cast&>( aInfo ); - TVtCtlCSSessionInfoV1& info = pckg(); - TInt err( call->UpdateCallInfo() ); - if ( err == KErrNone ) - { - const RMobileCall::TMobileCallInfoV1& mobileInfo = call->MobileInfo(); - info.iDuration = mobileInfo.iDuration; - info.iTelNumber = mobileInfo.iRemoteParty.iRemoteNumber.iTelNumber; - __VTPRINT2( DEBUG_SESSION, "VtCtl: mobile dir=%d", - mobileInfo.iRemoteParty.iDirection ) - switch ( mobileInfo.iRemoteParty.iDirection ) - { - case RMobileCall::EMobileOriginated: - info.iDirection = EDirectionMobileOriginated; - break; - case RMobileCall::EMobileTerminated: - info.iDirection = DirectionMobileTerminated; - break; - case RMobileCall::EDirectionUnknown: - default: - info.iDirection = EDirectionUnknown; - break; - } - } - } - else - { - __VTPRINT( DEBUG_SESSION, "CallCtrl.GetSessionInfoL not found" ) - User::Leave( KErrNotFound ); - } - __VTPRINTEXIT( "CVtCtlCallControl.GetSessionInfoL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetState -// -// ----------------------------------------------------------------------------- -// -MVtCtlCallControl::TVtCtlState CVtCtlCallControl::GetSessionState( - TVtCtlSessionId aId ) const - { - __VTPRINTENTER( "CVtCtlCallControl.GetSessionState" ) - __VTPRINT2( DEBUG_SESSION, "CallCtrl.GetSessionState for id:%d",aId ) - MVtCtlCallControl::TVtCtlState state = EUnknown; - CVtCtlVideoCall* call = iContainer->FindCall( aId ); - if ( call ) - { - call->GetCallState( state ); - } - __VTPRINT3( DEBUG_SESSION, " callPtr=%d state=%d", (TInt) call, state ) - __VTPRINTEXIT( "CVtCtlCallControl.GetSessionState" ) - return state; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetPreviousState -// -// ----------------------------------------------------------------------------- -// -MVtCtlCallControl::TVtCtlState CVtCtlCallControl::GetPreviousPreviousState( - TVtCtlSessionId aId ) const - { - __VTPRINTENTER( "CVtCtlCallControl.GetPreviousPreviousState" ) - MVtCtlCallControl::TVtCtlState state = EUnknown; - const CVtCtlVideoCall* call = iContainer->FindCall( aId ); - if ( call ) - { - state = call->CallInfo().iPreviousStatus; - } - __VTPRINTEXIT( "CVtCtlCallControl.GetPreviousPreviousState" ) - return state; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::HandleCallStatusChangeL -// Notifies observer about call status change. -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::HandleCallStatusChangeL( - TVtCtlSessionId aId, - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ) - { - __VTPRINTENTER( "CVtCtlCallControl.HandleCallStatusChangeL" ) - __VTPRINT2( DEBUG_SESSION, " status=%d", (TInt) aStatus ) - - TVtCtlSessionStateEvent event; - event.iPreviousState = aPreviousStatus; - event.iState = aStatus; - event.iSessionId = aId; - - TAny* parameter = &event; - iEventObserver.HandleVtSessionEventL( - KVtCtlEventSessionStatusChanged, - parameter ); - __VTPRINTEXIT( "CVtCtlCallControl.HandleCallStatusChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::ValidateDataExtensionL -// Validates extension id of descriptor representation of data type. -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::ValidateDataExtensionL( - TDesC8& aData, - TInt aExtension ) - { - __VTPRINTENTER( "CVtCtlCallControl.ValidateDataExtensionL" ) - TVtCtlType type; - TPckg pckg(type); - TPtrC8 ptr( aData.Ptr(), sizeof( TVtCtlType ) ); - pckg.Copy( ptr ); - if ( type.Extension() != aExtension ) - { - __VTPRINT( DEBUG_SESSION, "CallCtrl.Validate not supported" ) - User::Leave( KErrNotSupported ); - } - __VTPRINTEXIT( "CVtCtlCallControl.ValidateDataExtensionL" ) - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlCallControlStub.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlCallControlStub.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -/* -* Copyright (c) 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: Stub version of call control. -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "CVtCtlCallControl.h" -#include "MVtCtlEventObserver.h" -#include "CVtCtlSessionContainer.h" -#include "CVtCtlVideoCall.h" -#include "VtCtlTypes.h" -#include - -// CONSTANTS -_LIT( KVtCtlStubTelNumber, "0501234567" ); - -// Duration -const TInt KVtCtlStubDuration = 5; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::NewL -// Two-phase constructor. -// ----------------------------------------------------------------------------- -// -CVtCtlCallControl* CVtCtlCallControl::NewL( - MVtCtlEventObserver& aEventObserver ) - { - __VTPRINTENTER( "CVtCtlCallControlStub.NewL" ) - CVtCtlCallControl* self = new ( ELeave ) - CVtCtlCallControl( aEventObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtCtlCallControlStub.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::~CVtCtlCallControl -// Destructor -// ----------------------------------------------------------------------------- -// -CVtCtlCallControl::~CVtCtlCallControl() - { - __VTPRINTENTER( "CVtCtlCallControlStub.~" ) - delete iContainer; - // uninitialize logging - VTLOGUNINIT - __VTPRINTEXIT( "CVtCtlCallControlStub.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::CVtCtlCallControl -// c++ constructor -// ----------------------------------------------------------------------------- -// -CVtCtlCallControl::CVtCtlCallControl( - MVtCtlEventObserver& aEventObserver) : - iEventObserver( aEventObserver ) - { - __VTPRINTENTER( "CVtCtlCallControlStub.CVtCtlCallControl" ) - __VTPRINTEXIT( "CVtCtlCallControlStub.CVtCtlCallControl" ) - } - - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::ConstructL() - { - __VTPRINTENTER( "CVtCtlCallControlStub.ConstructL" ) - // initialize logging - VTLOGINIT - iContainer = CVtCtlSessionContainer::NewL( *this ); - __VTPRINTEXIT( "CVtCtlCallControlStub.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetDuration -// -// ----------------------------------------------------------------------------- -// -TInt CVtCtlCallControl::GetDuration( - TVtCtlSessionId , - TVtCtlDuration& aDuration ) - { - __VTPRINTENTER( "CVtCtlCallControlStub.GetDuration" ) - aDuration = 5; - __VTPRINTEXIT( "CVtCtlCallControlStub.GetDuration" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetSessionInfoL -// -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::GetSessionInfoL( - TVtCtlSessionId , - TDes8& aInfo ) - { - __VTPRINTENTER( "CVtCtlCallControlStub.GetSessionInfoL" ) - - TPckg& pckg = - reinterpret_cast&>( aInfo ); - __VTPRINT( DEBUG_SESSION, "VtCtl:CallCtrl. 1" ) - TVtCtlCSSessionInfoV1& info = pckg(); - __VTPRINT( DEBUG_SESSION, "VtCtl:CallCtrl. 2" ) - info.iDirection = MVtCtlCallControl::EDirectionMobileOriginated; - info.iDuration = KVtCtlStubDuration; - info.iState = MVtCtlCallControl::EConnected; - info.iPreviousState = MVtCtlCallControl::EAlerting; - info.iTelNumber = KVtCtlStubTelNumber; - __VTPRINTEXIT( "CVtCtlCallControlStub.GetSessionInfoL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetState -// -// ----------------------------------------------------------------------------- -// -MVtCtlCallControl::TVtCtlState CVtCtlCallControl::GetSessionState( - TVtCtlSessionId ) const - { - __VTPRINTENTER( "CVtCtlCallControlStub.GetSessionState" ) - MVtCtlCallControl::TVtCtlState state = MVtCtlCallControl::EConnected; - __VTPRINTEXIT( "CVtCtlCallControlStub.GetSessionState" ) - return state; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::GetPreviousState -// -// ----------------------------------------------------------------------------- -// -MVtCtlCallControl::TVtCtlState CVtCtlCallControl::GetPreviousPreviousState( - TVtCtlSessionId ) const - { - __VTPRINTENTER( "CVtCtlCallControlStub.GetPreviousPreviousState" ) - MVtCtlCallControl::TVtCtlState state = EAlerting; - __VTPRINTEXIT( "CVtCtlCallControlStub.GetPreviousPreviousState" ) - return state; - } - - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::HandleCallStatusChangeL -// Notifies -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::HandleCallStatusChangeL( - TVtCtlSessionId , - MVtCtlCallControl::TVtCtlState , - MVtCtlCallControl::TVtCtlState ) - { - __VTPRINTENTER( "CVtCtlCallControlStub.HandleCallStatusChangeL" ) - __VTPRINTEXIT( "CVtCtlCallControlStub.HandleCallStatusChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallControl::ValidateDataExtensionL -// Validates extension id of descriptor representation of data type. -// ----------------------------------------------------------------------------- -// -void CVtCtlCallControl::ValidateDataExtensionL( - TDesC8& , - TInt ) - { - __VTPRINTENTER( "CVtCtlCallControlStub.ValidateDataExtensionL" ) - __VTPRINTEXIT( "CVtCtlCallControlStub.ValidateDataExtensionL" ) - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlCallStatusMonitor.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlCallStatusMonitor.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,227 +0,0 @@ -/* -* Copyright (c) 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: Monitors call status. -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "CVtCtlCallStatusMonitor.h" -#include "MVtCtlCallStatusObserver.h" -#include "VtCtlDefs.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::CVtCtlCallStatusMonitor -// C++ constructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CVtCtlCallStatusMonitor::CVtCtlCallStatusMonitor( - RMobileCall& aCall, - MVtCtlCallStatusObserver& aObserver ) : - CActive( KVtCtlCallStatusMonitorPriority ), - iCall( aCall ), - iObserver( aObserver ), - iCallStatus( RMobileCall::EStatusUnknown ), - iPreviousStatus( RMobileCall::EStatusUnknown ) - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.CVtCtlCallStatusMonitor" ) - CActiveScheduler::Add( this ); - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.CVtCtlCallStatusMonitor" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::~CVtCtlCallStatusMonitor -// destructor -// ----------------------------------------------------------------------------- -// -CVtCtlCallStatusMonitor::~CVtCtlCallStatusMonitor() - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.~" ) - Cancel(); - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.~" ) - } - - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::Start -// Starts monitoring -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CVtCtlCallStatusMonitor::Start() - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.Start" ) - if ( iPreviousStatus == RMobileCall::EStatusUnknown ) - { - RMobileCall::TMobileCallStatus status( RMobileCall::EStatusUnknown ); - if ( iCall.GetMobileCallStatus( status ) == KErrNone ) - { - iPreviousStatus = status; - } - } - if ( !IsActive() ) - { - iCall.NotifyMobileCallStatusChange( iStatus, iCallStatus ); - SetActive(); - } - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.Start" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::DoCancel -// Cancels monitoring -// ----------------------------------------------------------------------------- -// -void CVtCtlCallStatusMonitor::DoCancel() - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.DoCancel" ) - iCall.CancelAsyncRequest( EMobileCallNotifyMobileCallStatusChange ); - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::RunL -// Receives call status change and notifies observer -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CVtCtlCallStatusMonitor::RunL() - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.RunL" ) - __VTPRINT2( DEBUG_SESSION , "CallStatMon.RunL err=%d",iStatus.Int() ) - __VTPRINT2( DEBUG_SESSION , "CallStatMon.RunL sta=%d", - (TInt)iCallStatus ) - if ( iStatus == KErrNone ) - { - const RMobileCall::TMobileCallStatus cache( iCallStatus ); - Start(); - MVtCtlCallControl::TVtCtlState state = MapState( cache ); - if ( CVtCtlCallStatusMonitor::IsLegalNewState( - cache, iPreviousStatus ) ) - { - iPreviousStatus = cache; - if ( state != MVtCtlCallControl::EUnknown ) - { - iObserver.HandleCallStatusChangeL( - KNullSessionId, // unknown by this - state, - MapState( iPreviousStatus ) ); - } - } - } - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::RunError -// -// ----------------------------------------------------------------------------- -// -TInt CVtCtlCallStatusMonitor::RunError( -#ifdef VTDEBUG - TInt aError ) -#else - TInt /*aError*/ ) -#endif - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.RunError" ) - __VTPRINTEXITR( "CVtCtlCallStatusMonitor.RunError err=%d", aError ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::MapState -// Maps Etel call status to internal type -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -MVtCtlCallControl::TVtCtlState CVtCtlCallStatusMonitor::MapState( - const RMobileCall::TMobileCallStatus aStatus ) - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.MapState" ) - MVtCtlCallControl::TVtCtlState state( MVtCtlCallControl::EUnknown ); - switch ( aStatus ) - { - case RMobileCall::EStatusIdle: - state = MVtCtlCallControl::EIdle; - break; - case RMobileCall::EStatusDialling: - state = MVtCtlCallControl::EInitializing; - break; - case RMobileCall::EStatusRinging: - state = MVtCtlCallControl::ERinging; - break; - case RMobileCall::EStatusAnswering: - state = MVtCtlCallControl::ERinging; - break; - case RMobileCall::EStatusConnecting: - state = MVtCtlCallControl::EInitializing; - break; - case RMobileCall::EStatusConnected: - state = MVtCtlCallControl::EConnected; - break; - case RMobileCall::EStatusDisconnecting: - case RMobileCall::EStatusDisconnectingWithInband: - state = MVtCtlCallControl::EDisconnecting; - break; - case RMobileCall::EStatusUnknown: - state = MVtCtlCallControl::EUnknown; - break; - default: - break; - } - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.MapState state" ) - return state; - } - -// ----------------------------------------------------------------------------- -// CVtCtlCallStatusMonitor::IsLegalNewState -// Checks if call state transition specified by arguments is legal. -// ----------------------------------------------------------------------------- -// -TBool CVtCtlCallStatusMonitor::IsLegalNewState( - const RMobileCall::TMobileCallStatus aNewState, - const RMobileCall::TMobileCallStatus aCurrentState ) - { - // check state transition priority - const TInt newPrio = KVtCtlStatusTransitionPriorities[ aNewState ]; - const TInt prevPrio = KVtCtlStatusTransitionPriorities[ aCurrentState ]; - - /** - * Legal transition if new state is logically consecutive compared to old - * state. Exception: transition to idle always possible ( !newPrio ) - */ - const TBool isLegal = ( newPrio > prevPrio || !newPrio ); - return isLegal; - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlFactory.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlFactory.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 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: CVtCtlFactory class implementation. -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "CVtCtlFactory.h" -#include "CVtCtlCallControl.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// MVtCtlCallControl::CreateCallControlL -// Creates call control. -// ----------------------------------------------------------------------------- -// -MVtCtlCallControl* CVtCtlFactory::CreateCallControlL( - MVtCtlEventObserver& aEventObserver ) - { - __VTPRINTENTER( "CVtCtlCallStatusMonitor.IsLegalNewState" ) - MVtCtlCallControl* control = CVtCtlCallControl::NewL( - aEventObserver ); - __VTPRINTEXIT( "CVtCtlCallStatusMonitor.IsLegalNewState" ) - return control; - } - -// ----------------------------------------------------------------------------- -// MVtCtlCallControl::Delete -// Destructs call control object. -// ----------------------------------------------------------------------------- -// -void CVtCtlFactory::Delete( MVtCtlCallControl* aCallControl ) - { - __VTPRINTENTER( "CVtCtlFactory.Delete" ) - CVtCtlCallControl* callControl = - static_cast( aCallControl ); - delete callControl; - __VTPRINTEXIT( "CVtCtlFactory.Delete" ) - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// CreateFactory -// Returns: Factory for creating and destructing call control. -// ----------------------------------------------------------------------------- -// -EXPORT_C CVtCtlFactory* CreateFactory() - { - CVtCtlFactory* factory = new CVtCtlFactory; - return factory; - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlLineMonitor.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlLineMonitor.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 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: Monitors new calls on data line -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "CVtCtlLineMonitor.h" -#include "MVtCtlLineEventObserver.h" -#include "VtCtlDefs.h" -#include -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtCtlLineMonitor::CVtCtlLineMonitor -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CVtCtlLineMonitor::CVtCtlLineMonitor( - RMobileLine& aLine, - MVtCtlLineEventObserver& aObserver) : - CActive( KVtCtlCallAdditionMonitorPriority ), - iLine ( aLine ), - iObserver( aObserver ), - iLastLineStatus( RMobileCall::EStatusIdle ), - iLineStatus( RMobileCall::EStatusIdle ) - { - __VTPRINTENTER( "CVtCtlLineMonitor.CVtCtlLineMonitor" ) - CActiveScheduler::Add( this ); - __VTPRINTEXIT( "CVtCtlLineMonitor.CVtCtlLineMonitor" ) - } - -// Destructor -CVtCtlLineMonitor::~CVtCtlLineMonitor() - { - __VTPRINTENTER( "CVtCtlLineMonitor.~" ) - Cancel(); - __VTPRINTEXIT( "CVtCtlLineMonitor.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlLineMonitor::Start -// Start monitoring -// ----------------------------------------------------------------------------- -// -void CVtCtlLineMonitor::Start() - { - __VTPRINTENTER( "CVtCtlLineMonitor.Start" ) - if ( !IsActive() ) - { - iLine.NotifyMobileLineStatusChange( iStatus, iLineStatus ); - SetActive(); - } - __VTPRINTEXIT( "CVtCtlLineMonitor.Start" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlLineMonitor::DoCancel -// Stop monitoring -// ----------------------------------------------------------------------------- -// -void CVtCtlLineMonitor::DoCancel() - { - __VTPRINTENTER( "CVtCtlLineMonitor.DoCancel" ) - iLine.CancelAsyncRequest( EMobileLineNotifyMobileLineStatusChange ); - __VTPRINTEXIT( "CVtCtlLineMonitor.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlLineMonitor::RunL -// Notifies observer on the event. -// ----------------------------------------------------------------------------- -// -void CVtCtlLineMonitor::RunL() - { - __VTPRINTENTER( "CVtCtlLineMonitor.RunL" ) - __VTPRINT2( DEBUG_SESSION , "VtCtl:LineMon.RunL %d", iStatus.Int() ) - if ( iStatus == KErrNone ) - { - if ( iLineStatus != iLastLineStatus ) - { - iObserver.HandleLineEventL( - MVtCtlLineEventObserver::ELineEventStatusChange, iLineStatus ); - iLastLineStatus = iLineStatus; - } - Start(); - } - __VTPRINTEXIT( "CVtCtlLineMonitor.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlLineMonitor::RunError -// Starts monitoring after error -// ----------------------------------------------------------------------------- -// -TInt CVtCtlLineMonitor::RunError( -#ifdef VTDEBUG - TInt aError ) -#else - TInt ) -#endif - { - __VTPRINTENTER( "CVtCtlLineMonitor.RunError" ) - Start(); - __VTPRINTEXITR( "CVtCtlLineMonitor.RunError err=%d", aError ) - return KErrNone; - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlSessionContainer.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlSessionContainer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,457 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Container for ETel session and subsessions. -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "CVtCtlSessionContainer.h" -#include "CVtCtlLineMonitor.h" -#include "CVtCtlVideoCall.h" -#include -#include - -// CONSTANTS - -// Retrials for connecting to ETel server -const TInt KVtCtlETelConnectRetrials = 5; - -// Granularity -const TInt KVtCtlMaxCalls = 5; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::CVtCtlSessionContainer -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtCtlSessionContainer::CVtCtlSessionContainer( - MVtCtlCallStatusObserver& aObserver ) : - iCalls( KVtCtlMaxCalls ), - iObserver( aObserver ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.CVtCtlSessionContainer" ) - __VTPRINTEXIT( "CVtCtlSessionContainer.CVtCtlSessionContainer" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CVtCtlSessionContainer::ConstructL() - { - __VTPRINTENTER( "CVtCtlSessionContainer.ConstructL" ) - TInt retries( KVtCtlETelConnectRetrials ); - TInt err( KErrNone ); - while ( retries-- && - iServer.Handle() == KNullHandle ) - { - err = iServer.Connect(); - } - User::LeaveIfError( err ); - User::LeaveIfError( iServer.LoadPhoneModule( KMmTsyModuleName() ) ); - User::LeaveIfError( iPhone.Open( iServer, KMmTsyPhoneName() ) ); - User::LeaveIfError( iLine.Open( iPhone, KMmTsyDataLineName() ) ); - - iLineMonitor = new ( ELeave ) CVtCtlLineMonitor( iLine, *this ); - iLineMonitor->Start(); - - RMobileCall::TMobileCallStatus lineStatus; - User::LeaveIfError( iLine.GetMobileLineStatus( lineStatus ) ); - if ( lineStatus != RMobileCall::EStatusIdle ) - { - __VTPRINT( DEBUG_SESSION | DEBUG_CONSTRUCT, - "VtCtl:SesConL line active" ) - TInt calls( 0 ); - User::LeaveIfError( iLine.EnumerateCall( calls ) ); - while ( calls-- ) - { - RLine::TCallInfo callInfo; - iLine.GetCallInfo( calls, callInfo ); - if ( InitCallL( callInfo.iCallName ) ) - { - __VTPRINT( DEBUG_SESSION | DEBUG_CONSTRUCT, - "VtCtl:SesConL call found and created" ) - calls = 0; - } - } - } - - __VTPRINTEXIT( "CVtCtlSessionContainer.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtCtlSessionContainer* CVtCtlSessionContainer::NewL( - MVtCtlCallStatusObserver& aObserver ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.NewL" ) - CVtCtlSessionContainer* self = - new ( ELeave ) CVtCtlSessionContainer( aObserver ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - __VTPRINTEXIT( "CVtCtlSessionContainer.NewL" ) - return self; - } - - -// Destructor -CVtCtlSessionContainer::~CVtCtlSessionContainer() - { - __VTPRINTENTER( "CVtCtlSessionContainer.~" ) - - TInt count( iCalls.Count() ); - CVtCtlVideoCall* call = NULL; - while ( count-- ) - { - call = iCalls[count]; - delete call; - } - iCalls.Close(); - delete iLineMonitor; - iLine.Close(); - iPhone.Close(); - iServer.UnloadPhoneModule( KMmTsyModuleName() ); - iServer.Close(); - __VTPRINTEXIT( "CVtCtlSessionContainer.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::HandleLineEventL -// Handle new call on data line -// ----------------------------------------------------------------------------- -// -void CVtCtlSessionContainer::HandleLineEventL( - const TLineEvent aEvent, - TDesC& aCallName ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.HandleLineEventL" ) - if ( aEvent == ELineEventCallAdded ) - { - CVtCtlVideoCall* call = FindCall( aCallName ); - if ( call == NULL ) - { - InitCallL( aCallName ); - } - } - __VTPRINTEXITR( "CVtCtlSessionContainer.HandleLineEventL event=%d", - aEvent ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::HandleLineEventL -// -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CVtCtlSessionContainer::HandleLineEventL( - const TLineEvent aEvent, - const RMobileCall::TMobileCallStatus aStatus ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.HandleLineEventL" ) - __VTPRINT3( DEBUG_SESSION, "SesCont.LineEvent2 event=%d,status=%d", - (TInt) aEvent, - (TInt) aStatus ) - if ( aEvent == ELineEventStatusChange && - ( aStatus == RMobileCall::EStatusRinging || - aStatus == RMobileCall::EStatusDialling ) ) - { - TInt calls( 0 ); - iLine.EnumerateCall( calls ); - while ( calls-- ) - { - RLine::TCallInfo callInfo; - TInt err( iLine.GetCallInfo( calls, callInfo ) ); - // ensure we're opening correct call - if ( err == KErrNone && - ( callInfo.iStatus == RCall::EStatusDialling || - callInfo.iStatus == RCall::EStatusRinging ) ) - { - calls = 0; // break - CVtCtlVideoCall* call = FindCall( callInfo.iCallName ); - if ( call == NULL ) - { - InitCallL( callInfo.iCallName ); - } - } - } - } - __VTPRINTEXIT( "CVtCtlSessionContainer.HandleLineEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::HandleCallStatusChangeL -// passes call status change event to observer -// ----------------------------------------------------------------------------- -// -void CVtCtlSessionContainer::HandleCallStatusChangeL( - TVtCtlSessionId aId, - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.HandleCallStatusChangeL" ) - iObserver.HandleCallStatusChangeL( aId, aStatus, aPreviousStatus ); - if ( aStatus == MVtCtlCallControl::EIdle ) - { - DestructCall( aId ); - } - __VTPRINTEXIT( "CVtCtlSessionContainer.HandleCallStatusChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::FindCall -// Finds call by name -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CVtCtlVideoCall* CVtCtlSessionContainer::FindCall( TDesC& aCallName ) const - { - __VTPRINTENTER( "CVtCtlSessionContainer.FindCall" ) - TInt count( iCalls.Count() ); - CVtCtlVideoCall* call = NULL; - while ( count-- ) - { - call = iCalls[count]; - const RMobileCall::TMobileCallInfoV1& mobileInfo = call->MobileInfo(); - if ( aCallName == mobileInfo.iCallName ) - { - count = 0; // break - } - else - { - call = NULL; - } - } - __VTPRINT2( DEBUG_SESSION | DEBUG_DETAIL, - "SesCont.FindCall by name --> %d",(TInt)call ) - __VTPRINTEXIT( "CVtCtlSessionContainer.FindCall" ) - return call; - } - - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::FindCall -// Finds call by id. -// ----------------------------------------------------------------------------- -// -CVtCtlVideoCall* CVtCtlSessionContainer::FindCall( TVtCtlSessionId aId ) const - { - __VTPRINTENTER( "CVtCtlSessionContainer.FindCall" ) - TInt count( iCalls.Count() ); - CVtCtlVideoCall* call = NULL; - if ( aId == KActiveSessionId && count == 1 ) - { - call = iCalls[0]; - count = 0; - } - while ( count-- ) - { - call = iCalls[count]; - const CVtCtlVideoCall::TVtCtlCallInfo& info = - call->CallInfo(); - if ( aId == info.iId ) - { - count = 0; // break - } - else - { - call = NULL; - } - } - __VTPRINT2( DEBUG_SESSION | DEBUG_DETAIL, - "SesCont.FindCall by id --> %d",(TInt)call ) - __VTPRINTEXIT( "CVtCtlSessionContainer.FindCall" ) - return call; - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::Sessions -// Returns sessions. -// ----------------------------------------------------------------------------- -// -TInt CVtCtlSessionContainer::GetSessions( RVtCtlSessionIdArray& aArray ) const - { - __VTPRINTENTER( "CVtCtlSessionContainer.GetSessions" ) - const TInt count( iCalls.Count() ); - for ( TInt ii = 0; ii < count; ii++ ) - { - TInt err( aArray.Append( iCalls[ii]->CallInfo().iId ) ); - if ( err != KErrNone ) - { - __VTPRINTEXIT( "CVtCtlSessionContainer.GetSessions" ) - return err; - } - } - __VTPRINTEXIT( "CVtCtlSessionContainer.GetSessions" ) - return count; - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::DestructCall -// Destructs call -// ----------------------------------------------------------------------------- -// -void CVtCtlSessionContainer::DestructCall( TVtCtlSessionId aId ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.DestructCall" ) - TInt count( iCalls.Count() ); - CVtCtlVideoCall* call = NULL; - while ( count-- ) - { - call = iCalls[count]; - const CVtCtlVideoCall::TVtCtlCallInfo& info = - call->CallInfo(); - if ( aId == info.iId ) - { - delete call; - iCalls.Remove( count ); - count = 0; // break - } - } - __VTPRINTEXIT( "CVtCtlSessionContainer.DestructCall" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::CheckCallTypeL -// Checks call type -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -TBool CVtCtlSessionContainer::CheckCallTypeL( - RMobileCall& aCall, - const TName& aName ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.CheckCallTypeL" ) - User::LeaveIfError( aCall.OpenExistingCall( iLine, aName ) ); - TBool typeOk( EFalse ); - RMobileCall::TMobileCallDataCapsV1 caps; - RMobileCall::TMobileCallDataCapsV1Pckg pckg( caps ); - User::LeaveIfError( aCall.GetMobileDataCallCaps( pckg ) ); - __VTPRINT3( DEBUG_SESSION | DEBUG_DETAIL, - "SesCont.ChkCall speedCaps=%d,protCaps=%d", - caps.iSpeedCaps, caps.iProtocolCaps ) - if ( caps.iProtocolCaps & RMobileCall::KCapsIsdnMultimedia ) - { - typeOk = ETrue; - } - else - { - aCall.Close(); - } - __VTPRINTEXIT( "CVtCtlSessionContainer.CheckCallTypeL" ) - return typeOk; - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::InitCallL -// Initializes call if it is video call. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -TBool CVtCtlSessionContainer::InitCallL( const TName& aCallName ) - { - __VTPRINTENTER( "CVtCtlSessionContainer.InitCallL" ) - RMobileCall* mobilecall = new ( ELeave ) RMobileCall; - CleanupStack::PushL( mobilecall ); - - // check that type is multimedia call - const TBool callTypeOk = CheckCallTypeL( *mobilecall, aCallName ); - if ( callTypeOk ) - { - __VTPRINT( DEBUG_SESSION | DEBUG_DETAIL, - "SesCont.InitCall ok" ) - TVtCtlSessionId id = iSessionIds.Create(); - CVtCtlVideoCall* call = CVtCtlVideoCall::NewL( - iLine, id, *this ); - CleanupStack::PushL( call ); - User::LeaveIfError( iCalls.Append( call ) ); - call->InitializeCallL( *mobilecall ); // takes ownership - const CVtCtlVideoCall::TVtCtlCallInfo& callInfo = call->CallInfo(); - iObserver.HandleCallStatusChangeL( - id, callInfo.iStatus, callInfo.iPreviousStatus ); - CleanupStack::Pop(2); // mobilecall, call - } - else - { - CleanupStack::PopAndDestroy(); // mobilecall - } - __VTPRINTEXIT( "CVtCtlSessionContainer.InitCallL" ) - return callTypeOk; - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::TVtCtlSessionIdentities::TVtCtlSessionIdentities -// C++ constructor -// ----------------------------------------------------------------------------- -// -CVtCtlSessionContainer::TVtCtlSessionIdentities::TVtCtlSessionIdentities() - : iCurrentId( 0 ) - { - __VTPRINTENTER( "TVtCtlSessionIdentities.TVtCtlSessionIdentities" ) - __VTPRINTEXIT( "TVtCtlSessionIdentities.TVtCtlSessionIdentities" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::TVtCtlSessionIdentities::Create -// Increment session id. -// ----------------------------------------------------------------------------- -// -TVtCtlSessionId CVtCtlSessionContainer::TVtCtlSessionIdentities::Create() - { - __VTPRINTENTER( "TVtCtlSessionIdentities.Create" ) - __VTPRINTEXIT( "TVtCtlSessionIdentities.Create" ) - return ++iCurrentId; - } - -// ----------------------------------------------------------------------------- -// CVtCtlSessionContainer::TVtCtlSessionIdentities::Current -// Return current session id. -// ----------------------------------------------------------------------------- -// -TVtCtlSessionId CVtCtlSessionContainer::TVtCtlSessionIdentities::Current() const - { - __VTPRINTENTER( "TVtCtlSessionIdentities.Current" ) - __VTPRINTEXIT( "TVtCtlSessionIdentities.Current" ) - return iCurrentId; - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/CVtCtlVideoCall.cpp --- a/vtengines/videoteleng/CallCtrl/Src/CVtCtlVideoCall.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,242 +0,0 @@ -/* -* Copyright (c) 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: Video call abstraction implementation. -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "CVtCtlVideoCall.h" -#include "CVtCtlCallStatusMonitor.h" -#include "VtCtlPanic.h" -#include "cvtlogger.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::CVtCtlVideoCall -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CVtCtlVideoCall::CVtCtlVideoCall( - RMobileLine& aDataLine, - TVtCtlSessionId aId, - MVtCtlCallStatusObserver& aObserver ) - : iLine( aDataLine ), iObserver( aObserver ) - { - __VTPRINTENTER( "CVtCtlVideoCall.CVtCtlVideoCall" ) - iCallInfo.iId = aId; - __VTPRINTEXIT( "CVtCtlVideoCall.CVtCtlVideoCall" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CVtCtlVideoCall* CVtCtlVideoCall::NewL( - RMobileLine& aDataLine, - TVtCtlSessionId aId, - MVtCtlCallStatusObserver& aObserver ) - { - __VTPRINTENTER( "CVtCtlVideoCall.NewL" ) - CVtCtlVideoCall* self = new( ELeave ) - CVtCtlVideoCall( aDataLine, aId, aObserver ); - __VTPRINTEXIT( "CVtCtlVideoCall.NewL" ) - return self; - } - - -// Destructor -CVtCtlVideoCall::~CVtCtlVideoCall() - { - __VTPRINTENTER( "CVtCtlVideoCall.~" ) - __VTPRINT( DEBUG_SESSION | DEBUG_DESTRUCT, "VtCtl:Call~") - delete iStatusMonitor; - if ( iCall ) - { - iCall->Close(); - delete iCall; - } - __VTPRINTEXIT( "CVtCtlVideoCall.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::CallInfo -// Returns call information containing information not associated to ETel -// ----------------------------------------------------------------------------- -// -const CVtCtlVideoCall::TVtCtlCallInfo& CVtCtlVideoCall::CallInfo() const - { - return iCallInfo; - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::MobileInfo -// Returns ETel call information. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -const RMobileCall::TMobileCallInfoV1& CVtCtlVideoCall::MobileInfo() const - { - return iMobileCallInfo; - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::InitializeCallL -// Opens call subsession and starts status monitor. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CVtCtlVideoCall::InitializeCallL( - RMobileCall& aCall ) - { - __VTPRINTENTER( "CVtCtlVideoCall.InitializeCallL" ) - __ASSERT_ALWAYS( iLine.SubSessionHandle(), - Panic( EVtCtlPanicLineHandleNull ) ); - iCall = &aCall; - iStatusMonitor = new ( ELeave ) CVtCtlCallStatusMonitor( *iCall, *this ); - iStatusMonitor->Start(); - UpdateCallInfo(); - iCallInfo.iPreviousStatus = MVtCtlCallControl::EIdle; - iCallInfo.iStatus = - CVtCtlCallStatusMonitor::MapState( iMobileCallInfo.iStatus ); - - __VTPRINTEXIT( "CVtCtlVideoCall.InitializeCallL" ) - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::UpdateCallInfo -// Updates call information from ETel -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -TInt CVtCtlVideoCall::UpdateCallInfo() - { - __VTPRINTENTER( "CVtCtlVideoCall.UpdateCallInfo" ) - __ASSERT_ALWAYS( iCall->SubSessionHandle(), - Panic( EVtCtlPanicCallHandleNull ) ); - - RMobileCall::TMobileCallInfoV1Pckg pckg( iMobileCallInfo ); - const TInt err( iCall->GetMobileCallInfo( pckg ) ); - __VTPRINT2( DEBUG_SESSION, "VtCtl:Call. dir %d", - iMobileCallInfo.iRemoteParty.iDirection ) - __VTPRINT2( DEBUG_SESSION, "VtCtl:Call. status %d", - iMobileCallInfo.iStatus ) -#ifdef VTDEBUG - RDebug::Print(_L(" VtCtl.RemoteNumber=%S"), - &iMobileCallInfo.iRemoteParty.iRemoteNumber.iTelNumber ); -#endif - __VTPRINTEXITR( "CVtCtlVideoCall.UpdateCallInfo err=%d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::GetDuration -// Returns call duration -// ----------------------------------------------------------------------------- -// -TInt CVtCtlVideoCall::GetDuration( TVtCtlDuration& aDuration ) - { - __VTPRINTENTER( "CVtCtlVideoCall.GetDuration" ) - const TInt res( UpdateCallInfo() ); - if ( res == KErrNone ) - { - aDuration = iMobileCallInfo.iDuration; - } - __VTPRINTEXITR( "CVtCtlVideoCall.GetDuration err=%d", res ) - return res; - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::GetCallState -// Gets call state -// ----------------------------------------------------------------------------- -// -TInt CVtCtlVideoCall::GetCallState( - MVtCtlCallControl::TVtCtlState& aState ) - { - __VTPRINTENTER( "CVtCtlVideoCall.GetCallState" ) - RMobileCall::TMobileCallStatus status; - aState = iCallInfo.iStatus; - const TInt res( iCall->GetMobileCallStatus( status ) ); - - // update internal state only if differs from previous state - if ( res == KErrNone && - CVtCtlCallStatusMonitor::IsLegalNewState( - status, iMobileCallInfo.iStatus ) ) - { - // update 1) internal values, and - iMobileCallInfo.iStatus = status; - iCallInfo.iPreviousStatus = iCallInfo.iStatus; - iCallInfo.iStatus = CVtCtlCallStatusMonitor::MapState( status ); - - // 2) return value - aState = iCallInfo.iStatus; - } - __VTPRINTEXITR( "CVtCtlVideoCall.GetCallState err=%d", res ) - return res; - } - -// ----------------------------------------------------------------------------- -// CVtCtlVideoCall::HandleCallStatusChangeL -// Handles status change -// ----------------------------------------------------------------------------- -// -void CVtCtlVideoCall::HandleCallStatusChangeL( - TVtCtlSessionId , - MVtCtlCallControl::TVtCtlState aStatus, - MVtCtlCallControl::TVtCtlState aPreviousStatus ) - { - __VTPRINTENTER( "CVtCtlVideoCall.HandleCallStatusChangeL" ) - // If monitor has received outdated notification ignore the event. - // This may happen if call status has asked from ETel and there - // are still old completed status notifications that are not handled. - // => contradition between internal status in this object and one - // received from ststus monitor. Ignore it. - if ( aStatus > iCallInfo.iStatus || aStatus == MVtCtlCallControl::EIdle ) - { - iCallInfo.iPreviousStatus = iCallInfo.iStatus; - iCallInfo.iStatus = aStatus; - - iObserver.HandleCallStatusChangeL( - iCallInfo.iId, - aStatus, - aPreviousStatus ); - } - __VTPRINTEXIT( "CVtCtlVideoCall.HandleCallStatusChangeL" ) - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/CallCtrl/Src/VtCtlPanic.cpp --- a/vtengines/videoteleng/CallCtrl/Src/VtCtlPanic.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 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: Call control panic -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "VtCtlPanic.h" - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Panic -// -// ----------------------------------------------------------------------------- -// -void Panic( TVtCtlPanic aPanic ) - { - User::Panic( KVtCtlPanicCategory(), aPanic ); - } -#pragma CTC ENDSKIP -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/EABI/videotelengU.DEF --- a/vtengines/videoteleng/EABI/videotelengU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -EXPORTS - _ZN11CVtEngModel4NewLER19MVtEngEventObserverR21MVtEngCommandObserver @ 1 NONAME - _ZN11CVtEngModel9ExtensionERK4TUid @ 2 NONAME - _ZNK11CVtEngModel14CommandHandlerEv @ 3 NONAME - _ZNK11CVtEngModel5AudioEv @ 4 NONAME - _ZNK11CVtEngModel5MediaEv @ 5 NONAME - _ZNK11CVtEngModel7SessionEv @ 6 NONAME - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Group/bld.inf --- a/vtengines/videoteleng/Group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 2004 - 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: videoteleng build information file. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_TESTEXPORTS - -PRJ_EXPORTS - - -../Inc/Base/VtEngEvents.h |../../../inc/vtengevents.h -../Inc/Base/CVtEngModel.h |../../../inc/cvtengmodel.h -../Inc/Base/MVtEngEventObserver.h |../../../inc/mvtengeventobserver.h -../Inc/Commands/vtengcommands.h |../../../inc/vtengcommands.h -../Inc/Commands/MVtEngCommandHandler.h |../../../inc/mvtengcommandhandler.h -../Inc/Commands/MVtEngCommandObserver.h |../../../inc/mvtengcommandobserver.h -../Inc/Session/MVtEngSessionInfo.h |../../../inc/mvtengsessioninfo.h -../Inc/Audio/MVtEngAudio.h |../../../inc/mvtengaudio.h -../Inc/Media/MVtEngMedia.h |../../../inc/mvtengmedia.h -../Inc/Media/MVtEngFrameObserver.h |../../../inc/mvtengframeobserver.h -../Inc/Media/TVtEngRendering.h |../../../inc/tvtengrendering.h -../Inc/Media/TVtEngRendering.inl |../../../inc/tvtengrendering.inl -../Inc/Media/TVtEngRenderingDSA.h |../../../inc/tvtengrenderingdsa.h -../Inc/Media/TVtEngRenderingDSA.inl |../../../inc/tvtengrenderingdsa.inl -../Inc/Media/TVtEngRenderingDP.h |../../../inc/tvtengrenderingdp.h -../Inc/Media/TVtEngRenderingDP.inl |../../../inc/tvtengrenderingdp.inl -../Inc/Media/TVtEngRenderingNGA.h |../../../inc/tvtengrenderingnga.h -../Inc/Media/TVtEngRenderingNGA.inl |../../../inc/tvtengrenderingnga.inl -../Inc/Extensions/MVtEngCameraPreferences.h |../../../inc/mvtengcamerapreferences.h -../Inc/Extensions/mvtengrecord2file.h |../../../inc/mvtengrecord2file.h - - -../data/videoteleng_stub.SIS /epoc32/data/z/system/install/videoteleng_stub.sis - -../Logger/Inc/cvtlogger.h |../../../inc/cvtlogger.h -../Logger/Inc/vtlogger.hrh |../../../inc/vtlogger.hrh - -// Export IBY file -../Rom/videoteleng.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videoteleng.iby) - -PRJ_MMPFILES - -../Logger/Group/vtlogger.mmp -../CallCtrl/Group/videocallctrl.mmp -../Group/videoteleng.mmp - - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Group/videoteleng.mmp --- a/vtengines/videoteleng/Group/videoteleng.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) 2004 - 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: This is project specification file for the Videoteleng. -* -*/ - -#include -#include "../Inc/Base/VtEngDefs.hrh" - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -// default vendor id -VENDORID VID_DEFAULT - -TARGET videoteleng.dll -TARGETTYPE dll -UID 0x1000008d 0x101F867F - -SOURCEPATH ../Src/Audio -SOURCE CVtEngAudioHandler.cpp - -SOURCEPATH ../Src/Base -SOURCE CVtEngModel.cpp -SOURCE CVtEngEventManager.cpp -SOURCE CVtEngHandlerContainer.cpp -SOURCE CVtEngSettings.cpp -SOURCE CVtEngPubSubsListener.cpp -SOURCE cvtengincomingcallmonitor.cpp - -SOURCE cvtengmdtrcommandsender.cpp -SOURCE cvtengmdtrmessagelistener.cpp -SOURCE cvtengmediatorservice.cpp -SOURCE CVtEngAccessoryHandler.cpp - -SOURCE CVtEngCRProxy.cpp -SOURCE CVtEngCRObserverItem.cpp -SOURCE CVtEngInitializer.cpp -SOURCE CVtEngSATClient.cpp -SOURCE CVtEngDeviceLockMonitor.cpp -SOURCE VtEngUtils.cpp - -SOURCEPATH ../Src/Commands -SOURCE CVtEngCommandHandler.cpp -SOURCE CVtEngOperation.cpp -SOURCE cvtenginternaloperation.cpp -SOURCE TVtEngOperationUtils.cpp - -SOURCEPATH ../Src/Extensions -SOURCE CVtEngExtensions.cpp -SOURCE CVtEngExtensionBase.cpp -SOURCE CVtEngCameraPreferences.cpp -#if defined (RD_VT_RTF) -SOURCE cvtengrecord2file.cpp -SOURCE cvtengr2ftoneplayer.cpp -#endif // RD_VT_RTF - - -SOURCEPATH ../Src/Media -SOURCE CVtEngMediaHandler.cpp -SOURCE CVtEngDrawDP.cpp -SOURCE CVtEngDrawDSA.cpp -SOURCE CVtEngDrawNGA.cpp -SOURCE CVtEngDtmfHandler.cpp -SOURCE CVtEngLocalVideo.cpp -SOURCE CVtEngRemoteVideo.cpp -SOURCE CVtEngImageScaler.cpp - -SOURCEPATH ../Src/Session -SOURCE CVtEngSessionHandler.cpp - -SOURCEPATH ../Src/State -SOURCE CVtEngStateManager.cpp -SOURCE CVtEngStateAlerting.cpp -SOURCE CVtEngStateBase.cpp -SOURCE CVtEngStateClearing.cpp -SOURCE CVtEngStateConnected.cpp -SOURCE CVtEngStateIdle.cpp -SOURCE CVtEngStateInitializing.cpp -SOURCE CVtEngStateNegotiating.cpp -SOURCE CVtEngStateOpen.cpp -SOURCE CVtEngStateRinging.cpp -SOURCE CVtEngDtmfState.cpp -SOURCE CVtEngDtmfIdle.cpp -SOURCE CVtEngDtmfSending.cpp -SOURCE CVtEngDtmfBuffered.cpp - -DOCUMENT ../../Group/bld.inf - -USERINCLUDE ../Inc/Base -USERINCLUDE ../Inc/Audio -USERINCLUDE ../Inc/Commands -USERINCLUDE ../Inc/Session -USERINCLUDE ../Inc/Media -USERINCLUDE ../Inc/State -USERINCLUDE ../Inc/Extensions -USERINCLUDE ../CallCtrl/Inc - - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE /epoc32/include/mmf/common -SYSTEMINCLUDE /epoc32/include/mmf/server - -LIBRARY euser.lib -LIBRARY fbscli.lib -LIBRARY ws32.lib -LIBRARY videosource.lib -LIBRARY bitgdi.lib -LIBRARY displaysink.lib -LIBRARY featmgr.lib -LIBRARY phoneclient.lib -LIBRARY dsclient.lib -LIBRARY efsrv.lib -LIBRARY bafl.lib -LIBRARY sysutil.lib -LIBRARY centralrepository.lib -LIBRARY cenrepnotifhandler.lib - -LIBRARY commonengine.lib -LIBRARY mediaclientaudio.lib - -LIBRARY accclient.lib -LIBRARY telephonyaudiorouting.lib - -LIBRARY vtimagetransforms.lib - -DEBUGLIBRARY vtlogger.lib - - -LIBRARY satclient.lib - -LIBRARY esock.lib // BigEndian - -LIBRARY mmfdevsound.lib - -LIBRARY gdi.lib - -LIBRARY mediatorclient.lib -LIBRARY videotelproto.lib -LIBRARY surfaceupdateclient.lib -LIBRARY surfacemanager.lib -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Audio/CVtEngAudioHandler.h --- a/vtengines/videoteleng/Inc/Audio/CVtEngAudioHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,304 +0,0 @@ -/* -* Copyright (c) 2004-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: Audio handler class. -* -*/ - - - -#ifndef CVTENGAUDIOHANDLER_H -#define CVTENGAUDIOHANDLER_H - -// INCLUDES -#include -#include "MVtEngAudio.h" -#include "CVtEngOperation.h" -#include "MVtEngSettingPSObserver.h" -#include "CVTEngPubSubsListener.h" -#include "CVtEngAccessoryHandler.h" -#include "MVtEngAccessoryObserver.h" -// new audio routing -#include "telephonyaudiorouting.h" -#include "mtelephonyaudioroutingobserver.h" -#include -#include - -// FORWARD DECLARATIONS -class CVtEngStateManager; -class CRoutingEnabler; - -/** -* Class for audio handling. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngAudioHandler ) - : public CBase, - public MVtEngAudio, - private MVtEngAccessoryObserver, - private MTelephonyAudioRoutingObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtEngAudioHandler* NewL(); - - /** - * Destructor. - */ - virtual ~CVtEngAudioHandler(); - - public: // New functions. - - /** - * Performs on operation in the handler. - * @param operation to be performed on the handler - */ - void HandleL( CVtEngOperation& aOperation ); - - /** - * Creates/releases temporary DevSound instance. - * @param aEnable - * ETrue creates devSound - * EFalse destructs devSound - */ - void SetRoutingEnablerL( const TBool aEnable ); - - /** - * Increases audio volume - */ - TBool IncreaseVolume(); - - /** - * Decreases audio volume - */ - TBool DecreaseVolume(); - - private: // Functions from base classes. - - // from MVtEngAccessoryObserver - - /** @see MVtEngAccessoryObserver */ - virtual void AccessoryModeChanged( const TAccMode& aMode, - const TBool aActivated ); - - // from MTelephonyAudioRoutingObserver - - /** @see MTelephonyAudioRoutingObserver::AvailableOutputsChanged */ - virtual void AvailableOutputsChanged( CTelephonyAudioRouting& aTelephonyAudioRouting ); - - /** @see MTelephonyAudioRoutingObserver::OutputChanged */ - virtual void OutputChanged( CTelephonyAudioRouting& aTelephonyAudioRouting ); - - /** @see MTelephonyAudioRoutingObserver::SetOutputComplete */ - virtual void SetOutputComplete( CTelephonyAudioRouting& aTelephonyAudioRouting, - TInt aError ); - - public: // Functions from base classes. - - /** @see MVtEngAudio::GetRoutingState. */ - virtual TInt GetRoutingState( TAudioRoutingState& aAudioRoutingState ); - - /** @see MVtEngAudio::GetRoutingAvailability. */ - virtual TInt GetRoutingAvailability( - const TAudioRoutingState aAudioRoutingState, - TBool& aAvailable ); - - /** @see MVtEngAudio::GetHeadsetType. */ - virtual TInt GetHeadsetType( TWiredHeadsetType& aHeadsetType ); - - /** @see MVtEngAudio::OutputVolume. */ - virtual TInt OutputVolume( const TBool aHandsetVolume ) const; - - private: - - /** - * C++ default constructor. - */ - CVtEngAudioHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Completes operation. - * @param aResult error code - */ - void CompleteOperation( TInt aResult ); - - /** - * Sets loudspeaker on / off. - * @param aTurnOn ETrue if on, EFalse if off - * @param aShowNote ETrue if note is allowed to be shown, EFalse if not - */ - void SetLoudspeakerL( TBool aTurnOn, TBool aShowNote ); - - /** - * Sets Bluetooth on / off. - * @param aTurnOn ETrue if on, EFalse if off - */ - void SetBluetoothL( TBool aTurnOn ); - - /** - * Updates current volume that should be used. - */ - void UpdateCurrentVolume(); - - /** - * Checks if given audio output route is available. - * @return ETrue if given audio output route is available - */ - TBool IsOutputAvailable( const CTelephonyAudioRouting::TAudioOutput aOutput ); - - /** - * Modifies the volume by aDelta. - */ - TBool AdjustVolume( const TInt aDelta ); - - private: // Data - - // Enumeration flags used in the implementation. - enum - { - // Handset - EFlagHandset = 1, - // Loudspeaker - EFlagLoudspeaker = 2, - // Bluetooth handsfree - EFlagBT = 4, - // Wired headset - EFlagWiredHeadset = 8 - }; - - // Accessory mode listener class. - CVtEngAccessoryHandler* iAccHandler; - - // Contains the current accessory and it's audio mode. - TAccPolAccessoryMode iAccMode; - - // Pointer to telephony audio routing instance - CTelephonyAudioRouting* iTelephonyAudioRouting; - - // Current audio routing state - CTelephonyAudioRouting::TAudioOutput iCurrentAudioOutput; - - // Holds old routing state. - TAudioRoutingState iOldAudioRoutingState; - - // Pointer to an operation. - CVtEngOperation* iOperation; - - /** - * For enabling audio routing before actual - * DevSound for play is created. - */ - CRoutingEnabler* iRoutingEnabler; - }; - -/** -* Class for handling dummy DevSound. It enables audio routing -* before video call is connected. Proper devSound instance -* must exist in order to control audio routing. Actual instance -* is created in protocol in later phase of the stack -* initialization and one in here is deleted. -*/ -NONSHARABLE_CLASS( CRoutingEnabler ) : - public CBase, - private MDevSoundObserver - { - public: // constructor and destructor - - // Constructor - static CRoutingEnabler* NewL(); - - // Destructor - ~CRoutingEnabler(); - - private: // constructors - - // c++ constructor - CRoutingEnabler(); - - /** - * Creates and starts devSound. - */ - void StartL(); - - public: // new functions - - public: // from MDevSoundObserver - - /** - * @see MDevSoundObserver - */ - virtual void InitializeComplete( TInt aError ); - - /** - * @see MDevSoundObserver - */ - virtual void ToneFinished( TInt aError ); - - /** - * @see MDevSoundObserver - */ - virtual void BufferToBeFilled( CMMFBuffer* aBuffer ); - - /** - * @see MDevSoundObserver - */ - virtual void PlayError( TInt aError ); - - /** - * @see MDevSoundObserver - */ - virtual void BufferToBeEmptied( CMMFBuffer* aBuffer ); - - /** - * @see MDevSoundObserver - */ - virtual void RecordError( TInt aError ); - - /** - * @see MDevSoundObserver - */ - virtual void ConvertError( TInt aError ); - - /** - * @see MDevSoundObserver - */ - virtual void DeviceMessage( - TUid aMessageType, - const TDesC8& aMsg ); - - private: - // Temporary DevSound instance to enable audio routing - // before actual instance in protocol is ready. - // Routing can be changed already when MO call is alerting. - CMMFDevSound* iDevSound; - - // Variable to detect failure in Devsound initialization or PlayInitL(). - // If failure happens, Devsound instance is deleted outside callback - // in desctructor. ETrue; failure happened, EFalse; all OK - TBool iDevsoundInitializeFailure; - }; - - -#endif // CVTENGAUDIOHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Audio/MVtEngAudio.h --- a/vtengines/videoteleng/Inc/Audio/MVtEngAudio.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* -* 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: Audio volume and routing interface -* -*/ - - - -#ifndef MVTENGAUDIO_H -#define MVTENGAUDIO_H - -// INCLUDES -#include - -/** -* Interface for audio related information. -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngAudio - { - public: - - /** - * Current routing state - */ - enum TAudioRoutingState - { - EAudioHandset, - EAudioLoudspeaker, - EAudioBT, - EAudioWiredHeadset - }; - - /** - * Wired headset type - */ - enum TWiredHeadsetType - { - EWiredHeadset, - EWiredLoopset, - EWiredTty, - EWiredNone - }; - - /** - * Audio routing setting to be used when changing - * audio routing from client. - */ - enum TVtEngRoutingSetting - { - EActivateHandsfree, - EDeactivateHansfree, - EActivateBT, - EDeactivateBT - }; - - /** - * Speaker volume levels for Handset and Handsfree. - */ - struct TVtEngOutputVolume - { - TInt iHandsetVolume; - TInt iHandsfreeVolume; - }; - - /** - * Returns target where audio is currently routed to. - * @param aAudioRoutingState routing target - * @return Symbian OS error code - */ - virtual TInt GetRoutingState( - TAudioRoutingState& aAudioRoutingState ) = 0; - - /** - * Returns if routing to specified target can be - * done. - * @param aAudioRoutingState routing target - * @param aAvailable ETrue if possible to do - * @return Symbian OS error code - */ - virtual TInt GetRoutingAvailability( - const TAudioRoutingState aAudioRoutingState, - TBool& aAvailable ) = 0; - - /** - * Returns type of wired headset - * @return Symbian OS error code. - */ - virtual TInt GetHeadsetType( - TWiredHeadsetType& aHeadsetType ) = 0; - - /** - * Returns speaker volume - * @param aHandsetVolume if ETrue returns handset volume, - * otherwise loudspeaker volume. - * @return output volume ranging from 1 to 10 or Symbian OS error code. - */ - virtual TInt OutputVolume( - const TBool aHandsetVolume ) const = 0; - - - }; - -#endif // MVTENGAUDIO_H diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVTEngPubSubsListener.h --- a/vtengines/videoteleng/Inc/Base/CVTEngPubSubsListener.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2004-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: Listener for Publish and subscribe data. -* -*/ - - -#ifndef CVTENGPUBSUBSGSETTINGS_H -#define CVTENGPUBSUBSGSETTINGS_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -class MVtEngSettingPSObserver; - -// CLASS DECLARATION - -/** -* RProperty poller. -* -* @lib videoteleng.lib -* @since Series 60 2.8 -*/ -NONSHARABLE_CLASS( CVtEngPubSubsListener ) : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUid the Uid to use - * @param aKey item's key - * @param aObserver callback interface for notification - * @return instance of CVtEngPubSubsListener - */ - static CVtEngPubSubsListener* NewL( const TUid aUid, const TInt aKey, - MVtEngSettingPSObserver* aObserver ); - - /** - * Destructor. - */ - virtual ~CVtEngPubSubsListener(); - - public: // New functions. - - /** - * Gets integer value from P & S. - * @param aVal a value in return - * @return error code - */ - TInt Get( TInt& aVal ); - - /** - * Gets 8 bit string value from P&S. - * @param aVal a value in return - * @return error code - */ - TInt Get( TDes8& aVal ); - - /** - * Gets 16 bit descriptor value from P&S. - * @param aVal a value in return - * @return error code - */ - TInt Get( TDes16& aVal ); - - private: // New functions. - - /** - * Starts the listening (RunL). - */ - void StartListening(); - - private: // From CActive. - - /** @see CActive::RunL */ - virtual void RunL(); - - /** @see CActive::Cancel */ - virtual void DoCancel(); - - /** @see CActive::RunError */ - virtual TInt RunError( TInt aError ); - - private: - - /** - * C++ default constructor. - * @param aUid the Uid to use - * @param aKey item's key - * @param aObserver callback interface for notification - */ - CVtEngPubSubsListener( const TUid aUid, TInt aKey, - MVtEngSettingPSObserver* aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // UID of the monitored item. - TUid iUid; - - // ID of the monitored item. - TInt iId; - - // Property to subscribe to. - RProperty iProperty; - - // The notification interface. - MVtEngSettingPSObserver* iCallback; - }; - -#endif // CVTENGPUBSUBSGSETTINGS_H -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngAccessoryHandler.h --- a/vtengines/videoteleng/Inc/Base/CVtEngAccessoryHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Accessory handler. -* -*/ - - - -#ifndef CVTENGACCHANDLER_H -#define CVTENGACCHANDLER_H - -// INCLUDES -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class MVtEngAccessoryObserver; - -// CLASS DECLARATION - -/** -* Accessory mode listener for video telephony. -* -* @lib videoteleng -* @since 3.0 -*/ -NONSHARABLE_CLASS( CVtEngAccessoryHandler ) : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - ¨* @return instance of CVtEngAccessoryHandler - */ - static CVtEngAccessoryHandler* NewL( ); - - /** - * Destructor. - */ - virtual ~CVtEngAccessoryHandler(); - - public: // From base classes. - - /** - * Handles accessory mode changes. - */ - void RunL(); - - /** - * Cancels accessory mode monitoring. - */ - void DoCancel(); - - /** - * Handles exceptions in RunL. - * @param aError error code. - * @return error code. - */ - TInt RunError( TInt aError ); - - public: // New functions - - /** - * Sets a new listener interested in accessory changes. - * @param aObserver call back interface for notifications. - */ - void RegisterObserverL( MVtEngAccessoryObserver* aObserver ); - - /** - * Unregisters a listener. - * NOTE, do not call this from NotifyObserversL! - * @param aObserver call back interface for notifications. - */ - void RemoveObserver( MVtEngAccessoryObserver* aObserver ); - - /** - * Returns current accessory mode. - * @param aAccessoryMode accessory mode in return - * @return Symbian error code - */ - TInt AccessoryMode( TAccPolAccessoryMode& aAccessoryMode ) const; - - private: // New functions. - - /** - * Removes all observers - */ - void RemoveAllObservers(); - - /** - * Sets object active and renews subscription. - */ - void StartListening(); - - /** - * Notifies all registered listeners. - */ - void NotifyObserversL(); - - private: // Constructors. - - /** - * C++ default constructor. - */ - CVtEngAccessoryHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( ); - - private: // Data - // Current accessory mode. - TAccPolAccessoryMode iCurrentAccessoryMode; - - // Owned array of accessory mode observers. - RPointerArray< MVtEngAccessoryObserver > iAccessoryObservers; - - // Owned accessory server session. - RAccessoryServer iAccessoryServer; - - // Owned accessory mode subsession. - RAccessoryMode iAccessoryMode; - - // Accessory mode structure. - TAccPolAccessoryMode iMode; - - }; - -#endif // CVTENGACCHANDLER_H -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngCRObserverItem.h --- a/vtengines/videoteleng/Inc/Base/CVtEngCRObserverItem.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,199 +0,0 @@ -/* -* Copyright (c) 2004-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: Central repository observer class. -* -*/ - - -#ifndef CVTENGCROBSITEM_H -#define CVTENGCROBSITEM_H - -// INCLUDES -#include -#include -#include "cenrepnotifyhandler.h" - -// FORWARD DECLARATIONS -class MVtEngCRSettingObserver; - -// CLASS DECLARATION - -/** -* Central repository listener for video telephony. -* -* @lib videoteleng.lib -* @since Series 60 3.0 -*/ -NONSHARABLE_CLASS( CVtEngCRObserverItem ) : public CBase, - public MCenRepNotifyHandlerCallback - { - public: // Constructors and destructor. - - /** - * Two-phased constructor. - * @param aObserver the real observer to notify - * @param aUid UID for this listener - * @param aKey ID for this listener - * @param aType type of information interested in - * @return this CR observer - */ - static CVtEngCRObserverItem* NewL( - MVtEngCRSettingObserver* aObserver, - TUid aUid, TUint32 aKey, - CCenRepNotifyHandler::TCenRepKeyType aType ); - - /** - * Destructor. - */ - virtual ~CVtEngCRObserverItem(); - - public: // From MCenRepNotifyHandlerCallback. - - /** - * Callback to notify changed integer setting. - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyInt( TUint32 aId, TInt aNewValue ); - - /** - * Callback to notify changed real setting. - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyReal( TUint32 aId, TReal aNewValue ); - - /** - * Callback to notify changed string setting. - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyString( TUint32 aId, const TDesC16& aNewValue ); - - /** - * Callback to notify changed binary setting. - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyBinary( TUint32 aId, const TDesC8& aNewValue ); - - /** - * Callback to notify changed setting. - * @param aId changed id - */ - void HandleNotifyGeneric( TUint32 aId); - - /** - * Callback to notify of an occurred error. - * @param aId changed id - * @param aError - * @param aHandler which handler - */ - void HandleNotifyError( TUint32 aId, TInt aError, - CCenRepNotifyHandler* aHandler ); - - public: // New functions. - - /** - * Checks if this one matches given UID and key. - * @param aUID UID to use in comparison - * @param aKey key to use in comparison - * @return ETrue if match - */ - TBool Offer( const TUid aUid, const TUint32 aKey ) const; - - /** - * Checks if this one matches given UID. - * @param aUID UID to use in comparison - * @return ETrue if match - */ - TBool Offer( const TUid aUid ) const; - - /** - * Checks if this one matches given key. - * @param aKey key to use in comparison - * @return ETrue if match - */ - TBool Offer( const TUint32 aKey ) const; - - /** - * Returns UID of this handler. - * @return UID - */ - TUid Uid() const; - - /** - * Returns key of this handler. - * @return key - */ - TUint32 Key() const; - - /** - * Returns notifier of this handler. - * @return notifier - */ - CCenRepNotifyHandler* Notifier() const; - - /** - * Returns type of this handler. - * @return type - */ - CCenRepNotifyHandler::TCenRepKeyType Type() const; - - /** - * Returns observer of this handler. - * @return observer - */ - MVtEngCRSettingObserver* Observer() const; - - /** - * Sets CenRep notifier - * @param notifier to set. - */ - void SetCenRepNotifier( CCenRepNotifyHandler* aNotifier ); - - - private: // Constructor. - - /** - * C++ default constructor. - * @param aObserver the real observer to notify - * @param aUid UID for this listener - * @param aKey ID for this listener - * @param aType type of information interested in - */ - CVtEngCRObserverItem( MVtEngCRSettingObserver* Observer, - TUid aUid, TUint32 aKey, - CCenRepNotifyHandler::TCenRepKeyType aType ); - - private: // Data - - // Callback for notifications. - MVtEngCRSettingObserver* iObserver; - - // UID for this item. - TUid iUid; - - // Key for this item. - TUint32 iKey; - - // Type of listener. - CCenRepNotifyHandler::TCenRepKeyType iType; - - // Central repository notifier. - CCenRepNotifyHandler* iNotifier; -}; -#endif // CVTENGCROBSITEM_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngCRProxy.h --- a/vtengines/videoteleng/Inc/Base/CVtEngCRProxy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,237 +0,0 @@ -/* -* Copyright (c) 2004-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: Central repository proxy, which is used by all CR dependent. -* -*/ - - - -#ifndef CVTENGCRPROXY_H -#define CVTENGCRPROXY_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -class CVtEngCRObserverItem; -class CRepository; -class MVtEngCRSettingObserver; - -// CLASS DECLARATION - -/** -* Central repository interface for video telephony. -* -* @lib videoteleng.lib -* @since Series 60 3.0 -*/ -NONSHARABLE_CLASS( CVtEngCRProxy ) : public CBase - { - public: // Data structures. - - // Internal data structure for storing CR sessions. - NONSHARABLE_CLASS( CCRSession ) : public CBase - { - public: - /** - * Destructor needed. - */ - ~CCRSession(); - - // CenRep session. - CRepository* iSession; - // Uid attached to CenRep session. - TUid iUid; - }; - - public: // Constructors and destructor. - - /** - * Two-phased constructor. - * @return instance of CVtEngCRProxy - */ - static CVtEngCRProxy* NewL( ); - - /** - * Destructor. - */ - virtual ~CVtEngCRProxy(); - - public: // New functions - - /** - * Sets integer value to Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value to set - * @return error code - */ - TInt Set( const TUid aUid, const TUint32 aId, TInt aVal ); - - /** - * Sets real value to Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value to set - * @return error code - */ - TInt Set( const TUid aUid, const TUint32 aId, const TReal& aVal ); - - /** - * Sets binary value to Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value to set - * @return error code - */ - TInt Set( const TUid aUid, const TUint32 aId, const TDesC8& aVal ); - - /** - * Sets string value to Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value to set - * @return error code - */ - TInt Set( const TUid aUid, const TUint32 aId, const TDesC16& aVal ); - - /** - * Gets integer value from Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value in return - * @return error code - */ - TInt Get( const TUid aUid, const TUint32 aId, TInt& aVal ); - - /** - * Gets real value from Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value in return - * @return error code - */ - TInt Get( const TUid aUid, const TUint32 aId, TReal& aVal ); - - /** - * Gets binary value from Central Repository - * @param aUid used UID - * @param aId which key to use - * @param aVal a value in return - * @return error code - */ - TInt Get( const TUid aUid, const TUint32 aId, TDes8& aVal ); - - /** - * Gets string value from Central Repository. - * @param aUid used UID - * @param aId which key to use - * @param aVal a value in return - * @return error code - */ - TInt Get( const TUid aUid, const TUint32 aId, TDes16& aVal ); - - /** - * Add a new Cen Rep interested object. - * @param aObserver callback interface - */ - void RegisterInterestedL( CVtEngCRObserverItem* aObserver ); - - /** - * Removes an observer. - * @param aObserver to be removed - */ - void RemoveInterested( CVtEngCRObserverItem& aObserver ); - - private: // New functions - - /** - * Gets a Cen Rep session matching UID. - * @param aUid UID to use in search - * @param aCRSession found session or a new session - * @return error code - */ - TInt GetSessionL( const TUid aUid, CRepository*& aCRSession ); - - /** - * Creates an id-CenRep paired session. - * @param aUid the UID to use - * @return new session or NULL - */ - CCRSession* NewCRSessionL( TUid aUid ); - - /** - * Finds observer item. - * @param aKey - * @param aIndex - * @return observer item or NULL - */ - CVtEngCRObserverItem* FindItem( - const TUint32 aKey, TInt& aIndex ) const; - - /** - * Removes all observers - * - */ - void RemoveAllObservers(); - - /** - * Removes all Central repository instances - * - */ - void RemoveSessions(); - - /** - * Maps a given UID to a certain central repository instance - * @param aUid the UID to map - * @return found CRepository item or NULL - */ - CRepository* MapUidToCR( const TUid aUid ); - - /** - * Finds observer item. - * @param aUid - * @param aKey - * @param aIndex - * @return observer item or NULL - */ - CVtEngCRObserverItem* FindItem( const TUid& aUid, const TUint32 aKey, - TInt& aIndex ) const; - - private: - - /** - * C++ default constructor. - */ - CVtEngCRProxy(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( ); - - private: // Data - - // Storage for data observers. - RPointerArray iObserverItems; - - // Array for central repository sessions. - RPointerArray iCRSessions; - }; - -#endif // CVTENGCRPROXY_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngDeviceLockMonitor.h --- a/vtengines/videoteleng/Inc/Base/CVtEngDeviceLockMonitor.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* 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: Monitor for device lock (autolock) -* -*/ - - - -#ifndef CVTENGDEVICELOCKMONITOR_H -#define CVTENGDEVICELOCKMONITOR_H - -// INCLUDES -#include -#include "MVtEngSettingPSObserver.h" - -// FORWARD DECLARATIONS -class CVtEngPubSubsListener; - -// CLASS DECLARATION - -/** -* Monitor for autolock state. -* -* @lib videoteleng -* @since 3.1 -*/ -NONSHARABLE_CLASS( CVtEngDeviceLockMonitor ) : public CBase, public MVtEngSettingPSObserver - { - public: // Constructors and destructor - - static CVtEngDeviceLockMonitor* NewL(); - - /** - * Destructor. - */ - virtual ~CVtEngDeviceLockMonitor(); - - public: // New functions - - /** - * Sends event to UI of current autolock state - */ - void NotifyState() const; - - public: // From MVtEngSettingPSObserver - - /** - * @see MVtEngSettingPSObserver::HandleNotifyPSL - */ - void HandleNotifyPSL( const TUid aUid, const TInt& aKey, - const TRequestStatus& aStatus ); - - private: - /** - * C++ constructor. - */ - CVtEngDeviceLockMonitor(); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - private: - - // Listener for autolock state - CVtEngPubSubsListener* iAutolockListener; - }; - -#endif // CVTENGDEVICELOCKMONITOR_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngEventManager.h --- a/vtengines/videoteleng/Inc/Base/CVtEngEventManager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* 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: Event manager -* -*/ - - - -#ifndef CVTENGEVENTMANAGER_H -#define CVTENGEVENTMANAGER_H - -// INCLUDES -#include -#include "VtEngEvents.h" - -// FORWARD DECLARATIONS -class MVtEngEventObserver; - -// CLASS DECLARATION - -/** -* This class is responsible for notifying client -* on engine events. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngEventManager ) : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtEngEventManager* NewL( - MVtEngEventObserver& aEventObserver ); - - /** - * Destructor. - */ - virtual ~CVtEngEventManager(); - - public: // New functions - - /** - * Notifies client on session state change. - */ - void SessionStateChanged(); - - /** - * Notifies event to observer. - * @param aEvent event - */ - static void NotifyEvent( const TInt aEvent ); - - void AddObserverL( MVtEngEventObserver* aObserver ); - - void RemoveObserver( const MVtEngEventObserver* aObserver ); - - private: // from CActive - - void RunL(); - - void DoCancel(); - - private: - - /** - * Notifies event to observer - */ - void DoNotifyEvent( const TInt aEvent ); - - TBool QueueAsyncEvent( const TInt aEvent ); - - /** - * Queue event and signal AO. - * @param aEvent Asynchronous event to be signalled. - */ - void QueueAndSignal( const TInt aEvent ); - - /** - * Signals AO. - */ - void Signal(); - - private: - - /** - * C++ default constructor. - */ - CVtEngEventManager(); - - // 2nd phase constructor - void ConstructL( MVtEngEventObserver& aEventObserver ); - - private: // Data - - RPointerArray iObservers; - - // Asynchronous events are stored in this array and - // executed in order - CArrayFixFlat< TInt >* iEventQueue; - - }; - -#endif // CVTENGEVENTMANAGER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngHandlerContainer.h --- a/vtengines/videoteleng/Inc/Base/CVtEngHandlerContainer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* 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: Handler container -* -*/ - - - -#ifndef CVTENGHANDLERCONTAINER_H -#define CVTENGHANDLERCONTAINER_H - -// INCLUDES -#include -#include "CVtEngMediaHandler.h" -#include "CVtEngSessionHandler.h" -#include "CVtEngAudioHandler.h" -#include "CVtEngDtmfHandler.h" - -// FORWARD DECLARATIONS -class MVtEngSessionInfo; -class MVtEngMedia; -class MVtEngAudio; - -// CLASS DECLARATION - -/** -* Container for media, audio and session handlers. -* -* @lib videoteleng -* @since Series60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngHandlerContainer ) : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtEngHandlerContainer* NewL( ); - - /** - * Destructor. - */ - virtual ~CVtEngHandlerContainer(); - - public: // New functions - - - /** - * Returns session handler. - * @return session handler - */ - inline MVtEngSessionInfo& Session() const; - - /** - * Returns media handler. - * @return media handler - */ - inline MVtEngMedia& Media() const; - - /** - * Returns audio handler. - * @return audio handler - */ - inline MVtEngAudio& Audio() const; - - - /** - * Returns DTMF handler. - * @return DTMF handler - */ - inline CVtEngDtmfHandler& Dtmf() const; - - /* - * Uninitializes audio and session handlers. - * Media handler uninitialization is done - * asynchronously using directly the handler. - */ - void Uninitialize(); - - /** - * Creates DTMF handler - * @param aH324Config H324 configure interface - */ - void CreateDtmfHandlerL( MVtH324ConfigCommand* aH324Config ); - - private: - - /** - * C++ default constructor. - */ - CVtEngHandlerContainer(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // member data - - // media handler - CVtEngMediaHandler* iMedia; - - // session handler - CVtEngSessionHandler* iSession; - - // audio handler - CVtEngAudioHandler* iAudio; - - - // DTMF handler - CVtEngDtmfHandler* iDtmf; - - }; - -#include "CVtEngHandlerContainer.inl" - -#endif // CVTENGHANDLERCONTAINER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngHandlerContainer.inl --- a/vtengines/videoteleng/Inc/Base/CVtEngHandlerContainer.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* 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: handler container -* -*/ - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::Session -// Returns specific handler -// -// ----------------------------------------------------------------------------- -// -inline MVtEngSessionInfo& CVtEngHandlerContainer::Session() const - { - return *iSession; - } - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::Media -// Returns specific handler -// -// ----------------------------------------------------------------------------- -// -inline MVtEngMedia& CVtEngHandlerContainer::Media() const { return *iMedia; } - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::Audio -// Returns specific handler -// -// ----------------------------------------------------------------------------- -// -inline MVtEngAudio& CVtEngHandlerContainer::Audio() const { return *iAudio; } - - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::Dtmf -// Returns specific handler -// -// ----------------------------------------------------------------------------- -// -inline CVtEngDtmfHandler& CVtEngHandlerContainer::Dtmf() const { return *iDtmf; } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngInitializer.h --- a/vtengines/videoteleng/Inc/Base/CVtEngInitializer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Class for initializing the engine gradually. -* Active object initializes one "subsystem" on each -* round. In case of failure timer is started and -* retrial is done after time-out. Uninitialization -* is done is one shot. -* -*/ - - - -#ifndef CVTENGINITIALIZER_H -#define CVTENGINITIALIZER_H - -// INCLUDES -#include "MVtEngSettingObserver.h" -#include -#include - -// FORWARD DECLARATIONS -class CVtEngHandlerContainer; -class CVtEngOperation; - - -/** -* Engine initializer. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngInitializer ) : - public CActive, - public MVtEngSettingObserver - { - public: // Constructors and destructor - - static CVtEngInitializer* NewL( CVtEngHandlerContainer& aHandlers ); - - /** - * Destructor. - */ - virtual ~CVtEngInitializer(); - - public: // new functions - - /** - * Starts initialization process. - */ - void InitializeL( CVtEngOperation& aCallback ); - - /** - * Cancels initialiation - * @return ETrue if CActive::Cancel was called - */ - TBool CancelInit(); - - /** - * Uninitializes engine. - */ - void Uninitialize( CVtEngOperation& aCallback ); - - /** - * Gets GetSessionCommand ownership after initialization. - * @return CSessionCommand interface. - */ - MVtSessionCommand* GetSessionCommand(); - - /** - * Returns if engine is initialized. - * @return ETrue if initialized - */ - TBool Initialized() const; - - /** - * Creates handler for DTMF sending. - * @param aH324Config H324 configure interface - */ - void CreateDtmfHandlerL( MVtH324ConfigCommand* aH324Config ); - - /** - * Gets pointer to comms. Still owns the comms. - * @return Pointer to comms. - */ - MCommServer* GetVtComms(); - - private: // from CActive - - /** - * performs one initialization step. - */ - void RunL(); - - /** - * Cancels initialization process. - */ - void DoCancel(); - - /** - * Handles error in the process. - * @return always returns KErrNone - */ - TInt RunError( TInt aError ); - - public: // from MVtEngSettingObserver - virtual void HandleSettingChangedL( - CVtEngSettings::TSettingId aId, - const TDesC& aValue ); - - - private: // Constructors - - /** - * c++ constructor - */ - CVtEngInitializer( CVtEngHandlerContainer& aHandlers ); - - /** - * - */ - void ConstructL(); - - private: - - enum TProcess - { - // Go to next step - EContinue, - // Reset engine - EReset, - // Retry current step when failed. - ERetry - }; - - private: // new functions - - /** - * Reads bit reversal information from locally variated flags. - * @return ETrue if reversed. - */ - TBool BitReversalUsed(); - - /** - * Proceeds to next step or starts retrial of - * previously failed step. - */ - void ContinueOrRetry( const TProcess aOperation ); - - /** - * Notifies observer on initialization completion. - */ - void Notify( const TInt aResult ); - - /** - * Callback for retrial timer. - */ - static TInt HandleTimer( TAny* aAny ); - - /** - * Handles retrial timer expiration. - */ - void DoHandleTimer(); - - TBool ActivateAndSignal( TInt aSignalValue ); - - private: - - - /** - * Initialization steps - */ - enum TVtEngInitializationSteps - { - EInitNone, - EInitSession, - EInitMedia, - EInitProto, - EInitDataportCompleted, - EInitComplete, - EResetMedia, - EResetMediaPhase2 - }; - - /** - * Dataport information handling flags. - */ - enum TVtEngDataportInformationFlags - { - EDataportListened = 0x01, - EDataportReceived = 0x02 - }; - - private: - - // handler container - CVtEngHandlerContainer& iHandlers; - - // Current (un)initialization step - TInt iStep; - - // Operation to be notified on completion - CVtEngOperation* iCallback; - - // Retrial count - TInt iRetrials; - - // Retrial timer - CPeriodic* iTimer; - - // Protocol Session Engine - MVtSessionCommand* iSessionCommand; - - // Protocol Comms Server - MCommServer* iComms; - - // Has subscription been made for dataport name. - TInt iDataportHandled; - - // If MediaHandler has taken ownership of 2-way, this is true, - // otherwise false. - TBool iOwnershipInMH; - - }; - - -#endif // CVTENGINITIALIZER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngModel.h --- a/vtengines/videoteleng/Inc/Base/CVtEngModel.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* 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: Video telephony engine class -* -*/ - - - -#ifndef CVTENGMODEL_H -#define CVTENGMODEL_H - -// INCLUDES -#include -//#include - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// DATA TYPES -//enum ?declaration -//typedef ?declaration -//extern ?data_type; - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class MVtEngEventObserver; -class MVtEngCommandObserver; -class CVtEngEventManager; -class CVtEngHandlerContainer; -class MVtEngCommandHandler; -class CVtEngCommandHandler; -class MVtEngSessionInfo; -class MVtEngMedia; -class MVtEngAudio; -class CVtEngStateManager; -class CVtEngUtility; -class CVtEngExtensions; - -// CLASS DECLARATION - -/** -* Model for video telephony engine. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngModel ) : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aEventObserver event observer - * @param aCommandObserver command observer - */ - IMPORT_C static CVtEngModel* NewL( - MVtEngEventObserver& aEventObserver, - MVtEngCommandObserver& aCommandObserver ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CVtEngModel(); - - public: // New functions - - IMPORT_C MVtEngCommandHandler& CommandHandler() const; - - IMPORT_C MVtEngSessionInfo& Session() const; - - IMPORT_C MVtEngMedia& Media() const; - - IMPORT_C MVtEngAudio& Audio() const; - - /** - * Returns extension or NULL if extension cannot be found. - * @param aExtensionUid extension uid - * @return pointer to extension - */ - IMPORT_C TAny* Extension( const TUid& aExtensionUid ); - - - - protected: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - - protected: // Functions from base classes - - /** - * From ?base_class ?member_description - */ - - private: - - /** - * C++ default constructor. - */ - CVtEngModel(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( MVtEngEventObserver& aEventObserver, - MVtEngCommandObserver& aCommandObserver ); - - private: // Data - - // Event manager acting as event mediator. - CVtEngEventManager* iEventManager; - - // Container for functional units. - CVtEngHandlerContainer* iHandlers; - - // Handler for UI commands - CVtEngCommandHandler* iCommandHandler; - - // Manager for engine states - CVtEngStateManager* iStateManager; - - // Utility for TLS access - CVtEngUtility* iUtils; - - // Container for engine extensions - CVtEngExtensions* iExtensions; - - }; - -#endif // CVTENGMODEL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngSATClient.h --- a/vtengines/videoteleng/Inc/Base/CVtEngSATClient.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2005 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: SAT listener. -* -*/ - - - -#ifndef CVTENGSATCLIENT_H -#define CVTENGSATCLIENT_H - -// INCLUDES -#include -#include -#include -#include - - -// CLASS DECLARATION - -/** -* SAT listener. -* -* @lib videoteleng.lib -* @since Series 60 3.0 -*/ -NONSHARABLE_CLASS( CVtEngSATClient ) : public CBase, MSatRefreshObserver - { - public: // Constructors and destructor. - - /** - * Two-phased constructor. - * @return instance of CVtEngSATClient - */ - static CVtEngSATClient* NewL( ); - - /** - * Destructor. - */ - virtual ~CVtEngSATClient(); - - public: // Functions from base classes - - /** - * From MSatRefreshObserver - */ - TBool AllowRefresh( - TSatRefreshType aType, const TSatRefreshFiles& aFiles ); - /** - * From MSatRefreshObserver. - */ - void Refresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ); - - private: - - /** - * C++ default constructor. - */ - CVtEngSATClient(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( ); - - private: // Data - - // Session & Refresh for SAT listening. - RSatSession iSatSession; - RSatRefresh iSatRefresh; - - }; - -#endif // CVTENGSATCLIENT_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngSettings.h --- a/vtengines/videoteleng/Inc/Base/CVtEngSettings.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,484 +0,0 @@ -/* -* Copyright (c) 2004-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: Video call setting data. -* -*/ - - - -#ifndef CVTENGSETTINGS_H -#define CVTENGSETTINGS_H - -// INCLUDES -#include -#include -#include "MVtEngCRSettingObserver.h" -#include "CVtEngCRObserverItem.h" -#include "CVtEngCRProxy.h" -#include "MVtEngAudio.h" -#include "MVtEngMedia.h" -#include "MVtEngSessionInfo.h" - -// CONSTANTS -// Default routing. -const MVtEngAudio::TVtEngRoutingSetting - KVtEngDefaultAudioRouting = MVtEngAudio::EActivateHandsfree; - -// FORWARD DECLARATIONS -class MVtEngSettingObserver; - -// CLASS DECLARATION - -/** -* Container for video call settings. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngSettings ) : public CBase -, public MVtEngCRSettingObserver - { - public: - - /** - * Settings ids - */ - enum TSettingId - { - EStillImage, - EStillImagePath, - ECallTimer, - EHandsetVolume, - EHandsfreeVolume, - EBTAudioAccessory, - EIhfMode, - ESelectVolume, // select Handset / Handsfree volume - EDataportInfo - }; - - /** - * Audio configuration - */ - struct TVtEngAudioConfig - { - // Current volume in use, EFalse: handset, - // ETrue: loudspeaker. - TBool iCurrentVolume; - // Speaker volume - MVtEngAudio::TVtEngOutputVolume iVolume; - // Audio routing - MVtEngAudio::TVtEngRoutingSetting iRouting; - }; - - /** - * Video configuration - */ - struct TVtEngVideoConfig - { - // Still image file name - TFileName iStillImageFile; - // Determines if still image is valid. - TBool iImageIsValid; - // Determines if video is enabled. - TBool iVideoEnabled; - }; - - /** - * Video quality framerates - */ - struct TVtEngVideoQualityFrameRateConfig - { - // Frame rate for videoquality settings detail - TInt iDetail; - - // Frame rate for videoquality settings normal - TInt iNormal; - - // Frame rate for videoquality settings motion - TInt iMotion; - }; - - /** - * Media configuration - */ - struct TVtEngVideoCallConfig - { - // @see TVtEngAudioConfig - TVtEngAudioConfig iAudio; - // @see TVtEngVideoConfig - TVtEngVideoConfig iVideo; - // defines if call timer is enabled - TBool iCallTimerOn; - // Engine has green light to make connect on Protocol. - TBool iReadyForConnect; - // Dataport loaning status - TBool iIsDataportLoaned; - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @return instance of CVtEngSettings - */ - static CVtEngSettings* NewL(); - - /** - * Destructor. - */ - virtual ~CVtEngSettings(); - - public: // New functions - - /** - * Creates stored data observers. - * @param aObserver callback interface - * @param aUid UID to monitor - * @param aKey ID to monitor - * @param aType which data type - */ - void CreateDataObserverL( - MVtEngCRSettingObserver* aObserver, TUid aUid, TUint32 aKey, - CCenRepNotifyHandler::TCenRepKeyType aType ); - - /** - * Returns configuration. - * @return settings data - */ - const CVtEngSettings::TVtEngVideoCallConfig& Config() const; - - /** - * Sets current volume. - * @param aVolume selected volume, - * EFalse: handset, ETrue: loudspeaker. - */ - void SetCurrentVolume( TBool aVolume ); - - /** - * Returns current volume. - * @return EFalse: handset, ETrue: loudspeaker. - */ - TBool CurrentVolume() const; - - /** - * Sets audio output volume levels. - * @param aHandsetVolume handset volume level. - * @param aHandsfreeVolume handsfree volume level. - * @param aInternal not stored to shared data but - * internal variable to be used when correct state - * is entered. - * @return Symbian error code - */ - TInt SetVolume( - const TInt aHandsetVolume, - const TInt aHandsfreeVolume, - const TBool aInternal ); - - /** - * Gets audio output volume levels from Shared Data. - * @param aVolume volume level. - * @param aHandsfree if true handsfree volume is read, - * otherwise handset. - * @param aInternal not read from shared data but - * from internal variable - * @return error code - */ - TInt GetVolume( - TInt& aVolume, - const TBool aHandsfree, - const TBool aInternal ) const; - - /** - * Gets maximum audio output volume level. - * @return max volume for device - */ - inline TInt MaxVolume( ) const; - - - /** - * Gets minimum audio output volume level. - * @return max volume for device - */ - inline TInt MinVolume( ) const; - - /** - * Checks the validity of the volume level. - * return either constant minimum, constant maximum - * or the passed value level. - * @param aVolume the volume level to check - * @return suitable volume level - */ - inline TInt ValidVolume( const TInt aVolume ) const; - - /** - * Sets audio routing setting. - * @param aState audio routing state. - */ - void SetRouting( const MVtEngAudio::TVtEngRoutingSetting& aState ); - - /** - * Sets output video state setting. - * @param aEnabled ETrue if sending is enabled - */ - void SetVideoEnabled( const TBool aEnabled ); - - /** - * Sets connected state. - */ - void SetConnectReady(); - - /** - * Reads local variations. - */ - void ReadVariationsL(); - - /** - * Gets camera orientations for primary and secondary camera. - * @see MVtEngMedia::TCameraOrientation - * @param aPrimaryCameraOrientation primary camera orientation. - * @param aSecondaryCameraOrientation secondary camera orientation. - */ - void GetCameraOrientations( - MVtEngMedia::TCameraOrientation& aPrimaryCameraOrientation, - MVtEngMedia::TCameraOrientation& aSecondaryCameraOrientation ) const; - - /** - * Checks if given bits is turned on in local variation. - * @param aBits bits to check - * @return ETrue if turned on - */ - TBool CheckBits( const TInt aBits ); - - /** - * Returns video quality frame rate configuration. - * @return Reference to video quality frame rate - * configuration. - */ - const TVtEngVideoQualityFrameRateConfig& - VideoQualityFrameRateConfig() const; - - /** - * Resets settings to default values. - */ - void ResetAll(); - - /** - * Registers interest on setting change. - * @param aId event to observe for - * @param aObserver setting observer - */ - void NotifyChangeL( - TSettingId aId, - MVtEngSettingObserver& aObserver ); - - /** - * Cancels observering setting changes. - * @param aId event to cancel - * @param aObserver setting observer - */ - void CancelNotifyChange( - TSettingId aId, - const MVtEngSettingObserver& aObserver ); - - /** - * Informs setting is dataport loaned or not yet. - * @param aLoaned TBool value is loaned (ETrue) or not (EFalse) - */ - void SetDataportLoaned( TBool aLoaned ); - - /** - * Checks if still image exists. - * @return ETrue if still image exists. - */ - TBool IsDefaultStillImageDefined(); - - - - /** - * Sets CLI. - * @since S60 5.0 - * @params aCLI call id and address (MSISDN) availability - */ - void SetCLI( const MVtEngSessionInfo::TCLI& aCLI ); - - /** - * Returns CLI - * @since S60 5.0 - * @param aCLI call id and address (MSISDN) availability - * @return ETrue if CLI is valid (stored in the first place) - */ - TBool GetCLI( MVtEngSessionInfo::TCLI& aCLI ) const; - - /** - * Sets dataport info - * @since S60 5.0 - * @param aPortInfo port name and number as string - */ - void SetDataportInfoL( const TDesC& aPortInfo ); - - /** - * Returns dataport info or NULL if not available yet - * @since S60 5.0 - * @return dataport info - */ - const TDesC* DataportInfo() const; - - public: // From MVtEngCRSettingObserver. - - /** - * Callback to notify changed setting. - * @param aUid changed Uid - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyInt( const TUid aUid, const TUint32 aId, - TInt aNewValue ); - - /** - * Callback to notify changed setting. - * @param aUid changed Uid - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyReal( const TUid aUid, const TUint32 aId, - TReal aNewValue ); - - /** - * Callback to notify changed setting. - * @param aUid changed Uid - * @param aId changed id - * @param aNewValue - */ - void HandleNotifyString( const TUid aUid, const TUint32 aId, - const TDesC16& aNewValue ); - - private: // New functions. - struct TObserverItem - { - // Callback interface. - MVtEngSettingObserver* iObserver; - // UID of item. - TUid iUid; - // Key of observer. - TPtrC iKey; - // Integer key, used with CR. - TInt iIntKey; - // Settings internal id. - TSettingId iId; - }; - - /** - * Finds observer item. - * @param aUid - * @param aKey - * @return observer item or NULL - */ - TObserverItem* FindItem( const TUid& aUid, const TDesC& aKey ) const; - - /** - * Finds observer item. - * @param aUid - * @param aKey - * @return observer item or NULL - */ - TObserverItem* FindItem( const TUid& aUid, const TInt& aKey ) const; - - /** - * Returns value as integer. - * @param aValue value to convert - * @return value as integer - */ - static TInt SettingAsTInt( const TDesC& aValue ); - - /** - * Derived class for internal book keeping. Engine knows whether - * CLI has been received from call handling - */ - struct TVtEngCLI : public MVtEngSessionInfo::TCLI - { - // Set to True when CLI received from call handling. - TBool iValid; - }; - - private: - - /** - * C++ default constructor. - */ - CVtEngSettings(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Callback function to inform the observer. - * @param aAny pointer to instance of this class. - * @return KErrNone always. - */ - static TInt DoInformSelectVolumeObserver( TAny* aAny ); - - - /** - * Parses VQ frame rates read from cenrep. - */ - void ParseFrameRates( TVtEngVideoQualityFrameRateConfig& aVQFR, - const TDesC& aBuffer ); - - private: // Data - // Central Repository proxy. - CVtEngCRProxy* iCRProxy; - - // Settings data. - TVtEngVideoCallConfig iConfig; - - // Setting data observers. - CArrayFixFlat* iObserverItems; - - // File system handle. - RFs iFs; - - // Owned idle callback instance. - CIdle* iSelectVolumeIdle; - - // Observer for ESelectVolume. - MVtEngSettingObserver* iSelectVolumeObserver; - - // Observer for EDataportInfo - MVtEngSettingObserver* iDataportObserver; - - // Locally variated bits are read to this. - TInt iVariantReadOnlyValues; - - // If local variations are read - TBool iVariationsRead; - - // Video quality frame rate configuration holder - TVtEngVideoQualityFrameRateConfig iVQFRConfig; - - // If default still image is defined - TBool iDefaultStillImageDefined; - - // CLI information of video call. - TVtEngCLI iCLI; - - HBufC* iDataportInfo; - }; - -#include "CVtEngSettings.inl" - -#endif // CVTENGSETTINGS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/CVtEngSettings.inl --- a/vtengines/videoteleng/Inc/Base/CVtEngSettings.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* 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: Settings inline methods -* -*/ - - -//Constants -const TInt8 KVTEngMaxVolume = 10; -const TInt8 KVTEngMinVolume = 0; - - -// ----------------------------------------------------------------------------- -// CVtEngSettings::GetMinVolume -// Return device min volume. -// -// ----------------------------------------------------------------------------- -// -inline TInt CVtEngSettings::MinVolume() const - { return KVTEngMinVolume; } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::GetMaxVolume -// Return event manager. -// -// ----------------------------------------------------------------------------- -// -inline TInt CVtEngSettings::MaxVolume() const - { return KVTEngMaxVolume; } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::ValidVolume -// Checks if the volume is within allowed limits -// -// ----------------------------------------------------------------------------- -// -inline TInt CVtEngSettings::ValidVolume( const TInt aVolume ) const - { - if ( aVolume < KVTEngMinVolume ) - { - return KVTEngMinVolume; - } - else if ( aVolume > KVTEngMaxVolume ) - { - return KVTEngMaxVolume; - } - else - { - return aVolume; - } - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/MVtEngAccessoryObserver.h --- a/vtengines/videoteleng/Inc/Base/MVtEngAccessoryObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2004-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: Observer interface for indicating changes in accessories. -* -*/ - -#ifndef MVTENGACCESSORYOBSERVER_H -#define MVTENGACCESSORYOBSERVER_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** -* Interface to indicate changes in accessories. -* -* @lib videoteleng -* @since 3.0 -*/ -class MVtEngAccessoryObserver - { - public: // New functions - - /** - * Callback to notify mode change in accessories. - * @param aMode new mode - * @param aActivated audio is on - */ - virtual void AccessoryModeChanged( const TAccMode& aMode, - const TBool aActivated ) = 0; - }; - -#endif // MVTENGACCESSORYOBSERVER_H -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/MVtEngCRSettingObserver.h --- a/vtengines/videoteleng/Inc/Base/MVtEngCRSettingObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2004-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: Observer interface for indicating setting changes in Cent Rep -* -*/ - - -#ifndef MVTENGSETTINCRGOBSERVER_H -#define MVTENGSETTINGCROBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer interface for indicating setting changes -* -* @lib videoteleng.lib -* @since Series 60 3.0 -*/ -class MVtEngCRSettingObserver - { - public: // New functions - - /** - * Callback to notify changed setting - * @param aUid changed Uid - * @param aId changed id - * @param aNewValue new value - */ - virtual void HandleNotifyInt( const TUid aUid, const TUint32 aId, - TInt aNewValue ) = 0; - - /** - * Callback to notify changed setting - * @param aUid changed Uid - * @param aId changed id - * @param aNewValue new value - */ - virtual void HandleNotifyReal( const TUid aUid, const TUint32 aId, - TReal aNewValue ) = 0; - - /** - * Callback to notify changed setting - * @param aUid changed Uid - * @param aId changed id - * @param aNewValue new value - */ - virtual void HandleNotifyString( const TUid aUid, const TUint32 aId, - const TDesC16& aNewValue ) = 0; - }; - -#endif // MVTENGCRSETTINGOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/MVtEngEventObserver.h --- a/vtengines/videoteleng/Inc/Base/MVtEngEventObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* 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: Observer interface for video telephony events. -* -*/ - - - -#ifndef MVTENGEVENTOBSERVER_H -#define MVTENGEVENTOBSERVER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Video telephony event observer interface. -* -* @lib videlteleng -* @since 2.6 -*/ -class MVtEngEventObserver - { - public: // New functions - - /** - * Handler method for events - * @param aEvent events defined in VtEngEvents.h - */ - virtual void HandleVtEventL( - TInt aEvent ) = 0; - - }; - -#endif // MVTENGEVENTOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/MVtEngSettingObserver.h --- a/vtengines/videoteleng/Inc/Base/MVtEngSettingObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* 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: Observer interface for indicating setting changes -* -*/ - - - -#ifndef MVTENGSETTINGOBSERVER_H -#define MVTENGSETTINGOBSERVER_H - -// INCLUDES -#include "CVtEngSettings.h" - -// CLASS DECLARATION - -/** -* Observer interface for indicating setting changes -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngSettingObserver - { - public: // New functions - - /** - * Handler for setting changed event - * @param aId id of setting - * @param aValue new value for the setting - */ - virtual void HandleSettingChangedL( - CVtEngSettings::TSettingId aId, - const TDesC& aValue ) = 0; - }; - -#endif // MVTENGSETTINGOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/MVtEngSettingPSObserver.h --- a/vtengines/videoteleng/Inc/Base/MVtEngSettingPSObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2004-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: Observer interface for indicating publish and subscribe -* changes -* -*/ - - - -#ifndef MVTENGSETTINGPSOBSERVER_H -#define MVTENGSETTINGPSOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer interface for indicating P&S changes -* -* @lib videoteleng.lib -* @since Series 60 2.8 -*/ -class MVtEngSettingPSObserver - { - public: // New functions - - /** - * Handler for changed event. - * @param aUid uid of setting - * @param aKey id of setting - * @param aStatus status of completed AO operation - */ - virtual void HandleNotifyPSL( const TUid aUid, const TInt& aKey, - const TRequestStatus& aStatus ) = 0; - }; - -#endif // MVTENGSETTINGPSOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/TVtEngType.h --- a/vtengines/videoteleng/Inc/Base/TVtEngType.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* 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: Base class for data types that can be identified by an -* identifier (extension id). -* -*/ - - - -#ifndef TVTENGTTYPE_H -#define TVTENGTTYPE_H - -// INCLUDES -#include - -// DATA TYPES - -enum TVtEngTypeId - { - EVtEngTypeV1 = 0, - EVtEngTypeDtmf - }; - -// CLASS DECLARATION - -/** -* Base class for data types -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngtType - { - public: // constructor - - inline TInt TypeId() const; - - protected: // constructors - /** - * C++ constructor that only for descendant classes may call. - */ - inline TVtEngtType( TVtEngTypeId aTypeId ); - - /** - * copy constructor - */ - inline TVtEngtType( const TVtEngtType& aType ); - - protected: // operators - - inline TVtEngtType& operator=( const TVtEngtType& aType ); - - protected: - // Extension id - TInt iTypeId; - }; - -#include "TVtEngType.inl" - -#endif // TVTENGTTYPE_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/TVtEngType.inl --- a/vtengines/videoteleng/Inc/Base/TVtEngType.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* 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: Inline methods for TVtEngtType. -* -*/ - - -inline TVtEngtType::TVtEngtType( TVtEngTypeId aTypeId ) - : iTypeId( aTypeId ) {} - -inline TInt TVtEngtType::TypeId() const { return iTypeId; } - -inline TVtEngtType::TVtEngtType( const TVtEngtType& aType ) - : iTypeId( aType.iTypeId ) {} - -inline TVtEngtType& TVtEngtType::operator=( const TVtEngtType& aType ) - { iTypeId = aType.iTypeId; - return *this; } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/VtEngConstants.h --- a/vtengines/videoteleng/Inc/Base/VtEngConstants.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* 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: Constants for video telephony -* -*/ - - - -#ifndef VTENGCONSTANTS_H -#define VTENGCONSTANTS_H - -// INCLUDES -#include -#include -// CONSTANTS - -/** -* Remote video default size. -* QCIF where one pixel removed from left, top and right side. -*/ -//const TSize KVtEngRemoteVideoDefaultSize( 174, 143 ); - -/** -* View finder default size. -*/ -//const TSize KVtEngLocalVideoDefaultSize( 44, 36 ); - -/** -* Display mode -*/ -//const TDisplayMode KVtEngDisplayMode( EColor64K ); - -// MACROS - - -#endif // VTENGCONSTANTS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/VtEngDefs.hrh --- a/vtengines/videoteleng/Inc/Base/VtEngDefs.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* 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 macro define -* -*/ - - -#ifndef VTDEFS_HRH -#define VTDEFS_HRH - - -// DATA TYPES -// MACROS - - -#if defined(_DEBUG) || defined(WINS) -/** -* Debugging enabled always in debug builds -*/ -#define VTDEBUG -#else -/** -* Define here for release builds (disabled by default) -* Uncomment VTDEBUG below if you want to enable logging in UREL. -*/ -//#define VTDEBUG -#endif - -#ifdef VTDEBUG -/** -* 0 = No logging -* 1 = File logging -* 2 = RDebug -*/ -#if defined(__WINSCW) || defined(__WINS__) || defined (WINS) -// In emulator log to output window -#define VTLOGGING 1 -#else -/** -* In HW to which ever is desired (File (1) by default) -* Change VTLOGGING to 1 (file) or 2 (RDebug) as desired. -*/ -#define VTLOGGING 1 -#endif - -#else // !VTDEBUG - -// no logging -#define VTLOGGING 0 - -#endif //VTDEBUG - -#if VTLOGGING == 1 -#define VTFILELOGGING 1 -#else -#define VTFILELOGGING 0 -#endif - -#endif // VTDEFS_HRH -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/VtEngEvents.h --- a/vtengines/videoteleng/Inc/Base/VtEngEvents.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2004-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: Video telephony engine events -* -*/ - - - -#ifndef VTENGEVENTS_H -#define VTENGEVENTS_H - -// INCLUDES -#include - -// CONSTANTS - -const TInt KVtEngEventNone = -1; - -const TInt KVtEngEventBase = 0; - -/** -* Engine configuration events -*/ -const TInt KVtEngConfigureEventBase = KVtEngEventBase + 100; // 100 -const TInt KVtEngDurationSettingChanged = KVtEngConfigureEventBase + 1; -const TInt KVtEngInitializationProblem = KVtEngConfigureEventBase + 2; - -/** -* Engine media events -*/ -const TInt KVtEngMediaEventBase = KVtEngConfigureEventBase + 100; // 200 -const TInt KVtEngCameraChanged = KVtEngMediaEventBase + 1; -const TInt KVtEngSourceChanged = KVtEngMediaEventBase + 2; -const TInt KVtEngRemoteVideoPaused = KVtEngMediaEventBase + 3; -const TInt KVtEngRemoteVideoResumed = KVtEngMediaEventBase + 4; -const TInt KVtEngRemoteAudioPaused = KVtEngMediaEventBase + 5; -const TInt KVtEngRemoteAudioResumed = KVtEngMediaEventBase + 6; -const TInt KVtEngAudioMuted = KVtEngMediaEventBase + 7; -const TInt KVtEngAudioUnmuted = KVtEngMediaEventBase + 8; -const TInt KVtEngRemoteVideoStarted = KVtEngMediaEventBase + 10; -const TInt KVtEngRemoteVideoStopped = KVtEngMediaEventBase + 11; -const TInt KVtEngRemoteAudioStarted = KVtEngMediaEventBase + 12; -const TInt KVtEngRemoteRenderingProblem = KVtEngMediaEventBase + 14; -const TInt KVtEngLocalRenderingProblem = KVtEngMediaEventBase + 15; -const TInt KVtEngSourceCapsChanged = KVtEngMediaEventBase + 16; -const TInt KVtEngRemoteRenderStopped = KVtEngMediaEventBase + 17; -const TInt KVtEngViewFinderStopped = KVtEngMediaEventBase + 18; -const TInt KVtEngResolutionToSQCIF = KVtEngMediaEventBase + 19; -const TInt KVtEngResolutionToQCIF = KVtEngMediaEventBase + 20; - -// Problems in starting negotiation with remote end -const TInt KVtEngNegotiationProblem = KVtEngMediaEventBase + 21; - -// Initializing media component failed -const TInt KVtEngMediaInitFailure = KVtEngMediaEventBase + 22; - -// Begin initialization of image sharing (convert, scale, etc.) -const TInt KVtEngShareImageInitializeBegin = KVtEngMediaEventBase + 23; - -// End initialization of image sharing (convert, scale, etc.) -const TInt KVtEngShareImageInitializeEnd = KVtEngMediaEventBase + 24; - -// Informs status change in outgoing video channel. -const TInt KVtEngMediaOutgoingVideoChannelStatusChanged = - KVtEngMediaEventBase + 25; - -// Informs status change in outgoing audio channel. -const TInt KVtEngMediaOutgoingAudioChannelStatusChanged = - KVtEngMediaEventBase + 26; - -// Informs UI that decoding error happened during image share -const TInt KVtEngShareImageDecodingError = KVtEngMediaEventBase + 27; - -// Informs UI that volume is already maximum -const TInt KVtEngAudioVolumeMax = KVtEngMediaEventBase + 28; - -// Informs UI that volume is already minimum -const TInt KVtEngAudioVolumeMin = KVtEngMediaEventBase + 29; - -// Informs UI that Locvid layoutchange has been done -const TInt KVtEngLCHProviderSwitchDone = KVtEngMediaEventBase + 30; - -/** -* Engine audio events -*/ -const TInt KVtEngAudioEventBase = KVtEngMediaEventBase + 100; // 300 -const TInt KVtEngAudioOutputVolumeChanged = KVtEngAudioEventBase + 1; -const TInt KVtEngAudioRoutingChanged = KVtEngAudioEventBase + 2; -const TInt KVtEngAudioRoutingAvailabilityChanged = KVtEngAudioEventBase + 3; -const TInt KVtEngAudioRoutingIHFActivated = KVtEngAudioEventBase + 4; -const TInt KVtEngAudioRoutingIHFDeactivated = KVtEngAudioEventBase + 5; - -/** -* Engine session events -*/ -const TInt KVtEngSessionEventBase = KVtEngAudioEventBase + 100; // 400 -const TInt KVtEngSessionStateChanged = KVtEngSessionEventBase + 1; -const TInt KVtEngSessionAnswerPossible = KVtEngSessionEventBase + 2; -const TInt KVtEngSessionWaitingCallActive = KVtEngSessionEventBase + 3; -const TInt KVtEngSessionWaitingCallInactive = KVtEngSessionEventBase + 4; -const TInt KVtEngCLIAvailable = KVtEngSessionEventBase + 5; - -/** -* General events -*/ -const TInt KVtEngGeneralEventBase = KVtEngSessionEventBase + 100; // 500 -const TInt KVtEngResourceMemAllocFailure = KVtEngGeneralEventBase + 1; -const TInt KVtEngDtmfFailure = KVtEngGeneralEventBase + 2; -/** -* Remote supports UII DTMF. -*/ -const TInt KVtEngRemoteUIIDtmfSupport = KVtEngGeneralEventBase + 13; -/** -* Remote supports UII basic string. -*/ -const TInt KVtEngRemoteUIIBasicStringSupport = KVtEngGeneralEventBase + 14; -/** -* Remote supports UII IA5 string. -*/ -const TInt KVtEngRemoteUIIIA5StringSupport = KVtEngGeneralEventBase + 15; -/** -* Remote supports UII general string. -*/ -const TInt KVtEngRemoteUIIGeneralStringSupport = KVtEngGeneralEventBase + 6; - - -// Device is locked or unlocked (autolock feature) -const TInt KVtEngDeviceLockOn = KVtEngGeneralEventBase + 3; -const TInt KVtEngDeviceLockOff = KVtEngGeneralEventBase + 4; - -// Remote disconnected -const TInt KVtEngRemoteDisconnect = KVtEngGeneralEventBase + 5; - -#endif // VTENGEVENTS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/VtEngPanic.h --- a/vtengines/videoteleng/Inc/Base/VtEngPanic.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* 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: Panic definitions for video telephone engine. -* -*/ - - - -#ifndef CVTENGPANIC_H -#define CVTENGPANIC_H - -// INCLUDES -#include - -// CONSTANTS -_LIT( KVtEngPanicCategory, "VTENG" ); - -// DATA TYPES -enum TVtEngPanic - { - EVtEngPanicInvalidInitializationEntry, /** 0 */ - EVtEngPanicInvalidInitializationState, /** 1 */ - EVtEngPanicIncorrectUtility, /** 2 */ - EVtEngPanicTlsPanic, /** 3 */ - EVtEngPanicNoVideoProvider, /** 4 */ - EVtEngPanicInvalidSessionState, /** 5 */ - EVtEngPanicMediaHandlerOpStateFailure, /** 6 */ - EVtEngPanicInvalidFlag, /** 7 */ - EVtEngPanicInvalidPointer, /** 8 */ - EVtEngPanicInvalidAudioPointer, /** 9 */ - EVtEngPanicCommsDestructOnInvalidState, /** 10 */ - EVtEngPanicUnInitIncorrectOperation, /** 11 */ - EVtEngPanicDisconnectTimerExpired, /** 12 */ - EVtEngPanicInvalidDtmfState, /** 13 */ - EVtEngPanicInvalidBitmapHandle, /** 14 */ - EVtEngPanicInvalidPortRead, /** 15 */ - /** Too many asynchronous events pending in queue */ - EVtEngPanicInvalidTooManyPendingEvents, /** 16 */ - /** VT variation cenrep file is missing or corrupt */ - EVtEngPanicVtCenrepVariation, /** 17 */ - /** VT configuration cenrep file is missing or corrupt */ - EVtEngPanicVtCenrepConfiguration, /** 18 */ - EVtEngPanicInvalidVideoQualityValue, /** 19 */ - EVtEngPanicWrongMediatorSenderState /** 20 */ - }; - -// FUNCTION PROTOTYPES -void Panic( TVtEngPanic aPanic ); - -#endif // CVTENGPANIC_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/VtEngUtils.h --- a/vtengines/videoteleng/Inc/Base/VtEngUtils.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* -* Copyright (c) 2004-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: Video telephony engine TLS container. -* -*/ - - - -#ifndef VTENGUTILS_H -#define VTENGUTILS_H - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class CVtEngInitializer; -class CVtEngHandlerContainer; -class CVtEngDebug; -class CVtEngStateManager; -class CVtEngSettings; -class CVtEngEventManager; -class CVtEngCRProxy; -class CVtEngAccessoryHandler; -class CVtEngSATClient; -class CVtEngDeviceLockMonitor; -class CVtEngExtensions; -class CVtEngMdtrMessageListener; -class CVtEngMdtrCommandSender; - -// CLASS DECLARATION - -/** -* TLS container for pointers to essential objects. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngUtility ) : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtEngUtility* NewL(); - - /** - * Destructor. - */ - virtual ~CVtEngUtility(); - - public: // New functions - - /** - * Creates SAT listener for updates. - */ - void StartSATListenL(); - - /** - * Returns engine initializer. - * @return initializer - */ - inline CVtEngInitializer& Initializer() const; - - /** - * Returns engine utility. - * @return utility - */ - static CVtEngUtility* EngineUtils(); - - /** - * Returns state manager. - * @return state manager - */ - static CVtEngStateManager* StateManager(); - - /** - * Returns event manager. - * @return event manager - */ - static CVtEngEventManager& EventManager(); - - /** - * Returns Central repository proxy. - * @return ref to CR proxy - */ - static CVtEngCRProxy& CRProxy(); - - /** - * Returns accessory listener. - * @return accessory handler - */ - static CVtEngAccessoryHandler& AccessoryHandler(); - - /** - * Returns settings. - * @return ref to settings - */ - static CVtEngSettings& Settings(); - - /** - * Returns mediator command sender. - * @return ref to command sender - */ - static CVtEngMdtrCommandSender& MediatorCommands(); - - /** - * Prepares the utility - * @param aHandlers handler container - * @param aStateManagerPtr state manager pointer ref - * @param aEventManagerPtr event manager pointer ref - * @param aExtensionPtr extension container pointer - */ - void PrepareL( - CVtEngHandlerContainer& aHandlers, - CVtEngStateManager*& aStateManagerPtr, - CVtEngEventManager*& aEventManagerPtr, - CVtEngExtensions* aExtensionPtr ); - - /** - * Notifies device lock to UI. - */ - void NotifyLockState(); - - /** - * Returns Extension container. - * @since S60 v3.2 - * @return pointer to extensions - */ - static CVtEngExtensions* Extensions(); - /** - * Starts listening mediator messages. - */ - void StartMediatorListenerL(); - - private: - - /** - * C++ default constructor. - */ - CVtEngUtility(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Initializater for the engine - CVtEngInitializer* iEngineInit; - - // State manager pointer - CVtEngStateManager** iStateManager; - - // Settigs - CVtEngSettings* iSettings; - - // Event manager pointer - CVtEngEventManager** iEventManager; - - // Central repository interface - CVtEngCRProxy* iCRProxy; - - // Accessory handler - CVtEngAccessoryHandler* iAccessoryHandler; - - // SAT refresh listener - CVtEngSATClient* iSATClient; - - // Monitor for device lock state - CVtEngDeviceLockMonitor* iLockMonitor; - - // Extension pointer - CVtEngExtensions* iExtensions; - // For receiving Mediator commands and events - CVtEngMdtrMessageListener* iMdtrMessageListener; - - // For sending Mediator commands - CVtEngMdtrCommandSender* iMdtrCommandSender; - - }; - -#include "VtEngUtils.inl" - -#endif // VTENGUTILS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/VtEngUtils.inl --- a/vtengines/videoteleng/Inc/Base/VtEngUtils.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* 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: Video telephony engine TLS container. -* -*/ - - -// MEMBER FUNCTIONS - -inline CVtEngInitializer& CVtEngUtility::Initializer() const - { - return *iEngineInit; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/cvtengincomingcallmonitor.h --- a/vtengines/videoteleng/Inc/Base/cvtengincomingcallmonitor.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* 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: Monitor for incoming call -* -*/ - - - -#ifndef C_VTENGINCOMINGCALLMONITOR_H -#define C_VTENGINCOMINGCALLMONITOR_H - -// INCLUDES -#include -#include "MVtEngSettingPSObserver.h" - -// FORWARD DECLARATIONS -class CVtEngPubSubsListener; - -// CLASS DECLARATION -/** -* Monitor for incoming call state. -* -* @lib videoteleng -* @since S60 v3.2 -*/ -NONSHARABLE_CLASS( CVtEngIncomingCallMonitor ) : public CBase, public MVtEngSettingPSObserver - { -public: // Constructors and destructor - - static CVtEngIncomingCallMonitor* NewL(); - - /** - * Destructor. - */ - virtual ~CVtEngIncomingCallMonitor(); - -public: // New functions - - /** - * Sends event to UI of current incoming call state - */ - void NotifyState() const; - -public: // From MVtEngSettingPSObserver - - /** - * @see MVtEngSettingPSObserver::HandleNotifyPSL - */ - void HandleNotifyPSL( const TUid aUid, const TInt& aKey, - const TRequestStatus& aStatus ); - -private: - /** - * C++ constructor. - */ - CVtEngIncomingCallMonitor(); - - /** - * 2nd phase constructor - */ - void ConstructL(); - -private: - - // Listener for incoming call state - CVtEngPubSubsListener* iIncomingCallListener; - }; - -#endif // C_VTENGINCOMINGCALLMONITOR_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/cvtengmdtrcommandsender.h --- a/vtengines/videoteleng/Inc/Base/cvtengmdtrcommandsender.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2008 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: Sender class for mediator commands -* -*/ - - -#ifndef C_VTENGMDTRCOMMANDSENDER_H -#define C_VTENGMDTRCOMMANDSENDER_H - -// INCLUDES - -#include -#include -#include "MVtEngEventObserver.h" - -// FORWARD DECLARATIONS -class CVtEngUtility; -class CVtEngOperation; -class CVtEngMdtrCommandSender; -class TVtMdtrStateIdle; -// CLASS DECLARATION - -/** -* Mediator command sender -* -* @lib videoteleng -* @since 5.0 -*/ -NONSHARABLE_CLASS( CVtEngMdtrCommandSender ) : - public CBase, - public MMediatorCommandResponseObserver, - public MVtEngEventObserver - { -public: // constructor and destructors - - /** - * two-phase constructor - */ - static CVtEngMdtrCommandSender* NewL( CVtEngUtility& aUtils ); - - // Destructor - ~CVtEngMdtrCommandSender(); - -public: // new methods - - /** - * Requests telephony to end video call - */ - void EndCall(); - - /** - * Requests telephony to fallback to voice call - */ - void VoiceFallback(); - - /** - * Requests telephony to make voice call - */ - void SwitchToVoiceL( CVtEngOperation& aOperation ); - - /** - * Notifies telephony about outgoing audio state change - */ - void NotifyOutgoingAudioState( const TBool aMicEnabled ); - - void SetSenderState( TVtMdtrStateIdle& aNewState ); - - -public: // from MMediatorCommandResponseObserver - - // responses are not handled but required by mediator api - virtual void CommandResponseL( TUid aDomain, - TUid aCategory, - TInt aCommandId, - TInt aStatus, - const TDesC8& aData ); - -public: // from MVtEngEventObserver - - // handles event accordint to ongoing operation - virtual void HandleVtEventL( TInt aEvent ); - -private: // constructors - - CVtEngMdtrCommandSender( CVtEngUtility& aUtils ); - - void ConstructL(); - -private: - // for switch to voice operation, signaled when mediator command is issued. - CVtEngOperation* iOperation; - - // for mediator command reception - CMediatorCommandInitiator* iMediatorInitiator; - - CVtEngUtility& iUtils; - - TVtMdtrStateIdle* iSenderState; - }; - -#endif // C_VTENGMDTRCOMMANDSENDER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/cvtengmdtrmessagelistener.h --- a/vtengines/videoteleng/Inc/Base/cvtengmdtrmessagelistener.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2008 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: Listener class for mediator commands -* -*/ - - -#ifndef C_VTENGMDTRMESSAGELISTENER_H -#define C_VTENGMDTRMESSAGELISTENER_H - -// INCLUDES - -//#include -#include -#include -#include "MVtEngEventObserver.h" -#include "CVtEngStateManager.h" -#include "MVtEngSessionInfo.h" - -// FORWARD DECLARATIONS -class CMediatorCommandResponder; -class CVtEngUtility; - -// CLASS DECLARATION - -/** -* Mediator command and event listener -* -* @lib videoteleng -* @since 5.0 -*/ -NONSHARABLE_CLASS( CVtEngMdtrMessageListener ) : - public CBase, - private MMediatorCommandObserver, - private MMediatorEventObserver, - private MVtEngEventObserver - - { -public: // constructor and destructors - - /** - * two-phase constructor - */ - static CVtEngMdtrMessageListener* NewL( CVtEngUtility& aUtils ); - - // Destructor - ~CVtEngMdtrMessageListener(); - -public: // from MMediatorCommandObserver - - virtual void MediatorCommandL( TUid aDomain, - TUid aCategory, - TInt aCommandId, - TVersion aVersion, - const TDesC8& aData ); - - virtual void CancelMediatorCommand( TUid aDomain, - TUid aCategory, - TInt aCommandId ); - -public: // from MMediatorEventObserver - - virtual void MediatorEventL( TUid aDomain, - TUid aCategory, - TInt aEventId, - const TDesC8& aData ); - -public: // from MVtEngEventObserver - - // handles deferred CLI event dispatching - virtual void HandleVtEventL( TInt aEvent ); - -private: // constructors - - CVtEngMdtrMessageListener( CVtEngUtility& aUtils ); - - void ConstructL(); - -private: // new functions - - void HandleCLIEventL( const TDesC8& aData ); - - TBool IsReadyForCLIEvent() const; - -private: - CVtEngUtility& iUtils; - - // for mediator command reception - CMediatorCommandResponder* iMediatorResponder; - - CMediatorEventConsumer* iMediatorEvents; - - // supported mediator commands - MediatorService::RCommandList iCommandList; - }; - -#endif // C_VTENGMDTRMESSAGELISTENER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Base/cvtengmediatorservice.h --- a/vtengines/videoteleng/Inc/Base/cvtengmediatorservice.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* Copyright (c) 2008 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: Handles commands received via Mediator -* -*/ - - -#ifndef C_VTENGMEDIATORSERVICE_H -#define C_VTENGMEDIATORSERVICE_H - -// INCLUDES -#include -#include "mvtengoperationobserver.h" -#include "MVtEngEventObserver.h" -#include "vtengcommands.h" - -// FORWARD DECLARATIONS -class CMediatorCommandResponder; -class CVtEngOperation; -class CVtEngInternalOperation; -class CVtEngUtility; - -// CLASS DECLARATION - -/** -* Handles shutdown and audio commands from mediator. Deletes itself -* after service is completed. -* -* @lib videoteleng -* @since 5.0 -*/ -NONSHARABLE_CLASS( CVtEngMediatorService ) : - public CBase, - private MVtEngOperationObserver, - private MVtEngEventObserver - { -public: // constructor and destructors - - /** - * Starts requested service. - * @param aResponder target for mediator response - * @param aUtils engine internal utility - * @param aCommandId service to start - */ - static void StartLD( - CMediatorCommandResponder& aResponder, - CVtEngUtility& aUtils, - const TUid aCategory, - const TInt aCommandId ); - - ~CVtEngMediatorService(); - -public: // from MVtEngOperationObserver - - /** - * @see MVtEngOperationObserver - */ - virtual void SetOperation( CVtEngOperation* aActiveOp ); - - /** - * @see MVtEngOperationObserver - */ - virtual void CommandCompleteL( - const TVtEngCommandId aCommand, - const TInt aResult ); - -public: // from MVtEngEventObserver - - // handles event according to ongoing operation - virtual void HandleVtEventL( TInt aEvent ); - -private: // c++ constructor - - CVtEngMediatorService( - CMediatorCommandResponder& aResponder, - CVtEngUtility& aUtils, - const TUid aCategory, - const TInt aCommandId ); - -private: - - // prepares and starts requested operation - void ConstructAndDoServiceL(); - - // sends response to shutdown command if shutdown already ongoing - TBool IsShuttingDown() const; - - void StartOperationL( const TVtEngCommandId aCommand ); - - // Sends mediator response for shutdown or audio mute/unmute commands. - // deletes itself if not waiting internal command response. - void SendMediatorResponseD( const TBool aDeleteThis ); - -private: - CMediatorCommandResponder& iResponder; - - CVtEngInternalOperation* iOperation; - - CVtEngUtility& iUtils; - - // mediator Category [KCatVideotelInternalCommands, KCatPhoneToVideotelCommands] - TUid iCategory; - - // mediator command [shutdown, mute mic, unmute mic] - TInt iCommandId; - - // this is used for controlling - TInt iServiceStatus; - }; - -#endif // T_VTENGMEDIATORSERVICE_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/CVtEngCommandHandler.h --- a/vtengines/videoteleng/Inc/Commands/CVtEngCommandHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -/* -* 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: Command handler of the engine. -* -*/ - - - -#ifndef CVTENGCOMMANDHANDLER_H -#define CVTENGCOMMANDHANDLER_H - -// INCLUDES -#include -#include "MVtEngCommandHandler.h" -#include "mvtengoperationobserver.h" - -// FORWARD DECLARATIONS -class CVtEngHandlerContainer; -class CVtEngOperation; - -// CLASS DECLARATION - -/** -* Handler for commands from client. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngCommandHandler ) : public CBase, - public MVtEngCommandHandler, - public MVtEngOperationObserver - { - public: // constructor and destructors - - static CVtEngCommandHandler* NewL( - CVtEngHandlerContainer& aHandlers ); - - virtual ~CVtEngCommandHandler(); - - public: // from MVtEngCommandHandler - - /** - * @see MVtEngCommandHandler - */ - virtual void ExecuteL( - const TVtEngCommandId aCommand, - TDesC8* aParams ); - - /** - * @see MVtEngCommandHandler - */ - virtual TInt CancelCommand( const TVtEngCommandId aCommandId ); - - /** - * @see MVtEngCommandHandler - */ - virtual TInt GetCommandCaps( - const TVtEngCommandId aCommand ); - - /** - * @see MVtEngCommandHandler - */ - virtual TVtEngCommandId PendingCommand(); - - /** - * @see MVtEngCommandHandler - */ - virtual void AddObserverL( MVtEngCommandObserver& aObserver ); - - /** - * @see MVtEngCommandHandler - */ - virtual void RemoveObserver( MVtEngCommandObserver& aObserver ); - - public: // from MVtEngOperationObserver - - /** - * Handles command completion. - * @param aCommand command id - * @param aResult Symbian OS error code. - */ - virtual void CommandCompleteL( - const TVtEngCommandId aCommand, - const TInt aResult ); - - /** - * Sets pending asynch operation - * @param aActiveOp pending operation or NULL. - */ - virtual void SetOperation( CVtEngOperation* aActiveOp ); - - private: // constructors - - /** - * Second phase constructor - */ - void ConstructL(); - - /** - * c++ constructor - */ - CVtEngCommandHandler( CVtEngHandlerContainer& aHandlers ); - - private: - - void AddToPoolL( TVtEngCommandId aCommand ); - - /** - * Validates command - */ - void ValidateL( - const TVtEngCommandId aCommandId, - TDesC8* aParams ); - - /** - * Check if command is async. - */ - void CheckAsynchronity( - const TVtEngCommandId aCommandId, - TInt& aCaps ); - - /** - * Check if command is supported. - */ - void CheckSupport( - const TVtEngCommandId aCommandId, - TInt& aCaps ); - - /** - * Check if command is applicable in current state. - */ - void CheckState( - const TVtEngCommandId aCommandId, - TInt& aCaps ); - - private: // command pool - - struct TVtOpItem - { - TVtEngCommandId iId; - CVtEngOperation* iOperation; - }; - /** - * Command pool for commands instantiated at construction - * time to guarantee certain operations. - */ - NONSHARABLE_CLASS( CVtEngCmdPool ): public CArrayPtrFlat - { - public: // constructor and destructor - - // Constructor - CVtEngCmdPool( TInt aGranularity ); - - // Destructor - ~CVtEngCmdPool(); - - public: // data structures - - - public: // new methods - - /** - * Returns operation stored in the pool. - * @param aId command id - * @return operation or NULL if not found. - */ - CVtEngOperation* Get( const TVtEngCommandId aId ); - - }; - - private: // Data members - - RPointerArray iObservers; - CVtEngHandlerContainer& iHandlers; - CVtEngOperation* iActiveOp; - CVtEngCmdPool* iCommandPool; - - }; - -#endif //CVTENGCOMMANDHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/CVtEngOperation.h --- a/vtengines/videoteleng/Inc/Commands/CVtEngOperation.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* 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: Operation base class. -* -*/ - - - -#ifndef CVTENGOPERATION_H -#define CVTENGOPERATION_H - -// INCLUDES -#include -#include "vtengcommands.h" - -// FORWARD DECLARATIONS -class CVtEngCommandHandler; -class CVtEngHandlerContainer; -class MVtEngOperationObserver; - -/** -* Operation base class. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngOperation ) : public CBase - { - public: // constructor and destructors - - /** - * two-phase constructor - * @param aCommandId command id - * @param aHandlers handler container - * @param aObserver observer called back when operation is completed - * @param aDelete if ETrue command deletes itself after completion - */ - static CVtEngOperation* NewL( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete = ETrue ); - - /** - * Destructor - */ - ~CVtEngOperation( ); - - public: // new functions - - /** - * Performs operations. - * @return ETrue is operation is complete (i.e. sync). - */ - virtual TBool ExecuteL( TDesC8* aParams ); - - /** - * Cancels pending command. - * @return ETrue if cancelled was succesfull or there - * is nothing to cancel. - */ - TBool Cancel(); - - /** - * Returns command identifier. - * @return command identifier - */ - inline TVtEngCommandId Command() const; - - /** - * Returns command parameter buffer. - * @return parameter buffer - */ - inline const TDesC8* Parameters() const; - - /** - * Notifies observer on completion. - * @param aResult Symbian OS error code - */ - virtual void HandleOpComplete( const TInt aResult ); - - protected: // new functions - - /** - * - */ - TBool OfferExecuteSyncL( TDesC8* aParams ); - - protected: - /** - * c++ constructor - */ - CVtEngOperation( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aCommandHandler, - TBool aDelete ); - - /** - * Handles asynchronous operation complete - */ - static TInt ASyncHandleOpComplete( TAny* aPtr ); - - protected: - - // Command identifier - const TVtEngCommandId iCommand; - - // Handler container - CVtEngHandlerContainer& iHandlers; - - // observer for command response - MVtEngOperationObserver& iObserver; - - // Parameter - TDesC8* iParams; - - // Delete command when complete - TBool iDelete; - - // Pointer to asynchronous callback - CAsyncCallBack* iAsyncCallback; - - // Asynchronous callback error identifier - TInt iAsyncErr; - }; - -/** -* Utility class for unpacking data type with descriptor data. -* @lib videoteleng -* @since 2.6 -*/ -template -class TVtEngOpParamUtil - { - public: - /** - * Sets parameter in aDes to aRef. - */ - inline void static Set( T& aRef , const CVtEngOperation& aOp ); - }; - -#include "CVtEngOperation.inl" - -#endif // CVTENGOPERATION_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/CVtEngOperation.inl --- a/vtengines/videoteleng/Inc/Commands/CVtEngOperation.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* 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: Operation inline methods -* -*/ - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CVtEngOperation::Command -// ----------------------------------------------------------------------------- -inline TVtEngCommandId CVtEngOperation::Command() const { return iCommand; } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::Parameters -// ----------------------------------------------------------------------------- -inline const TDesC8* CVtEngOperation::Parameters() const { return iParams; } - -// ----------------------------------------------------------------------------- -// TVtEngOpParamUtil::Set -// ----------------------------------------------------------------------------- -template -inline void TVtEngOpParamUtil::Set( - T& aRef, - const CVtEngOperation& aOp ) - { - TPckgC pckg( aRef ); - pckg.Set( *aOp.Parameters() ); - aRef = pckg(); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/MVtEngCommandHandler.h --- a/vtengines/videoteleng/Inc/Commands/MVtEngCommandHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* 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: Command handler interface of the engine. -* -*/ - - - -#ifndef MVTENGCOMMANDHANDLER_H -#define MVTENGCOMMANDHANDLER_H - -// INCLUDES -#include -#include "vtengcommands.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -class MVtEngCommandObserver; - -// CLASS DECLARATION - -/** -* Handler for commands from client. -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngCommandHandler - { - public: - - /** - * EAttribAsync - * command is asynchronous. - * EAttribEnabled - * Command can be executed at the moment. - * EAttribSupported - * Command is supported by the engine. - */ - enum TCommandCaps - { - EAttribAsync = 0x00000001, - EAttribEnabled = 0x00000002, - EAttribSupported = 0x00000004 - }; - - /** - * Excecutes a command. This function leaves KErrNotReady - * if engine is in such a state that command cannot be - * executed. - * - * @param aCommandId command to be executed. - * @param aParams command parameters, NULL if command - * does not require any. - */ - virtual void ExecuteL( - const TVtEngCommandId aCommandId, - TDesC8* aParams ) = 0; - - /** - * Cancels a command. - * @param aCommandId command to cancel. - * @return KErrNotFound if command is not pending. - */ - virtual TInt CancelCommand( const TVtEngCommandId aCommandId ) = 0; - - /** - * Returns capabilities of a command. - * @return command caps - */ - virtual TInt GetCommandCaps( - const TVtEngCommandId aCommand ) = 0; - - /** - * Returns pending command. - * @return pending command - */ - virtual TVtEngCommandId PendingCommand() = 0; - - /** - * Sets command observer. First call on this is guaranteed - * to succeed. - * @param aObserver command observer. - */ - virtual void AddObserverL( MVtEngCommandObserver& aObserver ) = 0; - - /** - * Removes a command observer or if non-op if specified observer - * is not found. - * @param aObserver command observer to be removed. - */ - virtual void RemoveObserver( MVtEngCommandObserver& aObserver ) = 0; - }; - -#endif //MVTENGCOMMANDHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/MVtEngCommandObserver.h --- a/vtengines/videoteleng/Inc/Commands/MVtEngCommandObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* 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: Observer for asynchronous commands. -* -*/ - - - -#ifndef MVTENGCOMMANDOBSERVER_H -#define MVTENGCOMMANDOBSERVER_H - -// INCLUDES -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - - -// CLASS DECLARATION - -/** -* Observer for asynchronous commands. -* -* @since 2.6 -*/ -class MVtEngCommandObserver - { - public: // new functions - - /** - * Callback for command completion. - * @param aCommand completed command. This is - * same instance as passed in MVtEngCommandHandler::ExecuteL. - * Client may delete the command. - * @param aError Symbian OS error code. - */ - virtual void HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ) = 0; - }; - -#endif // MVTENGCOMMANDOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/TVtEngOperationUtils.h --- a/vtengines/videoteleng/Inc/Commands/TVtEngOperationUtils.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* 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: Handler utili -* -* -*/ - - - -#ifndef TVTENGOPERATIONUTILS -#define TVTENGOPERATIONUTILS - -// INCLUDES -#include -#include "vtengcommands.h" - - -// FORWARD DECLARATIONS -class CVtEngHandlerContainer; -class CVtEngOperation; -// CLASS DECLARATION - -/** -* Handles rendering operation -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngRenderUtil - { - public: - - static void HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - - static void Cancel( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - }; - -/** -* Handles audio routing operation. -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngAudioRoutingUtil - { - public: - - /** - * - * @param aOperation operation - */ - static void HandleL( - CVtEngOperation& aOperation ); - }; - - -/** -* Handles audio playback operation. -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngAudioPlaybackUtil - { - public: - - static void HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - }; - -/** -* Handles media transport operation like pausing/resuming. -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngMediaTransportUtil - { - public: - - static void HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - }; - -/** -* -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngViewFinderConfigureUtil - { - public: - - static void HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - }; - -/** -* -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngCameraConfigUtil - { - public: - - static void HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - }; - -/** -* Handles engine initialization. -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngEngineInitUtil - { - public: - - static void HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ); - - static void Cancel( CVtEngOperation& aOperation ); - }; - - -/** -* Handles extension operations. -* -* @lib videoteleng -* @since S60 v3.2 -*/ -class TVtEngExtensionUtil - { - public: - - /** - * Handles extension operations - * @param aOperation operation - */ - static void HandleL( - CVtEngOperation& aOperation ); - }; -#endif // TVTENGOPERATIONUTILS - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/cvtenginternaloperation.h --- a/vtengines/videoteleng/Inc/Commands/cvtenginternaloperation.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* Copyright (c) 2008 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: Operation class for commands not originated by UI but -* engine itself. -* -*/ - - -#ifndef C_VTENGINTERNALOPERATION_H -#define C_VTENGINTERNALOPERATION_H - -// INCLUDES -#include -#include "CVtEngOperation.h" - -// FORWARD DECLARATIONS -class CVtEngCommandHandler; -class CVtEngHandlerContainer; - -/** -* Class for handling operation (command) originated engine itself. -* Deviation from base class behavior: does not set itself as "active -* operation" in command handler (observer of the operation). Also -* response is given in synchronous manner. -* -* @lib videoteleng -* @since S60 5.0 -*/ -NONSHARABLE_CLASS( CVtEngInternalOperation ) : public CVtEngOperation - { -public: // constructor and destructors - - /** - * two-phase constructor - * @param aCommandId command id - * @param aHandlers handler container - * @param aCommandHandler command handler - * @param aDelete if ETrue command deletes itself after completion - * @return internal operation - */ - static CVtEngInternalOperation* NewL( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete = ETrue ); - - /** - * Destructor - */ - ~CVtEngInternalOperation( ); - -public: // from CVtEngOperation - - /** - * @see CVtEngOperation - */ - virtual TBool ExecuteL(); - - /** - * @see CVtEngOperation - */ - virtual void HandleOpComplete( const TInt aResult ); - -private: - /** - * c++ constructor - */ - CVtEngInternalOperation( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete ); - }; - -#endif // C_VTENGINTERNALOPERATION_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/mvtengoperationobserver.h --- a/vtengines/videoteleng/Inc/Commands/mvtengoperationobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2008 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: Observer interface for engine operations -* -*/ - - -#ifndef M_VTENGOPERATIONOBSERVER_H -#define M_VTENGOPERATIONOBSERVER_H - -// INCLUDES -#include -#include "vtengcommands.h" - -// FORWARD DECLARATIONS -class CVtEngOperation; - -// CLASS DECLARATION - -/** -* Interface for setting active operation and responding to commands -* -* @lib videoteleng -* @since 5.0 -*/ -class MVtEngOperationObserver - { -public: - - virtual void SetOperation( CVtEngOperation* aActiveOp ) = 0; - - virtual void CommandCompleteL( - const TVtEngCommandId aCommand, - const TInt aResult ) = 0; - }; - -#endif // M_VTENGOPERATIONOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Commands/vtengcommands.h --- a/vtengines/videoteleng/Inc/Commands/vtengcommands.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -/* -* 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: Video telephony engine command identifiers. -* -*/ - - - -#ifndef CVTENGCOMMANDS_H -#define CVTENGCOMMANDS_H - -// INCLUDES -#include - -// DATA TYPES -typedef TInt TVtEngCommandId; - -// CONSTANTS - - -const TInt KVtEngCommandNone = -1; - -const TInt KVtEngCommandBase = 0; - -/** -* Configuration commands -*/ -const TInt KVtEngConfigureCommandBase = KVtEngCommandBase + 100; - -// Allocates essential resources when application starts up -const TInt KVtEngInitializeEngine = KVtEngConfigureCommandBase + 1; - -// Resets engine. Use when all video calls are ended. -const TInt KVtEngResetEngine = KVtEngConfigureCommandBase + 2; - -/** -* Makes voice call to existing peer. -*/ -const TInt KVtEngSwitchToVoice = KVtEngConfigureCommandBase + 4; - -// Allocates essential resources when application starts up - TEST MODE -const TInt KVtEngInitializeEngineDiag = KVtEngConfigureCommandBase + 50; - -// Allocates essential resources when application starts up - TEST MODE -const TInt KVtEngInitializeEngineTest = KVtEngConfigureCommandBase + 51; -// - -/** -* Media commands for controlling local display and sending -* of media (audio/video) to the peer. -*/ -const TInt KVtEngMediaCommandBase = KVtEngConfigureCommandBase + 100; // 200 - -// Actual commands - -/** -* Selects source, -* @see MVtEngMedia::TMediaSource for command parameters. -*/ -const TInt KVtEngSetSource = KVtEngMediaCommandBase + 1; - -/** -* Async -* Initializes default or selected camera. -* Does not take parameters. See KVtEngSetSource command parameters. -*/ -const TInt KVtEngPrepareCamera = KVtEngMediaCommandBase + 2; - -/** -* prepares engine to pass view finder frames to UI -* @see MVtEngMedia::TVtEngViewFinderConfig for command parameters. -*/ -const TInt KVtEngPrepareViewFinder = KVtEngMediaCommandBase + 3; - -/** -* Sync -* prepares engine to render view finder frames using DSA -* @see MVtEngMedia::TRenderingOptionsDSA for command parameters. -*/ -const TInt KVtEngPrepareViewFinderDSA = KVtEngMediaCommandBase + 4; - -/** -* Async -* Starts view finder -* @see MVtEngMedia::TRenderingOptionsDSA for command parameters. -*/ -const TInt KVtEngStartViewFinder = KVtEngMediaCommandBase + 5; - -/** -* Async -* View finder control commands, do not take parameters. -*/ -const TInt KVtEngPauseViewFinder = KVtEngMediaCommandBase + 6; -const TInt KVtEngStopViewFinder = KVtEngMediaCommandBase + 7; - -/** -* Prepares engine for rendering video (with DSA) from peer -* @see MVtEngMedia::TRenderingOptionsDSA for command parameters. -*/ -const TInt KVtEngPrepareRemoteRenderDSA = KVtEngMediaCommandBase + 8; - -/** -* Prepares engine for rendering video from peer -* @see MVtEngMedia::TVtEngViewFinderConfig for command parameters. -*/ -const TInt KVtEngPrepareRemoteRender = KVtEngMediaCommandBase + 9; - -/** -* Remote video rendering commands, do not take parameters. -*/ -const TInt KVtEngStartRenderRemote = KVtEngMediaCommandBase + 10; -const TInt KVtEngPauseRenderRemote = KVtEngMediaCommandBase + 11; -const TInt KVtEngStopRenderRemote = KVtEngMediaCommandBase + 12; - -/** -* Media transport control commands, do not take parameters. -*/ -// Audio -const TInt KVtEngMuteOutgoingAudio = KVtEngMediaCommandBase + 13; -const TInt KVtEngUnmuteOutgoingAudio = KVtEngMediaCommandBase + 14; -const TInt KVtEngPauseIncomigAudio = KVtEngMediaCommandBase + 15; -const TInt KVtEngResumeIncomigAudio = KVtEngMediaCommandBase + 16; - -/** -* Sync. -* Sets video source provider zoom step. -* Parameter is TInt from zero to maximum zoom step. -* @see MVtEngMedia::GetMaxZoomStep. -*/ -const TInt KVtEngSetZoomStep = KVtEngMediaCommandBase + 17; - -/** -* Sync -* Sets size of remote video, parameter is of type TSize -*/ -const TInt KVtEngSetRemoteVideoSize = KVtEngMediaCommandBase + 18; - -/** -* Sets UI foreground state (ETrue or EFalse) -*/ -const TInt KVtEngSetUIForeground = KVtEngMediaCommandBase + 19; - -/** -* Freeze provider video. -*/ -const TInt KVtEngFreeze = KVtEngMediaCommandBase + 20; - -/** -* Unfreeze provider video. -*/ -const TInt KVtEngUnfreeze = KVtEngMediaCommandBase + 21; - -/** -* Adjusts video quality. -*/ -const TInt KVtEngSetVideoQuality = KVtEngMediaCommandBase + 22; - -/** -* Initialize image sharing. -*/ -const TInt KVtEngInitializeShareImage = KVtEngMediaCommandBase + 23; - -/** -* Start image sharing (must be initialized first). -*/ -const TInt KVtEngStartShareImage = KVtEngMediaCommandBase + 24; - -/** -* Stop image sharing. -*/ -const TInt KVtEngStopShareImage = KVtEngMediaCommandBase + 25; - -/** -* Sync -* prepares engine to render view finder frames using DP -* @see MVtEngMedia::TRenderingOptionsDP for command parameters. -*/ -const TInt KVtEngPrepareViewFinderDP = KVtEngMediaCommandBase + 26; - -/** -* Prepares engine for rendering video (with DP) from peer -* @see MVtEngMedia::TRenderingOptionsDP for command parameters. -*/ -const TInt KVtEngPrepareRemoteRenderDP = KVtEngMediaCommandBase + 27; - -/** -* Engine reintializes camera instance when layout change happens and active -* provider is onboard camera. If anyother provider is selected, then nothing -* will be done by the engine. -*/ -const TInt KVtEngHandleLayoutChange = KVtEngMediaCommandBase + 28; - -/** - * Sync - * Request update last remote video frame through MVtEngFrameObserver::vtSetFrame - */ -const TInt KVtEngRequestLastRemoteFrame = KVtEngMediaCommandBase + 29; - - -const TInt KVtEngPrepareRemoteRenderNGA = KVtEngMediaCommandBase + 30; - -/** -* Audio control -*/ -const TInt KVtEngAudioCommandBase = KVtEngMediaCommandBase + 100; // 300 - -// Actual commands - -/** -* Sets output volume level [1..10] for active audio device -*/ -const TInt KVtEngSetAudioVolume = KVtEngAudioCommandBase + 1; - -/** -* Audiorouting command -*/ -const TInt KVtEngSetAudioRouting = KVtEngAudioCommandBase + 2; - -/** -* Increase volume by one step. -*/ -const TInt KVtEngIncreaseAudioVolume = KVtEngAudioCommandBase + 3; - -/** -* Decrease volume by one step. -*/ -const TInt KVtEngDecreaseAudioVolume = KVtEngAudioCommandBase + 4; - -/** -* Session commands -*/ -const TInt KVtEngSessionCommandBase = KVtEngAudioCommandBase + 100; - -// Actual commands - -/** -* Terminates session and tears down connection -*/ -const TInt KVtEngTerminateSession = KVtEngSessionCommandBase + 1; - -const TInt KVtEngSendDtmf = KVtEngSessionCommandBase + 2; - -/** -* Starts sending a DTMF tone. Takes TChar parameter. Sync -*/ -const TInt KVtEngStartDtmfTone = KVtEngSessionCommandBase + 3; - -/** -* Stops previously started tone. Does not take parametners. Sync -*/ -const TInt KVtEngStopDtmfTone = KVtEngSessionCommandBase + 4; - -/** -* Remote supports UII DTMF. -*/ -const TInt KVtEngSetUIIDtmfSupport = KVtEngSessionCommandBase + 5; - -/** -* Remote supports UII basic string. -*/ -const TInt KVtEngSetUIIBasicStringSupport = KVtEngSessionCommandBase + 6; - -/** -* Remote supports UII IA5 string. -*/ -const TInt KVtEngSetUIIIA5StringSupport = KVtEngSessionCommandBase + 7; - -/** -* Remote supports UII general string. -*/ -const TInt KVtEngSetUIIGeneralStringSupport = KVtEngSessionCommandBase + 8; - - -/** -* Extension commands. -*/ -const TInt KVtEngExtensionCommandBase = KVtEngSessionCommandBase + 100; //500 -const TInt KVtEngSetContrast = KVtEngExtensionCommandBase + 1; -const TInt KVtEngSetBrightness = KVtEngExtensionCommandBase + 2; -const TInt KVtEngSetWhiteBalance = KVtEngExtensionCommandBase + 3; -const TInt KVtEngSetColorTone = KVtEngExtensionCommandBase + 4; -#if defined ( RD_VT_RTF ) -const TInt KVtEngStartRecord = KVtEngExtensionCommandBase + 5; -const TInt KVtEngStopRecord = KVtEngExtensionCommandBase + 6; -#endif // RD_VT_RTF - -#endif // CVTENGCOMMANDS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/CVtEngCameraPreferences.h --- a/vtengines/videoteleng/Inc/Extensions/CVtEngCameraPreferences.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* 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: Videoteleng Camera Preferences extension -* -*/ - - -#ifndef CVTENGCAMERAPREFERENCES_H -#define CVTENGCAMERAPREFERENCES_H - -// INCLUDES -#include "VtEngPanic.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "CVtEngOperation.h" - -#include -#include - -#include -#include "CVtEngExtensionBase.h" - -// FORWARD DECLARATIONS -class CVSDataProvider; -class MVtEngCameraPreferencesObserver; - -// CLASS DECLARATION - -/** -* Videoteleng extension base class. -* -* @lib videoteleng.lib -* @since S60 v3.2 -*/ -NONSHARABLE_CLASS ( CVtEngCameraPreferences ): public CVtEngExtensionBase, - public MVtEngCameraPreferences - { - public: //Constructor and destructor. - - /** - * Symbian two-phase constructor. - * @return engine extension instance - */ - static CVtEngCameraPreferences* NewL(); - - /** - * Destructor. - */ - ~CVtEngCameraPreferences(); - - public: // from base class CVtEngExtensionBase - - /** - * @see CVtEngExtensionBase::GetInterface - */ - virtual TAny* GetInterface(); - - /** - * @see CVtEngExtensionBase::HandleL - */ - virtual TBool HandleL( CVtEngOperation* aOp ); - - /** - * @see CVtEngExtensionBase::ValidateCommand - */ - virtual TBool ValidateCommand( const TVtEngCommandId aCommandId ); - - public: // from base class MVtEngCameraPreferences - - /** - * @see MVtEngCameraPreferences::GetColorTone - */ - virtual TInt GetColorTone( - MVtEngCameraPreferences::TColorTone& aColortone ) const; - - /** - * @see MVtEngCameraPreferences::GetSupportedColorTones - */ - virtual TInt GetSupportedColorTones( - TUint32& aSupportedColorTones ) const; - - /** - * @see MVtEngCameraPreferences::GetWhiteBalance - */ - virtual TInt GetWhiteBalance( - MVtEngCameraPreferences::TWhiteBalance& aWhiteBalance ) const; - - /** - * @see MVtEngCameraPreferences::GetSupportedWhiteBalanceModes - */ - virtual TInt GetSupportedWhiteBalanceModes( - TUint32& aWhiteBalance ) const; - - /** - * @see MVtEngCameraPreferences::GetBrightness - */ - virtual TInt GetBrightness( TInt& aBrightness) const; - - /** - * @see MVtEngCameraPreferences::GetContrast - */ - virtual TInt GetContrast( TInt& aContrast ) const; - - public: - - /** - * Sets data provider to camera prefefrences - * @param aProvider pointer to current active data provider - * @param aObserver reference to observer - */ - virtual void SetProvider( CVSDataProvider* aProvider, - MVtEngCameraPreferencesObserver& aObserver ); - - /** - * Detaches observer from preference instance. - * @param aObserver reference to observer - */ - void Detach( MVtEngCameraPreferencesObserver& aObserver ); - - private: - - /* - * C++ default constructor. - */ - CVtEngCameraPreferences(); - - /** - * Symbian two-phase constructor. - */ - void ConstructL(); - - private: - - // Video source data provider pointer - CVSDataProvider* iProvider; - - // Preference observer pointer - MVtEngCameraPreferencesObserver* iObserver; - - }; - -#endif //CVTENGCAMERAPREFERENCES_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/CVtEngExtensionBase.h --- a/vtengines/videoteleng/Inc/Extensions/CVtEngExtensionBase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* -* 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: Videoteleng extension base class -* -*/ - - -#ifndef CVTENGEXTENSIONSBASE_H -#define CVTENGEXTENSIONSBASE_H - -// INCLUDES -#include -#include "vtengcommands.h" - -// FORWARD DECLARATIONS -class CVtEngOperation; - -// CLASS DECLARATION - -/** -* Videoteleng extension base class. -* -* @lib videoteleng.lib -* @since S60 v3.2 -*/ -NONSHARABLE_CLASS ( CVtEngExtensionBase ): public CBase - - { - public: // pure virtuals. - - /** - * Returns extension API interface - * @return API IF as TAny pointer - */ - virtual TAny* GetInterface() = 0; - - /** - * Handles requested extension operation - * @param aOp requested operation pointer - * @return TBool if operation succeed or not - */ - virtual TBool HandleL( CVtEngOperation* aOp ) = 0; - - /** - * Validates requested extension command - * @param aCommandId requested command identifier (TInt) - * @return TBool if command is valid or not - */ - virtual TBool ValidateCommand( const TVtEngCommandId aCommandId ) = 0; - - /** - * Gets extension UID - * @return extension UID - */ - const TUid& Uid() const; - - protected:// Constructor. - /* - * C++ default constructor. - */ - CVtEngExtensionBase( TUid aExtensionUid ); - - private: - - // Extension UID - const TUid iExtensionUid; - }; - -#endif //CVTENGEXTENSIONSBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/CVtEngExtensions.h --- a/vtengines/videoteleng/Inc/Extensions/CVtEngExtensions.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* 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: Videoteleng API extension configuration -* -*/ - - -#ifndef CVTENGEXTENSIONS_H -#define CVTENGEXTENSIONS_H - -// INCLUDES -#include -#include "vtengcommands.h" - -// CONSTANTS AND MACROS -const TInt KExtensionGranularity = 1; - -// FORWARD DECLARATIONS -class CVtEngExtensionBase; -class CVtEngCameraPreferences; -class CVtEngOperation; -class CVtEngMediaHandler; - -// CLASS DECLARATION - -/** -* Video telephony extension handling. -* -* @lib videoteleng.lib -* @since S60 v3.2 -*/ -NONSHARABLE_CLASS(CVtEngExtensions): public CBase - - { - public: // Constructor and destructor. - - /** - * Symbian two-phase constructor. - * @return engine extension instance - */ - static CVtEngExtensions* NewL(); - - /** - * Destructor. - */ - ~CVtEngExtensions(); - - public: - - /** - * Gets client interface from certain extension - * @param aInterfacePtr a pointer to client IF pointer - * @param aUid requested client IF extension UID - * @param aHandler a handle to media handler - */ - TInt GetClientInterface( TAny** aInterfacePtr, - const TUid& aUid , CVtEngMediaHandler& aHandler ); - - /** - * Offers operation for extensions - * @param aOp operation pointer - * @return TBool value indicating if any of exsisting extension - * was able to handle operation - */ - TBool OfferOperationL( CVtEngOperation* aOp ); - - /** - * Validates extension command - * @param aCommandId command ID (TInt) - * @return TBool value indicating if any of exsisting extension - * was able to validate operation - */ - TBool ValidateCommand( const TVtEngCommandId aCommandId ); - - private: - - /** - * C++ default constructor. - */ - CVtEngExtensions(); - - /** - * Symbian constructor that may leave. - */ - void ConstructL(); - - /** - * Creates certain extension - */ - CVtEngExtensionBase* CreateExtensionsL( const TUid& aUid, - CVtEngMediaHandler& aHandler ); - - /** - * Search extensions using UID - */ - TInt LookupExtensions( const TUid& aUid) const; - - private: - - // Extension handle container - RPointerArray iExtensionArray; - - }; - -#endif //CVTENGEXTENSIONS_H diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/MVtEngCameraPreferences.h --- a/vtengines/videoteleng/Inc/Extensions/MVtEngCameraPreferences.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* 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: Videoteleng Camera Preferences extension API -* -*/ - - -#ifndef MVTENGCAMERAPREFERENCES_H -#define MVTENGCAMERAPREFERENCES_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -// CONSTANTS -const TUid KVtEngExtensionCameraPreferences = {0x10282814}; - -/** -* Camera preferences extension API class. -* -* @lib videoteleng.lib -* @since S60 v3.2 -*/ - -class MVtEngCameraPreferences - { - public: - - enum TColorTone - { - /** Normal colors. */ - ENormal = CCamera::CCameraImageProcessing::EEffectNone, - /** Sepial. */ - ESepia = CCamera::CCameraImageProcessing::EEffectSepia, - /** Black and White. */ - EGrayscale = CCamera::CCameraImageProcessing::EEffectMonochrome, - /** Inverted colors. */ - ENegative = CCamera::CCameraImageProcessing::EEffectNegative - }; - - enum TWhiteBalance - { - /** Automatically adjusted. */ - EAuto = CCamera::EWBAuto, - /** Normal daylight. */ - EDaylight = CCamera::EWBDaylight, - /** Overcast daylight. */ - ECloudy = CCamera::EWBCloudy, - /** Tungsten filament lighting. */ - ETungsten = CCamera::EWBTungsten, - /** Fluorescent bulb lighting. */ - EFluorescent = CCamera::EWBFluorescent, - /** Flash lighting. */ - EFlash = CCamera::EWBFlash, - /** High contrast daylight primarily snowy. */ - ESnow = CCamera::EWBSnow, - /** High contrast daylight primarily near the sea. */ - EBeach = CCamera::EWBBeach, - /** User configurable mode. */ - EManual = CCamera::EWBManual, - /** Shade. */ - EShade = CCamera::EWBShade - }; - - enum TBrightness - { - /** Automatically set brightness value*/ - EAutomaticBrightness = KMinTInt - }; - - enum TContrasts - { - /** Automatically set contrast value*/ - EAutomaticContrast = KMinTInt - }; - - /** - * Gets current color tone value from camera - * @param aColortone reference value for current color tone - * @return Symbian error code - */ - virtual TInt GetColorTone( TColorTone& aColortone ) const = 0; - - /** - * Gets all suported color tone values from camera - * @param aSupportedColorTones reference value for supported colortone - * values (a bit field) - * @return Symbian error code - */ - virtual TInt GetSupportedColorTones( - TUint32& aSupportedColorTones ) const = 0; - - /** - * Gets current whitebalance value from camera - * @param aWhiteBalance reference value for current whitebalance - * @return Symbian error code - */ - virtual TInt GetWhiteBalance( - TWhiteBalance& aWhiteBalance ) const = 0; - - /** - * Gets all suported whitebalance values from camera - * @param aWhiteBalance reference value for supported whitebalance - * values (a bit field) - * @return Symbian error code - */ - virtual TInt GetSupportedWhiteBalanceModes( - TUint32& aWhiteBalance ) const = 0; - - /** - * Gets current brightness value from camera - * @param aBrightness reference value for current brightness - * @return Symbian error code - */ - virtual TInt GetBrightness( TInt& aBrightness) const = 0; - - /** - * Gets current contrast value from camera - * @param aContrast reference value for current brightness - * @return Symbian error code - */ - virtual TInt GetContrast( TInt& aContrast ) const = 0; - - }; - -#endif //MVTENGCAMERAPREFERENCES_H - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/cvtengr2ftoneplayer.h --- a/vtengines/videoteleng/Inc/Extensions/cvtengr2ftoneplayer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* 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: Plays video start/stop sounds. -* -*/ - - -#ifndef CVTENGR2FTONEPLAYER_H -#define CVTENGR2FTONEPLAYER_H - -// INCLUDES -#include -#include - -// CONSTANTS - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Plays video start/stop sounds. -* @since s60 v5.0 -*/ -NONSHARABLE_CLASS ( CVtEngR2FTonePlayer ) : public CBase, - public MMdaAudioPlayerCallback - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtEngR2FTonePlayer* NewL(); - - /** - * Destructor. - */ - virtual ~CVtEngR2FTonePlayer(); - - public: // New functions - /** - * Play a sound with given id. - * @param aSound identifies which sound to play - * (see r_ccor_sound_list in resources). - * @return Symbian error code. - */ - TInt PlaySound( TInt aSound ); - - /** - * Stop any ongoing sound. - */ - void StopSound(); - - private: // Functions from base classes - /** - * From MMdaAudioPlayerCallback. - */ - void MapcInitComplete( TInt aError, - const TTimeIntervalMicroSeconds& aDuration ); - - /** - * From MMdaAudioPlayerCallback. - */ - void MapcPlayComplete( TInt aError ); - - private: // New functions - /** - * C++ constructor. - */ - CVtEngR2FTonePlayer(); - - /** - * Symbian OS 2nd phase constructor. - */ - void ConstructL(); - - private: // Data - - TBool iOpenFileInProgress; - TBool iSoundInProgress; - CMdaAudioPlayerUtility* iAudioPlayer; // owned - - HBufC* iVideoStartSound; // owned - HBufC* iVideoStopSound; // owned - - public: - - /** - * Enum for tone player sound ID's - */ - enum TVtR2FSoundId - { - /** Video record start sound*/ - EVtR2FVideoStartSoundId = 1, - /** Video record stopt sound*/ - EVtR2FVideoStopSoundId - }; - }; - -#endif //CVTENGR2FTONEPLAYER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/cvtengrecord2file.h --- a/vtengines/videoteleng/Inc/Extensions/cvtengrecord2file.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* 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: Videoteleng Camera Preferences extension -* -*/ - - -#ifndef CVTENGRECORD2FILE_H -#define CVTENGRECORD2FILE_H - -// INCLUDES -#include "VtEngPanic.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "CVtEngOperation.h" - -#include "cvtengr2ftoneplayer.h" - -#include -#include - -#include -#include "CVtEngExtensionBase.h" - -// FORWARD DECLARATIONS - -// CLASS DECLARATION -class CVtEngR2FTonePlayer; -/** -* Videoteleng extension base class. -* -* @lib videoteleng.lib -* @since S60 v3.2 -*/ -NONSHARABLE_CLASS ( CVtEngRecord2File ): public CVtEngExtensionBase, - public MVtEngRecord2File - { - public: //Constructor and destructor. - - /** - * Symbian two-phase constructor. - * @return engine extension instance - */ - static CVtEngRecord2File* NewL(); - - /** - * Destructor. - */ - ~CVtEngRecord2File(); - - public: // from base class CVtEngExtensionBase - - /** - * @see CVtEngExtensionBase::GetInterface - */ - virtual TAny* GetInterface(); - - /** - * @see CVtEngExtensionBase::HandleL - */ - virtual TBool HandleL( CVtEngOperation* aOp ); - - /** - * @see CVtEngExtensionBase::ValidateCommand - */ - virtual TBool ValidateCommand( const TVtEngCommandId aCommandId ); - - public: // from base class MVtEngRecord2File - - /** - * For testin puposes only - * @see MVtEngRecord2File::IsTonePlaySupported - */ - virtual TInt IsTonePlaySupported( TBool& aSupported) const; - - - private: - - /** - * C++ default constructor. - */ - CVtEngRecord2File(); - - /** - * Symbian two-phase constructor. - */ - void ConstructL(); - - public: // data - - private: // data - CVtEngR2FTonePlayer* iTonePlayer; - }; - -#endif //CVTENGRECORD2FILE_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/mvtengcamerapreferencesobserver.h --- a/vtengines/videoteleng/Inc/Extensions/mvtengcamerapreferencesobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2008 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: Videoteleng Camera Preferences extension Observer -* -*/ - - -#ifndef MVTENGCAMERAPREFERENCESOBSERVER_H -#define MVTENGCAMERAPREFERENCESOBSERVER_H - -// INCLUDES -#include - -/** -* Camera preferences extension observer. -* -* @lib videoteleng.lib -* @since S60 v5.0 -*/ -class MVtEngCameraPreferencesObserver - { - -public: - - /** - * Called when observer is attached to camera preferences instance. - * @param aCamPrefs Reference to camera preferences instance this observer - * was attached to. - */ - virtual void Attach( MVtEngCameraPreferences& aCamPrefs ) = 0; - - /** - * Called when color tone is updated. - * @param aColorTone New color tone value. - */ - virtual void ColorToneUpdated( - MVtEngCameraPreferences::TColorTone aColorTone ) = 0; - - /** - * Called when white balance is updated. - * @param aWhiteBalance New white balance value. - */ - virtual void WhiteBalanceUpdated( - MVtEngCameraPreferences::TWhiteBalance aWhiteBalance ) = 0; - - /** - * Called when brightness is updated. - * @param aBrightness New brightness value set. - */ - virtual void BrightnessUpdated( TInt aBrightness ) = 0; - - /** - * Called when contrast is updated. - * @param aContrast New contrast value set. - */ - virtual void ContrastUpdated( TInt aContrast ) = 0; - - /** - * Called when observer is detached from camera preferences instance. - * @param aCamPrefs Reference to camera preferences instance this observer - * was detached from. - */ - virtual void Detach( MVtEngCameraPreferences& aCamPrefs ) = 0; - - }; - -#endif // MVTENGCAMERAPREFERENCESOBSERVER_H - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Extensions/mvtengrecord2file.h --- a/vtengines/videoteleng/Inc/Extensions/mvtengrecord2file.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* 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: Videoteleng Record to file extension API -* -*/ - - -#ifndef MVTENGRECORD2FILE_H -#define MVTENGRECORD2FILE_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -// CONSTANTS -const TUid KVtEngExtensionRecord2File = {0x10283156}; - -/** -* Record to file extension API class. -* -* @lib videoteleng.lib -* @since S60 v5.0 -*/ - -class MVtEngRecord2File - { - public: - - /** - * For testin puposes only REMOVE - * @param aSupported boolean for tone play support - * @return Symbian error code - */ - virtual TInt IsTonePlaySupported( TBool& aSupported) const = 0; - }; -#endif //MVTENGRECORD2FILE_H - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngDrawDP.h --- a/vtengines/videoteleng/Inc/Media/CVtEngDrawDP.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,509 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Remote video handling class. -* -*/ - - - -#ifndef CVTENGDRAWDP_H -#define CVTENGDRAWDP_H - -// INCLUDES - -#include "CVtEngRemoteVideo.h" -#include "TVtEngRenderConfigDP.h" - -#include - -// FORWARDS - -class TDisplaySinkParamsDP; -class CVtImageBitmap; -class CVtImageScaler; - -// CONSTANTS AND MACROS - -const TInt KVtEngMaxBuffers = 2; - -// CLASSES - -/** -* Buffer waiter observer API -* -* @lib videoteleng.lib -* @since Series 60 3.2 -*/ -NONSHARABLE_CLASS( MVtEngBufferWaiterObserver ) - { - public: // New methods - - /** - * Buffer fetched without errors. - * @param aBuffer Pointer to fetched buffer. - */ - virtual void BufferReady( - CPostingSurface::TPostingBuff* aBuffer ) = 0; - - /** - * Buffer fetch error. - * @param aError Error code. - */ - virtual void FetchError( TInt aError ) = 0; - }; - -/** -* Display Posting drawer -* -* @lib videoteleng.lib -* @since Series 60 3.2 -*/ -NONSHARABLE_CLASS( CVtEngDrawDP ) : public CVtEngRemoteVideo::CVtEngDraw, - public MVtEngBufferWaiterObserver, - public MVtImageScalerObserver - - { - public: // constructor and destructor - - /** - * Two-phased constructor. - * @param aObserver call back interface to Display Sink - * @return instance of CVtEngDrawDP - */ - static CVtEngDrawDP* NewL( MDisplaySinkObserver* aObserver ); - - // Destructor - ~CVtEngDrawDP(); - - private: - - /** - * C++ constructor as private. - * @param aObserver callback interface for Display Sink - */ - CVtEngDrawDP( MDisplaySinkObserver* aObserver ); - - private: // from MVtEngDraw - - /** - * @see CVtEngDraw::BaseConstructL - */ - void BaseConstructL(); - - /** - * @see CVtEngDraw::CreateSinkL - */ - MDisplaySink* CreateSinkL(); - - /** - * @see CVtEngDraw::BaseRefreshL - */ - void BaseRefreshL(); - - /** - * @see CVtEngDraw::BaseRefreshBitmapsL - */ - void BaseRefreshBitmapsL(); - - /** - * @see CVtEngDraw::BaseDoCancel - */ - void BaseDoCancel(); - - /** - * @see CVtEngDraw::BaseVerifyConfigL - */ - void BaseVerifyConfigL(); - - /** - * @see CVtEngDraw::BaseRestartL - */ - void BaseRestartL(); - - /** - * @see CVtEngDraw::BaseAbortNow - */ - void BaseAbortNow(); - - /** - * @see CVtEngDraw::BaseStartDrawL - */ - void BaseStartDrawL(); - - /** - * @see CVtEngDraw::BaseStopDraw - */ - void BaseStopDraw(); - - /** - * @see CVtEngDraw::BaseSetConfigL - */ - void BaseSetConfigL( const TVtEngRenderConfig& aConfig ); - - /** - * @see CVtEngDraw::BaseSetUIForegroundL - */ - void BaseSetUIForegroundL( TBool aForeground ); - - /** - * @see CVtEngDraw::BaseVideoFrameSizeChangedL - */ - void BaseVideoFrameSizeChangedL( const TSize& aTo ); - - /** - * @see CVtEngDraw::BaseRequestLastFrame - */ - void BaseRequestLastFrame(); - - /** - * @see CVtEngDraw::Config - */ - TVtEngRenderConfig& Config(); - - private: // new methods - - /** - * Handles all delayed calls. - */ - void HandleDelayedCallsL(); - - /** - * Base construct implementation - */ - void DoBaseConstructL(); - - /** - * Base start drawing implementation - */ - void DoBaseStartDrawL(); - - /** - * Initialize posting surface implementation - */ - void DoInitializePostingSurfaceL(); - - /** - * Update sink params implementation. - */ - void DoUpdateSinkParamsL(); - - /** - * Updates sink params. - */ - void UpdateSinkParamsL(); - - /** - * Checks if the alpha has been trashed on screen buffer (ETrue if it - * has been trashed, EFalse otherwise). - */ - TBool IsAlphaTrashed() const; - - /** - * Sets clipping region (read from DSA). - */ - void SetClipRegionL(); - - /** - * Initializes DP. - */ - void InitializePostingSurfaceL(); - - /** - * Fills posting source params structure. - */ - void GetPostingSourceParams( - CPostingSurface::TPostingSourceParams& aParams ) const; - - /** - * Fills posting params structure. - */ - void GetPostingParams( - CPostingSurface::TPostingParams& aParams ) const; - - /** - * Returns ETrue if given format is supported, EFalse otherwise. - */ - TBool SupportsFormat( - const CPostingSurface::TPostingFormat& aFormat ) const; - - /** - * Returns ETrue if given size is supported, EFalse otherwise. - */ - TBool SupportsSize( const TSize& aSize ) const; - - /** - * Returns ETrue if given rotation is supported, - * EFalse otherwise. - */ - TBool SupportsRotation( - CPostingSurface::TRotationType aRotation ) const; - - /** - * Returns ETrue if mirroring is supported, EFalse otherwise. - */ - TBool SupportsMirroring() const; - - /** - * Returns ETrue if scaling is supported, EFalse otherwise. - */ - TBool SupportsScaling() const; - - /** - * Returns ETrue if brightness controlling is supported, - * EFalse otherwise. - */ - TBool SupportsBrightness() const; - - /** - * Returns ETrue if contrast controlling is supported, - * EFalse otherwise. - */ - TBool SupportsContrast() const; - - /** - * Returns buffer size in bytes for given size and current posting - * format. - */ - TInt GetFrameBufferSize( const TSize& aTo ) const; - - /** - * Recreates clipregion. May leave with KErrNoMemory. - */ - void RecalculateClipRegionL(); - - /** - * Fixes rect for DP. - */ - void FixRectForDP( TRect& aRect ) const; - - /** - * Fills sink parameters. - */ - void GetSinkParams( TDisplaySinkParamsDP& aSinkParams ); - - /** - * Returns reference to sink. - */ - MDisplaySink& DisplaySink(); - - /** - * Stores given frame buffer. - */ - void StoreFrameBuffer( CPostingSurface::TPostingBuff* aPostingBuffer ); - - /** - * Creates frame buffer. - */ - void CreateFrameBufferL( const TSize& aSize ); - - /** - * Async draw callback. - */ - static TInt CallBack( TAny* aPtr ); - - /** - * Sets given buffer available to display sink. - */ - void SetAvailableToSink( CPostingSurface::TPostingBuff* aBuffer ); - - /** - * Creates instance of posting surface. - */ - CPostingSurface* CreatePostingSurfaceL(); - - /** - * Close the DP API library and free the allocated instance. - */ - void CloseDPLibrary(); - - /** - * Loads DP API library. - */ - void LoadDPLibraryL(); - - /** - * Converts YUV420 image to bitmap. - */ - void Convert420ToVtImg( HBufC8* aSource, CVtImageBitmap& aTarget ); - - /** - * Converts YUV422 image to bitmap. - */ - void Convert422ToVtImg( HBufC8* aSource, CVtImageBitmap& aTarget ); - - /** - * Updates Vt frame to frame observer. - */ - void UpdateVtFrame(); - - public: // From MVtImageScalerObserver. - - /** - * @ see MVtImageScalerObserver. - */ - virtual void ScalingFinished( TInt aError ); - - - private: // from CActive - - /** - * Handles prepared bitmap from display sink. - * @see CActive::RunL - */ - void RunL(); - - private: // from MVtEngBufferWaiterObserver - - /** - * @see MVtEngBufferWaiterObserver::BufferReady - */ - void BufferReady( CPostingSurface::TPostingBuff* aBuffer ); - - /** - * @see MVtEngBufferWaiterObserver::FetchError - */ - void FetchError( TInt aError ); - - private: // inner classes - - // Buffer class for storing buffer. - NONSHARABLE_CLASS( TVtEngBuffer ) - { - public: - - /** - * C++ constructor - */ - TVtEngBuffer(); - - /** - * Sets buffer - */ - void Set( CPostingSurface::TPostingBuff* aBuffer ); - - /** - * Unsets buffer - */ - void UnSet(); - - /** - * Returns ETrue if buffer is set - */ - TBool IsSet() const; - - /** - * Returns pointer reference to stored buffer. - */ - CPostingSurface::TPostingBuff*& Buffer(); - - private: - - // Pointer's pointer to buffer - CPostingSurface::TPostingBuff* iBuffer; - }; - - // Waiter class for asynchronous events. - NONSHARABLE_CLASS( CVtEngBufferWaiter ) : public CActive - { - public: - - /** - * C++ constructor. - */ - CVtEngBufferWaiter( CPostingSurface& aPostingSurface, - MVtEngBufferWaiterObserver& aObserver ); - - /** - * Destructor, frees all resources allocated by this instance. - */ - ~CVtEngBufferWaiter(); - - /** - * Fetch new buffer (also activates listening). - */ - TInt FetchBuffer(); - - private: // new methods - - /** - * Activate buffer listening (also calls CActive::SetActive()). - */ - void Activate(); - - private: // from CActive - - /** - * @see CActive::RunL() - */ - void RunL(); - - /** - * @see CActive::DoCancel() - */ - void DoCancel(); - - private: // data - - // Posting surface instance (not owned) - CPostingSurface* iPostingSurface; - - // BufferWaiter observer who gets informed about buffers - MVtEngBufferWaiterObserver* iObserver; - }; - - private: // data - - // Posting surface instance - CPostingSurface* iPostingSurface; - - // Posting capabilities - CPostingSurface::TPostingCapab iPostingCaps; - - // Posting buffers - TVtEngBuffer - iBuffers[ MDisplaySink::EFirstBitmap + KVtEngMaxBuffers ]; - - // Buffer waiter instance - CVtEngBufferWaiter* iBufferWaiter; - - // Rendering configuration - TVtEngRenderConfigDP iConfig; - - // Clipping region - RRegion iClipRegion; - - // Frame buffer - HBufC8* iFrameBuffer; - - // Selected posting format - CPostingSurface::TPostingFormat iPostingFormat; - - // DP API DLL - RLibrary* iDPLib; - - // Source image contains converted YUV frame - CVtImageBitmap* iSource; - - // Target image contains scaled bitmap - CVtImageBitmap* iTarget; - - // Image scaler instance - CVtImageScaler* iImageScaler; - - // Clip region updated - TBool iClipRegionUpdated; - - }; - -#endif // CVTENGDRAWDP_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngDrawDSA.h --- a/vtengines/videoteleng/Inc/Media/CVtEngDrawDSA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/* -* Copyright (c) 2004-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: Remote video handling class. -* -*/ - - - -#ifndef CVTENGDRAWDSA_H -#define CVTENGDRAWDSA_H - -// INCLUDES - -#include "CVtEngRemoteVideo.h" -#include "TVtEngRenderConfigDSA.h" - -// FORWARDS - -class TDisplaySinkParamsDSA; - -/** -* Direct Screen Access drawer -* -* @lib videoteleng.lib -* @since Series 60 3.2 -*/ -NONSHARABLE_CLASS( CVtEngDrawDSA ) : public CVtEngRemoteVideo::CVtEngDraw, - public MVtEngScalerObserver - { - public: // constructor and destructor - - /** - * Two-phased constructor. - * @param aObserver call back interface to Display Sink - * @return instance of CVtEngDrawDSA - */ - static CVtEngDrawDSA* NewL( MDisplaySinkObserver* aObserver ); - - // Destructor - ~CVtEngDrawDSA(); - - private: // construction - - /** - * C++ constructor as private. - * @param aObserver callback interface for Display Sink - */ - CVtEngDrawDSA( MDisplaySinkObserver* aObserver ); - - private: // from CVtEngDraw - - /** - * @see CVtEngDraw::BaseConstructL - */ - void BaseConstructL(); - - /** - * @see CVtEngDraw::CreateSinkL - */ - MDisplaySink* CreateSinkL(); - - /** - * @see CVtEngDraw::BaseRefreshL - */ - void BaseRefreshL(); - - /** - * @see CVtEngDraw::BaseRefreshBitmapsL - */ - void BaseRefreshBitmapsL(); - - /** - * @see CVtEngDraw::BaseDoCancel - */ - void BaseDoCancel(); - - /** - * @see CVtEngDraw::BaseVerifyConfigL - */ - void BaseVerifyConfigL(); - - /** - * @see CVtEngDraw::BaseRestartL - */ - void BaseRestartL(); - - /** - * @see CVtEngDraw::BaseAbortNow - */ - void BaseAbortNow(); - - /** - * @see CVtEngDraw::BaseStartDrawL - */ - void BaseStartDrawL(); - - /** - * @see CVtEngDraw::BaseStopDraw - */ - void BaseStopDraw(); - - /** - * @see CVtEngDraw::BaseSetConfigL - */ - void BaseSetConfigL( const TVtEngRenderConfig& aConfig ); - - /** - * @see CVtEngDraw::BaseSetUIForegroundL - */ - void BaseSetUIForegroundL( TBool aForeground ); - - /** - * @see CVtEngDraw::BaseVideoFrameSizeChangedL - */ - void BaseVideoFrameSizeChangedL( const TSize& ); - - /** - * @see CVtEngDraw::BaseRequestLastFrame - */ - void BaseRequestLastFrame(); - - /** - * @see CVtEngDraw::Config - */ - TVtEngRenderConfig& Config(); - - private: // from CActive - - /** - * Handles prepared bitmap from display sink. - * @see CActive::RunL - */ - void RunL(); - - public: // from MVtEngScalerObserver - - /** - * From MVtEngScalerObserver, this method is called when - * scaling is finished. - * @see MVtEngScalerObserver::ScalingCompleted - */ - virtual void ScalingCompleted( - CFbsBitmap* aBitmap, TInt aError ); - - private: // New functions - - /** - * Does the drawing. - * @param aBitmap a bitmap to draw - */ - void DrawBitmap( CFbsBitmap& aBitmap ); - - /** - * Fills TDisplaySinkParamsDSA struct - */ - void GetSinkParams( TDisplaySinkParamsDSA& aSinkParams ); - - private: // data - - // Bitmapts for remote video (double buffering). - CFbsBitmap* iBitmap1; - CFbsBitmap* iBitmap2; - - // Bitmap indexes indicating which. - // bitmap was provided. - MDisplaySink::TBitmapNo iBitmapNo; - - // If a bitmap has been set available. - TBool iBitmapSetAvail; - - // VT image scaler - MVtEngImageScaler* iImageScaler; - - // DSA configuration - TVtEngRenderConfigDSA iConfig; - }; - -#endif // CVTENGDRAWDSA_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngDrawNGA.h --- a/vtengines/videoteleng/Inc/Media/CVtEngDrawNGA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,455 +0,0 @@ -/* -* Copyright (c) 2004-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: Class for NGA Drawer. -* -*/ - - -#ifndef CVTENGDRAWNGA_H -#define CVTENGDRAWNGA_H - -// INCLUDES -//#include -#include -#include -#include -//#include -// GCE Surface -#include "graphics/surfacemanager.h" -#include "graphics/surface.h" -#include "graphics/surfaceupdateclient.h" - -#include "CVtEngRemoteVideo.h" -#include "TVtEngRenderConfigNGA.h" - -// FORWARDS - -class TDisplaySinkParamsNGA; - -// CONSTANTS AND MACROS -const TInt KVtEngMaxSurfaceBuffers = 2; - -NONSHARABLE_CLASS( TVTSurfaceBuffer ) - { - public: - - /** - * C++ constructor - */ - TVTSurfaceBuffer( TUint8* aBuffer = NULL, TInt aSurfaceNo = KErrNotFound ); - - /** - * Returns pointer reference to stored buffer. - */ - TUint8* &Buffer(); - - /** - * Returns surface no.. - */ - TInt SurfaceNo(); - - void Set( TUint8* aBuffer, TInt aSurfaceNo ); - - void UnSet(); - - private: - - // Pointer's pointer to buffer - TUint8* iBuffer; - TInt iSurfaceBufferNo; - }; - -/** -* Buffer waiter observer API -* -* @lib videoteleng.lib -* @since Series 60 MCL -*/ -NONSHARABLE_CLASS( MVtEngNGABufferWaiterObserver ) - { - public: // New methods - - /** - * Buffer fetched without errors. - * @param aBuffer Pointer to fetched buffer. - */ - virtual void BufferReadyL( - TVTSurfaceBuffer* aBuffer ) = 0; - - /** - * Buffer fetch error. - * @param aError Error code. - */ - virtual void FetchError( TInt aError ) = 0; - }; - - -/** -* DNGA drawer -* -* @lib videoteleng.lib -* @since Series 60 MCL -*/ -NONSHARABLE_CLASS( CVtEngDrawNGA ) : - public CVtEngRemoteVideo::CVtEngDraw, - public MVtEngNGABufferWaiterObserver - { - - public: // constructor and destructor - - /** - * Two-phased constructor. - * @param aObserver call back interface to Display Sink - * @return instance of CVtEngDrawDSA - */ - static CVtEngDrawNGA* NewL( MDisplaySinkObserver* aObserver ); - - // Destructor - ~CVtEngDrawNGA(); - - private: // construction - - /** - * C++ constructor as private. - * @param aObserver callback interface for Display Sink - */ - CVtEngDrawNGA( MDisplaySinkObserver* aObserver ); - - private: // from CVtEngDraw - - /** - * @see CVtEngDraw::BaseConstructL - */ - void BaseConstructL(); - - /** - * @see CVtEngDraw::CreateSinkL - */ - MDisplaySink* CreateSinkL(); - - /** - * @see CVtEngDraw::BaseRefreshL - */ - void BaseRefreshL(); - - /** - * @see CVtEngDraw::BaseRefreshBitmapsL - */ - void BaseRefreshBitmapsL(); - - /** - * @see CVtEngDraw::BaseDoCancel - */ - void BaseDoCancel(); - - /** - * @see CVtEngDraw::BaseVerifyConfigL - */ - void BaseVerifyConfigL(); - - /** - * @see CVtEngDraw::BaseRestartL - */ - void BaseRestartL(); - - /** - * @see CVtEngDraw::BaseAbortNow - */ - void BaseAbortNow(); - - /** - * @see CVtEngDraw::BaseStartDrawL - */ - void BaseStartDrawL(); - - /** - * @see CVtEngDraw::BaseStopDraw - */ - void BaseStopDraw(); - - /** - * @see CVtEngDraw::BaseSetConfigL - */ - void BaseSetConfigL( const TVtEngRenderConfig& aConfig ); - - /** - * @see CVtEngDraw::BaseSetUIForegroundL - */ - void BaseSetUIForegroundL( TBool aForeground ); - - /** - * @see CVtEngDraw::BaseVideoFrameSizeChangedL - */ - void BaseVideoFrameSizeChangedL( const TSize& ); - - /** - * @see CVtEngDraw::BaseRequestLastFrame - */ - void BaseRequestLastFrame(); - - /** - * @see CVtEngDraw::Config - */ - TVtEngRenderConfig& Config(); - - private: // New mothod - - /** - * Returns reference to sink. - */ - MDisplaySink& DisplaySink(); - - /** - * Base construct implementation - */ - void DoBaseConstructL(); - - /** - * Base start drawing implementation - */ - void DoBaseStartDrawL(); - - /** - * Sets given buffer available to display sink. - */ - void SetAvailableToSink( TVTSurfaceBuffer* aBuffer ); - - /** - * Update sink params implementation. - */ - void DoUpdateSinkParamsL(); - - /** - * Updates sink params. - */ - void UpdateSinkParamsL(); - - /** - * Create surface - */ - void CreateSurfaceL(); - - /** - * Create surface implementation - */ - void DoCreateSurfaceL(); - - static TInt SurfaceBuffer0Ready(TAny* aAny); - - static TInt SurfaceBuffer1Ready(TAny* aAny); - - TBool DoSurfaceBuffer0Ready(); - - TBool DoSurfaceBuffer1Ready(); - - public: //from MVtEngNGABufferWaiterObserver - - /** - * @see MVtEngNGABufferWaiterObserver::BufferReadyL - */ - void BufferReadyL( TVTSurfaceBuffer* aBuffer ); - - /** - * @see MVtEngNGABufferWaiterObserver::FetchError - */ - void FetchError( TInt aError ); - - - private: - /** - * @see CActive::RunL - */ - void RunL(); - - private: // New functions - /** - * Fills TDisplaySinkParamsNGA struct - */ - void GetSinkParams( TDisplaySinkParamsNGA& aSinkParams ); - - private: //inner class - - // Buffer class for storing buffer. - NONSHARABLE_CLASS( TVtEngBuffer ) - { - public: - - /** - * C++ constructor - */ - TVtEngBuffer(); - - /** - * Sets buffer - */ - void Set( TVTSurfaceBuffer* aBuffer ); - - /** - * Unsets buffer - */ - void UnSet(); - - /** - * Returns ETrue if buffer is set - */ - TBool IsSet() const; - - /** - * Returns pointer reference to stored buffer. - */ - TVTSurfaceBuffer* &SurfaceBuffer(); - - /** - * Returns pointer reference to stored buffer. - */ - TUint8* &Buffer(); - - private: - - // Pointer's pointer to buffer - TUint8* iBuffer; - TVTSurfaceBuffer* iSurfaceBuffer; - }; - - // Waiter class for asynchronous events. - NONSHARABLE_CLASS( CVtEngBufferWaiter ) : public CActive - { - public: - - /** - * C++ constructor. - */ - CVtEngBufferWaiter( //CVideoRenderer& aVideoRenderer, - MVtEngNGABufferWaiterObserver& aObserver ); - - /** - * Destructor, frees all resources allocated by this instance. - */ - ~CVtEngBufferWaiter(); - - /** - * Fetch new buffer (also activates listening). - */ - TInt FetchBuffer(); - - /** - * One SurfaceBuffer is available - */ - void BufferAvailable(TVTSurfaceBuffer& aBuffer); - - private: // new methods - - /** - * Activate buffer listening (also calls CActive::SetActive()). - */ - void Activate(); - - private: // from CActive - - /** - * @see CActive::RunL() - */ - void RunL(); - - /** - * @see CActive::DoCancel() - */ - void DoCancel(); - - private: // data - - // Video frame renderer (not owned) - //CVideoRenderer* iVideoRenderer; - - // BufferWaiter observer who gets informed about buffers - MVtEngNGABufferWaiterObserver* iObserver; - - //Avaiable surface buffers - TVTSurfaceBuffer* iBuffers[KVtEngMaxSurfaceBuffers]; - - }; - - // Surface Buffer Active Call back. - NONSHARABLE_CLASS( CActiveCallBack ) : public CActive - { - public: - CActiveCallBack( TCallBack aCallBack, TInt aPriority): CActive(aPriority), iCallBack(aCallBack) - {}; - CActiveCallBack(); - - public: // Functions from base classes - void SetActive() - { - CActive::SetActive(); - }; - void RunL() - { - iCallBack.CallBack(); - }; - void DoCancel() - {}; - - private: // Data - TCallBack iCallBack; - }; - - private: // data - - //Video frame renderer - //CVideoRenderer *iVideoRenderer; - RSurfaceManager* iSurfaceManager; - RSurfaceUpdateSession iSurfaceUpdateSession; - //Surface pixel format - TUidPixelFormat iSurfaceFormat; - - RChunk* iSurfaceChunk; - - TInt8* iChunkBuffer0; - - TInt8* iChunkBuffer1; - - TVTSurfaceBuffer iSurfaceBuffer0; - - TVTSurfaceBuffer iSurfaceBuffer1; - - //CActiveCallBack* iSurfaceBufferAo0; - - //CActiveCallBack* iSurfaceBufferAo1; - - CActiveCallBack* iCallBackTable[KVtEngMaxSurfaceBuffers]; - - //NGA surface id - TSurfaceId iSurfaceId; - - //NGA surface has created - TBool iSurfaceCreated; - - // Buffer waiter instance - CVtEngBufferWaiter* iBufferWaiter; - - // Surface buffers - TVtEngBuffer - iSurfaceBuffers[ MDisplaySink::EFirstBitmap + KVtEngMaxSurfaceBuffers ]; - - TSglQue iWaitingBuffers; // buffers waiting to be submitted - TBool iSubmitPending; - - // Configuration - TVtEngRenderConfigNGA iConfig; - - // Time stamp for surface update - TTimeStamp iTimeStamp; - }; - -#endif // CVTENGDRAWDSA_H diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngDtmfHandler.h --- a/vtengines/videoteleng/Inc/Media/CVtEngDtmfHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* 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: DTMF handler -* -*/ - - - -#ifndef CVTENGDTMFHANDLER_H -#define CVTENGDTMFHANDLER_H - -// INCLUDES -#include -#include -#include "CVtEngDtmfState.h" -#include "CVtEngOperation.h" -#include "MVtEngDtmfHandler.h" - -// FORWARD DECLARATIONS -class MVTUserInput; - -// CLASS DECLARATION - -/** -* Base class for data types -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngDtmfHandler ) : public CBase, public MVtEngDtmfHandler - { - public: // Data structures - enum TUIISupport - { - EBasicString = 2, - EIA5String = 4, - EGeneralString = 8, - EDTMFString = 16 - }; - - public: // constructor and destructor - - /** - * Two-phased constructor. - * @param aH324Config H324 configure interface - * @return dtmf handler - */ - static CVtEngDtmfHandler* NewL( - MVtH324ConfigCommand& aH324Config ); - - /** - * Destructor - */ - ~CVtEngDtmfHandler(); - - public: // from MVtEngDtmfHandler - - /** - * @see MVtEngDtmfHandler - */ - virtual void HandleL( CVtEngOperation& aOp ); - - /** - * @see MVtEngDtmfHandler - */ - virtual CVtEngDtmfState& ActivateState( - MVtEngDtmfHandler::TVtEngDtmfState aNewState ); - - /** - * @see MVtEngDtmfHandler - */ - virtual void SendComplete( TInt aError ); - - /** - * @see MVtEngDtmfHandler - */ - virtual MVTUserInput& ReserveProtoDtmfL( - const TVtEngDtmfTone& aTone ); - - /** - * @see MVtEngDtmfHandler - */ - virtual void ReleaseProtoDtmf(); - - /** - * @see MVtEngDtmfHandler - */ - virtual TBool CheckCommandId( TInt aCheckCommandId ) const; - - /** - * @see MVtEngDtmfHandler - */ - virtual void StoreCommandId( TInt aStoreCommandId ); - - - public: // Protocol DTMF Support - - /** - * Specifies the UII support - * @param aValue the support to be used - */ - void SetUIISupport( TUIISupport aValue ); - - /** - * Gets the current UII support - * @return UII support - */ - TUIISupport GetUIISupport() const; - - private: // constructors - - /** - * C++ constructor - */ - CVtEngDtmfHandler( MVtH324ConfigCommand& aH324Config ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - private: // new functions - - /** - * Handles completion of DTMF sending, leavable method. - */ - void HandleSendCompleteL( TInt aError ); - - /** - * Creates a state instance - * @param EVtDtmfStateIdle, EVtDtmfStateSending or EVtDtmfStateBuffered - */ - void CreateStateL( TInt aState ); - - private: // member data - - // DTMF states - CArrayPtrFlat* iDtmfStates; - - // current state index - TVtEngDtmfState iCurrentState; - - // protocol tone - MVTUserInput* iProtoDtmf; - - // H324 interface - MVtH324ConfigCommand& iH324Config; - - // Indicates supported UII type: - // 16 DTMF - // 8 General String - // 4 IA5 String - // 2 Basic string - TUIISupport iUIISupport; - - // DTMF command ID returned by H324 interface for last tone - TInt iIssuedDtmfCommandId; - }; - - -#endif CVTENGDTMFHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngImageScaler.h --- a/vtengines/videoteleng/Inc/Media/CVtEngImageScaler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) 2004-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: Scaler for bitmaps. -* -*/ - - - -#ifndef CVTENGIMAGESCALER_H -#define CVTENGIMAGESCALER_H - -// INCLUDES -#include "MVtEngImageScaler.h" -#include - -// FORWARD DECLARATIONS -class MVtEngScalerObserver; -class CVtImageScaler; -class CVtImageBitmap; - -/** -* Image scaler implementation class. -* -* @lib videoteleng.lib -* @since Series 60 2.8 -*/ -NONSHARABLE_CLASS( CVtEngImageScaler ) : public CBase, - public MVtImageScalerObserver, - public MVtEngImageScaler - { - public: // constructor and destructor - - /** - * Two-phased constructor. - * @param aObserver scaling finished callback. - * @return scaler - */ - static MVtEngImageScaler* NewL( - MVtEngScalerObserver& aObserver ); - - /** - * Destructor - */ - virtual ~CVtEngImageScaler(); - - private: // constructor - - /** - * C++ constructor. - * @param aObserver scaling finished callback. - */ - CVtEngImageScaler( - MVtEngScalerObserver& aObserver ); - - - /** - * Symbian constructor that may leave. - */ - void ConstructL(); - - public: // From MVtEngImageScaler. - - /** - * @see MVtEngImageScaler. - */ - virtual void ScaleL( - TInt aSourceIndex ); - - /** - * @see MVtEngImageScaler - */ - virtual TBool ConfigureL( - TDisplayMode aDisplayMode, - TSize aSize, - TInt aSourceHandle1, - TInt aSourceHandle2 ); - - /** - * @see MVtEngImageScaler. - */ - virtual void Release(); - - /** - * @see MVtEngImageScaler. - */ - virtual TInt Cancel(); - - public: // From MVtImageScalerObserver. - - /** - * @ see MVtImageScalerObserver. - */ - virtual void ScalingFinished( TInt aError ); - - private: - /** - * EFirstBitmap - * Use the first bitmap. - * ESecondBitmap - * Use the second bitmap. - */ - enum - { - EFirstBitmap = 0, - ESecondBitmap = 1 - }; - - /** - * Fetches the used scaling method from locally. - * variated properties, and stores it into iScalingMethod. - */ - void GetScalingMethodL(); - - private: - - // Observer receiving scaled bitmaps. - MVtEngScalerObserver& iObserver; - - // Actual component doing the scaling. - CVtImageScaler* iVtScaler; - - // Target bitmaps. - RPointerArray iTargets; - - // Source bitmaps. - RPointerArray iSources; - - // Bitmap index in targets. - TInt iTargetBitmapInUse; - - // Display mode. - TDisplayMode iMode; - - // Scaled size. - TSize iSize; - - // Method of scaling - CVtImageScaler::TQuality iScalingMethod; - }; - -#endif // CVTENGIMAGESCALER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngLocalVideo.h --- a/vtengines/videoteleng/Inc/Media/CVtEngLocalVideo.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1475 +0,0 @@ -/* -* Copyright (c) 2004-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: Local video handler. -* -*/ - - -#ifndef CVTENGLOCALVIDEO_H -#define CVTENGLOCALVIDEO_H - -// INCLUDES -#include -#include -#include "TVtEngRendering.h" -#include "TVtEngRenderingDSA.h" -#include "TVtEngRenderingDP.h" -#include "TVtEngRenderingNGA.h" -#include "VtEngEvents.h" -#include "MVtEngMedia.h" //TMediaSource -#include "MVtEngSettingPSObserver.h" -#include "CVTEngPubSubsListener.h" -#include "mvtengcamerapreferencesobserver.h" - -// FORWARD DECLARATIONS -class CVSDataProvider; -class CVtEngMediaHandler; -class CVtEngCameraPreferences; - -// CLASS DECLARATION - -/** -* Local (uplink) video handling. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngLocalVideo ) : - public CActive, - public MVSDataProviderObserver, - public MVSDataSourceObserver, - public MVSControllerObserver, - public MVtEngSettingPSObserver - { - public: // Constructors and destructor - - /** - * Symbian two-phase constructor. - * @param aObserver callback interface to Media Handler - * @return local video instance - */ - static CVtEngLocalVideo* NewL( - CVtEngMediaHandler& aObserver ); - - /** - * Destructor. - */ - virtual ~CVtEngLocalVideo(); - - public: // Public data structures - enum TVtEngProviderType - { - KVtEngProviderUndefined = -1, - /** Blank imnage provider */ - KVtEngProviderNone = 0, - /** Primary camera provider */ - KVtEngProviderCam1, - /** Secondary camera provider */ - KVtEngProviderCam2, - /** GS image provider */ - KVtEngProviderImage, - /** ? */ - KVtEngProviderTempImage, - /** Still share provider */ - KVtEngProviderShareImage, - /** Video share provider */ - KVtEngProviderShareVideoClip, - /** Default image provider */ - KVtEngProviderDefaultStillImage - }; - - public: // from MVSDataProviderObserver - - /** - * @see MVSDataProviderObserver::vsProviderError - */ - virtual void vsProviderError( TInt aError ); - - /** - * @see MVSDataProviderObserver::vsProviderReady - */ - virtual void vsProviderReady(); - - /** - * @see MVSDataProviderObserver::vsViewFinderFrameReady - */ - virtual void vsViewFinderFrameReady( CFbsBitmap& aFrame ); - - public: // from MVSDataSourceObserver - - /** - * @see MVSDataSourceObserver::vsProviderSwitchDone - */ - virtual void vsProviderSwitchDone( CVSDataProvider* aOldProvider ); - - public: // from MVSControllerObserver - - /** - * @see MVSControllerObserver::vsProvidersChanged - */ - void vsProvidersChanged( TBool aAttached ); - - public: // From MVtEngSettingPSObserver. - - /** @see MVtEngSettingPSObserver */ - virtual void HandleNotifyPSL( const TUid aUid, - const TInt& aKey, const TRequestStatus& aStatus ); - - public: // New functions - - /** - * Pauses frame sending from video source (this method is called when - * VT is initializing and video source has not yet been added to stack) - * - */ - void PauseVideoSending(); - - /** - * Resumes frame sending from video source. - * - */ - void ResumeVideoSending(); - - /** - * Tells if the provider has started viewfinder. - * @return ETrue if started - */ - TBool ViewFinderStarted() const; - - /** - * Tells if the provider has been frozen. - * @return ETrue if frozen - */ - TBool IsFrozen() const; - - /** - * Creates an audio source. - * @return an error code - */ - TInt CreateAudioSource(); - - /** - * Sets configuration for view finder. - * @param aParams view finder configuration - */ - void SetViewFinderParameters( const TVtEngRenderingOptions& aParams ); - - /** - * Sets DSA configuration for view finder. - * @param aDSA DSA configuration - */ - void SetViewFinderParameters( const TVtEngRenderingOptionsDSA& aDSA ); - - /** - * Sets DP configuration for view finder. - * @param aDP DP configuration - */ - void SetViewFinderParameters( const TVtEngRenderingOptionsDP& aDP ); - - /** - * Sets default still image. - */ - void SetDefaultStillImageL(); - - /** - * Sets still image or none. - * @param aSetAsActive sets as active provider - */ - void SetStillImageL( TBool aSetAsActive ); - - /** - * Initializes default blank provider. - */ - void InitializeL(); - - /** - * Selects camera1, camera2, still image or none as source. - * @param aSource video source - * @return ETrue if selecting started - */ - TBool SelectSourceL( TVtEngProviderType aSource ); - - /** - * Returns currently active video provider. - * @return provider type - */ - TVtEngProviderType ActiveProvider( ) const; - - /** - * Starts view finder if it was started earlier and current state is - * ELocReady. - */ - void StartViewFinderIfWasStartedL(); - - /** - * Starts view finder. Uses either DSA or WS depending on - * which configuration is active. - * @param aClientRequest request issued by user - */ - void StartViewFinderL( TBool aClientRequest = EFalse ); - - /** - * Stops view finder. - * @param aClientRequest request issued by user - */ - void StopViewFinder( TBool aClientRequest = EFalse ); - - /** - * Freeze video sending (i.e. start sending last frame only). - */ - void FreezeL(); - - /** - * Unfreeze video sending (i.e. resume sending). - */ - void UnfreezeL(); - - /** - * Checks that all other providers don't have - * view finder active and stops if found. - * @param aProvider provider that should not be stopped - */ - void CheckOthersStopped( const CVSDataProvider& aProvider ); - - /** - * Returns video source. - * @return video source - */ - MVTVideoSource* Source() const; - - /** - * Returns audio source. - * @return audio source - */ - MVTAudioSource* AudioSource() const; - - /** - * Gets media state. - * @param aActiveMedia returns active TMediaType - * @return Symbian OS error code - */ - TInt GetMediaState( TInt& aActiveMedia ); - - /** - * Gets source type. - * @return media source type - */ - MVtEngMedia::TMediaSource GetMediaSource(); - - /** - * Gets source capabilities. - * @param aCaps capability of providers - * @return Symbian OS error code - */ - TInt GetSourceCaps( TInt& aCaps ); - - /** - * Sets boolean to indicate if the provider is to be initialized only. - * Selected camera is not necessary activated. If current media is - * other than camera, initialization can be done on the background. - * @param aInitOnly boolean value stating if to initialize only - */ - void InitializeOnly( TBool aInitOnly = ETrue ); - - /** - * Sets boolean to indicate if the provider is to be initialized only. - * @param aInitOnly boolean value stating if to initialize only - */ - void InitializeOnlyEx( TBool aInitOnly = ETrue ); - - /** - * Indicates if camera provider is initialized. - * @param aId provider ID - * @param aInitialized - * @return Symbian OS error code - */ - TInt IsInitialized( MVtEngMedia::TCameraId aId, TBool& aInitialized ); - - /** - * Gets camera info. - * @param TCameraId camera ID - * @param aInfo camera info - * @return Symbian OS error code - */ - TInt GetCameraInfo( MVtEngMedia::TCameraId aId, - MVtEngMedia::TCameraInfo& aInfo ); - - /** - * Gets current digital zoom step (Factor in VS camera terminology). - * @param aCurrentStep current zoom step - * @return Symbian OS error code - */ - TInt GetDigitalZoomFactor( TInt& aCurrentStep ); - - /** - * Gets maximum digital zoom value that may be passed to camera. - * @param aMaxZoomStep maximum zoom step - * @return Symbian OS error code - */ - TInt GetMaxDigitalZoomStep( TInt& aMaxZoomStep ); - - /** - * Gets number of major zoom level leaps. - * One to maximum digital zoom steps plus one. - * Less than or equal to maximum digital zoom steps plus one. - * @param aCount number of leaps - * @param aProviderSupplied use original or mapped - * @return Symbian OS error code - */ - TInt GetMajorDigitalZoomStepCount( TInt& aCount, - TBool aProviderSupplied = EFalse ); - - /** - * Maps major zoom leap step to corresponding step index. - * @param aIndex major zoom step - * @param aStep zoom step - */ - void GetMajorDigitalZoomStep( const TInt aIndex, TInt& aStep ); - - /** - * Sets video provider's digital zoom step. - * @param aDigitalZoomFactor step - */ - void SetDigitalZoomFactorL( TInt aDigitalZoomFactor ); - - /** - * Gets video provider's freeze support. - * @param aFreezeSupported Freeze support status - * @return KErrNotReady if provider not initialized. - */ - TInt GetFreezeSupported( TBool& aFreezeSupported ) const; - - /** - * Returns ETrue if it is ok to freeze provider. - */ - TBool OkToFreeze() const; - - /** - * Returns ETrue if it is ok to unfreeze provider. - */ - TBool OkToUnfreeze() const; - - /** - * Sets audio as muted. - */ - void Mute(); - - /** - * Resumes audio output. - */ - void UnMute(); - - /** - * Sets UI foreground state (i.e. is the Application - * current active application or not). - * @param aForeground ETrue if the VT application is - * in foreground, EFalse otherwise. - */ - void SetUIForeground( TBool aForeground ); - - /** - * Gets current media object sharing state. Only local video related - * checks do here. Connection issues have been checked by - * the caller. - * @param aObjectSharingState On return contains current media object - * sharing state. @see MVtEngMedia::TShareObjectState. - */ - void GetObjectSharingState( - MVtEngMedia::TShareObjectState& aObjectSharingState ) const; - - /** - * Start Image sharing initialization. - */ - void InitializeShareImageL( - const MVtEngMedia::TShareObjectImageParameters& aParameters, - TBool& aFirstTime ); - - /** - * Cancel Image sharing initialization. - */ - void CancelInitializeShareImage(); - - /** - * Start Image sharing. - */ - void StartShareImageL(); - - /** - * Stop Image sharing. - */ - void StopShareImageL(); - - /** - * Report error. - */ - void ShareError( TInt aError ); - - /** - * Returns share's stored media source. - */ - TVtEngProviderType ShareStoredSource() const; - - /** - * General settings changed. - */ - void SettingsChanged(); - - /** - * Creates camera preferences extension - * @since S60 v3.2 - * @return pointer to extension - * @exeption Leaves if creation fails - */ - CVtEngCameraPreferences* CreateCameraPreferencesL(); - - /** - * Called when prepare camera has been handled in media handler. - */ - void SetIsPrepareCameraCalled( TBool aCalled ); - - /** - * Returns ETrue if prepare camera has been handled in media handler, - * EFalse otherwise. - */ - TBool IsPrepareCameraCalled() const; - - /** - * Reinitializes camera if onboard camera is being used as a provider. - */ - void HandleLayoutChangeL(); - - /** - * Returns ETrue if delayed select is pending. - */ - TBool IsDelayedSelectPending() const; - - /** - * Completes operation to mediahandler. - */ - void CompleteOperation( const TInt aResult ); - - /** - * Called when video channel is opened. - */ - void VideoChannelOpenedL(); - - private: // constructors - - /** - * C++ constructor. - * @param aObserver callback interface to Media Handler - */ - CVtEngLocalVideo( - CVtEngMediaHandler& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( ); - - /** - * Async callback method - */ - static TInt CallBackFunc( TAny* aPtr ); - - /** - * Returns result. - */ - TInt Result() const; - - /** - * Sets result. - */ - void SetResult( const TInt aResult ); - - private: // Rendering configuration - - /** - * Options for window server rendering. - * iObserver callback interface - * iSize VF image size - */ - struct TOptions - { - MVtEngFrameObserver* iObserver; - TSize iSize; - }; - - /** - * Direct screen access options. - * iWsSession windor server session - * iWsSD screen device - * iWindow handle to server based window - * iRect iRect window size - * iClipRect drawing size - */ - struct TDsaOptions - { - RWsSession* iWs; - CWsScreenDevice* iWsSD; - RWindowBase* iWindow; - TRect iRect; - TRect iClipRect; - }; - - /** - * Internal state of a video provider. - */ - enum TProviderState - { - /** initial state */ - EUndefined = KErrNone, - /** never deleted */ - EPermanent, - /** to be deleted when another provider selected */ - EFading, - /** waiting for blank provider switch */ - EWaiting, - /** changing still image */ - ERefreshing - }; - - /** - * Provider information. - */ - NONSHARABLE_CLASS( TProviderItem ) : - public MVtEngCameraPreferencesObserver - { - public: - - /** - * C++ constructor - */ - TProviderItem(); - - /** - * Destructor - */ - ~TProviderItem(); - - /** - * Sets zoom factor to resetted state. - */ - void ResetStoredValues(); - - /** - * Tries to restore preferences. - */ - TInt RestoreZoomFactor(); - - /** - * Tries to restore preferences. - */ - TInt RestorePreferences(); - - public: - // pointer to provider - CVSDataProvider* iProvider; - - // provider type - TVtEngProviderType iType; - - // provider initialized - TBool iInitialized; - - // provider has errors - TInt iErrorCode; - - // state of a provider - TProviderState iProviderState; - - // Stored zoom value - TInt iStoredZoomFactor; - - // Error code setting zoom factor - TInt iZFErr; - - public: // MVtEngCameraPreferencesObserver - - /** - * @see MVtEngCameraPreferencesObserver::Attach - */ - void Attach( MVtEngCameraPreferences& aCamPrefs ); - - /** - * @see MVtEngCameraPreferencesObserver::ColorToneUpdated - */ - void ColorToneUpdated( - MVtEngCameraPreferences::TColorTone aColorTone ); - - /** - * @see MVtEngCameraPreferencesObserver::WhiteBalanceUpdated - */ - void WhiteBalanceUpdated( - MVtEngCameraPreferences::TWhiteBalance aWhiteBalance ); - - /** - * @see MVtEngCameraPreferencesObserver::BrightnessUpdated - */ - void BrightnessUpdated( TInt aBrightness ); - - /** - * @see MVtEngCameraPreferencesObserver::ContrastUpdated - */ - void ContrastUpdated( TInt aContrast ); - - /** - * @see MVtEngCameraPreferencesObserver::Detach - */ - void Detach( MVtEngCameraPreferences& aCamPrefs ); - - public: - - /** - * Detach from preference and reset pointer. - */ - void DetachFromCameraPreferences(); - - private: - - // Pointer to camera preferences object this provider item is - // attached to - MVtEngCameraPreferences* iCamPrefs; - - // Stored color tone value - MVtEngCameraPreferences::TColorTone iColorTone; - - // Error code reading color tone value - TInt iCtErr; - - // Stored white balance - MVtEngCameraPreferences::TWhiteBalance iWhiteBalance; - - // Error code reading white balance value - TInt iWbErr; - - // Stored brightness - TInt iBrightness; - - // Error code reading brightness value - TInt iBrErr; - - // Stored contrast - TInt iContrast; - - // Error code reading contrast value - TInt iCrErr; - - // ETrue if Attach is called first time - TBool iFirstTime; - - }; - - /** - * Inner class for hiding image sharing details. - */ - NONSHARABLE_CLASS( CVtEngShareImage ) : public CBase - { - private: // enumerations - - /** - * Media object sharing internal state. - */ - enum TState - { - EStopped, - EInitializing, - ESharing - }; - - public: // New public methods - - /** - * Constructor. - */ - static CVtEngShareImage* NewL( CVtEngLocalVideo& aLocalVideo ); - - /** - * C++ destructor. - */ - ~CVtEngShareImage(); - - /** - * Start initialization of image sharing. - * @param aParameters Image sharing parameters (from UI) - * @param aCurrent Currently active provider's type. - * @param aFirstTime After call ETrue if this call was first to - * share initialize, EFalse otherwise. - * @exception May leave with KErrNotReady already initializing. May - * also leave with system wide error code if something goes wrong - * during provider initialization. - */ - void InitializeL( - const MVtEngMedia::TShareObjectImageParameters& aParameters, - TVtEngProviderType aCurrent, - TBool& aFirstTime ); - - /** - * Cancel sharing initialized image. - */ - void CancelInitialize(); - - /** - * Start sharing initialized image. - * @exception May leave with KErrNotReady if not initialized. May - * also leave with system wide error code if something goes wrong - * during provider swap. - */ - void ShareL(); - - /** - * Stop sharing image. - * @exception May leave with KErrNotReady if not sharing. May also - * leave with system wide error code if something goes wrong during - * provider swap. - */ - void StopL(); - - /** - * An error happened during initialization, sharing or stopping. - * @param aError Error reason. - */ - void Error( TInt aError ); - - /** - * Returns stored source from sharer. - * @return Stored source (source that was selected before share). - */ - TVtEngProviderType StoredSource() const; - - /** - * Get sharing state. - * @param aObjectSharingState On return contains current object - * sharing state. - */ - void GetObjectSharingState( - MVtEngMedia::TShareObjectState& aObjectSharingState ) const; - - /** - * Check whether share is being initialized or not. - * @return ETrue if share is being initialized EFalse otherwise. - */ - TBool IsInitializingShare() const; - - /** - * Called when General settings have been changed. - */ - void SettingsChanged(); - - /** - * Called when vsProviderSwitchDone() is called to local video. - */ - void ProviderSwitchDone( CVSDataProvider* aOldProvider ); - - /** - * Called when camera change event is received from PS. - */ - void NotifyCameraChanged( const TVtEngProviderType& aProviderType ); - - private: // New private methods - - /** - * C++ constructor. - */ - CVtEngShareImage( CVtEngLocalVideo& aLocalVideo ); - - /** - * 2nd constructor, may leave. - */ - void ConstructL(); - - /** - * Get image sharing parameters. - * @return Constant reference to image sharing parameters. - */ - const MVtEngMedia::TShareObjectImageParameters& Parameters() const; - - /** - * Get initialization state. - * @return ETrue if sharing is being initialized, EFalse otherwise. - */ - TBool IsInitializing() const; - - /** - * Set sharing state. - * @param aNewState New image sharing state. - */ - void SetState( const TState aNewState ); - - /** - * Fetches next available provider item pointer. - * @return Pointer to next available provider item or NULL if none - * could be found. - */ - TProviderItem* FetchProviderItem() const; - - /** - * Creates provider. - */ - void CreateProviderL( TProviderItem& aProviderItem ); - - /** - * Initializes provider. - */ - void InitializeProviderL( TProviderItem& aProviderItem ); - - /** - * Deletes provider. - */ - void DeleteProvider( TVtEngProviderType aProviderType ); - - /** - * Deletes all precreated providers. - */ - void DeleteProviders(); - - private: // Data - - // Pointer to local video instance - CVtEngLocalVideo* iLocalVideo; - - // Current state - TState iState; - - // Previous state - TState iPreviousState; - - // Copy of image sharing parameters - MVtEngMedia::TShareObjectImageParameters iParameters; - - // Type of provider that was active before image sharing - TVtEngProviderType iStoredType; - - // Type of provider that was originally active before image sharing - // This is needed because iStoredType may change according to PS - // events. - TVtEngProviderType iOriginalStoredType; - - // Currently active provider - TProviderItem* iActiveProvider; - - // Currently initialized provider - TProviderItem* iInitializingProvider; - - // Buffered items - RPointerArray< TProviderItem > iBuffered; - - // General settings were changed while sharing - TBool iSettingsChanged; - }; - - /** - * Inner class for handling delayed provider switches (e.g. PS signalled - * camera changes) - */ - NONSHARABLE_CLASS( TVtEngDelayedSelect ) - { - public: - - /** - * Constructor - */ - TVtEngDelayedSelect(); - - /** - * Called when camera change event is received from PS. - */ - void NotifyDelayedSelect( const TVtEngProviderType& aProviderType ); - - /** - * Returns ETrue if delayed select is pending, EFalse otherwise. - */ - TBool IsDelayedSelectPending() const; - - /** - * Returns delayed select target and resets stored value. - */ - TVtEngProviderType DelayedSelectTarget(); - - private: // data - - TVtEngProviderType iDelayedProviderType; - }; - - /** - * Inner class for handling layout change reinitialization. - */ - NONSHARABLE_CLASS( TVtEngLayoutChangeHandler ) - { - - public: - - /** - * Constructor - */ - TVtEngLayoutChangeHandler( CVtEngLocalVideo& aLocalVideo ); - - /** - * Called when layout change has happened - */ - void HandleLayoutChangeL(); - - /** - * Called when layout change needs to be cancelled - */ - void CancelHandleLayoutChange(); - - /** - * Called when provider is unfrozen. - * @return ETrue if unfreeze was handled by the layout change handler, - * EFalse otherwise. - */ - TBool UnfreezeL(); - - /** - * Called by the local video when provider error happens. - * @param aError Type of error - * @return ETrue If error was handled by the layout change handler - */ - TBool ProviderError( TInt aError ); - - /** - * Called by the local video when provider is ready after initialization. - * @return ETrue If callback was handled by the layout change handler. - */ - TBool ProviderReady(); - - /** - * Called by the local video when provider has been switched. - * @param CVSDataProvider Pointer of old provider instance. - * @return ETrue If callback was handled by the layout change handler. - */ - TBool ProviderSwitchDone( CVSDataProvider* aOldProvider ); - - private: - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Does the layout change handling. - */ - void DoHandleLayoutChangeL(); - - /** - * Call to CompleteL() that is trapped. - */ - TInt Complete( const TInt aError ); - - /** - * Completes handling and resets state to EIdle. - */ - void CompleteL( const TInt aError ); - - /** - * Completes asynchronous request. - */ - void CompleteOperation( const TInt aError ); - - private: // data - - // Pointer to local video instance - CVtEngLocalVideo* iLocalVideo; - - /** - * Layout change handler internal state. - */ - enum TState - { - /** Layout change handler is ready to be called */ - EIdle, - /** Layout change handler has been called, but layout update is - pending */ - ELayoutChangePending, - /** Layout change handler is switching blank provider */ - ESwitchingBlank, - /** Layout change handler is initializing camera provider */ - EInitializingCamera, - /** Layout change handler is switching camera provider */ - ESwitchingCamera - }; - - // Handler's internal state - TState iState; - - // Stored provider type - TVtEngProviderType iStored; - - }; - - private: - - /** - * Rendering method. - */ - enum TRenderingMethod - { - // Unspecified - EUnspecified, - // Through window server - EWindowServer, - // Direct screen access - EDSA, - // Display posting - EDP - }; - - /** - * View finder state. - */ - enum TViewFinderState - { - // View finder not active. - EVFNone, - // View finder started to reveive bitmaps. - EVFReceivingBitmaps, - // View finder started to render with DSA. - EVFRenderingDsa - }; - - /** - * Internal state. - */ - enum TState - { - // Initial and state when error occurred. - ELocNone, - // Provider initialization ongoing. - ELocInitializing, - // Switch to another provider ongoing. - ELocSwichingProvider, - // Provider initialization or switch completed. - ELocReady - }; - - public: - - /** - * Deletes provider. - * @param aItem provider to delete - */ - void DeleteProvider( TProviderItem& aItem ); - - /** - * Deletes provider. - * @param aType type of provider to delete. - */ - void DeleteProvider( TVtEngProviderType aType ); - - /** - * Resets local video after a video call. - */ - void Reset(); - - private: // New functions - - /** - * Sets current camera id. - */ - void SetCurrentCameraId( MVtEngMedia::TCameraId aCamId ); - - /** - * Configures provider item for outwards camera in - * construction phase. - */ - void ConfigureOutwardsCameraItem( - TProviderItem& aItem, - const TInt aCurrentIndex ); - - /** - * Calculater digital zoom steps. - * @param aProvider the used provider in counting - * @return amount of major zoom steps - */ - TInt CalculateMajorDigitalZoomStepCount( - CVSDataProvider* aProvider ); - - /** - * Calculater digital zoom steps. - * @param aInfo provider info structure from which zoom steps will be - * calculated - * @return amount of major zoom steps - */ - TInt CalculateMajorDigitalZoomStepCount( - const TVSDataProviderInfo& aInfo ) const; - - /** - * Deletes audio source. - */ - void DeleteAudioSource(); - - /** - * Gets a provider for a given type. - * @param aType type to search for - * @param aItem returned provider item - * @return index in provider array or KErrNotFound - */ - TInt GetProviderByType( - TVtEngProviderType aType, TProviderItem& aItem ); - - /** - * Gets a provider for a given type. - * @param aType type to search for - * @param aItem returned provider item - * @return index in provider array or KErrNotFound - */ - TInt GetProviderByType( - TVtEngProviderType aType, TProviderItem*& aItem ); - - /** - * Gets a provider for a given provider instance. - * @param aInstance Instance to search for - * @param aItem returned provider item - * @return index in provider array or KErrNotFound - */ - TInt GetProviderByInstance( - const CVSDataProvider* aInstance, - TProviderItem*& aItem ) const; - - /** - * Initializes provider. - * @param aProviderItem provider - */ - void InitializeProviderL( TProviderItem& aProviderItem ); - - /** - * Initializes provider for sharing. - */ - void InitializeShareProviderL( TProviderItem& aProviderItem, - const TDesC8& aParams ); - - /** - * Re-creates provider. First deletes old instance inside provider - * item structure and then creates a new instance, using given - * provider type. - * @param aProviderItem Provider to be recreated. - * @param aType Type of the new provider to be created. - */ - void ReCreateProviderL( - TProviderItem& aProviderItem, const TVtEngProviderType aType ); - - /** - * Provider index by provider type. - * @param aType Type of provider - */ - TInt ProviderIndex( TVtEngProviderType aType ) const; - - /** - * Gets a provider index by state. - * @param aState state of returned provider - * @return Index of provider - */ - TInt ProviderIndexByState( TProviderState aState ) const; - - /** - * Gets a provider index by provider instance. - * @param aInstance instance of provider to be found - * @return Index of provider or KErrNotFound if given provider item - * is not found - */ - TInt ProviderIndexByInstance( const CVSDataProvider* aInstance ) const; - - /** - * Creates VideoSource provider by type. - * @param aType Engine provider type - * @return CVSDataProvider pointer - */ - CVSDataProvider* CreateDataProviderL( TVtEngProviderType aType ); - - /** - * Maps camera orientation to provider type. - * @param aOrientation camera orientation - * @return provider type - */ - static TVtEngProviderType - OrientationToType( TCameraInfo::TCameraOrientation aOrientation ); - - /** - * Maps camera ID to provider type. - * @param aId camera ID - * @return provider type - */ - static TVtEngProviderType CameraIdToType( MVtEngMedia::TCameraId aId ); - - /** - * Creates blank still image provider. - * @param aIndex index of still image provider - */ - void CreateBlankProviderL( const TInt aIndex ); - - /** - * Creates default still image provider. - * @param aIndex index of default still image provider - */ - void CreateDefaultStillImageProviderL( const TInt aIndex ); - - /** - * Updates available camera providers. - * @return primary provider - */ - TVtEngProviderType UpdateAvailableProvidersL(); - - /** - * Switches to active provider. - */ - void SwitchProvider( TProviderItem* aProviderItem ); - - /** - * Overloaded SwitchProvider() that takes new provider as a parameter. - */ - void SwitchProvider( TProviderItem& aProviderItem ); - - /** - * Uninitializes non-permanent provider. - */ - void UninitializeProviderL(); - - /** - * Updates iState if view finder is active. - */ - void UpdateState(); - - /** - * Checks if initialization or provider switch is pending. - * @return ETrue if either one is pending - */ - TBool InitializingOrSwitching() const; - - /** - * Resets provider info index variables. - */ - void ResetIndices(); - - /** - * Sets active camera tracking. - * @param aProviderIndex current camera in use - * @return error code - */ - TInt SetCameraTrackingL( TInt& aProviderIndex ); - - /** - * Maps pubsub provided camera id to internal indexes. - * @param aCameraId id to map - * @return internally mapped id - */ - MVtEngMedia::TCameraId MapCameraInternally( TInt aCameraId ); - - /** - * Checks if desired camera is available. - * @param aType provider type to return - */ - void CameraAvailable( CVtEngLocalVideo::TVtEngProviderType &aType ); - - /** - * checks if given provider type is already waiting for initialization - * or switch. - * @param aType Provider type. - * @return ETrue if given provider type is in waiting state, EFalse - * otherwise. - */ - TBool IsProviderWaiting( TVtEngProviderType aType ) const; - - /** - * Returns highest provider type which is available for selection. - * Priority is following: - * KVtEngProviderCam1 << highest - * KVtEngProviderCam2 - * KVtEngProviderImage - * KVtEngProviderNone - * If eg. cam2 is designated as preferred, possible returns values are - * Cam2, Image and None. - * - * @param aType in/out argument. In => preferred provider which - * caller of the method wishes to select - * Out => highest available provider - * @return ETrue if preferred == highest i.e. aPreferred is intact - * - */ - TBool GetHighestSelectableProvider( TVtEngProviderType& aPreferred ) const; - - /** - * checks if given provider type is acitven - * @param aType Provider type. - * @return ETrue if given provider is already active, EFalse - * otherwise. - */ - TBool IsActiveProvider( TVtEngProviderType aType ) const; - - - private: // From CActive. - - /** - * Handles sync operations as async. - * @see CActive::RunL - */ - virtual void RunL(); - - /** - * @see CActive::DoCancel() - */ - virtual void DoCancel(); - - private: - - // Local video flags - enum TVtEngLocalVideoFlags - { - // Camera 1 is available (inwards) - EFlagCamera1Available = 0x00000001, - // Camera 2 is available (outwards) - EFlagCamera2Available = 0x00000002, - // video call ongoing - EFlagInitialized = 0x00000004, - // view finder enabled from UI - EFlagVFEnabled = 0x00000008, - // Non-user orginated switch - EFlagAutomaticSwitchCallback = 0x00000010, - // Audio muted - EFlagAudioMuted = 0x00000020, - // Only initialize a provider (no switch when initialized) - EFlagInitializeOnly = 0x00000040, - // Signal observer when switch is complete - EFlagSignalSourceSelection = 0x00000080, - // Provider event received while switch ongoing. - // When this is set and switch completes it - // is checked if revert to previous is needed. - EFlagCheckRevertToPrevious = 0x00000100, - // Avoid calculating the step count by using flag. - EFlagZoomStepCountNeedsMapping = 0x00000200, - // VT application foreground state - EFlagUIForeground = 0x00000400, - // VT application background state ( notification purpose) - EFlagUIBackground = 0x00000800, - // Provider is frozen - EFlagFrozen = 0x00001000 - }; - - /** - * Sets a flag on. - * @param aFlag flag to set - */ - void SetFlag( const TInt aFlag ); - - /** - * Removes a flag. - * @param aFlag flag to remove - */ - void ClearFlag( const TInt aFlag ); - - /** - * Checks if a flag has been set. - * @param aFlag flag to check - * @return ETsrue if set - */ - TBool IsFlag( const TInt aFlag ) const; - - private: // Data - - // Options for window server rendering. - TOptions iOptions; - - // Options for DSA rendering. - TDsaOptions iDsaOptions; - - // Video source controller. - CVSController* iSourceController; - - // Video source. - CVSDataSource* iSource; - - // Audio source. - MVTAudioSource* iAudioSource; - - // Video providers (cameras and still image). - CArrayFixFlat* iVideoProviders; - - // Currently active provider. - TProviderItem* iActiveProvider; - - // Provider item we're switching away from. - TProviderItem* iFadingProvider; - - // Provider that is selected as next one and - // is initializing or switching. - TProviderItem* iSelectedProvider; - - // DSA or window server. - TRenderingMethod iRenderingMethod; - - // Local video status. - TState iState; - - // View finder state. - TViewFinderState iViewFinderState; - - // Callback interface to Media Handler. - CVtEngMediaHandler& iObserver; - - // Still image file name. - TFileName iStillImage; - - // Local video state flags. - TInt iFlags; - - // Friend declaration provides extended access. - friend class TProviderItem; - - // Member variables to use in referencing to - // provider information - TInt iProviderInfoIndexCam1; - TInt iProviderInfoIndexCam2; - TInt iProviderInfoIndexStill; - - // Used for default camera notifications. - CVtEngPubSubsListener* iCameraListener; - - // Camera received from pubsub. - MVtEngMedia::TCameraId iCurrentCamera; - - // Contains logics for image sharing. - CVtEngShareImage* iShareImage; - - // Pointer to camera preferences extension - CVtEngCameraPreferences* iCameraPref; - - // Logics for delayed provider selection - TVtEngDelayedSelect iDelayedSelect; - - // Active provider's info - TVSDataProviderInfo iProviderInfo; - - // ETrue if prepare camera has been handled in media handler - TBool iPrepareCameraCalled; - - // Layout change handler - TVtEngLayoutChangeHandler iLayoutChangeHandler; - - // ASync callback - CAsyncCallBack* iAsyncCallBack; - - // Result - TInt iResult; - - // Pointer to provider item that is being initialized - TProviderItem* iInitializingProvider; - - // Number of cameras in the device - TInt iNumSupportedCameras; - }; - -#endif // CVTENGLOCALVIDEO_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngMediaHandler.h --- a/vtengines/videoteleng/Inc/Media/CVtEngMediaHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1299 +0,0 @@ -/* -* Copyright (c) 2004-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: Video session interface. -* -*/ - - - -#ifndef CVTENGMEDIAHANDLER_H -#define CVTENGMEDIAHANDLER_H - -// INCLUDES -#include -#include -#include "MVtEngMedia.h" -#include "vtengcommands.h" -#include "CVtEngLocalVideo.h" -#include "MVtEngSettingObserver.h" - -// FORWARD DECLARATIONS -class CVtEngLocalVideo; -class CVtEngRemoteVideo; -class MVtEngFrameObserver; -class CVtEngOperation; -class CVtEngExtensionBase; - -// CLASS DECLARATION - -/** -* Media control. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngMediaHandler ) : - public CBase, - public MVtEngMedia, - public MVtEngSettingObserver, - public MVtProtocolHandler - { - public: // Constructor and destructor. - - /** - * Symbian two-phase constructor. - * @return media handler instance - */ - static CVtEngMediaHandler* NewL(); - - /** - * Destructor. - */ - ~CVtEngMediaHandler(); - - public: // From MVtEngMedia. - - /** - * @see MVtEngMedia - */ - virtual TInt GetMediaState( - const TMediaDirection aMediaDirection, - TInt& aActiveMedia ) const; - - /** - * @see MVtEngMedia - */ - virtual TBool RenderingStarted( - const TMediaDirection - aDirection ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetSource( TMediaSource& aSource ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetSourcesCaps( TInt& aCaps ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetCurrentCameraId( TCameraId& aId ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetCameraInfo( - const TCameraId aId, - TCameraInfo& aInfo ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetCurrentZoomStep( TInt& aCurrentStep ); - - /** - * @see MVtEngMedia - */ - virtual TInt GetMaxZoomStep( TInt& aMaxZoomStep ); - - /** - * @see MVtEngMedia - */ - virtual TInt GetMajorZoomStepCount( TInt& aCount ); - - /** - * @see MVtEngMedia - */ - virtual void GetMajorZoomStep( TInt aIndex, TInt& aStep ); - - /** - * @see MVtEngMedia - */ - virtual TInt GetFreezeSupported( TBool& aFreezeSupported ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetFreezeState( TBool& aFrozen ) const; - - /** - * @see MVtEngMedia - */ - virtual TInt GetDsaState( - const TMediaDirection aMediaDirection, - TBool& aActive ) const; - - /** - * @see MVtEngMedia - */ - virtual TBool VideoCallConnected () const; - - /** - * @see MVtEngMedia - */ - virtual void GetVideoQuality( TVideoQuality& aVideoQuality ) const; - - /** - * @see MVtEngMedia - */ - virtual void GetObjectSharingState( - TShareObjectState& aObjectSharingState ) const; - - /** - * @ see MVtEngMedia - */ - virtual void GetCameraOrientations( - TCameraOrientation& aPrimaryCameraOrientation, - TCameraOrientation& aSecondaryCameraOrientation ) const; - -public: // New functions. - - /** - * Tells if the Protocol initialization has completed. - * @return ETrue if initialized - */ - TBool ProtoInitialized() const; - - /** - * Performs an operation in the handler. - * @param operation to be performed on the handler - */ - virtual void HandleL( CVtEngOperation& aOperation ); - - /** - * Returns if command can be performed by media handler. - * @return KErrNone if a command can be perfomed - * KErrNotReady if not in appropriate state - * KErrNotSupported if command is not for media handler - */ - TInt ValidateCommand( const TVtEngCommandId aCommand ) const; - - /** - * Returns ETrue if video channel is closed. - */ - TBool IsVideoChannelClosed() const; - - /** - * Request update last remote video frame through MVtEngFrameObserver::vtSetFrame - */ - void RequestLastRemoteFrame(); - - public: // from MVtProtocolHandler - - /** - * Handles callback from protocol. - * @param aResponse response - */ - virtual void HandleSessionCommandEventL(const TVtCommandResponse& aResponse); - - public: // From MVtProtocolHandler. - - /** - * Handles callback from protocol audiocontroller. - * @param aId which command - * @param aCmd which audio command - * @param aContextData any additional data - * @param aStatus how did it end up with - */ - virtual void HandleAudioOutputControlCommandComplete(TInt aId, - TVtAudioOutputControlCommand aCmd, - TAny *aContextData, - TInt aStatus); - - public: // From MVtProtocolHandler. - - /** - * Handles event from protocol. - * @param aEvent event - */ - virtual void HandleSessionInformationalEventL( - const TVtIndicationEvent& aEvent); - - public: // from MVtProtocolHandler - - /** - * Handles error event from protocol. - * @param aEvent error event - */ - virtual void HandleSessionErrorEventL(const TVtErrorEvent& aEvent); - - public: // from MVtEngSettingObserver - - /** - * Handles shared data setting change. - * @param aId setting id - * @param aValue setting value - */ - virtual void HandleSettingChangedL( - CVtEngSettings::TSettingId aId, - const TDesC& aValue ); - - public: // From MVtProtocolHandler. - - /** - * @see MVtProtocolHandler. - */ - void HandleVideoEncoderCommandCompletedL( - const TVtCommandResponse& aResponse ); - - /** - * @see MVtProtocolHandler. - */ - void HandleVideoEncoderInformationalEventL( - const TVtIndicationEvent& aEvent); - - public: // From MVtProtocolHandler - - /** - * @see MVtProtocolHandler. - * @since 3.1 - */ - void HandleH324MConfigCommandCompletedL( const TVtCommandResponse& aResponse ); - - /** - * @see MVtProtocolHandler. - * @since 3.1 - */ - void HandleH324MConfigInformationalEventL( - const TVtIndicationEvent& aEvent ); - - public: // New functions. - - /** - * Initializes media handler. - * @param aStatus signaling handle - */ - void InitializeL( TRequestStatus& aStatus ); - - /** - * Cancels media handler initialization. - */ - void CancelInitialize(); - - /** - * Initializes default blank provider. - * @param aStatus signaling handle - */ - void InitializeProviderL( TRequestStatus& aStatus ); - - /** - * Cancel Image sharing initialization. - */ - void CancelInitializeShareImage(); - - /** - * Sets protocol interface. - * aProto2Way protocol interface - */ - void SetSessionCommand( MVtSessionCommand* aProto2Way ); - - /** - * Unitializes media handler. - * @param aStatus request semaphore to complete - * when uninitialization is complete - */ - void Uninitialize( TRequestStatus& aStatus ); - - /** - * Goes to next step of uninitialization process, it can - * be one of following - * - Cancel all Protocol commands - * - Protocol disconnect - * - Protocol reset - * - Switch blank provider. - */ - void UninitializeNextStep(); - - /** - * Sets selected camera ID. - * @param aId camera ID (primary or secondary) - * @param aUpdateRequired if ETrue switch could not be performed - * Switch will be done when engine has been initialized. - */ - void SetSelectedCameraId( - const TCameraId aId, - TBool aUpdateRequired = EFalse ); - - /** - * Handles source initialization or switch. - * @param aResult Symbian OS error code - */ - void HandleLocalVideoOperationCompleteL( const TInt aResult ); - - /** - * SDK init info. - * @return Protocol initialization info - */ - TVtInitInfo& SdkInitInfo(); - - /** - * Returns protocol state maintained by VTEngine, not by Protocol. - * @return state - */ - MVtProtocolCommand::TVtProtocolState ProtoState(); - - /** - * Sets up video connection to remote terminal. - * @return Symbian OS error code - */ - TInt Connect(); - - /** - * Disconnects session. - * @return Symbian OS error code - */ - TInt Disconnect(); - - /** - * Adds video data source to protocol engine. - * @param Video channel logical channel ID number. - * @return Symbian OS error code - */ - TInt AddVideoSource( TUint aChannelId ); - - /** - * Adds audio data source to protocol engine. - * @param Audio channel logical channel ID number. - * @return Symbian OS error code - */ - TInt AddAudioSource( TUint aChannelId ); - - /** - * Adds video sink. - * @param Video channel logical channel ID number. - * @return Symbian OS error code - */ - TInt AddVideoSink( TUint aChannelId ); - - /** - * Adds audio sink. - * @param Audio channel logical channel ID number. - * @return Symbian OS error code - */ - TInt AddAudioSink( TUint aChannelId ); - - /** - * Sets the output volume for Protocol. - * @param aVolume the level of the volume - * @return Symbian OS error code - */ - TInt SetVolume( const TInt aVolume, - CVtEngOperation* aOperation = NULL ); - - /** - * Enables video when primary camera becomes available. - * @param aEnable do we enable or disable - * @return Symbian OS error code - */ - TInt AutoEnableVideo( TBool aEnable = ETrue ); - - /** - * Deletes protocol instance and associated Protocol interfaces. - */ - void FinalizeUninitialization(); - - /** - * Creates extension according to API Uid. - * @since S60 v3.2 - * @param aUid extension API Uid. - * @return Extension pointer - * @exeption Leaves if creation fails - * - */ - CVtEngExtensionBase* CreateExtensionsL( const TUid& aUid ); - - /** - * Checks if there is already an operation pending. - * @return KVtEngCommandNone if no operation is pending or Command identifier - */ - TVtEngCommandId GetPendingCommand(); - - private: // new functions - - /** - * Sends a sync message to Protocol after provider switch. - */ - void RequestFrame( ); - - /** - * Sets video quality - */ - void SetVideoQualityL( - const TVideoQuality aVideoQuality, - const TBool aSetPeerVideoQuality ); - - /** - * Sets peer video quality - */ - void SetPeerVideoQuality( const TVideoQuality aVideoQuality ); - - /** - * Check's flag's validity. If not valid, panic's in debug mode. - * @param aFlag flag to check. - */ - void AssertFlag( const TInt aFlag ) const; - - /** - * Gets the version information from SysUtil - * and sets it into Protocol. - */ - void SetVersionInfoL(); - - /** - * Sets supported resolutions to Protocol. - */ - void SetSupportedResolutions(); - - /** - * Sets used call setup enhancement parameters. - */ - void SetFastCsupOptions(); - - /** - * Does Protocol reset. - */ - void ResetProtoL(); - - /** - * Does the actual disconnecting with Protocol. - */ - void DisconnectProtoL(); - - /** - * Sets the defaults for volumes. - */ - void InitializeVolume(); - - /** - * Checks if a flag in iProtoInitFlags is set. - * @return ETrue if flag is set - */ - TBool IsFlag( const TInt aFlag ) const; - - /** - * Sets a flag in iProtoInitFlags. - * @param aFlag flag to set - */ - inline void SetFlag( const TInt aFlag ); - - /** - * Clears a flag in iProtoInitFlags. - * @param aFlag flag to clear - */ - inline void ClearFlag( const TInt aFlag ); - - /** - * Requests the volume controller. - * @return ETrue if retrieved ok - */ - TBool RequestAudioControllerL(); - - /** - * Spatial trade off indication handling method. Indication is - * sent by the peer every time when its spatial trade off is updated. - * @param aLogicalChannelId Indication's logical channel Id. - * @param aTradeOff Indication trade off value. - */ - void HandleSpatialTradeoffIndication( - const TUint16 aLogicalChannelId, const TUint8 aTradeOff ); - - /** - * Spatial trade off command handling method. Spatial trade off - * command is sent by the peer whenever peer wants to adjust our - * video quality. - * @param aLogicalChannelId Command's logical channel Id. - * @param aTradeOff New trade off value. - */ - void HandleSpatialTradeoffCommandL( - const TUint16 aLogicalChannelId, const TUint8 aTradeOff ); - - private: // constructor and destructor - - /** - * C++ default constructor. - */ - CVtEngMediaHandler(); - - /** - * Symbian constructor that may leave. - */ - void ConstructL(); - - private: - /** - * Operation values - */ - enum TOperation - { - /** - * No-op. - * 0 - */ - ENone, - - /** - * Add video source to protocol. - * 1 - */ - EAddVideoSource, - - /** - * Add video source to protocol. - * 2 - */ - EAddVideoSink, - - /** - * Add audio source to protocol. - * 3 - */ - EAddAudioSource, - - /** - * Add audio source to protocol. - * 4 - */ - EAddAudioSink, - - /** - * Connect protocol. - * 5 - */ - EConnectProto, - - /** - * Mute audio. - * 6 - */ - EMuteAudio, - - /** - * Resume audio sending. - * 7 - */ - EUnmuteAudio, - - /** - * Enable video for peer. - * 8 - */ - EEnableVideo, - - /** - * Disable video for peer. - * 9 - */ - EDisableVideo, - - /** - * Cancel ongoing request to Protocol - * as part of uninitiazation process. - * 10 - */ - EUninitializeCancelAllProto, - - /** - * Disconnect protocol. - * 11 - */ - EDisconnectProto, - - /** - * Destructs local/remote video and VS instances. - * 12 - */ - EDestructInternals, - - /** - * Terminates H.324 session. - * 13 - */ - ETerminateSession, - - /** - * Removing sinks and sources. - * 14 - */ - ERemovingSinksAndSources, - - /** - * Request 324 control interface from protocol. - * 15 - */ - EGet324CtrlInterface, - - /** - * Set volume. - * 16 - */ - ESetAudioVolume, - - /** - * Gets the maximum volume for Protocol. - * 17 - */ - EGetAudioGetMaxVolume, - - /** - * Reset protocol. - * 18 - */ - EDestructProtoPhaseDisconnect, - - /** - * Destruct switch blank. - * 19 - */ - EDestructSwitchBlank, - - /** - * Reset protocol. - * 20 - */ - EDestructProtoPhaseReset, - - /** - * Check Protocol state. - * 21 - */ - ECheckProtoState, - - /** - * Enables video internally (not originated by UI). - * 22 - */ - EEnableVideoInternal, - - /** - * Disables video internally (not originated by UI). - * 23 - */ - EDisableVideoInternal, - - /** - * Request H263Enc interface from protocol. - * 24 - */ - EGetH263EncInterface, - - /** - * Requests an intra frame. - * 25 - */ - ESendIntraframe, - - /** - * Set supported resolutions. - * 26 - */ - ESetSupportedResolutions, - - /** - * Set video quality (by changing framerate) - * 27 - */ - ESetVideoQuality, - - /** - * Remove H324 interface - * 28 - */ - ERemove324CtrlInterface, - - /** - * Remove video encoder interface - * 29 - */ - ERemoveH263EncInterface, - - /** - * Sends Video Temporal-spatial trade off command - * 30 - */ - ESendVTSTO, - - /** - * Sets fast call setup options - * 31 - */ - ESetFastCsupOptions, - - /** - * Sets vendor id - * 32 - */ - ESetVendorId, - - /** - * Set interval when I-frames are sent - * 33 - */ - ESetIFrameInterval - }; - - /** - * Operation and related command id. - */ - struct TCmdOpPair - { - // Operation - TOperation iOp; - // Command id returned by proto2way asynch request - TInt iProtoCmdId; - }; - - /** - * Enables/Disables video sending. - * @param aEnable ETrue if video is to be enabled - * @param aOp operation to be added - * NOTE. Valid only for enabling video, not when disabled. - * @see void AutoEnableVideo - * @return started operation or ENone - */ - TOperation EnableVideoL( - const TBool aEnable, - const TOperation aOp = EEnableVideo ); - - /** - * Calls Protocol pausing and acts according to the result. - * @return operation id for performed operation - */ - TOperation DoPauseVideo(); - - /** - * Continues to next step of uninitialization. - * @param aOp operation to perform - * @return command id - */ - void ContinueUninitializeL( const TOperation aOp ); - - /** - * Cancels all the running commands within Protocol. - * @param operation to be returned - * EUninitializeCancelAllProto if cancellation is ongoing - * (either because was already or just started) - * ENone if cancellation is not ongoing - * @return error code - * KErrNotReady if engine not in suitable state - * KErrAlreadyExists if cancel was already pending - * KErrNone if cancellation request succeeded - * other Symbian OS error code if cancellation fails - */ - TInt CancelAllProtoCommands( TOperation &aOp ); - - /** - * Stops view finder and remote video rendering. - */ - void StopRendering(); - - /** - * Updates volume to Protocol (if possible). - */ - void UpdateVolume(); - - /** - * Initiates protocol engine reset. - */ - void ResetProto2WayL(); - - /** - * Removes operation from pending operations array. - * @param aOp TOperation - * @return ETrue if operation was found (and hence removed) - */ - template - TBool RemoveOperation( const T& aOp ); - - /** - * Adds operation pending for callback. - * @param aOp operation value - * @param aCmdId protocol commd id or 0 if not Protocol cmd - * @param aResetExisting if ETrue removes existing operations - * from array - * @return index of the operation in array (i.e. >= 0 ) - */ - TInt AddOperation( - const TOperation aOp, - TInt aCmdId, - const TBool aResetExisting = EFalse ); - - /** - * Checks if an operation is pending. - * @param aOp operation - * @return index if operation is pending or KErrNotFound - */ - TInt IsPending( const TOperation aOp ) const; - - /** - * Checks if an operation is pending. - * @param aCmdId command id - * @return index if operation is pending or KErrNotFound - */ - TInt IsPending( const TInt aCmdId ) const; - - /** - * Completes asynchronous operation. - * @param aResult - * @return KErrNotFound if no operation else KErrNone - */ - TInt CompleteOp( const TInt aResult ); - - /** - * Completes asynchronous operation asynchronously. - * @param aResult - * @return KErrNotFound if no operation else KErrNone - */ - void AsyncCompleteOp( const TInt aResult = KErrNone ); - - /** - * Checks if specific operation matches to response from protocol. - * @param aProtoCmdId command id returned by protocol - * @param aOperation operation to search for in pending commands - * @param aIndex index in iPendingOps array if found - * @return ETrue if there's corrensponding entry in pending ops - */ - TBool MatchResponseToPendingOps( - const TInt aProtoCmdId, - const TOperation aOperation, - TInt* aIndex = NULL ); - - /** - * Starts "self-destruction" timer. - */ - void StartDisconnectTimerL(); - - /** - * Assigns new pending operation. Only one can be pending at a time - * so if there already is pending operation it is completed with error. - * @param aOperation operation to assign as pending - * @param aReplaceError error code to complete penging operation if - * one exists. If KErrNone is passed, replacement is not done. - * @return KErrNone if assignment done successfully i.e. there was - not pending operation that was completed. - * KErrCancel if some other operation was pending and was - * completed with aReplaceError. Operation is - * still assigned successfully. - * KErrGeneral if operation was not assigned. - */ - TInt AssignPendingOp( - CVtEngOperation& aOperation, - TInt aReplaceError = KErrCancel ); - - /** - * Callback function that completes ongoing operation. - * @param aAny pointer to an instance of the class. - * @return always KErrNone. - */ - static TInt DoCompleteOp( TAny* aAny ); - - /** - * Implementation of self-destruction timer activity. - * Causes a panic. - * @param aAny pointer to an instance of the class - * Not used. - * @return KErrNone; - */ - static TInt TimerCallback( TAny* aAny ); - - /** - * Creates and enques async callback for uninitialization. - * @see iNextStepCallback - */ - void NextUninitStepCallbackL(); - - /** - * Callback method for async uninitialization step. - * @seeiNextStepCallback - * @return KErrNone; - */ - static TInt UninitCallback( TAny* aAny ); - - /** - * Query 2-way's additional interfaces, encoder and H324 - * @return KErrNone; - */ - void QueryProtoInterfacesL(); - - /** - * Release 2-way's additional interfaces, encoder and H324 - * @return KErrNone; - */ - void ReleaseProtoInterfacesL(); - - /** - * Check for pending Protocol extension interface commands. - * @return ETrue if one or more extension command is pending - */ - TBool ExtensionCommandsPending() const; - - /** - * Checks is it possible to add sink / source from session - * state point of view. - * @return ETrue if adding is allowed. - */ - TBool MediaAddingValidity() const; - - /** - * Provider initialization state - */ - enum TInitState - { - /** - * Initialization not ongoing. - */ - EInitStateNone, - - /** - * Initialize still image. - */ - EStateInitStillImage, - - /** - * Initilize default blank provider. - */ - EStateInitProvider, - - /** - * Provider is set to none. - */ - EStateWaitingProviderChangeForUninit, - - /** - * Initialization has been cancelled. - */ - EStateInitCanceled - }; - - /** - * State flags. - */ - enum - { - // Protocol state flags - // Sink/source added - EProtoAudioSourceAdded = 0x000001, - EProtoVideoSourceAdded = 0x000002, - EProtoAudioSinkAdded = 0x000004, - EProtoVideoSinkAdded = 0x000008, - // Track paused - EProtoAudioTrackPaused = 0x000040, - EProtoVideoTrackPaused = 0x000080, - - // Pause/resume related flags. - ETwoStageOperation = 0x000100, - ESourceUpdateNeeded = 0x000200, - EProtoPauseVideoRequested= 0x000400, - EProtoPauseVideoBlankProv= 0x000800, - EProtoContVideoBlankProv = 0x001000, - EProtoContVideoBlankInit = 0x002000, - - // Must send intra - EProtoSendIntraFrame = 0x004000, - - // 324 interface acquired - EProto324IFAcquired = 0x008000, - - // Cancel all command is called on Protocol - // or there's nothing to cancel - EProtoCancelProtoCmdsOk = 0x010000, - - // NON Protocol related flags - - EVideoQualitySetByPeer= 0x020000, - - // Outgoing video channel closed (after being open) - // Used for preventing video pause/resume when - // the channel is not open - EOutVideoChannelClosed = 0x040000, - - // Outgoing audio channel closed (after being open) - // Used for preventing audio pause/resume - // the channel is not open - EOutAudioChannelClosed = 0x080000 - }; - - - /** - * Defines actions that can be taken when sharing started - * and/or stopped - */ - enum TVideoEngAction - { - EVideoActionNone, - EVideoActionEnable, - EVideoActionDisable - }; - - /** - * Helper class for handling video quality manipulation. - */ - class TVtEngVideoQuality - { - - public: - - // Forward for inner class - class TVQSParams; - - public: - - /** - * Constructor. - */ - TVtEngVideoQuality(); - - /** - * Destructor. - */ - ~TVtEngVideoQuality(); - - /** - * Sets new local video quality setting. - * @param aId Operation id. - * @param aSetPeer ETrue if peer video quality needs to be set, - * EFalse otherwise. - */ - void SettingVideoQuality( TInt aId, const TVideoQuality aValue, - TBool aSetPeer ); - - /** - * Get current local video quality setting. - * @return Current local video quality setting. - */ - TVideoQuality VideoQuality() const; - - /** - * Setting video quality succeeded. - * @return ETrue if record with given id was found, EFalse other - * wise. - */ - TBool SettingSucceeded( TInt aId, TVQSParams& aParams ); - - /** - * Setting video quality failed. - */ - void SettingFailed( TInt aId ); - - /** - * Called when video quality indication is received from peer. - */ - void UpdateVideoQuality( const TVideoQuality aVideoQuality ); - - /** - * Converts given trade off value to video quality enum. - */ - TVideoQuality FromTradeOff( const TInt aTradeOff ) const; - - /** - * Converts given video quality enum to trade off value. - */ - TInt ToFrameRate( const TVideoQuality aVideoQuality ) const; - - /** - * Converts given video quality value to frame rate. - */ - TUint8 ToTradeOff( const TVideoQuality aVideoQuality ) const; - - /** - * Finds id of setting param and returns index to it. - */ - TInt FindVQSParam( TInt aId ) const; - - public: - - /** - * Video quality parameters. - */ - struct TVQSParams - { - - public: - - // Default constructor - TVQSParams(); - - // Constructor with initializing parameters - TVQSParams( TInt aId, const TVideoQuality aValue, - TBool aSetPeer ); - - public: // data - - // Operation id - TInt iId; - - // VideoQuality value to be set - TVideoQuality iValue; - - // Defines whether peer video quality needs to be set or not - TBool iSetPeer; - - }; - - private: - - // Current local video quality - TVideoQuality iCurrent; - - // Qued params - RArray< TVQSParams > iParamList; - }; - - // Class for handling different kind of H.245 logical - // channels and their state in different MONA call setup - // scenarios - class TLogicalChannel - { - public: - - // H.245 logical channel ID to be established or - // already active - TUint iLogicalChannelId; - - // H.245 logical channel ID that is currently closing. - TUint iLogicalChannelIdClosing; - - // Variable to tell is same type (video or audio, incoming or outgoing) - // channel already started to close but not closed yet. If closing is pending - // same type channel cannot be opened until closing has finished or sink/source - // addition has failed for some reason. - TBool iSameTypeClosingPending; - - // Variable to tell is same type (video or audio, incoming or outgoing) - // channel ready to be opened. - TBool iSameTypeChannelReadyToOpen; - - }; - - private: // Data members. - - // Protocol engine pointer. - MVtSessionCommand* iSessionCommand; - - // Local video configuration. - CVtEngLocalVideo* iLocalVideo; - - // Remote video configuration. - CVtEngRemoteVideo* iRemoteVideo; - - // Pending internal operations. - TInt iCmdId; - CArrayFixFlat* iPendingOps; - - // Video Source initialization state. - TInitState iVSInitState; - - // Flags used to determine if audio and video sink/source - // is added to protocol and media state. - TInt iProtoStateFlags; - - // protocol state. - MVtProtocolCommand::TVtProtocolState iProtoState; - - // Initialization flag. - TBool iInitialized; - - // Remote media state. - TInt iRemoteMediaState; - - // Pending operation from client. - CVtEngOperation* iPendingOp; - - // Protocol initialization information. - TVtInitInfo iSdkInitInfo; - - - // Request status for (un)initialization. - TRequestStatus* iRequestStatus; - - // Audio controller handle. - MVtAudioConfigCommand* iAudioCtrl; - - // Timer to detect failure in disconnection. - CPeriodic* iTimer; - - // Protocol max volume. - TInt iProtoMaxVolume; - - // Selected camera is not necessary activated also. - TCameraId iSelectedCameraId; - - // ETrue when it is allowed to update volume. - TBool iUpdateVolumeAllowed; - - // ETrue when it is needed to update volume. - TBool iUpdateVolumeRequired; - - // Owned asynch callback. - CIdle* iAsyncCallback; - - // Pending volume operation. - CVtEngOperation* iPendingVolumeOp; - - // Used for various connection related operations. - TInt iConnectionStates; - - // Used while pausing and resuming video. - CVtEngLocalVideo::TVtEngProviderType iTempProviderInfo; - - // Used for setting the vendor info. - MVtH324ConfigCommand* iH324Config; - - - // Used H263 interface. - MVtVideoConfigCommand* iH263Encoder; - - // Video quality - TVtEngVideoQuality iVideoQuality; - - // Sharing object while video is disable will set this flag - TVideoEngAction iVideoAction; - - // Logical channel structure for outgoing video channel(s). - TLogicalChannel iVideoOutgoingLogicalChannel; - - // Logical channel structure for outgoing audio channel(s). - TLogicalChannel iAudioOutgoingLogicalChannel; - - // Logical channel structure for incoming video channel(s). - TLogicalChannel iVideoIncomingLogicalChannel; - - // Logical channel structure for incoming audio channel(s). - TLogicalChannel iAudioIncomingLogicalChannel; - - /* For proceeding to next uninit step asynchronously. - * Needed because Proto extension interface cannot be released within - * callback - */ - CAsyncCallBack* iNextStepCallback; - - - /* Do not complete operation on pause command. This flag - * is used when image sharing is stopped and video was disabled - * when sharing was initially started to prevent black frame sending - * during blank switch. - */ - TBool iPauseNoCompleteOp; - - /** - * Result for asynchronous operation completion. - */ - TInt iAsyncCompleteOpResult; - }; - -#endif // CVTENGMEDIAHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/CVtEngRemoteVideo.h --- a/vtengines/videoteleng/Inc/Media/CVtEngRemoteVideo.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,441 +0,0 @@ -/* -* 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: Remote video handling class. -* -*/ - - - -#ifndef CVTENGREMOTEVIDEO_H -#define CVTENGREMOTEVIDEO_H - -// INCLUDES -#include -#include -#include "MVtEngImageScaler.h" -#include "MVtEngDraw.h" -#include "TVtEngRendering.h" -#include "TVtEngRenderConfig.h" -#include -#include - -// FORWARD DECLARATIONS -class CDirectScreenAccess; -class CFbsBitmap; -class CVtEngStateManager; -class MVtEngScalerObserver; - -class TVtEngRenderingOptionsDSA; -class TVtEngRenderingOptionsDP; -class TVtEngRenderingOptionsNGA; - -// Define image sizes. -// QCIF. -const TInt KVtEngResolutionQCIFWidth = 176; -const TInt KVtEngResolutionQCIFHeight = 144; - -// SQCIF. -const TInt KVtEngResolutionSQCIFWidth = 128; -const TInt KVtEngResolutionSQCIFHeight = 96; - -// Default video screen width. -const TInt KVtEngRemoteVideoDefaultWidth = 176; - -// Default video screen height. -const TInt KVtEngRemoteVideoDefaultHeight = 144; - -// Watcher checks point time-out 400 ms. -const TInt KVtEngWatcherTimeout = 400000; - -// When the watcher has timed out 15 times without new frame, send event to UI. -const TInt KVtEngWatcherThreshold = 15; - -// CLASS DECLARATION - -/** -* Class handling remote video. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -NONSHARABLE_CLASS( CVtEngRemoteVideo ) : - public CBase, - public MDisplaySinkObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aPv2Way a reference to PV instance. - * @param aStateManager reference to VT state manager - * @return instance of CVtEngRemoteVideo - */ - static CVtEngRemoteVideo* NewL( - MVtSessionCommand& aSessionCommand, - CVtEngStateManager& aStateManager ); - - /** - * Destructor. - */ - virtual ~CVtEngRemoteVideo(); - - public: // From MDisplaySinkObserver - - /** - * @see MDisplaySinkObserver - */ - void VideoFrameSizeChangedL( const TSize& aFrom, - const TSize& aTo ); - - public: // New functions - - /** - * Sets parameters used when rendering remote video. - */ - void SetRenderingParametersL( - const TVtEngRenderingOptionsNGA& aParams ); - - /** - * Sets parameters used when rendering remote video. - * @param aParams direct screen access parameters - */ - void SetRenderingParametersL( - const TVtEngRenderingOptionsDSA& aParams ); - - /** - * Sets parameters used when rendering remote video. - * @param aParams direct screen access parameters - */ - void SetRenderingParametersL( - const TVtEngRenderingOptionsDP& aParams ); - - /** - * Starts remote video rendering. - */ - void StartVideoL(); - - /** - * Stops remote video rendering. - */ - void StopVideoRendering(); - - /** - * Pauses remote video rendering. - * @return command id from PV - */ - TInt PauseVideoL(); - - /** - * Adds Display sink into PV. - * @param Video channel logical channel ID number. - * @return PV command ID - */ - TInt AddVideoSinkL( TInt aChannelId ); - - /** - * Adds Audio sink into PV. - * @param Audio channel logical channel ID number. - * @return PV command ID - */ - TInt AddAudioSinkL( TInt aChannelId ); - - /** - * Returns state of Direct Screen Access. - * @return state of Direct Screen Access - */ - TBool GetDsaState() const; - - /** - * Returns the audiosink of nested CVtEngDraw class. - * @return the audiosink of nested CVtEngDraw class - */ - MVTAudioSink* AudioSink(); - - /** - * Sets UI foreground state (i.e. is the Application - * current active application or not). - * @param aForeground ETrue if the VT application is - * in foreground, EFalse otherwise. - * @exception May leave with KErrNotReady. - */ - void SetUIForegroundL( TBool aForeground ); - - /** - * Request update last remote video frame through MVtEngFrameObserver::vtSetFrame - */ - void RequestLastFrame(); - - private: - - /** - * C++ constructor. - * @param aPv2Way a reference to PV instance - * @param aStateManager reference to VT state manager - */ - CVtEngRemoteVideo( - MVtSessionCommand& aSessionCommand, - CVtEngStateManager& aStateManager ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - public: - - /** - * Base rendering class - */ - NONSHARABLE_CLASS( CVtEngDraw ) : - public CActive, - public MVtEngDraw, - public MDirectScreenAccess - { - - protected: // new methods - /** - * C++ constructor as private. - * @param aObserver callback interface for Display Sink - */ - CVtEngDraw( MDisplaySinkObserver* aObserver ); - - /** - * Destructor - */ - ~CVtEngDraw(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * If not active, set iStatus to KRequestPending and calls - * SetActive(); - */ - void Activate(); - - /** - * Creates DSA instance. - */ - void CreateAndStartDSAL(); - - public: // from MDirectScreenAccess - - /** - * From MDirectScreenAccess, this function is called by the - * window server when direct screen access must stop. - * @see MDirectScreenAccess::AbortNow - */ - virtual void AbortNow( - RDirectScreenAccess::TTerminationReasons aReason ); - - /** - * From MDirectScreenAccess, this method is called by the direct - * screen access instance as soon as direct screen access can - * resume. - * @see MDirectScreenAccess::Restart - */ - virtual void Restart( - RDirectScreenAccess::TTerminationReasons aReason ); - - public: // new functions - - /** - * Configuration was updated. - */ - void ConfigUpdatedL(); - - /** - * Display Sink pointer. - * @return instance of MDisplaySink - */ - MDisplaySink* DisplaySink(); - - /** - * Returns state of Direct Screen Access. - * @return true if rendering - */ - TBool GetDsaState() const; - - /** - * Checks frame watcher expiration. - * @param aAny pointer to CVtEngDrawDSA - * @return Symbian OS error code - */ - static TInt WatcherExpired( TAny* aAny ); - - /** - * Handles frame watcher expiration. - */ - void HandleWatcherExpired(); - - /** - * Sets certain flag on. - * @param aFlags flags to turn on. - */ - void SetFlag( TUint aFlags ); - - /** - * Clears certain flag. - * @param aFlags flags to clear. - */ - void ClearFlag( TUint aFlags ); - - /** - * Checks if certain flag is on. - * @param aFlags flags to check. - */ - TBool IsFlag( TUint aFlag ) const; - - /** - * Called by CVtEngRemoteVideo, when video sink is added - * to PV. - */ - void VideoSinkAdded(); - - private: // from CActive - - /** - * Handles active object cancellation. - * @see CActive::Cancel - */ - void DoCancel(); - - /** - * Handles active object execution errors. - * @see CActive::RunError - */ - TInt RunError( TInt aError ); - - protected: - - /** - * Defines if drawing can be done - * and if we have not received frames - * for some time and observer is notified - * (and no new frames since then). - */ - enum TFlags - { - // Start the rendering. - EStarted = ( 1 << 0 ), - // Ready by window server. - EReadyForeground = ( 1 << 1 ), - // Ready by internal state. - EReadyInternal = ( 1 << 2 ), - // Ready to draw. - EReady = EReadyInternal | EReadyForeground, - // Watcher expired because no frames received in time. - EFrameWatcherExpired= ( 1 << 3 ), - // First frame has been received. - EFirstFrameReceived = ( 1 << 4 ), - // Drawing ongoing flag - ERemoteVideoDrawing = ( 1 << 5 ), - // VT UI foreground status (if set, UI is foreground) - EFlagUIForeground = ( 1 << 6 ), - // Components have been initialized - EFlagInitialized = ( 1 << 7 ), - // VT UI has been sent to background - ESentToBackground = ( 1 << 8 ), - // Frame buffer contains data when this flag is set (DP,NGA) - EFrameBufferFilled = ( 1 << 9 ), - // BaseConstructL() call is pending (DP,NGA) - EBaseConstructCalled = ( 1 << 10 ), - // BaseSetConfigL() call is pending (DP,NGA) - EBaseSetConfigCalled = ( 1 << 11 ), - // BaseStartDrawL() call is pending (DP,NGA) - EBaseBaseStartDrawCalled = ( 1 << 12 ), - // UpdateSinkParamsL() needs to be called (DP,NGA) - ESinkParamUpdateRequired = ( 1 << 13 ), - // Sink().Resume() needs to be called (DP,NGA) - ESinkResumeRequired = ( 1 << 14 ), - // InitializePostingSurfaceL() call is pending (DP), CreateSurfaceL call is pending (NGA) - EInitializePostingSurfaceCalled = ( 1 << 15 ), - // New frame buffer is store, not coverted and scaled yet - EFrameBufferNeedsConvertAndScale = ( 1 << 16 ), - - // Bitmask for all pending calls (DP) - EDelayedCallsMask = EBaseConstructCalled | - EBaseSetConfigCalled | - EBaseBaseStartDrawCalled | - ESinkParamUpdateRequired | - EInitializePostingSurfaceCalled - }; - - protected : // data - - // Direct Screen Access. - CDirectScreenAccess* iDSA; - - // Display sink providing bitmaps. - MDisplaySink* iDisplaySink; - - // @see TFlags - TInt iFlags; - - // For checking if display sink stops feeding. - // drawer with bitmaps - CPeriodic* iWatcher; - - // to reduce watcher restarts do cancel it - // only every 15 frames - // Counter for frame expiration. - TInt iCheckpoint; - - // DisplaySink callback interface. - MDisplaySinkObserver* iObserver; - - // Frame watcher callback. - TCallBack iCallback; - - // Container class as a friend. - friend class CVtEngRemoteVideo; - - // Temporarily store image size when size changes on the fly. - TSize iSourceSize; - - // DisplaySink status boolean. - TBool iDSUpdated; - }; - - private: // Data - // Packet Video interface. - MVtSessionCommand& iSessionCommand; - - // State manager. - CVtEngStateManager& iStateManager; - - // Draws remote video with DSA. - CVtEngDraw* iDrawer; - - // Display sink. - MDisplaySink* iDisplaySink; - - // Audio sink interface. - MVTAudioSink* iAudioSink; - - // Information from PV regarding sink. - TInt iTrackId; - - // @see TFlags - TInt iStateFlags; - - TBool iEnableNGA; - }; - -#endif // CVTENGREMOTEVIDEO_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/MVtEngDraw.h --- a/vtengines/videoteleng/Inc/Media/MVtEngDraw.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2004-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: Remote video handling class. -* -*/ - - - -#ifndef MVTENGDRAW_H -#define MVTENGDRAW_H - -// INCLUDE - -#include - -// FORWARD - -class MDisplaySink; -class MDisplaySinkObserver; -class TVtEngRenderConfig; - -/** -* Drawer API. -* -* @lib videoteleng.lib -* @since Series 60 3.2 -*/ -NONSHARABLE_CLASS( MVtEngDraw ) - { - public: - - /** - * Base construction for derived classes. - */ - virtual void BaseConstructL() = 0; - - /** - * Instantiates display sink. - */ - virtual MDisplaySink* CreateSinkL() = 0; - - /** - * Refresh view. - */ - virtual void BaseRefreshL() = 0; - - /** - * Updates the target bitmaps and/or displaymode - * and/or the sizes of bitmaps - */ - virtual void BaseRefreshBitmapsL() = 0; - - /** - * DoCancel method for inherited classes. - */ - virtual void BaseDoCancel() = 0; - - /** - * Configuration verifying routine for derived classes. If - * new configuration is not supported, then may this method - * leaves with appropriate error code. - */ - virtual void BaseVerifyConfigL() = 0; - - /** - * Called when DSA calls Restart() to start drawing again. - */ - virtual void BaseRestartL() = 0; - - /** - * Called when DSA calls AbortNow() to stop drawing. - */ - virtual void BaseAbortNow() = 0; - - /** - * Starts rendering. - */ - virtual void BaseStartDrawL() = 0; - - /** - * Stops rendering. - */ - virtual void BaseStopDraw() = 0; - - /** - * Sets configuration. - */ - virtual void BaseSetConfigL( const TVtEngRenderConfig& aConfig ) = 0; - - /** - * Called when UI foreground status changes. - */ - virtual void BaseSetUIForegroundL( TBool aForeground ) = 0; - - /** - * Called when incoming video frame size changes. - */ - virtual void BaseVideoFrameSizeChangedL( const TSize& aTo ) = 0; - - /** - * Request update last remote video frame through MVtEngFrameObserver::vtSetFrame. - */ - virtual void BaseRequestLastFrame() = 0; - - protected: - - /** - * Returns current configuration settings. - */ - virtual TVtEngRenderConfig& Config() = 0; - - }; - -/** -* Remote drawer factory. -* -* @lib videoteleng.lib -* @since Series 60 3.2 -*/ -class VtEngDrawFactory - { - public: - /** - * Factory method for creating drawer - * @param aObserver a callback interface - */ - static MVtEngDraw* CreateDrawerL( MDisplaySinkObserver* aObserver, TBool ); - }; - -#endif // MVTENGDRAW_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/MVtEngFrameObserver.h --- a/vtengines/videoteleng/Inc/Media/MVtEngFrameObserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* 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: Observer interface for video frames. -* -*/ - - - -#ifndef MVTENGFRAMEOBSERVER_H -#define MVTENGFRAMEOBSERVER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CFbsBitmap; - -// CLASS DECLARATION - -/** -* Observer interface for video frames. -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngFrameObserver - { - public: - - enum TFrameType - { - ELocalVideoFrame, - ERemoteVideoFrame - }; - - virtual void vtHandleFrameL( TFrameType aType, - CFbsBitmap* aBitmap ) = 0; - - /** - * Sets last drawn frame. This frame will be stored by UI - * and will be drawn when DSA is temporarily disabled (e.g. - * when a menu is opened) - */ - virtual void vtSetFrame( TFrameType aType, - CFbsBitmap* aBitmap ) = 0; - - }; - -#endif // MVTENGFRAMEOBSERVER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/MVtEngImageScaler.h --- a/vtengines/videoteleng/Inc/Media/MVtEngImageScaler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2004-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: Interface used for scaling images to certain size. -* -*/ - - - -#ifndef VTENGIMAGESCALER_H -#define VTENGIMAGESCALER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CFbsBitmap; - -/** -* Image scaler observer. -* -* @lib videoteleng.lib -* @since Series 60 2.8 -*/ -class MVtEngScalerObserver - { - public: - - /** - * Called when scaling is ready. - * @param aBitmap a scaled bitmap - * @param aError Symbian OS error code - */ - virtual void ScalingCompleted( - CFbsBitmap* aBitmap, - TInt aError ) = 0; - }; - -/** -* Image scaler. -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngImageScaler - { - public: // new functions - - /** - * Used to start the scaling of an image. - * @param aSourceIndex the index of the source to use. - */ - virtual void ScaleL( - TInt aSourceIndex ) = 0; - - /** - * Configures the scaler. - * @param aDisplayMode which kind of display - * @param aSize the width and height of the display - * @return ETrue if previous scaling was cancelled - */ - virtual TBool ConfigureL( - TDisplayMode aDisplayMode, - TSize aSize, - TInt aSourceHandle1, - TInt aSourceHandle2 ) = 0; - - /** - * Deletes the scaling object. - */ - virtual void Release() = 0; - - /** - * Possibility to cancel the scaling. - * @return error code of canceling. - */ - virtual TInt Cancel() = 0; - }; - -/** -* Image scaler factory. -* -* @lib videoteleng.lib -* @since Series 60 2.8 -*/ -class VtEngScalerFactory - { - public: - /** - * Factory method for creating scaler - * @param aObserver a callback interface - */ - static MVtEngImageScaler* CreateScalerL( - MVtEngScalerObserver& aObserver ); - }; - -#endif // VTENGIMAGESCALER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/MVtEngMedia.h --- a/vtengines/videoteleng/Inc/Media/MVtEngMedia.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,357 +0,0 @@ -/* -* Copyright (c) 2004-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: Media interface -* -*/ - - - -#ifndef MVTENGMEDIA_H -#define MVTENGMEDIA_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MVtEngLocalVideoDisplay; -class CFbsBitmap; - -// CLASS DECLARATION - -/** -* Media interface for defining data types for media transport and -* presentation of it locally as well methods for obtaining current -* configuration. -* -* @lib videoteleng.lib -* @since Series 60 2.6 -*/ -class MVtEngMedia - { - public: // New functions. - - enum TMediaType - { - EMediaAudio = (1 << 0 ), - EMediaVideo = ( 1 << 1 ), - EMediaAudioPreparing = ( 1 << 2 ), - EMediaVideoPreparing = ( 1 << 3 ), - // Status of audio channel, applicable only for outgoing audio. - EMediaAudioChannelOpen = ( 1 << 4 ), - // Status of video channel, applicable only for outgoing video. - EMediaVideoChannelOpen = ( 1 << 5 ) - }; - - /** - * ESourceCapsPrimaryCamera - * primary camera can be selected. - * ESourceCapsSecondaryCamera - * secondary camera can be selected. - * ESourceCapsStillImage - * still image can be selected. - */ - enum TSourceCapsFlags - { - ESourceCapsPrimaryCamera = ( 1 << 0 ), - ESourceCapsSecondaryCamera = ( 1 << 1 ), - ESourceCapsStillImage = ( 1 << 2 ) - }; - - /** - * EMediaOutgoing - * outbound media - * EMediaIncoming - * inbound media - */ - enum TMediaDirection - { - EMediaOutgoing, - EMediaIncoming - }; - - /** - * EMediaNone - * No media source selected. - * EMediaCamera - * Camera selected - * EMediaCameraPri - * Primary camera selected. - * Camera is inwards - * EMediaCameraSec - * Secondary camera selected. - * Camera is outwards - * EMediaStillImage - * Still image as source. - * EMediaVideoStream - * Video stream selected. - */ - enum TMediaSource - { - EMediaNone, - EMediaCamera, - EMediaCameraPri, - EMediaCameraSec, - EMediaStillImage, - EMediaVideoStream, - EMediaShare - }; - - /** - * EPrimaryCamera - * Primary camera is inwards faced. - * ESecondaryCamera - * Camera is facing outwards. - */ - enum TCameraId - { - EPrimaryCamera, - ESecondaryCamera - }; - - /** - * Camera information (zoom mainly). - */ - struct TCameraInfo - { - TInt iMinZoom; - TInt iMaxZoom; - TInt iMaxDigitalZoom; - TInt iMajorZoomStepCount; - }; - - /** - * - * Video quality enumeration. - * - * EVideoQualityUndefined video quality has not been set - * yet. - * EVideoQualityDetail means slow frame rate, good image - * quality.. - * EVideoQualityNormal smoother video with somewhat lower - * image quality than EVideoQualityDetail. - * EVideoQualityMotion the smoothest video with the worst - * image quality. - */ - enum TVideoQuality - { - EVideoQualityUndefined, - EVideoQualityDetail, - EVideoQualityNormal, - EVideoQualityMotion - }; - - /** - * Enumerates object sharing state. - * - * ENotAbleToShare Is not able to share any objects (engine in wrong - * state) - * ENotSharing Is not sharing anything - * EInitializingShareImage Initializing still image sharing. - * ESharingImage Is sharing image - * ESharingVideoClip Is sharing video clip - */ - enum TShareObjectState - { - ENotAbleToShare, - ENotSharing, - EInitializingShareImage, - EInitializingShareVideoClip, - ESharingImage, - ESharingVideoClip - }; - - /** - * Defines layout (screen orientation) used by - * Video Telephone application per active camera. - * Each camera has one of the following values: - * - * EOrientationLandscape Layout is always landscape. - * EOrientationPortrait Layout is always portrait. - * EOrientationObeyLayoutSwitch Obey layout in specific device mode. - */ - enum TCameraOrientation - { - EOrientationLandscape, - EOrientationPortrait, - EOrientationObeyLayoutSwitch - }; - - /** - * Command parameters for Image sharing. - */ - typedef TFileName TShareObjectImageParameters; - - /** - * Command parameters for Video Clip sharing. - */ - typedef TFileName TShareObjectVideoClipParameters; - - /** - * Parameters for Prepare Camera. - */ - struct TPrepareCameraParams - { - TMediaSource iMediaSource; - TBool iInitialize; - }; - - /** - * Returns state of transmission local video/audio to remote end. - * - * @param aMediaDirection - * @param aActiveMedia returns active media as bitmap (see TMediaType). - * @return Symbian OS error code. - */ - virtual TInt GetMediaState( - const TMediaDirection aMediaDirection, - TInt& aActiveMedia ) const = 0; - - /** - * Returns active source for video transmission and - * local display. - * @param aSource source in return - * @return Symbian OS error code - */ - virtual TInt GetSource( TMediaSource& aSource ) const = 0; - - /** - * Returns source capabilities. - * @param combination of capability flags - * @return Symbian OS error code - */ - virtual TInt GetSourcesCaps( TInt& aCaps ) const = 0; - - /** - * Returns currently active camera. - * @param returns current camera id. - * @return Symbian OS error code. - * KErrNotReady if the engine is not ready or it's in wrong state, - * KErrInUse if camera is used by other application. - * Camera must be initialized, by async KVtEngPrepareCamera command or - * KVtEngSetSource command with camera parameter, in order to get - * KErrInUse indication. - */ - virtual TInt GetCurrentCameraId( TCameraId& aId ) const = 0; - - /** - * Returns camera information. - * @param aId camera to query information for. - * @param aInfo returns camera information - * @return Symbian OS error code. If camera is not - * available returns KErrNotFound. - */ - virtual TInt GetCameraInfo( - const TCameraId aId, - TCameraInfo& aInfo ) const = 0; - - /** - * Gets current zoom step - * @param aCurrentStep current zoom step - * @return Symbian OS error code. - */ - virtual TInt GetCurrentZoomStep( TInt& aCurrentStep ) = 0; - - /** - * Gets maximum zoom value that may be passed to camera. - * @param aMaxZoomStep maximum zoom step. - * @return Symbian OS error code. - */ - virtual TInt GetMaxZoomStep( TInt& aMaxZoomStep ) = 0; - - /** - * Gets number of major zoom level leaps. - * Less than or equal to maximum digital zoom steps. - * @param aCount number of leaps - * @return Symbian OS error code. - */ - virtual TInt GetMajorZoomStepCount( TInt& aCount ) = 0; - - /** - * Maps major zoom leap step to corresponding step index. - * @param aIndex major zoom step. - * @param aStep zoom step - */ - virtual void GetMajorZoomStep( TInt aIndex, TInt& aStep ) = 0; - - /** - * Gets freeze support status. - * @param aFreezeSupported ETrue if freeze is supported, EFalse otherwise. - * @return KErrNotReady if provider is not ready yet. - * @since S60 3.1 - */ - virtual TInt GetFreezeSupported( TBool& aFreezeSupported ) const = 0; - - /** - * Gets freeze current status. - * @param aFreezeSupported ETrue if active provider is frozen, EFalse otherwise. - * @return KErrNotReady if provider is not ready yet. - * @since S60 3.1 - */ - virtual TInt GetFreezeState( TBool& aFrozen ) const = 0; - - /** - * Returns state of DSA drawing, whether is active or not. - * @param aMediaDirection in or out direction - * @param aState returns state of Direct Screen Access - * @return Symbian OS error code - */ - virtual TInt GetDsaState( - const TMediaDirection aMediaDirection, - TBool& aActive ) const = 0; - - /** - * Returns state of VideoCall, whether is connected or not. - * @return state - */ - virtual TBool VideoCallConnected () const = 0; - - /** - * Returns ETrue if rendering has been started. - * - * @param aDirection specifies the rendering direction to check - * @return ETrue if rendering has been started. - */ - virtual TBool RenderingStarted( const TMediaDirection - aDirection ) const = 0; - - /** - * Gets current local video quality setting. - * @param aVideoQuality Current local video quality settings. - * @since S60 3.1 - */ - virtual void GetVideoQuality( TVideoQuality& aVideoQuality ) const = 0; - - /** - * Gets current object sharing state. - * @param aObjectSharingState On return contains current object sharing - * state. @see MVtEngMedia::TShareObjectState. - * @since S60 3.1 - */ - virtual void GetObjectSharingState( - TShareObjectState& aObjectSharingState ) const = 0; - - /** - * Gets camera orientations for primary and secondary camera. - * @see MVtEngMedia::TCameraOrientation - * @param aPrimaryCameraOrientation priamry camera orientation. - * @param aSecondaryCameraOrientation secondary camera orientation. - */ - virtual void GetCameraOrientations( - TCameraOrientation& aPrimaryCameraOrientation, - TCameraOrientation& aSecondaryCameraOrientation ) const = 0; - }; - -#endif // MVTENGMEDIA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfig.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfig.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -#ifndef TVTENGRENDERCONFIG_H -#define TVTENGRENDERCONFIG_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; -class RWindow; - - -// CLASS DECLARATION - -/** -* Configuration for representation of local or remote video. -* Used only internally. -* -* @lib videoteleng -* @since 2.6 -*/ -struct TVtEngRenderConfig - { - public: // enumerations - - /** - * Indication of type of rendering specified by configuration. - * EWsRender fields applicable for window server are valid - * EDsaRender fields applicable for DSA are valid - */ - enum TRenderType - { - EWsRender, - EDsaRender, - EDpRender, - ENgaRender - }; - - public: // data - RWindow* iRemoteWindow; - - RWsSession* iWsSession; - CWsScreenDevice* iWsSreenDevice; - RWindowBase* iWindow; - - MVtEngFrameObserver* iObserver; - TRect iRect; - TRect iClipRect; - TPoint iOffset; - TRenderType iType; - }; - -#endif // TVTENGRENDERCONFIG_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDP.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDP.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -#ifndef TVTENGRENDERCONFIGDP_H -#define TVTENGRENDERCONFIGDP_H - -// INCLUDES -#include "TVtEngRenderConfig.h" -#include "TVtEngRenderingDP.h" -#include - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; - -// CLASS DECLARATION - -/** -* Configuration for representation of local or remote video. -* Used only internally. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderConfigDP ) : public TVtEngRenderConfig - { -public: // new functions - - TVtEngRenderConfigDP(); - - TVtEngRenderConfigDP( const TVtEngRenderingOptionsDP& aOptions ); - - TVtEngRenderConfigDP& operator=( const TVtEngRenderConfig& aConfig ); - -public: // data - // Background color value. This color is filled to areas that are not - // covered by the image. - TUint iBackGround; - }; - -#include "TVtEngRenderConfigDP.inl" - -#endif // TVTENGRENDERCONFIGDP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDP.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDP.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDP::TVtEngRenderConfigDP -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigDP::TVtEngRenderConfigDP() - { - Mem::FillZ( this, sizeof( TVtEngRenderConfigDP ) ); - iType = EDpRender; - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDP::TVtEngRenderConfigDP -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigDP::TVtEngRenderConfigDP( - const TVtEngRenderingOptionsDP& aOptions ) - { - iType = EDpRender; - iWsSession = &aOptions.iWs; - iWsSreenDevice = &aOptions.iWsSD; - iWindow = &aOptions.iWindow; - iObserver = aOptions.iObserver; - iRect = aOptions.iRect; - iClipRect = aOptions.iClipRect; - iOffset = aOptions.iOffset; - iBackGround = 0; - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDP::operator= -// -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigDP& TVtEngRenderConfigDP::operator=( - const TVtEngRenderConfig& aConfig ) - { - iWsSession = aConfig.iWsSession; - iWsSreenDevice = aConfig.iWsSreenDevice; - iWindow = aConfig.iWindow; - iObserver = aConfig.iObserver; - iRect = aConfig.iRect; - iClipRect = aConfig.iClipRect; - iOffset = aConfig.iOffset; - iType = aConfig.iType; - return *this; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDSA.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDSA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -#ifndef TVTENGRENDERCONFIGDSA_H -#define TVTENGRENDERCONFIGDSA_H - -// INCLUDES -#include -#include "TVtEngRenderConfig.h" -#include "TVtEngRenderingDSA.h" - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; - -// CLASS DECLARATION - -/** -* Configuration for representation of local or remote video. -* Used only internally. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderConfigDSA ) : public TVtEngRenderConfig - { -public: // new functions - - TVtEngRenderConfigDSA(); - - TVtEngRenderConfigDSA( const TVtEngRenderingOptionsDSA& aOptions ); - - TVtEngRenderConfigDSA& operator=( const TVtEngRenderConfig& aConfig ); - -public: // data - }; - -#include "TVtEngRenderConfigDSA.inl" - -#endif // TVTENGRENDERCONFIGDSA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDSA.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfigDSA.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDSA::TVtEngRenderConfigDSA -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigDSA::TVtEngRenderConfigDSA() - { - Mem::FillZ( this, sizeof( TVtEngRenderConfigDSA ) ); - iType = EDsaRender; - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDSA::TVtEngRenderConfigDSA -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigDSA::TVtEngRenderConfigDSA( - const TVtEngRenderingOptionsDSA& aOptions ) - { - iType = EDsaRender; - iWsSession = &aOptions.iWs; - iWsSreenDevice = &aOptions.iWsSD; - iWindow = &aOptions.iWindow; - iObserver = aOptions.iObserver; - iRect = aOptions.iRect; - iClipRect = aOptions.iClipRect; - } - - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDSA::operator= -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigDSA& TVtEngRenderConfigDSA::operator=( - const TVtEngRenderConfig& aConfig ) - { - iWsSession = aConfig.iWsSession; - iWsSreenDevice = aConfig.iWsSreenDevice; - iWindow = aConfig.iWindow; - iObserver = aConfig.iObserver; - iRect = aConfig.iRect; - iClipRect = aConfig.iClipRect; - iOffset = aConfig.iOffset; - iType = aConfig.iType; - return *this; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfigNGA.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfigNGA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2004-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: Class for NGA render configuration. -* -*/ - - -#ifndef TVTENGRENDERCONFIGNGA_H -#define TVTENGRENDERCONFIGNGA_H - -// INCLUDES -#include "TVtEngRenderConfig.h" -#include "TVtEngRenderingNGA.h" - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; - -// CLASS DECLARATION - -/** -* Configuration for representation of local or remote video. -* Used only internally. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderConfigNGA ) : public TVtEngRenderConfig - { -public: // new functions - - TVtEngRenderConfigNGA(); - - TVtEngRenderConfigNGA( const TVtEngRenderingOptionsNGA& aOptions ); - - TVtEngRenderConfigNGA& operator=( const TVtEngRenderConfig& aConfig ); - -public: // data - }; - -#include "TVtEngRenderConfigNGA.inl" - -#endif // TVTENGRENDERCONFIGNGA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderConfigNGA.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderConfigNGA.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* Copyright (c) 2004-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: Inline implementation for TVtEngRenderConfigNGA. -* -*/ - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigNGA::TVtEngRenderConfigNGA -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigNGA::TVtEngRenderConfigNGA() - { - Mem::FillZ( this, sizeof( TVtEngRenderConfigNGA ) ); - iType = ENgaRender; - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDP::TVtEngRenderConfigNGA -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigNGA::TVtEngRenderConfigNGA( - const TVtEngRenderingOptionsNGA& aOptions ) - { - iType = ENgaRender; - iWsSession = &aOptions.iWs; - //iWsSreenDevice = &aOptions.iWsSD; - // iWindow = &aOptions.iWindow; - iObserver = aOptions.iObserver; - //iRect = aOptions.iRect; - //iClipRect = aOptions.iClipRect; - //iOffset = aOptions.iOffset; - iRemoteWindow = &aOptions.iWindow; - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderConfigDP::operator= -// -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderConfigNGA& TVtEngRenderConfigNGA::operator=( - const TVtEngRenderConfig& aConfig ) - { - iWsSession = aConfig.iWsSession; - // iWsSreenDevice = aConfig.iWsSreenDevice; - // iWindow = aConfig.iWindow; - iObserver = aConfig.iObserver; - // iRect = aConfig.iRect; - //iClipRect = aConfig.iClipRect; - // iOffset = aConfig.iOffset; - iType = aConfig.iType; - iRemoteWindow = aConfig.iRemoteWindow; - return *this; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRendering.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRendering.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -#ifndef TVTENGRENDERING_H -#define TVTENGRENDERING_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; - -// CLASS DECLARATION - -/** -* Configuration for representation of local or remote video -* via window server. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderingOptions ) - { - public: // constructor - - /** - * C++ constructor - */ - inline TVtEngRenderingOptions( - MVtEngFrameObserver& aObserver, - TSize aRect ); - - /** - * copy constructor - */ - inline TVtEngRenderingOptions( const TVtEngRenderingOptions& aOptions ); - - private: - TVtEngRenderingOptions& operator=( const TVtEngRenderingOptions& ); - - public: - // Frame observer - MVtEngFrameObserver* iObserver; - - // Bitmap size - TSize iSize; - }; - -#include - -#endif // TVTENGRENDERING_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRendering.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRendering.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptions::TVtEngRenderingOptions -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptions::TVtEngRenderingOptions( - MVtEngFrameObserver& aObserver, - TSize aSize ) : - iObserver( &aObserver ), - iSize( aSize) - { - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptions::TVtEngRenderingOptions -// C++ copy constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptions::TVtEngRenderingOptions( - const TVtEngRenderingOptions& aOptions ) : - iObserver( aOptions.iObserver ), - iSize( aOptions.iSize ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderingDP.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderingDP.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -#ifndef TVTENGRENDERINGDP_H -#define TVTENGRENDERINGDP_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; - -// CLASS DECLARATION - -/** -* Display posting access rendering definitions. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderingOptionsDP ) - { - public: // constructor - - /** - * C++ constructor - */ - inline TVtEngRenderingOptionsDP( - MVtEngFrameObserver& aObserver, - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - const TRect& aScreenRect, - const TRect& aClipRect, - const TPoint& aOffset ); - - /** - * C++ copy constructor. - * @param aOptions options to be copied to this instance. - */ - inline TVtEngRenderingOptionsDP( - const TVtEngRenderingOptionsDP& aOptions ); - - private: - TVtEngRenderingOptionsDP& operator=( - const TVtEngRenderingOptionsDP& ); - - public: // data members - RWsSession& iWs; - CWsScreenDevice& iWsSD; - RWindowBase& iWindow; - TRect iRect; - TRect iClipRect; - TPoint iOffset; - - // Frame observer - MVtEngFrameObserver* iObserver; - }; - -#include - -#endif // TVTENGRENDERINGDP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderingDP.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderingDP.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptionsDP::TVtEngRenderingOptionsDP -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptionsDP::TVtEngRenderingOptionsDP( - MVtEngFrameObserver& aObserver, - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - const TRect& aScreenRect, - const TRect& aClipRect, - const TPoint& aOffset ) : - iWs( aWs ), - iWsSD( aScreenDevice ), - iWindow( aWindow ), - iRect( aScreenRect ), - iClipRect( aClipRect ), - iOffset( aOffset ), - iObserver( &aObserver ) - { - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptionsDSA::TVtEngRenderingOptionsDP -// C++ copy constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptionsDP::TVtEngRenderingOptionsDP( - const TVtEngRenderingOptionsDP& aOptions ) - : iWs( aOptions.iWs ), - iWsSD( aOptions.iWsSD ), - iWindow( aOptions.iWindow ), - iRect( aOptions.iRect ), - iClipRect( aOptions.iClipRect ), - iOffset( aOptions.iOffset ), - iObserver( aOptions.iObserver ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderingDSA.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderingDSA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - -#ifndef TVTENGRENDERINGDSA_H -#define TVTENGRENDERINGDSA_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; - -// CLASS DECLARATION - -/** -* Direct screen access rendering definitions. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderingOptionsDSA ) - { - public: // constructor - - /** - * C++ constructor - */ - inline TVtEngRenderingOptionsDSA( - MVtEngFrameObserver& aObserver, - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - const TRect& aScreenRect, - const TRect& aClipRect ); - - /** - * C++ copy constructor. - * @param aOptions options to be copied to this instance. - */ - inline TVtEngRenderingOptionsDSA( - const TVtEngRenderingOptionsDSA& aOptions ); - - private: - TVtEngRenderingOptionsDSA& operator=( - const TVtEngRenderingOptionsDSA& ); - - public: // data members - RWsSession& iWs; - CWsScreenDevice& iWsSD; - RWindowBase& iWindow; - TRect iRect; - TRect iClipRect; - - // Frame observer - MVtEngFrameObserver* iObserver; - }; - -#include - -#endif // TVTENGRENDERINGDSA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderingDSA.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderingDSA.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* 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: Local and remote video rendering configuration. -* -*/ - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptionsDSA::TVtEngRenderingOptionsDSA -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptionsDSA::TVtEngRenderingOptionsDSA( - MVtEngFrameObserver& aObserver, - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - const TRect& aScreenRect, - const TRect& aClipRect ) : - iWs( aWs ), - iWsSD( aScreenDevice ), - iWindow( aWindow ), - iRect( aScreenRect ), - iClipRect( aClipRect ), - iObserver( &aObserver ) - { - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptionsDSA::TVtEngRenderingOptionsDSA -// C++ copy constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptionsDSA::TVtEngRenderingOptionsDSA( - const TVtEngRenderingOptionsDSA& aOptions ) - : iWs( aOptions.iWs ), - iWsSD( aOptions.iWsSD ), - iWindow( aOptions.iWindow ), - iRect( aOptions.iRect ), - iClipRect( aOptions.iClipRect ), - iObserver( aOptions.iObserver ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderingNGA.h --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderingNGA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* -* Copyright (c) 2004-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: Class for NGA Rendering. -* -*/ - -#ifndef TVTENGRENDERINGNGA_H -#define TVTENGRENDERINGNGA_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -class MVtEngFrameObserver; -class RWindow; -class RWsSession; -// CLASS DECLARATION - -/** -* Direct screen access rendering definitions. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( TVtEngRenderingOptionsNGA ) - { - public: // constructor - - /** - * C++ constructor - */ - inline TVtEngRenderingOptionsNGA( - MVtEngFrameObserver& aObserver, - RWindow& aWindow, RWsSession& aWs ); - - /** - * C++ copy constructor. - * @param aOptions options to be copied to this instance. - */ - inline TVtEngRenderingOptionsNGA( - const TVtEngRenderingOptionsNGA& aOptions ); - - private: - TVtEngRenderingOptionsNGA& operator=( - const TVtEngRenderingOptionsNGA& ); - - public: // data members - RWindow& iWindow; - - RWsSession& iWs; - - // Frame observer - MVtEngFrameObserver* iObserver; - }; - -#include - -#endif // TVTENGRENDERINGNGA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Media/TVtEngRenderingNGA.inl --- a/vtengines/videoteleng/Inc/Media/TVtEngRenderingNGA.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2004-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: Inline implementation for TVtEngRenderingOptionsNGA -* -*/ - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptionsNGA::TVtEngRenderingOptionsNGA -// C++ constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptionsNGA::TVtEngRenderingOptionsNGA( - MVtEngFrameObserver& aObserver, - RWindow& aWindow, RWsSession& aWs) : - iWindow( aWindow ), - iWs( aWs ), - iObserver( &aObserver ) - { - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderingOptionsNGA::TVtEngRenderingOptionsNGA -// C++ copy constructor -// ----------------------------------------------------------------------------- -// -inline TVtEngRenderingOptionsNGA::TVtEngRenderingOptionsNGA( - const TVtEngRenderingOptionsNGA& aOptions ) - : iWindow( aOptions.iWindow ), - iWs( aOptions.iWs), - iObserver( aOptions.iObserver ) - { - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Session/CVtEngSessionHandler.h --- a/vtengines/videoteleng/Inc/Session/CVtEngSessionHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* 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: Video session interface. -* -*/ - - - -#ifndef CVTENGSESSIONHANDLER_H -#define CVTENGSESSIONHANDLER_H - -// INCLUDES -#include -#include "MVtEngSessionInfo.h" -#include "MVtCtlEventObserver.h" -#include "MVtCtlCallControl.h" -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CVtEngStateManager; -class CVtCtlFactory; -class CVtEngOperation; -class CVtEngIncomingCallMonitor; -// CLASS DECLARATION - -/** -* Abstraction for video telephony session with remote end. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngSessionHandler ) : - public CActive, - public MVtEngSessionInfo, - public MVtCtlEventObserver - { - public: // constructor and destructors - - static CVtEngSessionHandler* NewL( ); - - virtual ~CVtEngSessionHandler(); - - public: // New functions - - /** - * Performs on operation in the handler. - * @param operation to be performed on the handler - */ - void HandleL( CVtEngOperation& aOperation ); - - public: // from MVtEngSessionInfo - - /** - * Gets session state. - * @return - */ - virtual TSessionState State( TBool aForcedRefresh ) const; - - /** - * Gets session direction. - * @return - */ - virtual TInt GetDirection( TDirection& aDirection ) const; - - /** - * Gets session duration. - * @param - * @param - */ - virtual TInt GetDuration( - TDuration& aDuration, - TBool& aEnabled ) const; - - /* - * @see MVtEngSessionInfo::aCLI - */ - virtual TInt GetCLI( TCLI& aCLI ) const; - - public: // From MVtCtlEventObserver - virtual void HandleVtSessionEventL( - TVtCtlEvent aEvent, - TAny* aParams ); - - public: // new functions - /** - * Initializes session handler. - */ - void InitializeL(); - - /** - * Frees resources used by session handler. - */ - void Uninitialize(); - - MVtCtlCallControl::TVtCtlState RealState() const; - - /** - * Starts Incoming call PS key monitoring - */ - void StartIncomingCallMonitorL(); - - private: // constructors - - void ConstructL(); - - CVtEngSessionHandler( ); - - private: // from CActive - void RunL(); - - void DoCancel(); - - private: // Member data - MVtCtlCallControl* iSessionControl; - CVtCtlFactory* iFactory; - - RLibrary iLib; - - CVtEngIncomingCallMonitor* iIncomingCallMonitor; - }; - - -#endif // CVTENGSESSIONHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Session/MVtEngDtmfHandler.h --- a/vtengines/videoteleng/Inc/Session/MVtEngDtmfHandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2004 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: DTMF handler interface for DTMF states and media -* handler to use. -* -*/ - - - -#ifndef MVTENGDTMFHANDLER_H -#define MVTENGDTMFHANDLER_H - -// INCLUDES -#include - -// DATA TYPES - -// FORWARD DECLARATIONS -class CVtEngOperation; -class TVtEngDtmfTone; -class MVTUserInput; -class CVtEngDtmfState; - -// CLASS DECLARATION - -/** -* Base class for data types -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngDtmfHandler - { - public: // - /** - * Dtmf states - */ - enum TVtEngDtmfState - { - // Not sending DTMF - EVtDtmfStateIdle = 0, - // Sending DTMF - EVtDtmfStateSending, - // Sending DTMF, another waiting in buffer - EVtDtmfStateBuffered - }; - - public: - - /** - * Handles a DTMF command. - * @param - */ - virtual void HandleL( CVtEngOperation& aOp ) = 0; - - /** - * Activates a DTMF state. - * @param aNewState state index - * @return activated state - */ - virtual CVtEngDtmfState& ActivateState( - MVtEngDtmfHandler::TVtEngDtmfState aNewState ) = 0; - - /** - * Handles completion of DTMF sending, non-leavable method. - * @param aError Symbian OS error code - */ - virtual void SendComplete( TInt aError ) = 0; - - /** - * Returns new instance used for sending DTMF tone to protocol - * @param aTone tone to send - * @return protocol DTMF tone. - */ - virtual MVTUserInput& ReserveProtoDtmfL( - const TVtEngDtmfTone& aTone ) = 0; - - /** - * Releses protocol DTMF instance. - */ - virtual void ReleaseProtoDtmf() = 0; - - /** - * Compares last issued DTMF command ID to given command ID. - * @param aCheckCommandId command ID to be compared against - * @return ETrue if IDs are same, otherwise EFalse - */ - virtual TBool CheckCommandId( TInt aCheckCommandId ) const = 0 ; - - /** - * Stores command ID, used in CheckCommandID. - * @param aStoreCommandId command ID to be stored. - */ - virtual void StoreCommandId( TInt aStoreCommandId ) = 0; - }; - -#endif MVTENGDTMFHANDLER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Session/MVtEngSessionInfo.h --- a/vtengines/videoteleng/Inc/Session/MVtEngSessionInfo.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* 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: Video session interface. -* -*/ - - - -#ifndef MVTENGSESSIONINFO_H -#define MVTENGSESSIONINFO_H - -// INCLUDES -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Abstraction for video telephony session with remote end. -* -* @lib videoteleng -* @since 2.6 -*/ -class MVtEngSessionInfo - { - public: // - - /** - * Session state - * EIdle Session not established. - * EInitializing Initializing MO session - * ERemoteAlerting Remote end is alerting - * EReceiving Incoming session request from network - * EConnected Connection to peer is established. - * ENegotiating Handshaking with peer. - * EOpen Session active and media channels are open. - * EClearing Clearing connection. - */ - enum TSessionState - { - EUnknown = -1, - EIdle, - EInitializing, - ERemoteAlerting, - EReceiving, - EConnected, - ENegotiating, - EOpen, - EClearing - }; - - typedef TTimeIntervalSeconds TDuration; - - /** - * Session direction - * EDirectionNone In idle there's no direction . - * EDirectionMO Mobile originated sesison - * EDirectionMT Mobile terminated session - */ - enum TDirection - { - EDirectionNone, - EDirectionMO, - EDirectionMT - }; - - enum { KCallNameLength = 50 }; - - typedef TBuf TCallName; - /** - * CLI data related to a call - */ - struct TCLI { - // call id of the call - TInt iCallId; - - // caller name - TCallName iName; - - // indicates if voice call can be made to peer - TBool iVoiceCallPossible; - }; - - /** - * Returns session state - * @aForcedRefresh if ETrue current state is forced to update. - * Should be EFalse when called in frequently because forced - * refresh is more time consuming (requires context switch) - * @return - */ - virtual TSessionState State( TBool aForcedRefresh ) const = 0; - - /** - * - * @return direction - */ - virtual TInt GetDirection( TDirection& aDirection ) const = 0; - - /** - * - * @param - * @param aEnabled - */ - virtual TInt GetDuration( - TDuration& aDuration, - TBool& aEnabled ) const = 0; - - - virtual TInt GetCLI( TCLI& aCLI ) const = 0; - }; - - -#endif // TVTENGSESSIONINFO_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Session/TVtEngDtmfTone.h --- a/vtengines/videoteleng/Inc/Session/TVtEngDtmfTone.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2004 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: Local and remote video rendering configuration. -* -*/ - - - -#ifndef TVTENGDTMFTONE_H -#define TVTENGDTMFTONE_H - -// INCLUDES -#include "TVtEngType.h" - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Abstraction for DTMF tone -* -* @lib videoteleng -* @since 2.6 -*/ -class TVtEngDtmfTone : public TVtEngtType - { - public: // constructor - - /** - * C++ constructor - */ - TVtEngDtmfTone( const TChar& aTone ); - - public: - // Tone - TChar iTone; - }; -#include "TVtEngDtmfTone.inl" - -#endif // TVTENGDTMFTONE_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/Session/TVtEngDtmfTone.inl --- a/vtengines/videoteleng/Inc/Session/TVtEngDtmfTone.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* -* Copyright (c) 2004 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: Inline methods for TVtEngDtmfTone -* -*/ - - - -inline TVtEngDtmfTone::TVtEngDtmfTone( const TChar& aTone ) -: TVtEngtType( EVtEngTypeDtmf ) { iTone = aTone; } - -// End of File \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngDtmfState.h --- a/vtengines/videoteleng/Inc/State/CVtEngDtmfState.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,246 +0,0 @@ -/* -* 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: DTMF state classes. -* -*/ - - - -#ifndef CVTENGDTMFSTATE_H -#define CVTENGDTMFSTATE_H - -// INCLUDES -#include -#include -#include "TVtEngDtmfTone.h" -#include "MVtEngDtmfHandler.h" - - - -// CLASS DECLARATION - -/** -* Base class for DTMF states. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngDtmfState ) : public CBase - { - public: - /** - * C++ constructor. - * @param aDtmfHandler - * @param aH324Config H324 configure interface - */ - CVtEngDtmfState( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - - public: // new methods - - /** - * Sends a DTMF tone. Derived classes implement this - * and each vary in behavior. - * @param aTone tone to send - */ - virtual void SendDtmfL( const TVtEngDtmfTone& aTone ) = 0; - - /** - * Handles callback about DTMF sending. Releases pv2way dtmf instance. - * @param aError Symbian OS error code - */ - virtual void DtmfSendCompleteL( TInt aError ); - - protected: // new methods - /** - * Sends tone and changes state - * @param aDtmf tone to send - * @param aNewState new DTMF state - */ - void DoSendAndActivateStateL( - const TVtEngDtmfTone& aDtmf, - MVtEngDtmfHandler::TVtEngDtmfState aNewState ); - - protected: // member data - - // DTMF handler - MVtEngDtmfHandler& iDtmfHandler; - - // H324 configure interface - MVtH324ConfigCommand& iH324Config; - }; - -/** -* Idle DTMF state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngDtmfIdle ) : public CVtEngDtmfState - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aDtmfHandler - * @param aH324Config H324 configure interface - */ - static CVtEngDtmfState* NewL( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - - /** - * Destructor. - */ - virtual ~CVtEngDtmfIdle(); - - public: // From CVtEngStateBase - - /** - * Sends DTMF tone and changes state to "sending". - * @param aTone tone to send - */ - virtual void SendDtmfL( const TVtEngDtmfTone& aTone ); - - /** - * @see CVtEngDtmfState - */ - virtual void DtmfSendCompleteL( TInt aError ); - - private: // constructors - - /** - * C++ constructor. - * @param aDtmfHandler - * @param aH324Config H324 configure interface - */ - CVtEngDtmfIdle( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - }; - -/** -* Sending DTMF state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngDtmfSending ) : public CVtEngDtmfState - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aDtmfHandler - * @param aH324Config H324 configure interface - */ - static CVtEngDtmfState* NewL( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - - /** - * Destructor. - */ - virtual ~CVtEngDtmfSending(); - - public: // From CVtEngStateBase - - /** - * Changes state to "buffered". - * @param aTone tone to send - */ - virtual void SendDtmfL( const TVtEngDtmfTone& aTone ); - - /** - * @see CVtEngDtmfState - */ - virtual void DtmfSendCompleteL( TInt aError ); - - private: // constructor - - /** - * C++ constructor. - * @param aDtmfHandler - * @param aH324Config - */ - CVtEngDtmfSending( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - - }; - -/** -* Buffered DTMF state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngDtmfBuffered ) : public CVtEngDtmfState - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aDtmfHandler - * @param aH324Config H324 configure interface - */ - static CVtEngDtmfState* NewL( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - - /** - * Destructor. - */ - virtual ~CVtEngDtmfBuffered(); - - public: // From CVtEngStateBase - - /** - * Buffers DTMF tone that is sent when previous - * tones in buffer are sent. - * @param aTone tone that is added to the buffer - */ - virtual void SendDtmfL( const TVtEngDtmfTone& aTone ); - - /** - * @see CVtEngDtmfState - */ - virtual void DtmfSendCompleteL( TInt aError ); - - private: // constructors - - /** - * C++ constructor. - * @param aDtmfHandler - * @param aH324Config - */ - CVtEngDtmfBuffered( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Member data - - // Buffered DTMF tones. - CArrayFixFlat* iTones; - }; - -#endif // CVTENGDTMFSTATE_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateAlerting.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateAlerting.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* 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: Base class for states -* -*/ - - - -#ifndef CVTENGSTATEALERTING_H -#define CVTENGSTATEALERTING_H - -// INCLUDES -#include "CVtEngStateBase.h" -//#include - -// CONSTANTS -//const ?type ?constant_var = ?constant; - -// MACROS -//#define ?macro ?macro_def - -// DATA TYPES -//enum ?declaration -//typedef ?declaration -//extern ?data_type; - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CVtEngStateManager; - -// CLASS DECLARATION - -/** -* Alerting state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateAlerting ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateAlerting( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateAlerting(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - virtual TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - /** - * - */ - virtual TBool HandleL( CVtEngOperation& aOp ); - - private: - - /** - * Handles state transition to alerting. - */ - void DoOpenL(); - - - - }; - -#endif // CVTENGSTATEALERTING_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateBase.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateBase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,190 +0,0 @@ -/* -* 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: Base class for states -* -*/ - - - -#ifndef CVTENGSTATEBASE_H -#define CVTENGSTATEBASE_H - -// INCLUDES -#include -#include "vtengcommands.h" -#include "CVtEngStateManager.h" -#include "CVtEngEventManager.h" -#include "CVtEngMediaHandler.h" -#include "CVtEngSessionHandler.h" -#include "CVtEngOperation.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" - -// FORWARD DECLARATIONS -class CVtEngSessionHandler; -class CVtEngMediaHandler; -class CVtEngAudioHandler; - -// CLASS DECLARATION - -/** -* State base class - -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateBase ) : public CBase - { - public: // Constructors and destructor - - /** - * Destructor. - */ - virtual ~CVtEngStateBase(); - - public: // New functions - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL() = 0; - - /** - * Checks if a command is valid in current state. - * @param aCommandId command to be validated - * @return ETrue if command is valid. - */ - virtual TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * Handles an operation. Base class method is empty - * and derived classes may handle the operation if applicable. - * @param aOp operation to be handled - * @return ETrue if handled - */ - virtual TBool HandleL( CVtEngOperation& aOp ); - - /** - * Returns session handler. - * @return reference to session handler - */ - CVtEngSessionHandler& SessionHandler(); - - /** - * Returns media handler. - * @return reference to media handler - */ - CVtEngMediaHandler& MediaHandler(); - - /** - * Returns audio handler. - * @return reference to audio handler - */ - CVtEngAudioHandler& AudioHandler(); - - /** - * Creates new state if needed. - * @return new state or NULL - */ - CVtEngStateBase* NewStateL( - const MVtEngSessionInfo::TSessionState aState ); - - virtual MVtEngSessionInfo::TSessionState State() const = 0; - - public: // New functions - - /** - * Sets new current state. - * @param aOldState old state. - */ - void OpenL( CVtEngStateBase* aOldState ); - - /** - * For derived classes to handle state change - */ - virtual void DoOpenL( ) = 0; - - - /** - * State uninitialization. - */ - virtual void Close(); - - protected: // new functions - - /** - * Saves configuration to settings for later - * usage. - */ - void SaveToSettingsL( CVtEngOperation& aOp ); - - /** - * Notifies state change to event manager. - * @param aNewState new session state. - */ - void NotifyStateChange( MVtEngSessionInfo::TSessionState aNewState ); - - /** - * Saves video state to settings. Used e.g. when video can not be - * started in current state. - * @param aEnabled video is enabled - */ - void SetVideoEnabled( TBool aEnabled ); - - /** - * Goes to disconnecting or idle state if needed. - * @return state object if transition is required. - */ - //CVtEngStateBase* DisconnectingOrIdleStateL(); - - /** - * Creates negotiating state if bearer state is connected - * and pv state is ESetup, and UI has indicated state changte - * is permitted. - * @return negotiating state object or NULL - */ - CVtEngStateBase* NegotiatingOrConnectedStateL( - TBool aAcceptOnlyNegotiating = EFalse ); - - - /** - * Saves video state to settings. Used e.g. when video can not be - * started in current state. - * @param aEnabled video is enabled - */ - void TerminateSessionL( CVtEngOperation& aOp ); - - protected: - - /** - * C++ constructor. - */ - CVtEngStateBase( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - protected: // Data - // State manager - CVtEngStateManager& iStateManager; - - // Event manager - CVtEngEventManager& iEventManager; - - private: - }; - -#endif // CVTENGSTATEBASE_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateClearing.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateClearing.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* 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: Clearing state -* -*/ - - - -#ifndef CVTENGSTATECLEARING_H -#define CVTENGSTATECLEARING_H - -// INCLUDES - -#include "CVtEngStateBase.h" - -/** -* Clearing state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateClearing ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateClearing( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateClearing(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - /** - * @see CVtEngStateBase::HandleL - */ - TBool HandleL( CVtEngOperation& aOp ); - - private: - - /** - * Handles state transition to clearing. - */ - void DoOpenL(); - - }; - -#endif // CVTENGSTATECLEARING_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateConnected.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateConnected.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* 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: Base class for states -* -*/ - - - -#ifndef CVTENGSTATECONNECTED_H -#define CVTENGSTATECONNECTED_H - -// INCLUDES -#include "CVtEngStateBase.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Clearing state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateConnected ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateConnected( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateConnected(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - /** - * @see CVtEngStateBase::HandleL - */ - TBool HandleL( CVtEngOperation& aOp ); - - private: - - /** - * Handles state transition to connected. - */ - void DoOpenL(); - - }; - -#endif // CVTENGSTATECONNECTED_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateIdle.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateIdle.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* 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: Idle state -* -*/ - - - -#ifndef CVTENGSTATEIDLE_H -#define CVTENGSTATEIDLE_H - -// INCLUDES -#include "CVtEngStateBase.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CVtEngStateManager; - -// CLASS DECLARATION - -/** -* Idle state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateIdle ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateIdle( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateIdle(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - private: - - /** - * Handles state transition to idle. - */ - void DoOpenL(); - - }; - -#endif // CVTENGSTATEIDLE_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateInitializing.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateInitializing.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* 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: Initializing state -* -*/ - - - -#ifndef CVTENGSTATEINITIALIZING_H -#define CVTENGSTATEINITIALIZING_H - -// INCLUDES -#include "CVtEngStateBase.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CVtEngStateManager; - -// CLASS DECLARATION - -/** -* Initializing state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateInitializing ): public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateInitializing( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateInitializing(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - /** - * @see CVtEngStateBase::HandleL - */ - TBool HandleL( CVtEngOperation& aOp ); - - private: - - /** - * Handles state transition to initializing. - */ - void DoOpenL(); - }; - -#endif // CVTENGSTATEINITIALIZING_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateManager.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateManager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* 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: State manager for session and audio routing states. -* -*/ - - - -#ifndef CVTENGSTATEMANAGER_H -#define CVTENGSTATEMANAGER_H - -// INCLUDES -#include -#include "vtengcommands.h" -#include "MVtEngSessionInfo.h" -// FORWARD DECLARATIONS -class CVtEngStateBase; -class CVtEngHandlerContainer; -class CVtEngEventManager; -class CVtEngOperation; - -// CLASS DECLARATION - -/** -* Owner of engine states. Delegates update request -* to active state when requested. Provides method -* to enquire command availability in current state. -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateManager ): public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtEngStateManager* NewL( - CVtEngHandlerContainer& aHandlers, - CVtEngEventManager& aEventManager ); - - /** - * Destructor. - */ - virtual ~CVtEngStateManager(); - - public: // New functions - - /** - * Requests updates for current state. - */ - void Update( ); - - /** - * Checks if a command is possible in current state - * @param aCommandId command to check - * @return ETrue if command can be performed - */ - TBool IsCommandPossible( - const TVtEngCommandId aCommandId ) const; - - /** - * Sets new session state. - * @param aNewState new session state - */ - void SetState( CVtEngStateBase& aNewState ); - - /** - * Passes an operation to current state for - * handling. - * @param aOp operation to be handled - * @return ETrue if operation handled - */ - TBool HandleOperationL( CVtEngOperation& aOp ); - - /** - * Previous session state. - */ - MVtEngSessionInfo::TSessionState PreviousSessionState() const; - - /** - * Current session state. - */ - MVtEngSessionInfo::TSessionState SessionState() const; - - /** - * Returns handler container. - * @return handler container - */ - inline CVtEngHandlerContainer& Handlers(); - - /** - * Returns event manager. - * @return event manager - */ - inline CVtEngEventManager& EventManager(); - - private: - - /** - * C++ constructor. - */ - CVtEngStateManager( - CVtEngHandlerContainer& aHandlers, - CVtEngEventManager& aEventManager ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - // Previous session state - MVtEngSessionInfo::TSessionState iPreviousSessionState; - - // Current session state - CVtEngStateBase* iSessionState; - - // Handler container - CVtEngHandlerContainer& iHandlers; - - // Event manager - CVtEngEventManager& iEventManager; - - }; - -#include "CVtEngStateManager.inl" - -#endif // CVTENGSTATEMANAGER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateManager.inl --- a/vtengines/videoteleng/Inc/State/CVtEngStateManager.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* 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: State manager inline methods. -* -*/ - - -// MEMBER FUNCTIONS - - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::Handlers -// Return handler container. -// -// ----------------------------------------------------------------------------- -// -inline CVtEngHandlerContainer& CVtEngStateManager::Handlers() - { return iHandlers; } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::EventManager -// Return event manager. -// -// ----------------------------------------------------------------------------- -// -inline CVtEngEventManager& CVtEngStateManager::EventManager() - { return iEventManager; } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateNegotiating.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateNegotiating.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* 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: Negotiating state -* -*/ - - - -#ifndef CVTENGSTATENEGOTIATING_H -#define CVTENGSTATENEGOTIATING_H - -// INCLUDES -#include "CVtEngStateBase.h" - -// FORWARD DECLARATIONS -class CVtEngStateManager; - -// CLASS DECLARATION - -/** -* Negotiatimg state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateNegotiating ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateNegotiating( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateNegotiating(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - /** - * @see CVtEngStateBase - */ - virtual TBool HandleL( CVtEngOperation& aOp ); - - private: - - /** - * Handles state transition to negotiating. - */ - void DoOpenL(); - - }; - -#endif // CVTENGSTATENEGOTIATING_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateOpen.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateOpen.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* 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: Open state -* -*/ - - - -#ifndef CVTENGSTATEOPEN_H -#define CVTENGSTATEOPEN_H - -// INCLUDES -#include "CVtEngStateBase.h" - -// FORWARD DECLARATIONS -class CVtEngStateManager; - -// CLASS DECLARATION - -/** -* Open state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateOpen ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateOpen( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateOpen(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - /** - * @see CVtEngStateBase::HandleL - */ - TBool HandleL( CVtEngOperation& aOp ); - - private: - - /** - * Changes audio routing - * @param aOp audio routing or null if value should - * be read from settings - */ - void RouteAudioL( - CVtEngOperation* aOp ); - - /** - * Uses extension framework to complete - * from operation. - * @since S60 v3.2 - * @param aOp audio routing or null - */ - void CallExtensionL( CVtEngOperation* aOp ); - - private: - - /** - * Handles state transition to open. - */ - void DoOpenL(); - - }; - -#endif // CVTENGSTATEOPEN_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Inc/State/CVtEngStateRinging.h --- a/vtengines/videoteleng/Inc/State/CVtEngStateRinging.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* 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: Ringing state -* -*/ - - - -#ifndef CVTENGSTATERINGING_H -#define CVTENGSTATERINGING_H - -// INCLUDES -#include "CVtEngStateBase.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CVtEngStateManager; - -// CLASS DECLARATION - -/** -* Ringing state class -* -* @lib videoteleng -* @since 2.6 -*/ -NONSHARABLE_CLASS( CVtEngStateRinging ) : public CVtEngStateBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtEngStateRinging( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ); - - - /** - * Destructor. - */ - virtual ~CVtEngStateRinging(); - - public: // From CVtEngStateBase - - /** - * Updates state. May result to state transition - */ - virtual void UpdateL(); - - /** - * Validates a command. - */ - TBool ValidateCommand( - const TVtEngCommandId aCommandId ); - - /** - * @see CVtEngStateBase - */ - virtual MVtEngSessionInfo::TSessionState State() const; - - private: - - /** - * Handles state transition to ringing. - */ - void DoOpenL(); - - }; - -#endif // CVTENGSTATERINGING_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Bmarm/VTLOGGERU.DEF --- a/vtengines/videoteleng/Logger/Bmarm/VTLOGGERU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -EXPORTS - Initialize__9CVtLogger @ 1 NONAME R3UNUSED ; CVtLogger::Initialize(void) - Print__9CVtLoggeriG7TPtrC16 @ 2 NONAME ; CVtLogger::Print(int, TPtrC16) - Print__9CVtLoggeriG7TPtrC16i @ 3 NONAME ; CVtLogger::Print(int, TPtrC16, int) - Print__9CVtLoggeriG7TPtrC16ii @ 4 NONAME ; CVtLogger::Print(int, TPtrC16, int, int) - Uninitialize__9CVtLogger @ 5 NONAME R3UNUSED ; CVtLogger::Uninitialize(void) - Flags__9CVtLogger @ 6 NONAME R3UNUSED ; CVtLogger::Flags(void) - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Bwins/VTLOGGERU.DEF --- a/vtengines/videoteleng/Logger/Bwins/VTLOGGERU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -EXPORTS - ?Initialize@CVtLogger@@SAXXZ @ 1 NONAME ; public: static void __cdecl CVtLogger::Initialize(void) - ?Print@CVtLogger@@SAXHVTPtrC16@@@Z @ 2 NONAME ; public: static void __cdecl CVtLogger::Print(int,class TPtrC16) - ?Print@CVtLogger@@SAXHVTPtrC16@@H@Z @ 3 NONAME ; public: static void __cdecl CVtLogger::Print(int,class TPtrC16,int) - ?Print@CVtLogger@@SAXHVTPtrC16@@HH@Z @ 4 NONAME ; public: static void __cdecl CVtLogger::Print(int,class TPtrC16,int,int) - ?Uninitialize@CVtLogger@@SAXXZ @ 5 NONAME ; public: static void __cdecl CVtLogger::Uninitialize(void) - ?Flags@CVtLogger@@SAHXZ @ 6 NONAME ; public: static int __cdecl CVtLogger::Flags(void) - ?Print@CVtLogger@@SAXHHVTPtrC16@@H@Z @ 7 NONAME ; void CVtLogger::Print(int, int, class TPtrC16, int) - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/EABI/vtloggerU.DEF --- a/vtengines/videoteleng/Logger/EABI/vtloggerU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -EXPORTS - _ZN9CVtLogger10InitializeEv @ 1 NONAME - _ZN9CVtLogger12UninitializeEv @ 2 NONAME - _ZN9CVtLogger5FlagsEv @ 3 NONAME - _ZN9CVtLogger5PrintEi7TPtrC16 @ 4 NONAME - _ZN9CVtLogger5PrintEi7TPtrC16i @ 5 NONAME - _ZN9CVtLogger5PrintEi7TPtrC16ii @ 6 NONAME - _ZTI9CVtLogger @ 7 NONAME ; ## - _ZTV9CVtLogger @ 8 NONAME ; ## - _ZN9CVtLogger5PrintEii7TPtrC16i @ 9 NONAME - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Group/bld.inf --- a/vtengines/videoteleng/Logger/Group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Video Telephony logger build information file. -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../inc/cvtlogger.h |../../../inc/cvtlogger.h -../inc/VtLogger.hrh |../../../inc/VtLogger.hrh - -PRJ_MMPFILES -../Group/vtlogger.mmp - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Group/vtlogger.mmp --- a/vtengines/videoteleng/Logger/Group/vtlogger.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* Copyright (c) 2004 - 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: This is project specification file video telephony logger. -* -*/ - -#include - -// default vendor id -VENDORID VID_DEFAULT - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -TARGET vtlogger.dll -TARGETTYPE dll -UID 0x1000008d 0x101F8699 - -SOURCEPATH ../Src - -SOURCE CVtLogger.cpp - -DOCUMENT ../Group/bld.inf - -USERINCLUDE ../Inc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY flogger.lib - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Inc/cvtlogger.h --- a/vtengines/videoteleng/Logger/Inc/cvtlogger.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,378 +0,0 @@ -/* -* Copyright (c) 2004 - 2005 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: Video telephony engine debugging support. -* -*/ - - - -#ifndef CVTLOGGER_H -#define CVTLOGGER_H - -// INCLUDES -#include -#include -#include -#include "vtlogger.hrh" - -// CONSTANTS -const TInt KVtDebugBufferSize = 100; -const TInt KVtDebugReturnValNotApplicable = -1; - -// MACROS - -#define DEBUG_CONSTRUCT CVtLogger::ELogConstruction -#define DEBUG_DESTRUCT CVtLogger::ELogDestruction -#define DEBUG_MEDIA CVtLogger::ELogMedia -#define DEBUG_AUDIO CVtLogger::ELogAudio -#define DEBUG_SESSION CVtLogger::ELogSession -#define DEBUG_DETAIL CVtLogger::ELogDetails -#define DEBUG_ALL CVtLogger::ELogLogEverything -#define DEBUG_GEN CVtLogger::ELogGeneric -#define DEBUG_RETURN CVtLogger::ELogReturn - -#define DEBUG_FLAG1 CVtLogger::ELogApp1 -#define DEBUG_FLAG2 CVtLogger::ELogApp2 -#define DEBUG_FLAG3 CVtLogger::ELogApp3 -#define DEBUG_FLAG4 CVtLogger::ELogApp4 - -#if defined(VTDEBUG) && defined(__CS_VIDEO_TELEPHONY) -/** -* Write a text buffer to log. -*/ -#define __VTPRINT(level,x) CVtLogger::Print(level, _L(x)); - -/** -* Write a text buffer and integer value to log. -*/ -#define __VTPRINT2(level,x,y) CVtLogger::Print(level, _L(x), y); - -/** -* Write a text buffer and two integer values to log. -*/ -#define __VTPRINT3(level,x,y,z) CVtLogger::Print(level, _L(x), y, z); - -#define __VTPRINTENTER(x) CVtLogger::Print( CVtLogger::ELogGeneric, ETrue, _L(x)); - -#define __VTPRINTEXIT(x) CVtLogger::Print( CVtLogger::ELogGeneric, EFalse, _L(x) ); - -#define __VTPRINTEXITR(x,y) CVtLogger::Print( CVtLogger::ELogGeneric, EFalse, _L(x), y ); - -/** -* Initialize VT logging, must be called before any __VTPRINT's are called. -*/ -#define VTLOGINIT CVtLogger::Initialize(); - -/** -* Uninitializes VT logging, must be called client using logging is deleted. -*/ -#define VTLOGUNINIT CVtLogger::Uninitialize(); - -/** -* Returns logging and configuration flags -*/ -#define VTFLAGS CVtLogger::Flags(); - -/** -* check if baseband loopback is enabled -*/ -#define DEBUG_CFG_BB_LOOPBACK ( CVtLogger::Flags() & CVtLogger::ECfgBBLoopbackEnabled ) - -/** -* check if PV engine loopback is enabled -*/ -#define DEBUG_CFG_PV_LOOPBACK ( CVtLogger::Flags() & CVtLogger::ECfgPVLoopbackEnabled ) - -/** -* Disables passing of audio source to PV -*/ -#define DEBUG_CFG_NO_AUDIO_SOURCE ( CVtLogger::Flags() & CVtLogger::ECfgNoAudioSource ) - -/** -* Disables passing of audio source to PV -*/ -#define DEBUG_CFG_NO_AUDIO_SINK ( CVtLogger::Flags() & CVtLogger::ECfgNoAudioSink ) - -/** -* Disables passing of video sink to PV -*/ -#define DEBUG_CFG_NO_VIDEO_SINK ( CVtLogger::Flags() & CVtLogger::ECfgNoVideoSink ) - -/** -* Disables passing of video source to PV -*/ -#define DEBUG_CFG_NO_VIDEO_SOURCE ( CVtLogger::Flags() & CVtLogger::ECfgNoVideoSource ) - -#else - -/** -* Disables VT Debug mode if __CS_VIDEO_TELEPHONY is undefined -*/ -#undef VTDEBUG - -#define __VTPRINT(level,x) -#define __VTPRINT2(level,x,y) -#define __VTPRINT3(level,x,y,z) -#define __VTPRINTENTER(x) -#define __VTPRINTEXIT(x) -#define __VTPRINTEXITR(x,y) -#define VTLOGINIT -#define VTLOGUNINIT -#define VTFLAGS 0 -#define DEBUG_CFG_BB_LOOPBACK 0 -#define DEBUG_CFG_PV_LOOPBACK 0 -#define DEBUG_CFG_NO_AUDIO_SINK 0 -#define DEBUG_CFG_NO_AUDIO_SOURCE 0 -#define DEBUG_CFG_NO_VIDEO_SINK 0 -#define DEBUG_CFG_NO_VIDEO_SOURCE 0 - -#endif // VTDEBUG - -// FORWARD DECLARATIONS - - -// CLASS DECLARATION - -/** -* Debbuging support. -* To enable logging (either with RDebug or RFileLogger) follow steps below: -* 1. Create folder c:\Logs\VT -* 2. Create file VTLOGCONF.txt -* 3. Open the file and define logging level by hexadecimal digit, -* see TLogLevel in class declaration below. Example: 2007 means that -* constructors (0x1), destructors (0x2 ) in media subsystem (0x4) are -* logged to file (0x2000), i.e. the values are bitwise or'ed. Log file -* name is ".txt" where is name of the thread -* where logging takes places. -* -* @lib videoteleng -* @since 2.6 -*/ -class CVtLogger : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtLogger* NewL(); - - /** - * Destructor. - */ - virtual ~CVtLogger(); - - public: // New functions - - /** - * Writes to log file or RDebug. - * @param aDes text output - */ - virtual void Print( TDesC& aDes ); - - /** - * Log level defining logging behavior. - */ - enum TLogLevel { - // Constructors are logged - ELogConstruction = 0x00000001, - // Destructors are logged - ELogDestruction = 0x00000002, - // Media subsystem methods are logged - ELogMedia = 0x00000004, - // Session subsystem methods are logged - ELogSession = 0x00000008, - // Audio subsystem methods are logged - ELogAudio = 0x00000010, - // Details in methods are logged - ELogDetails = 0x00000020, - // Generic framework methods are logged - ELogGeneric = 0x00000040, - // Log return from function - ELogReturn = 0x00000080, - // Everything is logged, as if all above were set. - ELogLogEverything = 0x0000007F, - // Insert time at the beginning of each log entry - // For file logging time is always written because - // it is automatically done by RFileLogger. - ELogTime = 0x00001000, - // Log to file instead of using RDebug - ELogToFile = 0x00002000, - // Application specific flag 1 - ELogApp1 = 0x00004000, - // Application specific flag 2 - ELogApp2 = 0x00008000, - // Application specific flag 3 - ELogApp3 = 0x00010000, - // Application specific flag 4 - ELogApp4 = 0x00020000, - - // Configuration flags - - /** Loopback configuration (set only - * one of the following flags - */ - // Baseband loopback enabled - ECfgBBLoopbackEnabled = 0x00100000, - // PV Engine loopback enabled - ECfgPVLoopbackEnabled = 0x00200000, - - // Disable passing of audio source - ECfgNoAudioSink = 0x00400000, - - // Disable passing of audio sink - ECfgNoAudioSource = 0x00800000, - - // Disable passing of video source - ECfgNoVideoSource = 0x01000000, - - // Disable passing of video sink - ECfgNoVideoSink = 0x02000000 - }; - - /** - * Writes buffer to log. - * @param aLevel combination of TLogLevel values - * @param aBuffer buffer to log - */ - IMPORT_C static void Print( - TInt aLevel, - TPtrC aBuffer ); - - /** - * Writes buffer to log. - * @param aLevel combination of TLogLevel values - * @param aBuffer buffer to log - * @param aValue value appended to buffer - */ - IMPORT_C static void Print( - TInt aLevel, - TPtrC aBuffer, - TInt aValue ); - - /** - * Writes buffer to log. - * @param aLevel combination of TLogLevel values - * @param aBuffer buffer to log - * @param aValue1 first value appended to buffer - * @param aValue2 second value appended to buffer - */ - IMPORT_C static void Print( - TInt aLevel, - TPtrC aBuffer, - TInt aValue1, - TInt aValue2 ); - - /** - * Writes buffer to log. This overloaded method is used - * for printing entry or exit from a function. - * @since Series60 2.8 - * @param aLevel combination of TLogLevel values - * @param aEntry if ETrue "<" is appended to end of string - * if EFalse ">" is appended to end of string - * @param aBuffer buffer to log - * @param aRetVal return value of the function. If this value - * is present (i.e. other than KVtDebugReturnValNotApplicable - * is passed) then aBuffer should include format tag '%d' where - * aRetValue should be placed. - */ - IMPORT_C static void Print( - TInt aLevel, - const TBool aEntry, - TPtrC aBuffer, - TInt aRetVal = KVtDebugReturnValNotApplicable ); - - /** - * Initializes logging. This must be called before - * any use of __VTPRINT macros. - */ - IMPORT_C static void Initialize(); - - /** - * Uninitializes logging. This must be called when - * client of logging service is deleted. - */ - IMPORT_C static void Uninitialize(); - - /** - * Returns flags in configuration file - * @return flags - */ - IMPORT_C static TInt Flags(); - - private: - - /** - * Returns logger. - * @return logger - */ - static CVtLogger* Logger(); - - /** - * Returns if certain log levels are set. - * @param aLevels bitmap of TLogLevel values - * @return ETrue if all aLevels are set. - */ - TBool CheckLevels( TInt aLevels ) const; - - /** - * Reads configuration file and starts - * monitoring changes on it. - */ - void ReadCongigFile(); - - private: // from CActive - - /** - * Handles file change notification - */ - void RunL(); - - /** - * Cancels monitoring file change - */ - void DoCancel(); - - private: - - /** - * C++ default constructor. - */ - CVtLogger(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( ); - - private: // Data - - // Buffer size for printed lines - enum - { - ETempBufLength = 80 - }; - - TFileName iFileName; - RFs iFs; - TInt iLogLevel; - TInt iAccessCount; - TBuf iBuffer; - TBuf iTempBuf; - }; - - -#endif // CVTLOGGER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Inc/vtlogger.hrh --- a/vtengines/videoteleng/Logger/Inc/vtlogger.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2004 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: Defines when logger is enabled. -* -*/ - - -#ifndef VTLOGGER_HRH -#define VTLOGGER_HRH - -// DATA TYPES -// MACROS - -#if defined(_DEBUG) -/** -* Debugging enabled always in debug builds -*/ -#define VTDEBUG - -#endif - -#endif // VTLOGGER_HRH - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Src/CVtLogger.cpp --- a/vtengines/videoteleng/Logger/Src/CVtLogger.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -/* -* Copyright (c) 2004 - 2005 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: Video telephony logger -* -*/ - - -#pragma CTC SKIP -// INCLUDE FILES -#include "cvtlogger.h" - - -// LOCAL CONSTANTS -_LIT( KVtEngLogConfig, "c:\\Logs\\VT\\VTLOGCONF.txt" ); -_LIT( KVtEngLogFolder, "c:\\Logs\\VT" ); -_LIT( KVtEngLogFolderLogger, "VT" ); -_LIT( KVtEngLogPrefix, "VT: " ); -_LIT( KVtEngLogExtension, ".txt" ); -_LIT( KVtLoggerEnterFunc, "<" ); -_LIT( KVtLoggerExitFunc, ">" ); - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtLogger::CVtLogger -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtLogger::CVtLogger() : CActive( CActive::EPriorityStandard - 1 ), - iLogLevel( ELogLogEverything ) - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtLogger::ConstructL( ) - { - User::LeaveIfError( iFs.Connect() ); - TFindFile find( iFs ); - TUint logLevel( 0 ); - TInt ret = iFs.Att(KVtEngLogFolder, logLevel ); - if ( ret == KErrNone ) - { - if ( find.FindByPath( KVtEngLogConfig, NULL ) == KErrNone ) - { - CActiveScheduler::Add( this ); - ReadCongigFile(); - } - if ( iLogLevel & ELogToFile ) - { - RThread thread; - iFileName.Copy( thread.Name() ); - iFileName.Append( KVtEngLogExtension ); - } - } - Dll::SetTls( this ); - } - -// ----------------------------------------------------------------------------- -// CVtLogger::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtLogger* CVtLogger::NewL( ) - { - CVtLogger* self = new( ELeave ) CVtLogger; - - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CVtLogger::~CVtLogger -// Destructor -// ----------------------------------------------------------------------------- -// -CVtLogger::~CVtLogger() - { - Cancel(); - iFs.Close(); - Dll::SetTls( NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Writes to log. -// ----------------------------------------------------------------------------- -// -void CVtLogger::Print( TDesC& aDes ) - { - if ( iLogLevel & ELogTime && !(iLogLevel & ELogToFile) ) - { - TTime time; - time.HomeTime(); - const TDateTime dt= time.DateTime(); - - iTempBuf.Zero(); - iTempBuf.AppendNum( dt.Minute() ); - iTempBuf.Append(':'); - iTempBuf.AppendNum( dt.Second() ); - iTempBuf.Append(':'); - iTempBuf.AppendNum( dt.MicroSecond() ); - iTempBuf.Append(' '); - - const TInt currentLength( iTempBuf.Length() ); - - iTempBuf.Append( aDes.Left( Min( iTempBuf.MaxLength() - currentLength, aDes.Length() ) ) ); - RDebug::Print( iTempBuf ); - } - else - { - if ( iLogLevel & ELogToFile ) - { - RFileLogger::Write( - KVtEngLogFolderLogger, - iFileName, - EFileLoggingModeAppend, - aDes ); - } - else - { - RDebug::Print( aDes ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Writes to log. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt aLevel, - TPtrC aBuffer ) - { - CVtLogger* logger = CVtLogger::Logger(); - if ( logger && logger->CheckLevels( aLevel ) ) - { - logger->iBuffer.Copy( KVtEngLogPrefix ); - logger->iBuffer.Append( aBuffer); - logger->Print( logger->iBuffer ); - } - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Writes to log. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt aLevel, - TPtrC aBuffer, - TInt aValue ) - { - CVtLogger* logger = CVtLogger::Logger(); - if ( logger && logger->CheckLevels( aLevel ) ) - { - logger->iBuffer.Zero(); - logger->iBuffer.AppendNum( aValue ); - logger->iBuffer.Format( aBuffer, aValue ); - logger->iBuffer.Insert( 0, KVtEngLogPrefix ); - logger->Print( logger->iBuffer ); - } - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Writes to log. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt aLevel, - TPtrC aBuffer, - TInt aValue1, - TInt aValue2 ) - { - CVtLogger* logger = CVtLogger::Logger(); - if ( logger && logger->CheckLevels( aLevel ) ) - { - logger->iBuffer.Format( aBuffer, aValue1, aValue2 ); - logger->iBuffer.Insert( 0, KVtEngLogPrefix ); - logger->Print( logger->iBuffer ); - } - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Writes to log. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt aLevel, - const TBool aEntry, - TPtrC aBuffer, - TInt aRetVal ) - { - CVtLogger* logger = CVtLogger::Logger(); - if ( logger && logger->CheckLevels( aLevel ) ) - { - logger->iBuffer.Copy( KVtEngLogPrefix ); - if ( aEntry ) - { - logger->iBuffer.Append( aBuffer ); - logger->iBuffer.Append( KVtLoggerEnterFunc ); - } - else - { - if ( aRetVal != KVtDebugReturnValNotApplicable ) - { - logger->iTempBuf.Format( aBuffer, aRetVal ); - logger->iBuffer.Append( logger->iTempBuf ); - } - else - { - logger->iBuffer.Append( aBuffer ); - } - logger->iBuffer.Append( KVtLoggerExitFunc ); - } - logger->Print( logger->iBuffer ); - } - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Logger -// Returns logger. -// ----------------------------------------------------------------------------- -// -CVtLogger* CVtLogger::Logger() - { - TAny* tls = Dll::Tls(); - if ( tls ) - { - return reinterpret_cast( tls ); - } - return NULL; - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Initialize -// Initialize logger. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Initialize() - { - CVtLogger* logger = NULL; - if ( Dll::Tls() == NULL ) - { - TRAPD( err, logger = CVtLogger::NewL() ); - if ( err == KErrNone ) - { - Dll::SetTls( logger ); - } - } - else - { - logger = CVtLogger::Logger(); - } - if ( logger ) - { - (logger->iAccessCount)++; - } - - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Uninitialize -// Uninitialize logger. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Uninitialize() - { - TAny* tls = Dll::Tls(); - if ( tls ) - { - CVtLogger* logger = CVtLogger::Logger(); - if( logger ) - { - TInt count( --(logger->iAccessCount) ); - if ( !count ) - { - delete reinterpret_cast( tls ); - Dll::SetTls( NULL ); - } - } - } - - } - -void CVtLogger::ReadCongigFile() - { -#ifdef _DEBUG - RDebug::Print(_L(" VT: ReadConfigFile" ) ); -#endif - RFile config; - if ( config.Open( iFs, KVtEngLogConfig, EFileShareAny ) == KErrNone ) - { - TBuf8<16> buf; - if ( config.Read( buf ) == KErrNone ) - { - TLex8 lex( buf ); - TUint logLevel( 0 ); - if ( lex.Val( logLevel, EHex ) == KErrNone ) - { - iLogLevel = logLevel; - } - } - config.Close(); - } - iFs.NotifyChange( ENotifyEntry, iStatus, KVtEngLogConfig() ); - SetActive(); - } - -void CVtLogger::RunL() - { - if ( iStatus == KErrNone ) - { - ReadCongigFile(); - } - } - -void CVtLogger::DoCancel() - { - iFs.NotifyChangeCancel(); - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Flags -// Returns flags. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CVtLogger::Flags() - { - CVtLogger* logger = CVtLogger::Logger(); - if ( logger ) - { - return logger->iLogLevel; - } - return KErrGeneral; - } - -// ----------------------------------------------------------------------------- -// CVtLogger::CheckLevels -// Check debug level. -// ----------------------------------------------------------------------------- -// -TBool CVtLogger::CheckLevels( TInt aLevels ) const - { - if ( aLevels & iLogLevel ) - { - return ETrue; - } - return EFalse; - } -#pragma CTC ENDSKIP -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Logger/Src/CVtLoggerStub.cpp --- a/vtengines/videoteleng/Logger/Src/CVtLoggerStub.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2004 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: Video telephony logger stub -* -*/ - - - -// INCLUDE FILES -#include "CVtLogger.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtLogger::CVtLogger -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtLogger::CVtLogger() - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtLogger::ConstructL( ) - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtLogger* CVtLogger::NewL( ) - { - return NULL; - } - -// Destructor -CVtLogger::~CVtLogger() - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Prints to log. -// -// ----------------------------------------------------------------------------- -// -void CVtLogger::Print( TDesC& ) - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Prints to log. -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt , - TDesC& ) - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Prints to log. -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt , - TDesC& , - TInt ) - { - } - -// ----------------------------------------------------------------------------- -// CVtLogger::Print -// Prints to log. -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVtLogger::Print( - TInt , - TDesC& , - TInt , - TInt ) - { - } - -CVtLogger* CVtLogger::Logger() - { - return NULL; - } - -// ----------------------------------------------------------------------------- -// CVtLogger::CheckLevels -// Check debug level. -// -// ----------------------------------------------------------------------------- -// -TBool CVtLogger::CheckLevels( TInt aLevels ) const - { - return EFalse; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Rom/videoteleng.iby --- a/vtengines/videoteleng/Rom/videoteleng.iby Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2004-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: IBY file - * -*/ - - -#ifndef __VIDEOTELENG_IBY__ -#define __VIDEOTELENG_IBY__ - -REM Video telephony engine libraries - -#ifdef __CS_VIDEO_TELEPHONY -file=ABI_DIR\BUILD_DIR\videotelproto.dll SHARED_LIB_DIR\videotelproto.dll -file=ABI_DIR\BUILD_DIR\Videoteleng.dll SHARED_LIB_DIR\Videoteleng.dll -file=ABI_DIR\BUILD_DIR\cscallctrl.dll SHARED_LIB_DIR\cscallctrl.dll -file=ABI_DIR\BUILD_DIR\vtlogger.dll SHARED_LIB_DIR\vtlogger.dll - -// Enabler for eclipsing ROM binaries -data=ZSYSTEM\install\videoteleng_stub.sis system\install\videoteleng_stub.sis - -#endif - -#endif diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Audio/CVtEngAudioHandler.cpp --- a/vtengines/videoteleng/Src/Audio/CVtEngAudioHandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,709 +0,0 @@ -/* -* Copyright (c) 2004-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: Audio handler implementation. -* -*/ - - -// INCLUDE FILES -#include "CVtEngAudioHandler.h" -#include "CVtEngSettings.h" -#include "CVtEngEventManager.h" -#include "VtEngUtils.h" -#include -#include -#include -#include -#include "VtEngUtils.h" -#include "CVtEngStateManager.h" -#include "MVtEngSessionInfo.h" -#include "CVtEngHandlerContainer.h" - -// CONSTANTS - -// For DevSound initialization -const TInt KVtEngUidControlHwDevice = 0x10206593; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::CVtEngAudioHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngAudioHandler::CVtEngAudioHandler() - { - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.c++" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::ConstructL() - { - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.ConstructL" ) - - iAccHandler = &CVtEngUtility::AccessoryHandler(); - iAccHandler->RegisterObserverL( this ); - iTelephonyAudioRouting = CTelephonyAudioRouting::NewL( *this ); - iCurrentAudioOutput = iTelephonyAudioRouting->Output(); - - // Fetch the mode. - User::LeaveIfError( iAccHandler->AccessoryMode( iAccMode ) ); - __VTPRINT2( DEBUG_AUDIO, "AH.iAccMode %d", ( TInt )iAccMode.iAccessoryMode ) - - UpdateCurrentVolume(); - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.ConstructL<") - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngAudioHandler* CVtEngAudioHandler::NewL() - { - CVtEngAudioHandler* self = new( ELeave ) CVtEngAudioHandler; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::~CVtEngAudioHandler -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngAudioHandler::~CVtEngAudioHandler() - { - __VTPRINT( DEBUG_AUDIO, "AH.~<" ) - delete iRoutingEnabler; - - delete iTelephonyAudioRouting; - if ( iAccHandler ) - { - iAccHandler->RemoveObserver( this ); - } - __VTPRINT( DEBUG_AUDIO, "AH.~>" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::HandleL -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::HandleL( CVtEngOperation& aOperation ) - { - __VTPRINT2( DEBUG_AUDIO, "AH.HandleL op=%d", ( TInt )iOperation ) - if ( iOperation ) - { - // While operation is ongoing, another call should not be made. - User::Leave( KErrArgument ); - } - - MVtEngAudio::TVtEngRoutingSetting routeSetting; - TVtEngOpParamUtil::Set( - routeSetting, aOperation ); - - switch( routeSetting ) - { - case EActivateHandsfree: - SetLoudspeakerL( ETrue, ETrue ); - break; - - case EDeactivateHansfree: - SetLoudspeakerL( EFalse, ETrue ); - break; - - case EActivateBT: - SetBluetoothL( ETrue ); // asynchronous - break; - - case EDeactivateBT: - SetBluetoothL( EFalse ); - break; - } - - iOperation = &aOperation; - __VTPRINT( DEBUG_AUDIO | DEBUG_RETURN, "AH.HandleL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::SetRoutingEnablerL -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::SetRoutingEnablerL( const TBool aEnable ) - { - __VTPRINTENTER( "AHRout.SetRoutingEnablerL" ) - - if ( aEnable && !iRoutingEnabler ) - { - // Before connected state audio routing can be changed by the user - // only in MO calls. Create temporary devsound only if call is such. - const CVtEngHandlerContainer& handlers = - CVtEngUtility::StateManager()->Handlers(); - const MVtEngSessionInfo& session = handlers.Session(); - MVtEngSessionInfo::TDirection direction = - MVtEngSessionInfo::EDirectionNone; // init to MO, if - const TInt err( session.GetDirection( direction ) ); - if ( err == KErrNone && direction == MVtEngSessionInfo::EDirectionMO ) - { - iRoutingEnabler = CRoutingEnabler::NewL(); - } - } - else if ( !aEnable ) - { - delete iRoutingEnabler; - iRoutingEnabler = NULL; - } - __VTPRINTEXIT( "AHRout.ReleaseRoutingEnablerL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::IncreaseVolume -// ----------------------------------------------------------------------------- -// -TBool CVtEngAudioHandler::IncreaseVolume() - { - __VTPRINTENTER( "AH.IncreaseVolume" ) - TBool adjustOk( AdjustVolume( 1 ) ); - if ( !adjustOk ) - { - // only reason for AdjustVolume to fail is that volume is max already - CVtEngEventManager::NotifyEvent( KVtEngAudioVolumeMax ); - } - __VTPRINTEXITR( "AH.IncreaseVolume %d", adjustOk ) - return adjustOk; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::DecreaseVolume -// ----------------------------------------------------------------------------- -// -TBool CVtEngAudioHandler::DecreaseVolume() - { - __VTPRINTENTER( "AH.DecreaseVolume" ) - TBool adjustOk( AdjustVolume( -1 ) ); - if ( !adjustOk ) - { - // only reason for AdjustVolume to fail is that volume is min already - CVtEngEventManager::NotifyEvent( KVtEngAudioVolumeMin ); - } - __VTPRINTEXITR( "AH.DecreaseVolume %d", adjustOk ) - return adjustOk; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::AdjustVolume -// ----------------------------------------------------------------------------- -// -TBool CVtEngAudioHandler::AdjustVolume( const TInt aDelta ) - { - __VTPRINTENTER( "AH.AdjustVolume" ) - __VTPRINT2( DEBUG_AUDIO, "AH.AdjustVolume aDelta = %d", aDelta ) - TBool result( EFalse ); - CVtEngSettings& settings( CVtEngUtility::Settings() ); - TVtEngOutputVolume volume; - settings.GetVolume( volume.iHandsetVolume, EFalse, EFalse ); - settings.GetVolume( volume.iHandsfreeVolume, ETrue, EFalse ); - TAudioRoutingState routingState; - GetRoutingState( routingState ); - TInt& value( ( routingState == EAudioLoudspeaker ) ? - volume.iHandsfreeVolume : volume.iHandsetVolume ); - value += aDelta; - TInt validValue( settings.ValidVolume( value ) ); - if ( validValue == value ) - { - settings.SetVolume( - volume.iHandsetVolume, - volume.iHandsfreeVolume, - ETrue ); - settings.SetVolume( - volume.iHandsetVolume, - volume.iHandsfreeVolume, - EFalse ); - result = ETrue; - } - __VTPRINTEXITR( "AH.AdjustVolume %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::GetRoutingState -// ----------------------------------------------------------------------------- -// -TInt CVtEngAudioHandler::GetRoutingState( - TAudioRoutingState& aAudioRoutingState ) - { - switch ( iCurrentAudioOutput ) - { - // Wired headset has the highest priority. - case CTelephonyAudioRouting::EWiredAudioAccessory: - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.wired" ) - aAudioRoutingState = EAudioWiredHeadset; - break; - - // Then bluetooth handsfree. - case CTelephonyAudioRouting::EBTAudioAccessory: - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.bt" ) - aAudioRoutingState = EAudioBT; - break; - - // Loudspeaker. - case CTelephonyAudioRouting::ELoudspeaker: - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.IHF" ) - aAudioRoutingState = EAudioLoudspeaker; - break; - - // Handset as fallback. - default: - __VTPRINT( DEBUG_CONSTRUCT | DEBUG_AUDIO, "AH.GRS.Handset" ) - aAudioRoutingState = EAudioHandset; - break; - } - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::GetRoutingAvailability -// ----------------------------------------------------------------------------- -// -TInt CVtEngAudioHandler::GetRoutingAvailability( - const TAudioRoutingState aAudioRoutingState, - TBool& aAvailable ) - { - TAudioRoutingState currentRouting; - GetRoutingState( currentRouting ); // always succeeds - - if ( currentRouting == aAudioRoutingState ) - { - // It is possible to route to itself, although it does not make - // much sense. - aAvailable = ETrue; - } - else if ( currentRouting == EAudioWiredHeadset ) - { - // For wired headset, audio routings are not possible. - aAvailable = EFalse; - } - else - { - switch ( aAudioRoutingState ) - { - case EAudioHandset: - case EAudioLoudspeaker: - // Handset & loudspeaker are always available. - aAvailable = ETrue; - break; - - case EAudioBT: - aAvailable = IsOutputAvailable( CTelephonyAudioRouting::EBTAudioAccessory ); - break; - - case EAudioWiredHeadset: - // Wired headset can not be routed to. When headset is - // attached, routing happens automatically. - aAvailable = EFalse; - break; - } - } - - __VTPRINT3( DEBUG_AUDIO, "AH.GRA state %d availability=%d", - aAudioRoutingState, aAvailable ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::GetHeadsetType -// ----------------------------------------------------------------------------- -// -TInt CVtEngAudioHandler::GetHeadsetType( - TWiredHeadsetType& aHeadsetType ) - { - switch ( iAccMode.iAccessoryMode ) - { - case EAccModeWiredHeadset: - case EAccModeWiredCarKit: - case EAccModeMusicStand: - aHeadsetType = EWiredHeadset; - break; - - case EAccModeLoopset: - aHeadsetType = EWiredLoopset; - break; - - case EAccModeTextDevice: - aHeadsetType = EWiredTty; - break; - - case EAccModeHandPortable: - case EAccModeWirelessHeadset: - case EAccModeWirelessCarKit: - default: - // Not wired headset. - aHeadsetType = EWiredNone; - break; - } - - __VTPRINT2( DEBUG_AUDIO, "AH.HeadsetType=%d", aHeadsetType ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::OutputVolume -// ----------------------------------------------------------------------------- -// -TInt CVtEngAudioHandler::OutputVolume( - const TBool aHandsetVolume ) const - { - __VTPRINT2( DEBUG_AUDIO, "AH.OutputVolume isHandset=%d", aHandsetVolume ) - TInt vol = 0; - CVtEngSettings& setting = CVtEngUtility::Settings(); - TInt err( setting.GetVolume( vol, !aHandsetVolume, EFalse ) ); - if ( err != KErrNone ) - { - vol = err; - } - __VTPRINT2( DEBUG_AUDIO, "AH.OutputVolume vol=%d",vol ) - return vol; - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::SetLoudspeakerL -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::SetLoudspeakerL( TBool aTurnOn, TBool /*aShowNote*/ ) - { - __VTPRINTENTER( "AH.SetLoudspeakerL" ) - __VTPRINT2( DEBUG_AUDIO, "AH.SetLoudspeakerL %d", aTurnOn ) - TBool available( EFalse ); - GetRoutingAvailability( EAudioLoudspeaker, available ); - if ( !available ) - { - User::Leave( KErrNotSupported ); - } - // Set shownote flag up in telephony audiorouting, before calling SetOutputL. - User::LeaveIfError( iTelephonyAudioRouting->SetShowNote( ETrue ) ); - - if( aTurnOn ) - { - iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::ELoudspeaker ); - } - else - { - iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::EHandset ); - } - __VTPRINTEXIT( "AH.SetLoudspeakerL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::SetBluetoothL -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::SetBluetoothL( TBool aTurnOn ) - { - __VTPRINTENTER( "AH.SetBluetoothL" ) - TBool available( EFalse ); - GetRoutingAvailability( EAudioBT, available ); - if ( !available ) - { - User::Leave( KErrNotSupported ); - } - // Set shownote flag up in telephony audiorouting, before calling SetOutputL. - User::LeaveIfError( iTelephonyAudioRouting->SetShowNote( ETrue ) ); - - if( aTurnOn ) - { - iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::EBTAudioAccessory ); - } - else - { - iTelephonyAudioRouting->SetOutputL( CTelephonyAudioRouting::EHandset ); - } - __VTPRINTEXIT( "AH.SetBluetoothL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::AvailableOutputsChanged -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::AvailableOutputsChanged( - CTelephonyAudioRouting& /*aTelephonyAudioRouting*/ ) - { - __VTPRINTENTER( "AH.AvailableOutputsChanged" ) - CVtEngEventManager::NotifyEvent( KVtEngAudioRoutingAvailabilityChanged ); - __VTPRINTEXIT( "AH.AvailableOutputsChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::OutputChanged -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::OutputChanged( - CTelephonyAudioRouting& aTelephonyAudioRouting ) - { - __VTPRINTENTER( "AH.OutputChanged" ) - CTelephonyAudioRouting::TAudioOutput - previousAudioOutput( iCurrentAudioOutput ); - iCurrentAudioOutput = aTelephonyAudioRouting.Output(); - CVtEngEventManager::NotifyEvent( KVtEngAudioRoutingChanged ); - // HandSet -> IHF - if( ( previousAudioOutput == CTelephonyAudioRouting::EHandset ) && - ( iCurrentAudioOutput == CTelephonyAudioRouting::ELoudspeaker ) ) - { - __VTPRINT( DEBUG_AUDIO, "AH.OutputChanged signalling HandSet to IHF" ) - } - // IHF -> HandSet - else if( ( previousAudioOutput == CTelephonyAudioRouting::ELoudspeaker ) && - ( iCurrentAudioOutput == CTelephonyAudioRouting::EHandset ) ) - { - __VTPRINT( DEBUG_AUDIO, "AH.OutputChanged signalling IHF to HandSet" ) - } - UpdateCurrentVolume(); - __VTPRINTEXITR( "AH.OutputChanged %d", iCurrentAudioOutput ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::SetOutputComplete -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::SetOutputComplete( - CTelephonyAudioRouting& aTelephonyAudioRouting, - TInt aError ) - { - __VTPRINTENTER( "AH.SetOutputComplete" ) - if ( aError == KErrNone ) - { - OutputChanged( aTelephonyAudioRouting ); - } - CompleteOperation( aError ); - __VTPRINTEXIT( "AH.SetOutputComplete" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::CompleteOperation -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::CompleteOperation( TInt aResult ) - { - __VTPRINT3( DEBUG_AUDIO, "AH.CompleteOperation op=%d,res=%d" , - ( TInt )iOperation, aResult ) - if ( iOperation ) - { - iOperation->HandleOpComplete( aResult ); - iOperation = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::UpdateCurrentVolume -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::UpdateCurrentVolume() - { - __VTPRINTENTER( "AH.UpdateCurrentVolume" ) - TAudioRoutingState currentRouting = EAudioHandset; - GetRoutingState( currentRouting ); - - const TBool currentVolume = ( currentRouting == EAudioLoudspeaker ); - CVtEngSettings& setting = CVtEngUtility::Settings(); - setting.SetCurrentVolume( currentVolume ); - - __VTPRINTEXITR( "AH.UpdateCurrentVolume output is IHF=%d", currentVolume ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::AccessoryModeChanged -// ----------------------------------------------------------------------------- -// -void CVtEngAudioHandler::AccessoryModeChanged( - const TAccMode& aMode, const TBool /* aActivated */ ) - { - iAccMode.iAccessoryMode = aMode; - } - - -// ----------------------------------------------------------------------------- -// CVtEngAudioHandler::IsOutputAvailable -// ----------------------------------------------------------------------------- -// -TBool CVtEngAudioHandler::IsOutputAvailable( - const CTelephonyAudioRouting::TAudioOutput aOutput ) - { - const TArray< CTelephonyAudioRouting::TAudioOutput > outputs = - iTelephonyAudioRouting->AvailableOutputs(); - - for ( TInt i = 0; i < outputs.Count(); i++ ) - { - if ( outputs[ i ] == aOutput ) - { - return ETrue; - } - } - return EFalse; - } -// ----------------------------------------------------------------------------- -// CRoutingEnabler::NewL -// ----------------------------------------------------------------------------- -// -CRoutingEnabler* CRoutingEnabler::NewL() - { - CRoutingEnabler* enabler = - new ( ELeave ) CRoutingEnabler(); - CleanupStack::PushL( enabler ); - enabler->StartL(); - CleanupStack::Pop( enabler ); - return enabler; - } - -// Destructor -CRoutingEnabler::~CRoutingEnabler() - { - if ( iDevSound ) - { - // If initialization ahs been successfull, Devsound Play has started - // and need to be stopped. - if( !iDevsoundInitializeFailure ) - { - __VTPRINT( DEBUG_MEDIA, "AHRout.~ Stopping audio" ) - iDevSound->Stop(); - } - delete iDevSound; - iDevSound = NULL; - } - } - -// c++ constructor -CRoutingEnabler::CRoutingEnabler() - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::StartL -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::StartL() - { - __VTPRINTENTER( "AHRout.StartL" ) - iDevSound = CMMFDevSound::NewL(); - - iDevSound->InitializeL( - *( this ), - EMMFStatePlaying ); - __VTPRINTEXIT( "AHRout.StartL" ) - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::InitializeComplete -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::InitializeComplete( TInt aError ) - { - __VTPRINTENTER( "AHRout.InitializeComplete" ) - if ( aError == KErrNone ) - { - TMMFPrioritySettings prioritySettings; - prioritySettings.iPriority = KAudioPriorityCSCallDownlink; - prioritySettings.iPref = - ( TMdaPriorityPreference ) KAudioPrefCSCallDownlink; - prioritySettings.iState = EMMFStatePlaying; - if ( iDevSound ) - { - iDevSound->SetPrioritySettings( prioritySettings ); - - TRAPD( err, iDevSound->PlayInitL() ); - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_AUDIO, "AHRout.InitializeComplete PlayInitL err=%d", err ) - - // Devsound PlayInitL leave error happened. - iDevsoundInitializeFailure = ETrue; - } - } - } - else - { - __VTPRINT2( DEBUG_AUDIO, "AHRout.InitializeComplete err=%d", aError ) - - // Devsound initialization failed - iDevsoundInitializeFailure = ETrue; - } - __VTPRINTEXIT( "AHRout.InitializeComplete" ) - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::ToneFinished -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::ToneFinished( TInt /*aError*/) - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::BufferToBeFilled -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::BufferToBeFilled( - CMMFBuffer* /*aBuffer*/) - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::PlayError -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::PlayError( TInt /*aError*/) - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::BufferToBeEmptied -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::BufferToBeEmptied( - CMMFBuffer* /*aBuffer*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::RecordError -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::RecordError( - TInt /*aError*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::ConvertError -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::ConvertError( TInt /*aError*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CRoutingEnabler::DeviceMessage -// ----------------------------------------------------------------------------- -// -void CRoutingEnabler::DeviceMessage( - TUid /*aMessageType*/, const TDesC8& /*aMsg*/ ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngAccessoryHandler.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngAccessoryHandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Accessory listener. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngAccessoryHandler.h" -#include "MVtEngAccessoryObserver.h" -#include - -// CONSTANTS -const TInt KVtEngAccObserverGranularity = 1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::CVtEngAccessoryHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngAccessoryHandler::CVtEngAccessoryHandler() : - CActive( CActive::EPriorityStandard ), - iAccessoryObservers( KVtEngAccObserverGranularity ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::ConstructL() - { - User::LeaveIfError( iAccessoryServer.Connect() ); - User::LeaveIfError( iAccessoryMode.CreateSubSession( iAccessoryServer ) ); - StartListening(); - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngAccessoryHandler* CVtEngAccessoryHandler::NewL( ) - { - __VTPRINTENTER( "AccHdr.NewL" ) - CVtEngAccessoryHandler* self = new( ELeave ) CVtEngAccessoryHandler; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "AccHdr.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::~CVtEngAccessoryHandler -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngAccessoryHandler::~CVtEngAccessoryHandler() - { - __VTPRINTENTER( "AccHdr.~" ) - Cancel(); - RemoveAllObservers(); - iAccessoryMode.CloseSubSession(); - iAccessoryServer.Disconnect(); - __VTPRINTEXIT( "AccHdr.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::RemoveObserver -// Removes an accessory listener. -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::RemoveObserver( - MVtEngAccessoryObserver* aObserver ) - { - __VTPRINTENTER( "AccHdr.RemoveObserver" ) - TInt pos = iAccessoryObservers.Find( aObserver ); - if ( pos != KErrNotFound ) - { - iAccessoryObservers.Remove( pos ); - } - __VTPRINTEXIT( "AccHdr.RemoveObserver" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::RegisterObserverL -// New accessory listener. -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler:: - RegisterObserverL( MVtEngAccessoryObserver* aObserver ) - { - __VTPRINTENTER( "AccHdr.RegisterObserverL" ) - TInt pos = iAccessoryObservers.Find( aObserver ); - if ( pos == KErrNotFound ) - { - User::LeaveIfError( iAccessoryObservers.Append( aObserver ) ); - } - __VTPRINTEXIT( "AccHdr.RegisterObserverL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::RemoveAllObservers -// All observers off they go -// -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::RemoveAllObservers() - { - iAccessoryObservers.ResetAndDestroy(); - iAccessoryObservers.Close(); - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::StartListening -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::StartListening() - { - iAccessoryMode.NotifyAccessoryModeChanged( iStatus, iMode ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::RunL -// From CActive. -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::RunL() - { - __VTPRINTENTER( "AccHdr.RunL" ) - StartListening(); - NotifyObserversL(); - __VTPRINTEXIT( "AccHdr.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::DoCancel -// From CActive. -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::DoCancel() - { - __VTPRINTENTER( "AccHdr.DoCancel" ) - iAccessoryMode.CancelNotifyAccessoryModeChanged(); - __VTPRINTEXIT( "AccHdr.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::RunError -// From CActive. -// ----------------------------------------------------------------------------- -// -TInt CVtEngAccessoryHandler::RunError( TInt /*aError*/ ) - { - __VTPRINTENTER( "AccHdr.RunError" ) - __VTPRINTEXIT( "AccHdr.RunError" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::NotifyObserversL. -// ----------------------------------------------------------------------------- -// -void CVtEngAccessoryHandler::NotifyObserversL() - { - const TInt obsCount( iAccessoryObservers.Count() ); - for ( TInt i = 0; i < obsCount; i++ ) - { - MVtEngAccessoryObserver* obs = iAccessoryObservers[ i ]; - if ( obs ) - { - obs->AccessoryModeChanged( - iMode.iAccessoryMode, iMode.iAudioOutputStatus ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtEngAccessoryHandler::CMonitor::AccessoryMode -// ----------------------------------------------------------------------------- -// -TInt CVtEngAccessoryHandler:: - AccessoryMode( TAccPolAccessoryMode& aAccessoryMode) const - { - return iAccessoryMode.GetAccessoryMode( aAccessoryMode ); - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngCRObserverItem.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngCRObserverItem.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,242 +0,0 @@ -/* -* Copyright (c) 2004-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: Video call CR listener. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngCRObserverItem.h" -#include -#include "MVtEngCRSettingObserver.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::CVtEngCRObserverItem -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngCRObserverItem::CVtEngCRObserverItem( - MVtEngCRSettingObserver* aObserver, - TUid aUid, TUint32 aKey, - CCenRepNotifyHandler::TCenRepKeyType aType ) : - iObserver( aObserver ), iUid( aUid ), iKey( aKey ), iType( aType ), - iNotifier( NULL ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngCRObserverItem* CVtEngCRObserverItem::NewL( - MVtEngCRSettingObserver* aObserver, - TUid aUid, TUint32 aKey, - CCenRepNotifyHandler::TCenRepKeyType aType ) - { - __VTPRINTENTER( "CRListener.NewL" ) - CVtEngCRObserverItem* self = - new( ELeave ) CVtEngCRObserverItem( aObserver, aUid, aKey, aType ); - __VTPRINTEXIT( "CRListener.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::~CVtEngCRObserverItem -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngCRObserverItem::~CVtEngCRObserverItem() - { - __VTPRINTENTER( "CRListener.~" ) - if ( iNotifier ) - { - iNotifier->StopListening(); - } - delete iNotifier; - __VTPRINTEXIT( "CRListener.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Offer -// Checks if uid and id match this observer's. -// ----------------------------------------------------------------------------- -// -TBool CVtEngCRObserverItem::Offer( const TUid aUid, const TUint32 aKey ) const - { - return aUid == iUid && iKey == aKey ? ETrue : EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Offer -// Checks if uid matches this observer's. -// ----------------------------------------------------------------------------- -// -TBool CVtEngCRObserverItem::Offer( const TUid aUid ) const - { - return aUid == iUid ? ETrue : EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Offer -// Checks if id matches this observer's. -// ----------------------------------------------------------------------------- -// -TBool CVtEngCRObserverItem::Offer( const TUint32 aKey ) const - { - return iKey == aKey ? ETrue : EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::SetCenRepNotifier -// Sets the actual change handler to this object. -// ----------------------------------------------------------------------------- -// -void CVtEngCRObserverItem::SetCenRepNotifier( CCenRepNotifyHandler* aNotifier ) - { - iNotifier = aNotifier; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::HandleNotifyInt -// Callback of changed int value. -// ----------------------------------------------------------------------------- -// -void CVtEngCRObserverItem::HandleNotifyInt( TUint32 aId, TInt aNewValue ) - { - __VTPRINTENTER( "CRListener.Int" ) - iObserver->HandleNotifyInt( iUid, aId, aNewValue ); - __VTPRINTEXIT( "CRListener.Int" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::HandleNotifyReal -// Callback of changed real value. -// ----------------------------------------------------------------------------- -// -void CVtEngCRObserverItem::HandleNotifyReal( TUint32 aId, TReal aNewValue ) - { - __VTPRINTENTER( "CRListener.Real" ) - iObserver->HandleNotifyReal( iUid, aId, aNewValue ); - __VTPRINTEXIT( "CRListener.Real" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::HandleNotifyString -// Callback of changed string value. -// ----------------------------------------------------------------------------- -// -void CVtEngCRObserverItem::HandleNotifyString( TUint32 aId, - const TDesC16& aNewValue ) - { - __VTPRINTENTER( "CRListener.String" ) - iObserver->HandleNotifyString( iUid, aId, aNewValue ); - __VTPRINTEXIT( "CRListener.String" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::HandleNotifyBinary -// Callback of changed binary value. -// ----------------------------------------------------------------------------- -// -void CVtEngCRObserverItem::HandleNotifyBinary( TUint32 /* aId */, - const TDesC8& /* aNewValue */ ) - { - __VTPRINTENTER( "CRListener.Binary" ) - __VTPRINTEXIT( "CRListener.Binary" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::HandleNotifyGeneric -// Callback of a change in central repository. -// ----------------------------------------------------------------------------- -// -void CVtEngCRObserverItem::HandleNotifyGeneric( TUint32 /* aId */ ) - { - __VTPRINTENTER( "CRListener.Generic" ) - __VTPRINTEXIT( "CRListener.Generic" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::HandleNotifyError -// Callback of an error occurred. -// ----------------------------------------------------------------------------- -// -#ifdef VTDEBUG -void CVtEngCRObserverItem::HandleNotifyError( TUint32 aId, TInt aError, - CCenRepNotifyHandler* /* aHandler */ ) -#else -void CVtEngCRObserverItem::HandleNotifyError( - TUint32 /* aId */, TInt /* aError */, CCenRepNotifyHandler* /* aHandler */ ) -#endif // VTDEBUG - { - __VTPRINT3( DEBUG_GEN, "CRListener.error id=%d,err=%d ", aId, aError ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Uid -// Returns Uid for this observer. -// ----------------------------------------------------------------------------- -// -TUid CVtEngCRObserverItem::Uid() const - { - return iUid; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Key -// Returns Key for this observer. -// ----------------------------------------------------------------------------- -// -TUint32 CVtEngCRObserverItem::Key() const - { - return iKey; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Notifier -// Returns Notifier for this observer. -// ----------------------------------------------------------------------------- -// -CCenRepNotifyHandler* CVtEngCRObserverItem::Notifier() const - { - return iNotifier; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Type -// Returns Type for this observer. -// ----------------------------------------------------------------------------- -// -CCenRepNotifyHandler::TCenRepKeyType CVtEngCRObserverItem::Type() const - { - return iType; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRObserverItem::Observer -// Returns true observer for this observer. -// ----------------------------------------------------------------------------- -// -MVtEngCRSettingObserver* CVtEngCRObserverItem::Observer() const - { - return iObserver; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngCRProxy.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngCRProxy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,441 +0,0 @@ -/* -* Copyright (c) 2004-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: Central repository proxy. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngCRObserverItem.h" -#include "CVtEngCRProxy.h" -#include "MVtEngCRSettingObserver.h" -#include - -// CONSTANTS - -const TInt KVtEngCRProxyObsGranularity = 5; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::CVtEngCRProxy -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngCRProxy::CVtEngCRProxy() : iObserverItems( KVtEngCRProxyObsGranularity ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngCRProxy* CVtEngCRProxy::NewL( ) - { - __VTPRINTENTER( "CRProxy.NewL" ) - CVtEngCRProxy* self = new( ELeave ) CVtEngCRProxy; - __VTPRINTEXIT( "CRProxy.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::~CVtEngCRProxy -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngCRProxy::~CVtEngCRProxy() - { - __VTPRINTENTER( "CRProxy.~" ) - RemoveAllObservers(); - RemoveSessions(); - __VTPRINTEXIT( "CRProxy.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::FindItem -// Finds observer item. -// ----------------------------------------------------------------------------- -// -CVtEngCRObserverItem* CVtEngCRProxy::FindItem( - const TUid& aUid, - const TUint32 aKey, - TInt& aIndex ) const - { - TInt count( iObserverItems.Count() ); - CVtEngCRObserverItem* item = NULL; - TBool found( EFalse ); - while ( count-- && !found ) - { - item = iObserverItems[ count ]; - if ( item->Offer( aUid, aKey ) ) - { - aIndex = count; - found = ETrue; - } - } - - // Just NULL the item if not found - if ( !found ) - { - item = NULL; - } - return item; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::FindItem -// Finds observer item. -// ----------------------------------------------------------------------------- -// -CVtEngCRObserverItem* CVtEngCRProxy::FindItem( - const TUint32 aKey, TInt& aIndex ) const - { - TInt count( iObserverItems.Count() ); - CVtEngCRObserverItem* item = NULL; - if ( aIndex < 0 ) - { - return NULL; - } - - for ( ; aIndex < count; aIndex++ ) - { - item = iObserverItems[ aIndex ]; - if ( item->Offer( aKey ) ) - { - break; - } - } - return item; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::RemoveInterested -// Removes a cent rep listener. -// ----------------------------------------------------------------------------- -// -void CVtEngCRProxy::RemoveInterested( CVtEngCRObserverItem& aObserver ) - { - __VTPRINTENTER( "CRProxy.RemoveInterested" ) - TInt index ( 0 ); - CVtEngCRObserverItem* item = FindItem( aObserver.Uid(), - aObserver.Key(), index ); - if ( !item ) - { - // Should not be possible. - __VTPRINTEXITR( "CRProxy.RemoveInterested %d", 0 ) - return; - } - - delete item; - iObserverItems.Remove( index ); - __VTPRINTEXITR( "CRProxy.RemoveInterested %d", 1 ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::NewCRSessionL -// New Central repository-uid pairing. -// ----------------------------------------------------------------------------- -// -CVtEngCRProxy::CCRSession* CVtEngCRProxy::NewCRSessionL( TUid aUid ) - { - __VTPRINTENTER( "CRProxy.NewCRSessionL" ) - CRepository* crSession = CRepository::NewL( aUid ); - CleanupStack::PushL( crSession ); - CCRSession* csSession = new ( ELeave ) CCRSession; - csSession->iSession = crSession; - csSession->iUid = aUid; - CleanupStack::Pop( crSession ); - __VTPRINTEXIT( "CRProxy.NewCRSessionL" ) - return csSession; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::RegisterInterested -// New Central repository listener. -// ----------------------------------------------------------------------------- -// -void CVtEngCRProxy::RegisterInterestedL( CVtEngCRObserverItem* aObserver ) - { - __VTPRINTENTER( "CRProxy.RegisterInterestedL" ) - CRepository* crSession = MapUidToCR( aObserver->Uid() ); - CCRSession* csSession = NULL; - if( !crSession ) - { - csSession = NewCRSessionL( aObserver->Uid() ); - CleanupStack::PushL( csSession ); - crSession = csSession->iSession; - iCRSessions.AppendL( csSession ); - CleanupStack::Pop( csSession ); - } - - CCenRepNotifyHandler* notifier = - CCenRepNotifyHandler::NewL( *aObserver, *crSession, - aObserver->Type(), aObserver->Key() ); - //notifier ownership transfered - aObserver->SetCenRepNotifier( notifier ); - notifier->StartListeningL(); - iObserverItems.AppendL ( aObserver ); - __VTPRINTEXIT( "CRProxy.RegisterInterestedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::MapUidToCR -// Maps a given UID to a Central repository session. -// ----------------------------------------------------------------------------- -// -CRepository* CVtEngCRProxy::MapUidToCR( const TUid aUid ) - { - __VTPRINTENTER( "CRProxy.Map" ) - CCRSession* csSession = NULL; - TBool found( EFalse ); - TInt count( iCRSessions.Count() ); - for ( TInt i = 0 ; i < count; i++ ) - { - csSession = iCRSessions[ i ]; - if ( csSession->iUid == aUid ) - { - i = count; // break loop - found = ETrue; - } - } - CRepository* session = NULL; - // Only return something when found. - if ( found ) - { - session = csSession->iSession; - } - __VTPRINTEXITR( "CRProxy.Map %d", (TInt) session ) - return session; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::RemoveAllObservers -// All observers off they go. -// ----------------------------------------------------------------------------- -// -void CVtEngCRProxy::RemoveAllObservers() - { - __VTPRINTENTER( "CRProxy.RemoveAll" ) - iObserverItems.ResetAndDestroy(); - iObserverItems.Close(); - __VTPRINTEXIT( "CRProxy.RemoveAll" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::RemoveSessions -// Removes all Central repository sessions. -// ----------------------------------------------------------------------------- -// -void CVtEngCRProxy::RemoveSessions() - { - __VTPRINTENTER( "CRProxy.RemoveAllS" ) - iCRSessions.ResetAndDestroy(); - iCRSessions.Close(); - __VTPRINTEXIT( "CRProxy.RemoveAllS" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::GetSession -// Gets an existing or a new Central repository session for a UID. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::GetSessionL( const TUid aUid, CRepository*& crSession ) - { - TInt err( KErrNone ); - crSession = MapUidToCR( aUid ); - if ( !crSession ) - { - CCRSession* session = NULL; - session = NewCRSessionL( aUid ); - if ( session ) - { - CleanupStack::PushL( session ); - iCRSessions.AppendL( session ); - CleanupStack::Pop( session ); - crSession = session->iSession; - } - else - { - err = KErrNotFound; - } - } - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Get -// Gets integer value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Get( const TUid aUid, const TUint32 aId, TInt& aVal ) - { - __VTPRINTENTER( "CRProxy.GetInt" ) - __VTPRINT3( DEBUG_GEN, "UID=%d,key=%d", aUid.iUid, (TInt) aId ); - - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Get( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.GetInt %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Get -// Gets real value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Get( const TUid aUid, const TUint32 aId, TReal& aVal ) - { - __VTPRINTENTER( "CRProxy.GetReal" ) - __VTPRINT3( DEBUG_GEN, "UID=%d,key=%d", aUid.iUid, (TInt) aId ); - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Get( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.GetR %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Get -// Gets binary value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Get( const TUid aUid, const TUint32 aId, TDes8& aVal ) - { - __VTPRINTENTER( "CRProxy.GetD8" ) - __VTPRINT3( DEBUG_GEN, "UID=%d,key=%d", aUid.iUid, (TInt) aId ); - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Get( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.GetD8 %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Get -// Gets string value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Get( const TUid aUid, const TUint32 aId, TDes16& aVal ) - { - __VTPRINTENTER( "CRProxy.GetD16" ) - __VTPRINT3( DEBUG_GEN, "UID=%d,key=%d", aUid.iUid, (TInt) aId ); - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Get( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.GetD16 %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Set -// Sets integer value to Central Repository. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Set( const TUid aUid, const TUint32 aId, TInt aVal ) - { - __VTPRINTENTER( "CRProxy.SetInt" ) - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Set( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.SetInt %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Set -// Sets real value to Central Repository. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Set( const TUid aUid, const TUint32 aId, const TReal& aVal ) - { - __VTPRINTENTER( "CRProxy.SetR" ) - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Set( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.SetR %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Set -// Sets binary value to Central Repository. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Set( const TUid aUid, const TUint32 aId, const TDesC8& aVal ) - { - __VTPRINTENTER( "CRProxy.SetD8" ) - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Set( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.SetD8 %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::Set -// Sets string value to Central Repository. -// ----------------------------------------------------------------------------- -// -TInt CVtEngCRProxy::Set( - const TUid aUid, const TUint32 aId, const TDesC16& aVal ) - { - __VTPRINTENTER( "CRProxy.SetD16" ) - CRepository* crSession = NULL; - TRAPD( err, GetSessionL( aUid, crSession ) ); - if ( err == KErrNone ) - { - err = crSession->Set( aId, aVal ); - } - __VTPRINTEXITR( "CRProxy.SetD16 %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCRProxy::CCRSession::~CCRSession -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngCRProxy::CCRSession::~CCRSession() - { - __VTPRINTENTER( "CRProxy.~" ) - delete iSession; - __VTPRINTEXIT( "CRProxy.~" ) - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngDeviceLockMonitor.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngDeviceLockMonitor.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* 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: Monitors device lock state -* -*/ - - - -// INCLUDE FILES -#include "CVtEngDeviceLockMonitor.h" -#include "CVTEngPubSubsListener.h" -#include "CVtEngEventManager.h" -#include "cvtlogger.h" - -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngDeviceLockMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngDeviceLockMonitor* CVtEngDeviceLockMonitor::NewL() - { - CVtEngDeviceLockMonitor* self = new ( ELeave ) CVtEngDeviceLockMonitor(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// Destructor -CVtEngDeviceLockMonitor::~CVtEngDeviceLockMonitor() - { - delete iAutolockListener; - } - -// ----------------------------------------------------------------------------- -// CVtEngDeviceLockMonitor::NotifyState -// Notifies UI about device lock state -// ----------------------------------------------------------------------------- -// -void CVtEngDeviceLockMonitor::NotifyState() const - { - __VTPRINTENTER( "LockMonitor.NotifyState" ) - - TInt state = EAutolockStatusUninitialized; - - // Get autolock state - TInt err = iAutolockListener->Get( state ); - - __VTPRINT2( DEBUG_GEN, "LockMonitor Get err: %d", err ); - __VTPRINT2( DEBUG_GEN, "LockMonitor state: %d", state ); - - if( err == KErrNone ) - { - const TInt event = - ( state <= EAutolockOff ) ? - KVtEngDeviceLockOff : KVtEngDeviceLockOn; - CVtEngEventManager::NotifyEvent( event ); - } - - __VTPRINTEXIT( "LockMonitor.NotifyState" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDeviceLockMonitor::HandleNotifyPSL -// Callback for autolock state change -// ----------------------------------------------------------------------------- -// -void CVtEngDeviceLockMonitor::HandleNotifyPSL( - const TUid aUid, - const TInt& aKey, - const TRequestStatus& aStatus ) - { - if ( aStatus == KErrNone && - aUid == KPSUidCoreApplicationUIs && - aKey == KCoreAppUIsAutolockStatus ) - { - NotifyState(); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngDeviceLockMonitor::CVtEngDeviceLockMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngDeviceLockMonitor::CVtEngDeviceLockMonitor() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDeviceLockMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngDeviceLockMonitor::ConstructL() - { - __VTPRINTENTER( "LockMonitor.ConstructL" ) - // Listener for autolock state - iAutolockListener = CVtEngPubSubsListener::NewL( - KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, this ); - __VTPRINTEXIT( "LockMonitor.ConstructL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngEventManager.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngEventManager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,271 +0,0 @@ -/* -* 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: Event manager implementation. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngEventManager.h" -#include "MVtEngEventObserver.h" -#include "VtEngUtils.h" -#include "VtEngEvents.h" -#include "VtEngPanic.h" -#include - -// CONSTANTS -const TInt KMaxEventsInQueue = 8; - -// max amount of simultanous event observers -const TInt KMaxVtEventObservers = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::CVtEngEventManager -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngEventManager::CVtEngEventManager() : CActive( CActive::EPriorityHigh ), - iObservers( KMaxVtEventObservers ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngEventManager* CVtEngEventManager::NewL( - MVtEngEventObserver& aEventObserver ) - { - CVtEngEventManager* self = - new ( ELeave ) CVtEngEventManager(); - CleanupStack::PushL( self ); - self->ConstructL( aEventObserver ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::ConstructL -// 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::ConstructL( MVtEngEventObserver& aEventObserver ) - { - iEventQueue = new ( ELeave ) CArrayFixFlat< TInt >( KMaxEventsInQueue ); - iEventQueue->SetReserveL( KMaxEventsInQueue ); - iObservers.Append( &aEventObserver ); - } - -// Destructor -CVtEngEventManager::~CVtEngEventManager() - { - Cancel(); - delete iEventQueue; - iObservers.Close(); - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::SessionStateChangedL -// Notifies session state change to UI. -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::SessionStateChanged() - { - __VTPRINTENTER( "EventManager.SessionStateChanged" ) - NotifyEvent( KVtEngSessionStateChanged ); - __VTPRINTEXIT( "EventManager.SessionStateChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::NotifyEvent -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::NotifyEvent( const TInt aEvent ) - { - __VTPRINTENTER( "EventManager.NotifyEvent" ) - __VTPRINT2( DEBUG_GEN, "EventManager.NotifyEvent event=%d", aEvent ); - CVtEngEventManager& eventManager = - CVtEngUtility::EventManager(); - if ( !eventManager.QueueAsyncEvent( aEvent ) ) - { - eventManager.DoNotifyEvent( aEvent ); - } - __VTPRINTEXIT( "EventManager.NotifyEvent" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::AddObserverL -// -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::AddObserverL( MVtEngEventObserver* aObserver ) - { - TInt count( iObservers.Count() ); - TBool duplicate = EFalse; - while ( count-- ) - { - if ( aObserver == iObservers[ count ] ) - { - count = 0; // break loop - duplicate = ETrue; - } - } - if ( !duplicate ) - { - User::LeaveIfError( iObservers.Append( aObserver ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::RemoveObserver -// -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::RemoveObserver( const MVtEngEventObserver* aObserver ) - { - TInt count( iObservers.Count() ); - while ( count-- ) - { - if ( aObserver == iObservers[ count ] ) - { - iObservers.Remove( count ); - count = 0; // break loop - } - } - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::RunL -// Notify event -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::RunL() - { - __VTPRINTENTER( "EventManager.RunL" ) - __VTPRINT2( DEBUG_GEN, "EventManager.RunL count=%d", iEventQueue->Count() ); - // get oldest event in queue (event at index 0) - const TInt event = iEventQueue->At( 0 ) ; - - // delete event before calling DoNotifyEvent(), because DoNotifyEvent() may - // hang if it causes ASynchronous call in handler - iEventQueue->Delete( 0 ); - - // if more events pending -> signal again - if( iEventQueue->Count() > 0 ) - { - Signal(); - } - - // and finally notify event - DoNotifyEvent( event ); - __VTPRINTEXIT( "EventManager.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::DoCancel -// No op -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::DoCancel() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::DoNotifyEvent -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::DoNotifyEvent( const TInt aEvent ) - { - __VTPRINTENTER( "EventManager.DoNotifyEvent" ) - __VTPRINT2( DEBUG_GEN, "EventManager.DoNotifyEvent event=%d", aEvent ); - TRAP_IGNORE( { - TInt count( iObservers.Count() ); - while ( count-- ) - { - iObservers[count]->HandleVtEventL( aEvent ) ; - } - } ) - __VTPRINTEXIT( "EventManager.DoNotifyEvent" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::QueueAsyncEvent -// ----------------------------------------------------------------------------- -// -TBool CVtEngEventManager::QueueAsyncEvent( const TInt aEvent ) - { - __VTPRINTENTER( "EventManager.QueueAsyncEvent" ) - __VTPRINT2( DEBUG_GEN, "EventManager.QueueAsyncEvent event=%d", aEvent ); - TBool async( EFalse ); - switch ( aEvent ) - { - case KVtEngSessionStateChanged: - case KVtEngNegotiationProblem: - case KVtEngShareImageInitializeBegin: - case KVtEngShareImageInitializeEnd: - async = ETrue; - QueueAndSignal( aEvent ); - break; - default: - break; - } - __VTPRINTEXIT( "EventManager.QueueAsyncEvent" ) - return async; - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::QueueAndSignal -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::QueueAndSignal( const TInt aEvent ) - { - __VTPRINTENTER( "EventManager.QueueAndSignal" ) - __VTPRINT2( DEBUG_GEN, "EventManager.QueueAndSignal event=%d", aEvent ); - if( iEventQueue->Count() < KMaxEventsInQueue ) - { - TRAP_IGNORE( iEventQueue->AppendL( aEvent ) ); // can't leave - Signal(); - } - else - { - Panic( EVtEngPanicInvalidTooManyPendingEvents ); - } - __VTPRINTEXIT( "EventManager.QueueAndSignal" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngEventManager::Signal -// ----------------------------------------------------------------------------- -// -void CVtEngEventManager::Signal() - { - __VTPRINTENTER( "EventManager.Signal" ) - if( !IsActive() ) - { - SetActive(); - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - __VTPRINT2( DEBUG_GEN, "EventManager.QueueAndSignal count=%d", iEventQueue->Count() ); - } - __VTPRINTEXIT( "EventManager.Signal" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngHandlerContainer.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngHandlerContainer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* 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: Container for functional handlers in the engine. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngHandlerContainer.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::Uninitialize -// Uninitialises handlers. -// ----------------------------------------------------------------------------- -// -void CVtEngHandlerContainer::Uninitialize() - { - iSession->Uninitialize(); - } - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::CVtEngHandlerContainer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngHandlerContainer::CVtEngHandlerContainer() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngHandlerContainer::ConstructL( ) - { - iMedia = CVtEngMediaHandler::NewL( ); - iSession = CVtEngSessionHandler::NewL( ); - iAudio = CVtEngAudioHandler::NewL( ); - - } - -void CVtEngHandlerContainer::CreateDtmfHandlerL( - MVtH324ConfigCommand* aH324Config ) - { - __VTPRINTENTER( "HlrCnr.CreateDtmfHandlerL" ) - iDtmf = CVtEngDtmfHandler::NewL( *aH324Config ); - __VTPRINTEXIT( "HlrCnr.CreateDtmfHandlerL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngHandlerContainer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngHandlerContainer* CVtEngHandlerContainer::NewL( ) - { - __VTPRINTENTER( "HlrCnr.NewL" ) - - CVtEngHandlerContainer* self = new( ELeave ) CVtEngHandlerContainer; - - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - __VTPRINTEXIT( "HlrCnr.NewL" ) - return self; - } - - -// Destructor -CVtEngHandlerContainer::~CVtEngHandlerContainer() - { - __VTPRINTENTER( "HlrCnr.~" ) - - delete iMedia; - delete iSession; - delete iAudio; - delete iDtmf; - - __VTPRINTEXIT( "HlrCnr.~" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngInitializer.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngInitializer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,687 +0,0 @@ -/* -* Copyright (c) 2004 - 2008 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: Implementation class for initializing the engine gradually. -* Active object initializes one "subsystem" on each -* round. In case of failure timer is started and -* retrial is done after time-out. Uninitialization -* is done is one shot. - - - - -* -*/ - - -// INCLUDE FILES -#include "CVtEngInitializer.h" -#include "CVtEngStateManager.h" -#include "CVtEngEventManager.h" -#include "VtEngUtils.h" -#include "CVtEngHandlerContainer.h" -#include "CVtEngOperation.h" -#include "VtEngPanic.h" -#include "VtEngConstants.h" -#include "VtEngDefs.hrh" -#include -#include -#include -#include -#include "VtEngUtils.h" -#include "CVtEngSettings.h" - -// CONSTANTS -const TInt KVtEngInitializerPriority = CActive::EPriorityStandard; -const TInt KVtEngInitializerRetrials = 3; -const TInt KVtEngInitializerRetrialTimeout = 500000; // 0.5 seconds -const TInt KVtEngInitializerTimerPriority = CActive::EPriorityUserInput; - -_LIT( KVtEngCommDiagPortName, "PVDIAGPORT" ); -_LIT( KVtEngCommTestPortName, "COMM::0" ); - -// ============================ MEMBER FUNCTIONS =============================== - -CVtEngInitializer* CVtEngInitializer::NewL( CVtEngHandlerContainer& aHandlers ) - { - __VTPRINTENTER( "Intlzr.NewL" ) - CVtEngInitializer* self = new ( ELeave ) CVtEngInitializer( aHandlers ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "Intlzr.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::CVtEngInitializer -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngInitializer::CVtEngInitializer( - CVtEngHandlerContainer& aHandlers ) : - CActive( KVtEngInitializerPriority ), - iHandlers( aHandlers ), - iStep( EInitNone ), - iDataportHandled( 0 ), - iOwnershipInMH( EFalse ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::ConstructL -// Second phase constructor. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::ConstructL() - { - iTimer = CPeriodic::NewL( KVtEngInitializerTimerPriority ); - - } - -// Destructor -CVtEngInitializer::~CVtEngInitializer() - { - __VTPRINTENTER( "Intlzr.~" ) - delete iTimer; - Cancel(); - - if ( iSessionCommand && !iOwnershipInMH ) - { - VTProtocolFactory::DeleteSessionCommand( iSessionCommand ); - iSessionCommand = NULL; - } - __VTPRINTEXIT( "Intlzr.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::InitializeL -// Start initialization process. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::InitializeL( CVtEngOperation& aCallback ) - { - __VTPRINTENTER( "Intlzr.InitializeL" ) - __VTPRINT( DEBUG_GEN, "Intlzr.Init") - __ASSERT_ALWAYS( iStep != EInitComplete, - Panic( EVtEngPanicInvalidInitializationEntry ) ); - iCallback = &aCallback; - if ( iStep == EInitComplete ) - { - __VTPRINTEXIT( "Intlzr.InitializeL" ) - return; - } - ContinueOrRetry( EContinue ); - __VTPRINTEXIT( "Intlzr.InitializeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::CancelInit -// Cancels already started ini. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngInitializer::CancelInit() - { - __VTPRINTENTER( "Intlzr.CancelInit" ) - TBool cancelSignalled = EFalse; - __VTPRINT2( DEBUG_GEN, "Intlzr.CancelInit %d", iStep ) - if ( IsActive() ) - { - switch ( iStep ) - { - case EInitMedia: // media->InitializeL pending - case EInitProto: // media->InitializeProviderL pending - { - if ( ! ( iDataportHandled & EDataportReceived ) ) - { - __VTPRINT( DEBUG_GEN, "Intlzr.CancelInit complete" ) - if ( iStatus == KRequestPending ) - { - // Actual protocol init is not done yet. - TRequestStatus* status = &iStatus; - __VTPRINT( DEBUG_GEN, "Intlzr.CancelInit complete1" ) - User::RequestComplete( status, KErrNone ); - __VTPRINT( DEBUG_GEN, "Intlzr.CancelInit complete2" ) - } - iDataportHandled |= EDataportReceived; - __VTPRINT( DEBUG_GEN, "Intlzr.CancelInit complete" ) - } - __VTPRINT( DEBUG_GEN, "Intlzr.CancelInit MH cancel" ) - CVtEngMediaHandler* media = - static_cast( &iHandlers.Media() ); - media->CancelInitialize(); - iStep = EResetMediaPhase2; - } - break; - case EResetMedia: - break; - default: - cancelSignalled = ETrue; - Cancel(); - } - } - __VTPRINTEXITR( "Intlzr.CancelInit %d", cancelSignalled ) - return cancelSignalled; - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::Uninitialize -// Start un-initialization process. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::Uninitialize( CVtEngOperation& aCallback ) - { - __VTPRINTENTER( "Intlzr.Uninitialize" ) - iCallback = &aCallback; - ContinueOrRetry( EReset ); - __VTPRINTEXIT( "Intlzr.Uninitialize" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::GetSessionCommand -// Transfer ownership of Protocol and continue initialization. -// -// ----------------------------------------------------------------------------- -// -MVtSessionCommand* CVtEngInitializer::GetSessionCommand() - { - __VTPRINTENTER( "Intlzr.GetSessionCommand" ) - __VTPRINT2( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.GetSessionCommand iSessionCommand: $%x", reinterpret_cast< TUint >( iSessionCommand ) ) - MVtSessionCommand* sessionCommand = iSessionCommand; - - // Set ownership to media handler since media handler is requesting so. - iOwnershipInMH = ETrue; - if( iStep >= EInitDataportCompleted ) - { - // Ownership can be totally given to MH after dataport is loaned. - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.GetSessionCommand iSessionCommand ownership to MH GetSessionCommand") - - iSessionCommand = NULL; - iStep = EInitComplete; - ContinueOrRetry( EContinue ); - } - if ( iStep != EResetMedia ) - { - __VTPRINT( DEBUG_GEN, "Intlzr.GetSessionCommand=>ContinueOrRetry( EContinue )") - ContinueOrRetry( EContinue ); - } - else - { - // Reset requested. ContinueOrRetry with EReset was called - // while protocol Init was ongoing. Now continue - __VTPRINT( DEBUG_GEN, "Intlzr.GetSessionCommand=>ContinueOrRetry( EReset )") - ContinueOrRetry( EReset ); - } - __VTPRINTEXIT( "Intlzr.GetSessionCommand" ) - return sessionCommand; - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::Initialized -// Returns if engine is initialized. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngInitializer::Initialized() const - { - return ( iStep == EInitComplete ); - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::RunL -// Perform initialization step -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::RunL() - { - __VTPRINTENTER( "Intlzr.RunL" ) - __VTPRINT3( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run step=%d err=%d", - iStep, iStatus.Int() ) - if ( iStatus != KErrNone ) - { - Notify( iStatus.Int() ); - __VTPRINTEXIT( "Intlzr.RunL" ) - return; - } - CVtEngMediaHandler* media = - static_cast( &iHandlers.Media() ); - - switch ( iStep ) - { - case EInitNone: - return; - case EInitMedia: - // Initialize video source - iStatus = KRequestPending; - media->InitializeL( iStatus ); - SetActive(); - iStep++; // EInitProto - __VTPRINTEXIT( "Intlzr.RunL" ) - return; - case EInitProto: - // Initialize Protocol => create terminal only once. - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run create Protocol") - if ( !iSessionCommand ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run DOCREATE Protocol" ) - TVt3G324MSupported protocolSupported; - iSessionCommand = VTProtocolFactory::CreateSessionCommandL( - media, ETrue, protocolSupported ); - - if (protocolSupported == EVt3G324MMissing) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run init 3G324M stack is missing") - Notify(KErrNotReady); - return; - } - - // Initialize Protocol immediately after it is created. - if( iSessionCommand ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run InitL protocol") - iSessionCommand->InitProtocolL( media->SdkInitInfo() ); - } - } - if ( iSessionCommand ) - { - const TDesC* dataportName = NULL; - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run init protocol") - if(iCallback->Command() == KVtEngInitializeEngineTest ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.Run init with COMM::0") - CVtEngUtility::Settings().SetConnectReady(); - iComms = VTProtocolFactory::CreateCommServerL( - KVtEngCommTestPortName ); - } - else if( iCallback->Command() == KVtEngInitializeEngineDiag ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.Run init with PVDIAGPORT") - CVtEngUtility::Settings().SetConnectReady(); - iComms = VTProtocolFactory::CreateCommServerL( - KVtEngCommDiagPortName ); - } - else - { // [MediatorChange]: - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.Run init with DATAPORT" ) - dataportName = - CVtEngUtility::Settings().DataportInfo(); - if ( !dataportName ) - { - // not available yet, start waiting, - // HandleSettingChangedL is called when dataport - // becomes available - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.Run DATAPORT is not ready yet" ) - - CVtEngUtility::Settings().NotifyChangeL( - CVtEngSettings::EDataportInfo, *this ); - iStatus = KRequestPending; - SetActive(); - __VTPRINTEXIT( "Intlzr.RunL" ) - return; - } - else - { - //RDebug::Print( _L("DataportName is:%S"), dataportName ); - TBool bitReversed( BitReversalUsed() ); - - iComms = VTProtocolFactory::CreateCommServerL( - *dataportName, bitReversed ); - // not interested of DP info any more - CVtEngUtility::Settings().CancelNotifyChange( - CVtEngSettings::EDataportInfo, *this ); - } - } - - // Initialization is now completed - iStep = EInitDataportCompleted; - - // Dataport is now loaned - CVtEngUtility::Settings().SetDataportLoaned( ETrue ); - - // Update states since dataport is now loaned - CVtEngStateManager* states = CVtEngUtility::StateManager(); - states->Update(); - - // No need for ownership anymore, media handler owns the pointer and is - // responsible of deletion. - if( iOwnershipInMH ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.Run iSessionCommand ownership to MH") - iSessionCommand = NULL; - iStep = EInitComplete; - ContinueOrRetry( EContinue ); - } - - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.Run init protocol port operation completed") - // Media handler calls GetSessionCommand when InitL - // is complete and initialization continues. - __VTPRINTEXIT( "Intlzr.RunL" ) - return; - } - break; - case EInitSession: - { - CVtEngSessionHandler* session = - static_cast( &iHandlers.Session() ); - session->InitializeL(); - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.RunL StartMediatorListenerL" ) - CVtEngUtility::EngineUtils()->StartMediatorListenerL(); - } - break; - case EResetMedia: - iHandlers.Uninitialize(); - iStatus = KRequestPending; - media->Uninitialize( iStatus ); - SetActive(); - iStep++; // EResetMediaPhase2 - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.RunL step reset media started" ) - __VTPRINTEXIT( "Intlzr.RunL" ) - return; - case EResetMediaPhase2: - if ( iComms ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.RunL VTENgine deletes COMM server" ) - CVtEngMediaHandler* media = - static_cast( &iHandlers.Media() ); - if ( media->ProtoInitialized() ) - { - TRAPD( err, VTProtocolFactory::DeleteCommServerL( iComms ) ); - __VTPRINT2( DEBUG_GEN | DEBUG_DETAIL, - "Intlzr.RunL VTENgine deletes COMM server err=%d", err ) - __ASSERT_ALWAYS( err == KErrNone, - Panic( EVtEngPanicCommsDestructOnInvalidState ) ); - iComms = NULL; - } - else if ( !media->ProtoInitialized() && iSessionCommand ) - { - __VTPRINTEXIT( "Intlzr.RunL" ) - return; - } - } - break; - case EInitComplete: - break; - default: - Panic( EVtEngPanicInvalidInitializationState ); - break; - } - ContinueOrRetry( EContinue ); - __VTPRINTEXIT( "Intlzr.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::DoCancel -// Cancels initialization -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::DoCancel() - { - __VTPRINTENTER( "Intlzr.DoCancel" ) - if ( iStatus == KRequestPending ) - { - __VTPRINT2( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.DoCancel step=%d", iStep ) - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrCancel ); - } - iStep = EInitNone; - iCallback = NULL; - __VTPRINTEXIT( "Intlzr.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::RunError -// Handler error on initialization. -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngInitializer::RunError( TInt aError ) - { - __VTPRINTENTER( "Intlzr.RunError" ) - __VTPRINT2( DEBUG_GEN, "Intlzr.RunError %d", aError ) - if ( iRetrials ) - { - __VTPRINT2( DEBUG_GEN | DEBUG_DETAIL, "Intlzr.retrials %d", iRetrials ) - TCallBack callback( CVtEngInitializer::HandleTimer, this ); - iTimer->Start( - KVtEngInitializerRetrialTimeout, - KVtEngInitializerRetrialTimeout, - callback ); - } - else - { - Notify( aError ); - } - __VTPRINTEXIT( "Intlzr.RunError" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::HandleTimer -// Handler for retrial timer. -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngInitializer::HandleTimer( TAny* aAny ) - { - CVtEngInitializer* handler = - reinterpret_cast( aAny ); - handler->DoHandleTimer(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::DoHandleTimer -// Handler for retrial timer. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::DoHandleTimer() - { - iTimer->Cancel(); - ContinueOrRetry( ERetry ); - } - -TBool CVtEngInitializer::ActivateAndSignal( TInt aSignalValue ) - { - __VTPRINTENTER( "Intlzr.ActivateAndSignal" ) - TRequestStatus* status = &iStatus; - TBool signaled = EFalse; - if ( iStatus.Int() != KRequestPending && !IsActive() ) - { - iStatus = KRequestPending; - SetActive(); - User::RequestComplete( status, aSignalValue ); - signaled = ETrue; - } - __VTPRINTEXITR( "Intlzr.ActivateAndSignal signaled=%d", signaled ) - return signaled; - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::CreateDtmfHandlerL -// Creates handler for DTMF sending. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::CreateDtmfHandlerL( MVtH324ConfigCommand* aH324Config ) - { - iHandlers.CreateDtmfHandlerL( aH324Config ); - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::ContinueOrRetry -// Proceed to next step, retry on failure or notify observer. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::ContinueOrRetry( const TProcess aOperation ) - { - __VTPRINTENTER( "Intlzr.ContinueOrRetry" ) - __VTPRINT2( DEBUG_GEN, "Intlzr.CoR op=%d", aOperation ) - if ( aOperation == EContinue ) - { - const TBool resetComplete( iStep == EResetMediaPhase2 ); - // check if last step complete and notify observer - if ( iStep == EInitComplete || resetComplete ) - { - if ( resetComplete && - // resetComplete is true also when clearing state is entered - // while waiting for dataport. In that case Final Uninit must - // not be done because MediaHandler's state is not ready for - // it => need to wait for KVtEngResetEngine from UI - iCallback->Command() == KVtEngResetEngine ) - { - CVtEngMediaHandler* media = - static_cast( &iHandlers.Media() ); - media->FinalizeUninitialization(); - iStep = EInitNone; - } - Notify( KErrNone ); - __VTPRINT2( DEBUG_GEN, "Intlzr.CoR op=EContinue, branch=%d", 1 ) - return; - } - else if( iStep == EInitProto ) - { - __VTPRINT2( DEBUG_GEN, "Intlzr.CoR op=EContinue, branch=%d", 2 ) - return; - } - __VTPRINT2( DEBUG_GEN, "Intlzr.CoR op=EContinue, branch=%d", 3 ) - iStep++; - iRetrials = KVtEngInitializerRetrials; - } - else if ( aOperation == EReset ) - { - __VTPRINT( DEBUG_GEN, "Intlzr.CoR op=EReset") - iRetrials = KVtEngInitializerRetrials; - const TInt step( iStep ); - if ( step != EInitComplete && IsActive() ) - { - // Reset requested while init ongoing but - // Protocol InitL not yet issued - if ( CancelInit() == EFalse ) - { // AO still active, must return here because end of this method - __VTPRINT( DEBUG_GEN, " Initializer CoR 2") - __VTPRINTEXIT( "Intlzr.ContinueOrRetry" ) - return; - } - } - iStep = EResetMedia; - if ( ( step == EInitProto || - step == EInitSession ) && !IsActive() ) - { - // Protocol InitL is pending. Wait until it completes. - // GetSessionCommand is called and there we this is - // again called. - __VTPRINT( DEBUG_GEN, " Initializer reset while InitL") - __VTPRINTEXIT( "Intlzr.ContinueOrRetry" ) - return; - } - } - else - { - iRetrials--; - } - ActivateAndSignal( KErrNone ); - __VTPRINTEXIT( "Intlzr.ContinueOrRetry" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::Notify -// Notifies observer on completion or error. -// -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::Notify( const TInt aResult ) - { - __VTPRINTENTER( "Intlzr.Notify" ) - if ( iStep == EInitComplete ) - { - CVtEngStateManager* states = CVtEngUtility::StateManager(); - states->Update(); - } - - if ( iCallback ) - { - if ( aResult != KErrCancel ) - { // UI is not interested on cancel completion - iCallback->HandleOpComplete( aResult ); - } - iCallback = NULL; - __VTPRINT2( DEBUG_GEN, "Intlzr.Notify res=%d", aResult ) - } - __VTPRINTEXIT( "Intlzr.Notify" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::BitReversalUsed -// Checks if bit reversal should be used from locally variated information. -// ----------------------------------------------------------------------------- -// -TBool CVtEngInitializer::BitReversalUsed() - { - __VTPRINT( DEBUG_GEN, "Intlzr.BitReversalUsed" ) - return CVtEngUtility::Settings().CheckBits( - KVTLVFlagEnableBitReversal ); - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::HandleSettingChangedL -// Notification of received dataport name. -// ----------------------------------------------------------------------------- -// -void CVtEngInitializer::HandleSettingChangedL( - CVtEngSettings::TSettingId aId, - const TDesC& /*aValue*/ ) - { - __VTPRINTENTER( "Intlzr.HandleSettingChangedL" ) - if ( !( iDataportHandled & EDataportReceived ) && - aId == CVtEngSettings::EDataportInfo && - iStatus == KRequestPending ) - - { - iDataportHandled |= EDataportReceived; - //dataport will be fetched in runl, otherwise, cancelinit can not work - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - } - __VTPRINTEXIT( "Intlzr.HandleSettingChangedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::GetVtComms -// Return pointer to communication port. -// ----------------------------------------------------------------------------- -// -MCommServer* CVtEngInitializer::GetVtComms() - { - return iComms; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngModel.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngModel.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/* -* 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: Video telephony engine class implementation. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngModel.h" -#include "CVtEngHandlerContainer.h" -#include "CVtEngCommandHandler.h" -#include "CVtEngEventManager.h" -#include "CVtEngStateManager.h" -#include "VtEngUtils.h" -#include "VtEngPanic.h" -#include -#include "CVtEngExtensions.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngModel::CVtEngModel -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngModel::CVtEngModel() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngModel::ConstructL( - MVtEngEventObserver& aEventObserver, - MVtEngCommandObserver& aCommandObserver ) - { - VTLOGINIT - __VTPRINTENTER( "Model.ConstructL" ) - - __VTPRINT( DEBUG_GEN | DEBUG_CONSTRUCT, "Model.ConL" ) - iUtils = CVtEngUtility::NewL( ); - iHandlers = CVtEngHandlerContainer::NewL( ); - - // Create extensions - iExtensions = CVtEngExtensions::NewL(); - - iUtils->PrepareL( - *iHandlers, - iStateManager, - iEventManager, - iExtensions ); - iCommandHandler = CVtEngCommandHandler::NewL( *iHandlers ); - iCommandHandler->AddObserverL( aCommandObserver ); - iEventManager = CVtEngEventManager::NewL( aEventObserver ); - iStateManager = CVtEngStateManager::NewL( *iHandlers, *iEventManager ); - __VTPRINTEXIT( "Model.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CVtEngModel* CVtEngModel::NewL( - MVtEngEventObserver& aEventObserver, - MVtEngCommandObserver& aCommandObserver) - { - CVtEngModel* self = new( ELeave ) CVtEngModel; - - CleanupStack::PushL( self ); - self->ConstructL( aEventObserver, aCommandObserver ); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CVtEngModel::~CVtEngModel() - { - __VTPRINTENTER( "Model.~" ) - delete iStateManager; - delete iCommandHandler; - delete iHandlers; - delete iUtils; - delete iEventManager; - delete iExtensions; - __VTPRINTEXIT( "Model.~" ) - VTLOGUNINIT - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::CommandHandler -// Returns command handler reference. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtEngCommandHandler& CVtEngModel::CommandHandler() const - { - return *iCommandHandler; - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::Session -// Returns session reference. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtEngSessionInfo& CVtEngModel::Session() const - { - return iHandlers->Session(); - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::Media -// Returns media reference. -// -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtEngMedia& CVtEngModel::Media() const - { - return iHandlers->Media(); - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::Audio -// Returns audio reference. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtEngAudio& CVtEngModel::Audio() const - { - return iHandlers->Audio(); - } - -// ----------------------------------------------------------------------------- -// CVtEngModel::Extension -// Returns extension pointer (currently none) -// ----------------------------------------------------------------------------- -// -EXPORT_C TAny* CVtEngModel::Extension( const TUid& aExtensionUid ) - { - __VTPRINTENTER( "Model.Extension" ) - - // init local variables - TInt error = KErrNone; - TAny* interfacePtr = NULL; - - // get mediahandler handle - MVtEngMedia& msession = iHandlers->Media(); - CVtEngMediaHandler& handler = static_cast( msession ); - - // get API IF from extension - error = iExtensions->GetClientInterface( &interfacePtr, aExtensionUid , - handler ); - - // in case of error - if ( error != KErrNone ) - { - __VTPRINTEXITR( "Model.Extension GetClientInterface failed %d", error) - return NULL; - } - - __VTPRINTEXIT( "Model.Extension" ) - return interfacePtr; - } - -// Engine's internal panic function -void Panic( TVtEngPanic aPanic ) - { - __VTPRINT2( DEBUG_GEN, "EnginePanic %d", aPanic) - User::Panic( KVtEngPanicCategory, aPanic ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngPubSubsListener.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngPubSubsListener.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2004-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: Publish and subscribe settings listener. -* -*/ - - -// INCLUDE FILES -#include "CVTEngPubSubsListener.h" -#include "MVtEngSettingPSObserver.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::CVtEngPubSubsListener -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngPubSubsListener::CVtEngPubSubsListener( - const TUid aUid, const TInt aKey, MVtEngSettingPSObserver* aObserver ) : - CActive( CActive::EPriorityStandard ), - iUid( aUid ), iId( aKey ), iCallback( aObserver ) - { - __VTPRINT( DEBUG_CONSTRUCT, "CVtEngPubSubsListener C++" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::~CVtEngPubSubsListener -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngPubSubsListener::~CVtEngPubSubsListener() - { - __VTPRINTENTER( "PSLis.~" ) - Cancel(); - iProperty.Close(); - __VTPRINTEXIT( "PSLis.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::RunL -// From CActive. -// ----------------------------------------------------------------------------- -// -void CVtEngPubSubsListener::RunL() - { - __VTPRINTENTER( "PSLis.RunL" ) - const TRequestStatus status( iStatus ); - StartListening(); - iCallback->HandleNotifyPSL( iUid, iId, status ); - __VTPRINTEXIT( "PSLis.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::DoCancel -// From CActive. -// ----------------------------------------------------------------------------- -// -void CVtEngPubSubsListener::DoCancel() - { - __VTPRINTENTER( "PSLis.DoCancel" ) - iProperty.Cancel(); - __VTPRINTEXIT( "PSLis.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::RunError -// From CActive. -// ----------------------------------------------------------------------------- -// -TInt CVtEngPubSubsListener::RunError( TInt /*aError*/ ) - { - __VTPRINTENTER( "PSLis.RunError" ) - __VTPRINTEXIT( "PSLis.RunError" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::NewL -// ----------------------------------------------------------------------------- -// -CVtEngPubSubsListener* CVtEngPubSubsListener::NewL( const TUid aUid, - const TInt aKey, MVtEngSettingPSObserver* aObserver ) - { - __VTPRINTENTER( "PSLis.NewL" ) - CVtEngPubSubsListener* self = new( ELeave ) - CVtEngPubSubsListener( aUid, aKey, aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "PSLis.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::StartListening -// ----------------------------------------------------------------------------- -// -void CVtEngPubSubsListener::StartListening() - { - iProperty.Subscribe( iStatus ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtEngPubSubsListener::ConstructL() - { - CActiveScheduler::Add( this ); - - User::LeaveIfError ( iProperty.Attach( iUid, iId, EOwnerThread ) ); - StartListening(); - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::Get -// Read integer value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngPubSubsListener::Get( TInt& aVal ) - { - return iProperty.Get( iUid, iId, aVal ); - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::Get -// Read binary value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngPubSubsListener::Get( TDes8& aVal ) - { - return iProperty.Get( iUid, iId, aVal ); - } - -// ----------------------------------------------------------------------------- -// CVtEngPubSubsListener::Get -// Read string value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngPubSubsListener::Get( TDes16& aVal ) - { - return iProperty.Get( iUid, iId, aVal ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngSATClient.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngSATClient.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2005 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: SAT listener. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngStateManager.h" -#include "CVtEngSATClient.h" -#include "VtEngUtils.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngSATClient::CVtEngSATClient -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngSATClient::CVtEngSATClient() : - iSatSession(), - iSatRefresh( *this ) - { - __VTPRINT( DEBUG_GEN | DEBUG_CONSTRUCT, "CSATClient.C++" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSATClient::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngSATClient* CVtEngSATClient::NewL( ) - { - __VTPRINTENTER( "CSATClient.NewL" ) - CVtEngSATClient* self = new( ELeave ) CVtEngSATClient; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - __VTPRINTEXIT( "CSATClient.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngSATClient::~CVtEngSATClient -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngSATClient::~CVtEngSATClient() - { - __VTPRINTENTER( "CSATClient.~" ) - iSatRefresh.Close(); - iSatSession.Close(); - __VTPRINTEXIT( "CSATClient.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSATClient::ConstructL -// 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtEngSATClient::ConstructL() - { - iSatSession.ConnectL(); - iSatRefresh.OpenL( iSatSession ); - iSatRefresh.NotifyFileChangeL(); - } - -// ----------------------------------------------------------------------------- -// CVtEngSATClient::AllowRefresh -// Callback from SAT. -// ----------------------------------------------------------------------------- -// -TBool CVtEngSATClient::AllowRefresh( - TSatRefreshType aType, - const TSatRefreshFiles& /*aFiles*/ ) - { - __VTPRINTENTER( "CSATClient.AllowRefresh" ) - TBool ret( EFalse ); - const MVtEngSessionInfo::TSessionState state( - CVtEngUtility::StateManager()->SessionState() ); - if ( state == MVtEngSessionInfo::EIdle || aType == EFileChangeNotification ) - { - __VTPRINT2( DEBUG_GEN, " TSatRefreshType aType=%d", aType ) - ret = ETrue; - } - __VTPRINTEXITR( "CSATClient.AllowRefresh ret=%d", ret ) - return ret; - } - -// ----------------------------------------------------------------------------- -// CVtEngSATClient::Refresh -// Callback from SAT. -// ----------------------------------------------------------------------------- -// -void CVtEngSATClient::Refresh( - TSatRefreshType /* aType */, - const TSatRefreshFiles& /* aFiles */ ) - { - // Not needed. - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "CSATClient.Refresh" ) - iSatRefresh.RefreshEFRead( EFalse ); - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/CVtEngSettings.cpp --- a/vtengines/videoteleng/Src/Base/CVtEngSettings.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,946 +0,0 @@ -/* -* Copyright (c) 2004-2008 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: Video call setting data -* -*/ - - - -// INCLUDE FILES -#include "CVtEngSettings.h" -#include -#include "MVtEngSettingObserver.h" -#include "VtEngUtils.h" -#include "VtEngPanic.h" -#include -#include -#include -#include -#include -#include -#include - -// CONSTANTS -// Granularity for observer array. -const TInt KVtEngObserverArrayGranularity = 2; - -// Volume default level. -const TInt KVtEngVolumeDefaultLevel = 4; - -// Video quality frame rate configuration buffer size -const TInt KVtEngVQFRBufferSize = 32; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngSettings::CVtEngSettings -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngSettings::CVtEngSettings() : - iVariantReadOnlyValues( KErrNotReady ) - { - iCLI.iValid = EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::ConstructL() - { - __VTPRINTENTER( "Settings.ConstructL" ) - iSelectVolumeIdle = CIdle::NewL( CActive::EPriorityHigh ); - iObserverItems = new ( ELeave ) - CArrayFixFlat( KVtEngObserverArrayGranularity ); - - // Ear volume CR listener. - iCRProxy = &CVtEngUtility::CRProxy(); - CreateDataObserverL( this, KCRUidInCallVolume, KTelIncallEarVolume, - CCenRepNotifyHandler::EIntKey ); - - // IHF volume listener. - CreateDataObserverL( - this, KCRUidInCallVolume, KTelIncallLoudspeakerVolume, - CCenRepNotifyHandler::EIntKey ); - - // Call duration listener. - CreateDataObserverL( this, KCRUidLogs, KLogsShowCallDuration, - CCenRepNotifyHandler::EIntKey ); - - // Still image listener. - CreateDataObserverL( this, KCRUidTelephonySettings, KSettingsVTStillImage, - CCenRepNotifyHandler::EIntKey ); - - // Still image path listener. - CreateDataObserverL( - this, KCRUidTelephonySettings, KSettingsVTStillImagePath, - CCenRepNotifyHandler::EStringKey ); - - ReadVariationsL(); - ResetAll(); - - - TInt validImage( 0 ); - TInt err = iCRProxy->Get( KCRUidTelephonySettings, - KSettingsVTStillImage, validImage ); - __VTPRINT3( DEBUG_DETAIL, "Settings.ConL: use image", err, validImage ) - if ( !err && validImage ) - { - __VTPRINT( DEBUG_DETAIL, "Settings.ConL: VALID" ) - iConfig.iVideo.iImageIsValid = ETrue; - } - - TInt value( 0 ); // not shown - err = iCRProxy->Get( KCRUidLogs, KLogsShowCallDuration, value ); - if ( err == KErrNone ) - { - iConfig.iCallTimerOn = ( value == 1 ) ? ETrue : EFalse; - } - - // Initialize the volume levels. - // If value retrieval fails, use defaults. - if ( iCRProxy->Get( KCRUidInCallVolume, - KTelIncallEarVolume, iConfig.iAudio.iVolume.iHandsetVolume ) - != KErrNone ) - { - iConfig.iAudio.iVolume.iHandsetVolume = KVtEngVolumeDefaultLevel; - } - - if ( iCRProxy->Get( KCRUidInCallVolume, KTelIncallLoudspeakerVolume, - iConfig.iAudio.iVolume.iHandsfreeVolume ) != KErrNone ) - { - iConfig.iAudio.iVolume.iHandsfreeVolume = KVtEngVolumeDefaultLevel; - } - - // Open connection to phone server - RPhCltServer phoneClient; - User::LeaveIfError( phoneClient.Connect() ); - CleanupClosePushL( phoneClient ); - - CPhCltImageHandler* stillH; - stillH = CPhCltImageHandler::NewL(); - CleanupStack::PushL( stillH ); - - // Load images - RFile file; - TInt res = stillH->OpenDefaultVtImage( file ); - file.Close(); - iDefaultStillImageDefined = ( res == KErrNone ) ? ETrue : EFalse; - // Cleanup - CleanupStack::PopAndDestroy( 2 ); // phoneClient, stillH, imageParams - - __VTPRINTEXIT( "Settings.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngSettings* CVtEngSettings::NewL() - { - CVtEngSettings* self = new( ELeave ) CVtEngSettings; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::~CVtEngSettings -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngSettings::~CVtEngSettings() - { - __VTPRINTENTER( "Settings.~" ) - delete iSelectVolumeIdle; - delete iObserverItems; - delete iDataportInfo; - __VTPRINTEXIT( "Settings.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::Config -// Returns configuration. -// ----------------------------------------------------------------------------- -// -const CVtEngSettings::TVtEngVideoCallConfig& CVtEngSettings::Config() const - { - return iConfig; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetCurrentVolume -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetCurrentVolume( TBool aVolume ) - { - TBool old = iConfig.iAudio.iCurrentVolume; - iConfig.iAudio.iCurrentVolume = aVolume; - - if ( iSelectVolumeObserver && ( !old && aVolume ) || ( old && !aVolume ) ) - { - iSelectVolumeIdle->Cancel(); - iSelectVolumeIdle->Start( - TCallBack( DoInformSelectVolumeObserver, this ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::CurrentVolume -// ----------------------------------------------------------------------------- -// -TBool CVtEngSettings::CurrentVolume() const - { - return iConfig.iAudio.iCurrentVolume; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetVolume -// Sets output volue setting. -// ----------------------------------------------------------------------------- -// -TInt CVtEngSettings::SetVolume( - const TInt aHandsetVolume, - const TInt aHandsfreeVolume, - const TBool aInternal ) - { - __VTPRINTENTER( "Settings.SetVolume" ) - __VTPRINT3( DEBUG_DETAIL, "Settings:SetVolume hs=%d, ihf=%d", - aHandsetVolume, aHandsfreeVolume ) - __VTPRINT2( DEBUG_DETAIL, "Settings:Internal=%d", aInternal ) - - TInt volume ( 0 ); - - TInt res( KErrNone ); - if ( aInternal ) - { - if ( iConfig.iAudio.iVolume.iHandsfreeVolume != aHandsfreeVolume ) - { - iConfig.iAudio.iVolume.iHandsfreeVolume = - ValidVolume( aHandsfreeVolume ); - } - if ( iConfig.iAudio.iVolume.iHandsetVolume != aHandsetVolume ) - { - iConfig.iAudio.iVolume.iHandsetVolume = - ValidVolume( aHandsetVolume ); - } - } - else - { - iCRProxy->Get( KCRUidInCallVolume, - KTelIncallEarVolume, volume ); - if ( volume != aHandsetVolume ) - { - iCRProxy->Set( KCRUidInCallVolume, - KTelIncallEarVolume, aHandsetVolume ); - } - - iCRProxy->Get( KCRUidInCallVolume, - KTelIncallLoudspeakerVolume, volume ); - if ( volume != aHandsfreeVolume ) - { - iCRProxy->Set( KCRUidInCallVolume, - KTelIncallLoudspeakerVolume, aHandsfreeVolume ); - } - } - __VTPRINTEXITR( "Settings.SetVolume res=%d", res ) - return res; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::GetVolume -// Gets audio volume. -// ----------------------------------------------------------------------------- -// -TInt CVtEngSettings::GetVolume( - TInt& aVolume, - const TBool aHandsfree, - const TBool aInternal ) const - { - __VTPRINTEXIT( "Settings.GetVolume" ) - TInt res( KErrNone ); - if ( aInternal ) - { - if ( aHandsfree ) - { - aVolume = iConfig.iAudio.iVolume.iHandsfreeVolume; - } - else - { - aVolume = iConfig.iAudio.iVolume.iHandsetVolume; - } - } - else - { - if ( aHandsfree ) - { - res = iCRProxy->Get( KCRUidInCallVolume, - KTelIncallLoudspeakerVolume, aVolume ); - } - else - { - res = iCRProxy->Get( KCRUidInCallVolume, - KTelIncallEarVolume, aVolume ); - } - } - __VTPRINTEXITR( "Settings.GetVolume res=%d", res ) - return res; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetRouting -// Sets audio routing setting. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetRouting( - const MVtEngAudio::TVtEngRoutingSetting& aState ) - { - iConfig.iAudio.iRouting = aState; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetVideoEnabled -// Sets video enabled setting. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetVideoEnabled( const TBool aEnabled ) - { - __VTPRINT2( DEBUG_GEN , "Settings.SVE",aEnabled ) - iConfig.iVideo.iVideoEnabled = aEnabled; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetConnectReady -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetConnectReady() - { - iConfig.iReadyForConnect = ETrue; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetDataportLoaned -// Sets dataport loaning status -// -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetDataportLoaned( TBool aLoaned ) - { - __VTPRINTENTER( "Settings.SetDataportLoaned" ) - iConfig.iIsDataportLoaned = aLoaned; - __VTPRINTEXIT( "Settings.SetDataportLoaned" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::ResetAll -// Reset all settings. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::ResetAll() - { - __VTPRINT( DEBUG_GEN , "Settings.RA" ) - iConfig.iAudio.iRouting = KVtEngDefaultAudioRouting; - iConfig.iVideo.iVideoEnabled = ETrue; - iConfig.iReadyForConnect = EFalse; - iConfig.iIsDataportLoaned = EFalse; - // call duration setting not cleared - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::NotifyChangeL -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::NotifyChangeL( - TSettingId aId, - MVtEngSettingObserver& aObserver ) - { - __VTPRINTENTER( "Settings.NotifyChangeL" ) - __VTPRINT2( DEBUG_GEN, "Settings.NC id %d", aId ) - switch ( aId ) - { - case ESelectVolume: - iSelectVolumeObserver = &aObserver; - break; - case EDataportInfo: - iDataportObserver = &aObserver; - break; - // others are CenRep items - default: - { - const TInt count( iObserverItems->Count() ); - for ( TInt index = 0; index < count; index++ ) - { - TObserverItem& item = iObserverItems->At( index ); - if ( item.iId == aId && item.iObserver == &aObserver ) - { - __VTPRINT( DEBUG_GEN, "Settings.NC.already" ) - __VTPRINTEXIT( "Settings.NotifyChangeL" ) - return; - } - } - - TObserverItem item; - item.iId = aId; - switch ( aId ) - { - case EStillImage: - item.iIntKey = KSettingsVTStillImage; - item.iUid = KCRUidTelephonySettings; - break; - case EStillImagePath: - item.iIntKey = KSettingsVTStillImagePath; - item.iUid = KCRUidTelephonySettings; - break; - case ECallTimer: - item.iIntKey = KLogsShowCallDuration; - item.iUid = KCRUidLogs; - break; - case EHandsetVolume: - item.iIntKey = KTelIncallEarVolume; - item.iUid = KCRUidInCallVolume; - break; - case EHandsfreeVolume: - item.iIntKey = KTelIncallLoudspeakerVolume; - item.iUid = KCRUidInCallVolume; - break; - default: - break; - } - item.iObserver = &aObserver; - iObserverItems->AppendL( item ); - } - } - __VTPRINTEXIT( "Settings.NotifyChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::CancelNotifyChange -// Cancels receiving change events. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::CancelNotifyChange( - TSettingId aId, const MVtEngSettingObserver& aObserver ) - { - __VTPRINTENTER( "Settings.CancelNotifyChange" ) - if ( aId == ESelectVolume ) - { - if ( &aObserver == iSelectVolumeObserver ) - { - iSelectVolumeObserver = NULL; - } - } - else if ( &aObserver == iDataportObserver ) - { - iDataportObserver = NULL; - // also free space used for dataport info - delete iDataportInfo; - iDataportInfo = NULL; - } - else - { - TInt count( iObserverItems->Count() ); - while ( count-- ) - { - const TObserverItem& item = iObserverItems->At( count ); - if ( item.iId == aId && - item.iObserver == &aObserver ) - { - iObserverItems->Delete( count ); - count = 0; // breaks loop - } - } - } - __VTPRINTEXIT( "Settings.CancelNotifyChange" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::HandleNotifyInt -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::HandleNotifyInt( const TUid aUid, - const TUint32 aId, TInt aNewValue ) - { - TBool informObserver = ETrue; - if ( aUid == KCRUidInCallVolume ) - { - switch ( aId ) - { - case KTelIncallLoudspeakerVolume: - { - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt: HF volume" ) - if ( iConfig.iAudio.iVolume.iHandsfreeVolume == aNewValue ) - { - informObserver = EFalse; - } - else - { - iConfig.iAudio.iVolume.iHandsfreeVolume = aNewValue; - } - } - break; - case KTelIncallEarVolume: - { - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt: HandsetVolume" ) - if ( iConfig.iAudio.iVolume.iHandsetVolume == aNewValue ) - { - informObserver = EFalse; - } - else - { - iConfig.iAudio.iVolume.iHandsetVolume = aNewValue; - } - } - break; - default: - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt: Non-ordered" ); - break; - } - } - else if ( aUid == KCRUidLogs ) - { - switch ( aId ) - { - case KLogsShowCallDuration: - { - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt: call duration" ) - iConfig.iCallTimerOn = aNewValue > 0 ? ETrue : EFalse; - } - break; - default: - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt: Non-ordered" ); - break; - } - } - else if ( aUid == KCRUidTelephonySettings ) - { - switch ( aId ) - { - case KSettingsVTStillImage: - { - __VTPRINT( DEBUG_GEN, "HandleNotifyInt still" ) - if ( aNewValue == 0 ) - { - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt disabled") - // still image disabled in settings - iConfig.iVideo.iStillImageFile.Zero(); - iConfig.iVideo.iImageIsValid = EFalse; - } - else - { - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt enabled") - iConfig.iVideo.iImageIsValid = ETrue; - } - } - break; - default: - __VTPRINT( DEBUG_GEN, "Settings.HandleNotifyInt: Non-ordered" ); - break; - } - } - - TObserverItem* item = FindItem( aUid, aId ); - if ( informObserver && item && item->iObserver ) - { - // The observer does not need the new value - // Plain notification is all. - TRAP_IGNORE( item->iObserver->HandleSettingChangedL( item->iId, KNullDesC16 ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::HandleNotifyReal -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::HandleNotifyReal( const TUid /*aUid*/, - const TUint32 /*aId*/ , TReal /* aNewValue*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::HandleNotifyString -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::HandleNotifyString( const TUid aUid, const TUint32 aId, - const TDesC16& aNewValue ) - { - __VTPRINTENTER( "Settings.HN" ) - if ( aNewValue.Compare( iConfig.iVideo.iStillImageFile ) != 0 ) - { - if( aId == KSettingsVTStillImagePath ) - { - __VTPRINT( DEBUG_GEN, "Settings.HN KGSVTStillImagePath" ) - iConfig.iVideo.iStillImageFile.Copy( aNewValue ); - } - } - TObserverItem* item = FindItem( aUid, aId ); - if ( item && item->iObserver ) - { - TRAP_IGNORE( item->iObserver->HandleSettingChangedL( item->iId, aNewValue ) ); - } - __VTPRINTEXIT( "Settings.HN" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::FindItem -// Finds observer item. -// ----------------------------------------------------------------------------- -// -CVtEngSettings::TObserverItem* CVtEngSettings::FindItem( - const TUid& aUid, - const TDesC& aKey ) const - { - TInt count( iObserverItems->Count() ); - TObserverItem* item = NULL; - TBool found( EFalse ); - while ( count-- && !found ) - { - item = &iObserverItems->At( count ); - if ( item->iUid == aUid && - item->iKey.Compare( aKey ) == 0 ) - { - found = ETrue; - } - } - - // Just NULL the item if not found - if( !found ) - { - item = NULL; - } - return item; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::FindItem -// Finds observer item. -// ----------------------------------------------------------------------------- -// -CVtEngSettings::TObserverItem* CVtEngSettings::FindItem( - const TUid& aUid,const TInt& aKey ) const - { - TInt count( iObserverItems->Count() ); - TObserverItem* item = NULL; - TBool found( EFalse ); - while ( count-- && !found ) - { - item = &iObserverItems->At( count ); - if ( item->iUid == aUid && - item->iIntKey == aKey ) - { - found = ETrue; - } - } - - // Just NULL the item if not found - if( !found ) - { - item = NULL; - } - return item; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SettingAsTInt -// Returns setting as integer value. -// ----------------------------------------------------------------------------- -// -TInt CVtEngSettings::SettingAsTInt( const TDesC& aValue ) - { - TInt value( 0 ); - const TInt err = TLex( aValue ).Val( value ); - if ( err != KErrNone ) - { - value = err; - } - return value; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::DoInformSelectVolumeObserver -// ----------------------------------------------------------------------------- -// -TInt CVtEngSettings::DoInformSelectVolumeObserver( TAny* aAny ) - { - CVtEngSettings* self = static_cast< CVtEngSettings* >( aAny ); - - if ( self->iSelectVolumeObserver ) - { - TRAP_IGNORE( self->iSelectVolumeObserver->HandleSettingChangedL( - ESelectVolume, - KNullDesC ) ); - } - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::ReadVariationsL -// Reads local variations. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::ReadVariationsL() - { - __VTPRINTENTER( "Settings.ReadVariations" ) - User::LeaveIfError( iCRProxy->Get( KCRUidVTVariation, - KVTLocalVariationFlags, iVariantReadOnlyValues )); - TBuf< KVtEngVQFRBufferSize > buffer; - User::LeaveIfError( iCRProxy->Get( KCRUidVTConfiguration, - KVTVideoFrameRates, buffer )); - ParseFrameRates( iVQFRConfig, buffer ); - __VTPRINTEXIT( "Settings.ReadVariations" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::GetCameraOrientations -// Reads camera orientations from CR -// ----------------------------------------------------------------------------- -// - -void CVtEngSettings::GetCameraOrientations( - MVtEngMedia::TCameraOrientation& aPrimaryCameraOrientation, - MVtEngMedia::TCameraOrientation& aSecondaryCameraOrientation ) const - { - /* - * Defines layout (screen orientation) used by - * Video Telephone application per active camera. - * Each camera has one of the following values: - * 1) "LS" = Landscape - * 2) "PR" = Portrait - * 3) "OL" = Obey layout in specific device mode (normal operation) - * Camera values are: - * 1) "C1" = VT primary camera (inwards) - * 2) "C2" = VT secondary camera (outwards) - * Example value (portrait for cam1, landscape for cam2): - * C1:PR C2:LS - */ - - __VTPRINTENTER( "Settings.GetCameraOrientations" ) - const TInt KMaxKVTCameraLayoutValue = 11; - const TInt KAbbreviationLength = 2; - const TInt KSkipChars = 3; - - _LIT( KCameraOrientationLS, "LS" ); // landscape - _LIT( KCameraOrientationPR, "PR" ); // portrait - - TBuf< KMaxKVTCameraLayoutValue > cameraOrientations; - TInt err = iCRProxy->Get( KCRUidVTConfiguration, - KVTCameraLayout, cameraOrientations ); - - // parse cenrep value - if( cameraOrientations.Length() > 0 ) - { - TBuf abbreviation; - TLex lex( cameraOrientations ); - lex.SkipAndMark(KSkipChars); - abbreviation.Append( lex.Get() ); - abbreviation.Append( lex.Get() ); - - // primary camera value - if ( abbreviation.CompareF( KCameraOrientationLS ) == 0 ) - { - __VTPRINT( DEBUG_GEN, "Settings.GetCamOrient.prim:LS" ); - aPrimaryCameraOrientation = MVtEngMedia::EOrientationLandscape; - } - else if ( abbreviation.CompareF( KCameraOrientationPR ) == 0 ) - { - aPrimaryCameraOrientation = MVtEngMedia::EOrientationPortrait; - __VTPRINT( DEBUG_GEN, "Settings.GetCamOrient.prim:PR" ); - } - else - { - __VTPRINT( DEBUG_GEN, "Settings.GetCamOrient.prim:OL" ); - aPrimaryCameraOrientation = MVtEngMedia::EOrientationObeyLayoutSwitch; - } - - abbreviation.Zero(); - lex.SkipSpace(); - lex.SkipAndMark(KSkipChars); - abbreviation.Append( lex.Get() ); - abbreviation.Append( lex.Get() ); - - //secondary camera value - if ( abbreviation.CompareF( KCameraOrientationLS ) == 0) - { - __VTPRINT( DEBUG_GEN, "Settings.GetCamOrient.sec:LS" ); - aSecondaryCameraOrientation = MVtEngMedia::EOrientationLandscape; - } - else if ( abbreviation.CompareF( KCameraOrientationPR ) == 0) - { - __VTPRINT( DEBUG_GEN, "Settings.GetCamOrient.sec:PR" ); - aSecondaryCameraOrientation = MVtEngMedia::EOrientationPortrait; - } - else - { - __VTPRINT( DEBUG_GEN, "Settings.GetCamOrient.sec:OL" ); - aSecondaryCameraOrientation = MVtEngMedia::EOrientationObeyLayoutSwitch; - } - } - else - { - // reading from cenrep failed - // set default values for camera orientation - aPrimaryCameraOrientation = MVtEngMedia::EOrientationObeyLayoutSwitch; - aSecondaryCameraOrientation = MVtEngMedia::EOrientationObeyLayoutSwitch; - } - __VTPRINTEXIT( "Settings.ReadVariations" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::CheckBit -// Checks if a certain bit is turned on in locally variated features. -// ----------------------------------------------------------------------------- -// -TBool CVtEngSettings::CheckBits( const TInt aBits ) - { - __VTPRINT2( DEBUG_GEN, "Settings.CheckBit: %d", aBits ) - __VTPRINT2( DEBUG_GEN, "Settings.CheckBit=%d", - iVariantReadOnlyValues & aBits ? 1 : 0 ) - return iVariantReadOnlyValues & aBits; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::VideoQualityFrameRateConfig -// Returns video quality frame rate configuration. -// ----------------------------------------------------------------------------- -// -const CVtEngSettings::TVtEngVideoQualityFrameRateConfig& - CVtEngSettings::VideoQualityFrameRateConfig() const - { - __VTPRINTENTER( "Settings.VideoQualityFrameRateConfig" ) - __VTPRINTEXIT( "Settings.VideoQualityFrameRateConfig" ) - return iVQFRConfig; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::CreateDataObserverL -// Creates a shared data observer. Ownership transferred. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::CreateDataObserverL( MVtEngCRSettingObserver* aObserver, - TUid aUid, TUint32 aKey, CCenRepNotifyHandler::TCenRepKeyType aType ) - { - CVtEngCRObserverItem* item = CVtEngCRObserverItem::NewL( - aObserver, aUid, aKey, aType ); - CleanupStack::PushL( item ); - iCRProxy->RegisterInterestedL( item ); - CleanupStack::Pop( item ); - } - - -// ----------------------------------------------------------------------------- -// CVtEngSettings::ParseFrameRates -// Parses VQ frame rates read from cenrep. -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::ParseFrameRates( TVtEngVideoQualityFrameRateConfig& aVQFR, - const TDesC& aBuffer ) - { - __VTPRINTENTER( "Settings.ParseFrameRates" ) - Mem::FillZ( &aVQFR, sizeof( aVQFR ) ); - if( aBuffer.Length() > 0 ) - { - TLex lex( aBuffer ); - lex.Val( aVQFR.iDetail ); - __VTPRINT2( DEBUG_GEN, "Settings.ParseFrameRates iDetail=%d", aVQFR.iDetail ); - lex.SkipSpace(); - lex.Val( aVQFR.iNormal ); - __VTPRINT2( DEBUG_GEN, "Settings.ParseFrameRates iNormal=%d", aVQFR.iNormal ); - lex.SkipSpace(); - lex.Val( aVQFR.iMotion ); - __VTPRINT2( DEBUG_GEN, "Settings.ParseFrameRates iMotion=%d", aVQFR.iMotion ); - } - __VTPRINTEXIT( "Settings.ParseFrameRates" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::IsDefaultStillImageDefined -// Checks if still image exists. -// ----------------------------------------------------------------------------- -// -TBool CVtEngSettings::IsDefaultStillImageDefined() - { - __VTPRINTENTER( "Settings.IsDefaultStillImageDefined" ) - __VTPRINTEXITR( "Settings.IsDefaultStillImageDefined%d",iDefaultStillImageDefined ) - return iDefaultStillImageDefined; - - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetCLI -// -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetCLI( const MVtEngSessionInfo::TCLI& aCLI ) - { - __VTPRINTENTER( "Settings.SetCLI" ) - iCLI.iCallId = aCLI.iCallId; - iCLI.iName = aCLI.iName; - iCLI.iVoiceCallPossible = aCLI.iVoiceCallPossible; - iCLI.iValid = ETrue; - __VTPRINT2( DEBUG_GEN, "iVoiceCallPossible=%d,", iCLI.iVoiceCallPossible ) - __VTPRINTEXIT( "Settings.SetCLI" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::GetCLI -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngSettings::GetCLI( MVtEngSessionInfo::TCLI& aCLI ) const - { - aCLI.iCallId = iCLI.iCallId; - aCLI.iVoiceCallPossible = iCLI.iVoiceCallPossible; - aCLI.iName = iCLI.iName; - return iCLI.iValid; - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::SetDataportInfoL -// -// ----------------------------------------------------------------------------- -// -void CVtEngSettings::SetDataportInfoL( const TDesC& aPortInfo ) - { - delete iDataportInfo; - iDataportInfo = NULL; - iDataportInfo = HBufC::NewL( aPortInfo.Length() ); - *iDataportInfo = aPortInfo; - SetConnectReady(); - if ( iDataportObserver ) - { - iDataportObserver->HandleSettingChangedL( EDataportInfo, - *iDataportInfo ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngSettings::DataportInfo -// -// ----------------------------------------------------------------------------- -// -const TDesC* CVtEngSettings::DataportInfo() const - { - return iDataportInfo; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/VtEngUtils.cpp --- a/vtengines/videoteleng/Src/Base/VtEngUtils.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* -* Copyright (c) 2004-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: Video telephony engine TLS container. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngCRProxy.h" -#include "CVtEngAccessoryHandler.h" -#include "CVtEngSATClient.h" -#include "VtEngUtils.h" -#include "VtEngPanic.h" -#include "CVtEngInitializer.h" -#include "CVtEngSettings.h" -#include "CVtEngDeviceLockMonitor.h" - -#include "CVtEngExtensions.h" -#include "cvtengmdtrmessagelistener.h" -#include "cvtengmdtrcommandsender.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngUtility::CVtEngUtility -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngUtility::CVtEngUtility() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngUtility::ConstructL( ) - { - __ASSERT_DEBUG( Dll::Tls() == NULL, Panic( EVtEngPanicTlsPanic )); - Dll::SetTls( this ); - iCRProxy = CVtEngCRProxy::NewL(); - iAccessoryHandler = CVtEngAccessoryHandler::NewL(); - iSettings = CVtEngSettings::NewL(); - - iLockMonitor = CVtEngDeviceLockMonitor::NewL(); - iMdtrCommandSender = CVtEngMdtrCommandSender::NewL( *this ); - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngUtility* CVtEngUtility::NewL() - { - CVtEngUtility* self = new( ELeave ) CVtEngUtility; - - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CVtEngUtility::~CVtEngUtility() - { - delete iMdtrMessageListener; - delete iMdtrCommandSender; - delete iCRProxy; - delete iAccessoryHandler; - delete iEngineInit; - delete iSettings; - delete iSATClient; - delete iLockMonitor; - Dll::SetTls( NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::EngineUtils -// Return pointer to Engine Utility. -// -// ----------------------------------------------------------------------------- -// -CVtEngUtility* CVtEngUtility::EngineUtils() - { - return reinterpret_cast( Dll::Tls() ); - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::StateManager -// Returns state manager. -// -// ----------------------------------------------------------------------------- -// -CVtEngStateManager* CVtEngUtility::StateManager() - { - return *(CVtEngUtility::EngineUtils()->iStateManager); - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::EventManager -// ----------------------------------------------------------------------------- -// -CVtEngEventManager& CVtEngUtility::EventManager() - { - return **CVtEngUtility::EngineUtils()->iEventManager; - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::PrepareL -// ----------------------------------------------------------------------------- -// -void CVtEngUtility::PrepareL( - CVtEngHandlerContainer& aHandlers, - CVtEngStateManager*& aStateManagerPtr, - CVtEngEventManager*& aEventManagerPtr, - CVtEngExtensions* aExtensionPtr ) - { - iEngineInit = CVtEngInitializer::NewL( aHandlers ); - iStateManager = &aStateManagerPtr; - iEventManager = &aEventManagerPtr; - iExtensions = aExtensionPtr; - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::StartMediatorListenerL -// Creates mediator message (event/command) listener. Cannot be done in -// constructor because session control may be unavailable when we would -// receive first mediator event => session state is still uninitialized. -// ----------------------------------------------------------------------------- -// -void CVtEngUtility::StartMediatorListenerL() - { - iMdtrMessageListener = CVtEngMdtrMessageListener::NewL( *this ); - } - - -// ----------------------------------------------------------------------------- -// CVtEngUtility::Settings -// ----------------------------------------------------------------------------- -// -CVtEngSettings& CVtEngUtility::Settings() - { - return *CVtEngUtility::EngineUtils()->iSettings; - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::MediatorCommands -// ----------------------------------------------------------------------------- -// -CVtEngMdtrCommandSender& CVtEngUtility::MediatorCommands() - { - return *CVtEngUtility::EngineUtils()->iMdtrCommandSender; - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::CRProxy -// ----------------------------------------------------------------------------- -// -CVtEngCRProxy& CVtEngUtility::CRProxy() - { - return *CVtEngUtility::EngineUtils()->iCRProxy; - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::AccessoryHandler -// ----------------------------------------------------------------------------- -// -CVtEngAccessoryHandler& CVtEngUtility::AccessoryHandler() - { - return *CVtEngUtility::EngineUtils()->iAccessoryHandler; - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::StartSATListenL -// ----------------------------------------------------------------------------- -// -void CVtEngUtility::StartSATListenL() - { - iSATClient = CVtEngSATClient::NewL(); - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::NotifyLockState -// ----------------------------------------------------------------------------- -// -void CVtEngUtility::NotifyLockState() - { - iLockMonitor->NotifyState(); - } - -// ----------------------------------------------------------------------------- -// CVtEngUtility::Extensions -// ----------------------------------------------------------------------------- -// -CVtEngExtensions* CVtEngUtility::Extensions() - { - return CVtEngUtility::EngineUtils()->iExtensions; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/cvtengincomingcallmonitor.cpp --- a/vtengines/videoteleng/Src/Base/cvtengincomingcallmonitor.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* 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: Monitors device incoming call state -* -*/ - - -// INCLUDE FILES -#include "cvtengincomingcallmonitor.h" -#include "CVTEngPubSubsListener.h" -#include "CVtEngEventManager.h" -#include "cvtlogger.h" - -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngIncomingCallMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngIncomingCallMonitor* CVtEngIncomingCallMonitor::NewL() - { - CVtEngIncomingCallMonitor* self = new ( ELeave ) CVtEngIncomingCallMonitor(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// -// ----------------------------------------------------------------------------- -// CVtEngIncomingCallMonitor::~ -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngIncomingCallMonitor::~CVtEngIncomingCallMonitor() - { - delete iIncomingCallListener; - } - -// ----------------------------------------------------------------------------- -// CVtEngIncomingCallMonitor::NotifyState -// Notifies UI about device incoming call state -// ----------------------------------------------------------------------------- -// -void CVtEngIncomingCallMonitor::NotifyState() const - { - __VTPRINTENTER( "IncomingCall.NotifyState" ) - - // Initialize state as first valuea of call state enum - TInt state = EPSCTsyCallStateUninitialized; - - // Get incomig call state and send event to UI - if ( iIncomingCallListener->Get( state ) == KErrNone ) - { - __VTPRINT2( DEBUG_SESSION, "IncomingCall.NotifyState=%d", state ) - const TInt event = ( state == EPSCTsyCallStateRinging ) ? - KVtEngSessionWaitingCallActive : KVtEngSessionWaitingCallInactive; - CVtEngEventManager::NotifyEvent( event ); - } - __VTPRINTEXIT( "IncomingCall.NotifyState" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngIncomingCallMonitoronitor::HandleNotifyPSL -// Callback for incoming call state change -// ----------------------------------------------------------------------------- -// -void CVtEngIncomingCallMonitor::HandleNotifyPSL( - const TUid aUid, - const TInt& aKey, - const TRequestStatus& aStatus ) - { - if ( aStatus == KErrNone && - aUid == KPSUidCtsyCallInformation && - aKey == KCTsyCallState ) - { - NotifyState(); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngIncomingCallMonitor::CVtEngIncomingCallMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngIncomingCallMonitor::CVtEngIncomingCallMonitor() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngIncomingCallMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngIncomingCallMonitor::ConstructL() - { - __VTPRINTENTER( "IncomingCall.ConstructL" ) - // Listener for incoming call state - iIncomingCallListener = CVtEngPubSubsListener::NewL( - KPSUidCtsyCallInformation, KCTsyCallState, this ); - __VTPRINTEXIT( "IncomingCall.ConstructL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/cvtengmdtrcommandsender.cpp --- a/vtengines/videoteleng/Src/Base/cvtengmdtrcommandsender.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,460 +0,0 @@ -/* -* Copyright (c) 2008 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: Mediator command sender implementation -* -*/ - - - -// INCLUDE FILES -#include "cvtengmdtrcommandsender.h" -#include "CVtEngEventManager.h" -#include "VtEngUtils.h" -#include "CVtEngSettings.h" -#include "CVtEngOperation.h" -#include "vtengcommands.h" -#include "CVtEngStateManager.h" -#include "VtEngPanic.h" -#include -#include -#include -#include -#include -#include - - -/** -* Three state classes for handling audio mute/unmute commands towards mediator when mute state -* is changed locally faster than mediator gives response. - - - IDLE <-------------------------| - | | - NotifyOutgoingAudioState( x ) / mediator.Send( x ) | - | | - v | - |--------------------------------------> SENDING -- CommandResponseL ---| - | | - | NotifyOutgoingAudioState( y ) / saveCommand( y ) - | | - | v - |- CommandResponseL( x ) / Send( y ) ---- BUFFERED - - - - -*/ -NONSHARABLE_CLASS( TVtMdtrStateIdle ) : public CBase -{ - public: - TVtMdtrStateIdle( CVtEngMdtrCommandSender& aSender, CMediatorCommandInitiator& aMediator ); - virtual void SendL( TUid aDomain, TUid aCategory, TInt aCommand ); - virtual void CommandResponseL( TUid aDomain, TUid aCategory, TInt aCommand, TInt aStatus ); - - TInt DoSend( TUid aDomain, TUid aCategory, TInt aCommand ); - - CVtEngMdtrCommandSender& iSender; - CMediatorCommandInitiator& iMediator; -}; - -NONSHARABLE_CLASS( TVtMdtrStateSending ) : public TVtMdtrStateIdle -{ - public: - TVtMdtrStateSending( CVtEngMdtrCommandSender& aSender, CMediatorCommandInitiator& aMediator ); - void SendL( TUid aDomain, TUid aCategory, TInt aCommand ); - void CommandResponseL( TUid aDomain, TUid aCategory, TInt aCommand, TInt aStatus ); -}; - -NONSHARABLE_CLASS( TVtMdtrStateBuffered ) : public TVtMdtrStateIdle -{ - public: - TVtMdtrStateBuffered( CVtEngMdtrCommandSender& aSender, CMediatorCommandInitiator& aMediator ); - void SendL( TUid aDomain, TUid aCategory, TInt aCommand ); - void CommandResponseL( TUid aDomain, TUid aCategory, TInt aCommand, TInt aStatus ); - - TUid iDomain; - TUid iCategory; - TInt iCommand; -}; - - -// CONSTANTS -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngMdtrCommandSender* CVtEngMdtrCommandSender::NewL( CVtEngUtility& aUtils ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.NewL" ) - CVtEngMdtrCommandSender* self = new ( ELeave ) - CVtEngMdtrCommandSender( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - - __VTPRINTEXIT( "CVtEngMdtrCommandSender.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::~CVtEngMdtrCommandSender -// destructor -// ----------------------------------------------------------------------------- -// -CVtEngMdtrCommandSender::~CVtEngMdtrCommandSender() - { - iUtils.EventManager().RemoveObserver( this ); - delete iMediatorInitiator; - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::EndCall -// Sends end call command via Mediator -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::EndCall( ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.EndCall" ) - const TVersion KTelephonyCmdVersion( - KTelephonyCommandsVersionMajor, - KTelephonyCommandsVersionMinor, - KTelephonyCommandsVersionBuild ); - const TInt res = - iMediatorInitiator->IssueCommand( - KMediatorTelephonyDomain, - KCatCommandsToTelephony, - EPhoneCmdEndActiveCall, - KTelephonyCmdVersion, - KNullDesC8() ); - - __VTPRINTEXITR( "CVtEngMdtrCommandSender.EndCall res=%d", res ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::VoiceFallback -// Sends voice fallback command to telephony via Mediator -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::VoiceFallback() - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.VoiceFallback" ) - const TVersion KVtToPhoneCmdVersion( - KVideoTelToPhoneCmdVersionMajor, - KVideoTelToPhoneCmdVersionMinor, - KVideoTelToPhoneCmdVersionBuild ); -#ifdef _DEBUG - TInt err = -#endif - iMediatorInitiator->IssueCommand( - KMediatorTelephonyDomain, - KCatVideoTelToPhoneCommands, - EVtCmdFallback, - KVtToPhoneCmdVersion, - KNullDesC8() ); - // response is not awaited - __VTPRINTEXITR( "CVtEngMdtrCommandSender.VoiceFallback %d>", err ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::SwitchToVoiceL -// Sends switch to voice command to telephony via Mediator -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::SwitchToVoiceL( CVtEngOperation& aOperation ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.SwitchToVoiceL" ) - iOperation = &aOperation; - // add this as observer. Mediator command is sent when idle state - // is reached (i.e. Protocol has released dataport and it can be recovered - // by telephony) - iUtils.EventManager().AddObserverL( this ); - // let current state handle actual request - iUtils.StateManager()->HandleOperationL( aOperation ); - __VTPRINTEXIT( "CVtEngMdtrCommandSender.SwitchToVoiceL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::NotifyOutgoingAudioState -// Sends microphone state to telephony via Mediator -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::NotifyOutgoingAudioState( - const TBool aMicEnabled ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.NotifyOutgoingAudioState" ) - - const TInt command = ( aMicEnabled ) - ? EAudioCmdUnmute : EAudioCmdMute; -#ifdef _DEBUG - TRAPD( res, iSenderState->SendL( - KMediatorTelephonyDomain, - KCatAudioCommandsToTelephony, - command ) ); -#else - TRAP_IGNORE(iSenderState->SendL( - KMediatorTelephonyDomain, - KCatAudioCommandsToTelephony, - command ) ); -#endif - - __VTPRINTEXITR( "CVtEngMdtrCommandSender.NotifyOutgoingAudioState %d", res ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::SetSenderState -// sets new mediator sender state for audio command -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::SetSenderState( TVtMdtrStateIdle& aNewState ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.SetSenderState" ) - __VTPRINT2( DEBUG_GEN, " delete old state %x", (TInt) iSenderState ) - __ASSERT_DEBUG( iSenderState != &aNewState, - Panic( EVtEngPanicWrongMediatorSenderState ) ); - delete iSenderState; - iSenderState = &aNewState; - __VTPRINTEXITR( "CVtEngMdtrCommandSender.SetSenderState %x", (TInt) iSenderState ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::CommandResponseL -// Mediator framework callback -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::CommandResponseL( TUid aDomain, - TUid aCategory, - TInt aCommandId, - TInt aStatus, - const TDesC8& /*aData*/ ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.CommandResponseL" ) - switch ( aCommandId ) - { - case EAudioCmdUnmute: - case EAudioCmdMute: - iSenderState->CommandResponseL( aDomain, aCategory, aCommandId, aStatus ); - break; - default: - // ignored for other commands (so far) - break; - } - __VTPRINT2( DEBUG_GEN, " mediator command id=%d", aCommandId ) - __VTPRINTEXITR( "CVtEngMdtrCommandSender.CommandResponseL res=%d", aStatus ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::HandleVtEventL -// Handles state change event associated with "switch to voice" and "TerminateSession" command -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::HandleVtEventL( TInt aEvent ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.HandleVtEventL" ) -#ifdef _DEBUG - TInt err = KErrNone; -#endif - if ( aEvent == KVtEngSessionStateChanged && - iOperation && iOperation->Command() == KVtEngSwitchToVoice ) - { - const TVersion KVtToPhoneCmdVersion( - KVideoTelToPhoneCmdVersionMajor, - KVideoTelToPhoneCmdVersionMinor, - KVideoTelToPhoneCmdVersionBuild ); - - iUtils.EventManager().RemoveObserver( this ); - // send command (ignore possible error - no way to recover from it) -#ifdef _DEBUG - err = -#endif - iMediatorInitiator->IssueCommand( - //KMediatorVideoTelephonyDomain, - KMediatorTelephonyDomain, - KCatVideoTelToPhoneCommands, - EVtCmdSwitchToVoice, - KVtToPhoneCmdVersion, - KNullDesC8() ); - iOperation->HandleOpComplete( KErrNone ); - iOperation = NULL; - } - __VTPRINTEXITR( "CVtEngMdtrCommandSender.HandleVtEventL %d", err ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener:: -// c++ constructor -// ----------------------------------------------------------------------------- -// -CVtEngMdtrCommandSender::CVtEngMdtrCommandSender( CVtEngUtility& aUtils ) : - iUtils( aUtils ) - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.CVtEngMdtrCommandSender" ) - __VTPRINTEXIT( "CVtEngMdtrCommandSender.CVtEngMdtrCommandSender" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrCommandListener::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrCommandSender::ConstructL() - { - __VTPRINTENTER( "CVtEngMdtrCommandSender.ConstructL" ) - iMediatorInitiator = CMediatorCommandInitiator::NewL( this ); - - // set initial mediator command sender state - iSenderState = new ( ELeave ) TVtMdtrStateIdle( *this, *iMediatorInitiator ); - __VTPRINTEXIT( "CVtEngMdtrCommandSender.ConstructL" ) - } - -TVtMdtrStateIdle::TVtMdtrStateIdle( CVtEngMdtrCommandSender& aSender, CMediatorCommandInitiator& aMediator ) -: iSender( aSender), iMediator( aMediator ) - { - __VTPRINTENTER( "TVtMdtrStateIdle.ctr" ) - __VTPRINTEXITR( "TVtMdtrStateIdle.ctr %x", (TInt) this ) - } - -void TVtMdtrStateIdle::SendL( TUid aDomain, TUid aCategory, TInt aCommand ) - { - __VTPRINTENTER( "TVtMdtrStateIdle.SendL" ) - TVtMdtrStateIdle* nextState = NULL; - const TInt res = DoSend( aDomain, aCategory, aCommand ); - if ( res == KErrInUse ) - { - nextState = new ( ELeave ) TVtMdtrStateBuffered( iSender, iMediator ); - CleanupStack::PushL( nextState ); - nextState->SendL( aDomain, aCategory, aCommand ); - CleanupStack::Pop( nextState ); - } - else - { - nextState = new ( ELeave ) TVtMdtrStateSending( iSender, iMediator ); - } - iSender.SetSenderState( *nextState ); - __VTPRINTEXIT( "TVtMdtrStateIdle.SendL" ) - } - -TInt TVtMdtrStateIdle::DoSend( TUid aDomain, TUid aCategory, TInt aCommand ) - { - __VTPRINTENTER( "TVtMdtrStateIdle.DoSend" ) - const TVersion KVtToPhoneCmdVersion( - KVideoTelToPhoneCmdVersionMajor, - KVideoTelToPhoneCmdVersionMinor, - KVideoTelToPhoneCmdVersionBuild ); - - TInt res = iMediator.IssueCommand( - aDomain, - aCategory, - aCommand, - KVtToPhoneCmdVersion, - KNullDesC8() ); - __VTPRINTEXITR( "TVtMdtrStateIdle.DoSend res=%d", res ) - return res; - } - -void TVtMdtrStateIdle::CommandResponseL( TUid /*aDomain*/, TUid /*aCategory*/, TInt /*aCommand*/, TInt /*aStatus*/ ) - { - __VTPRINTENTER( "TVtMdtrStateIdle.CommandResponseL" ) - // base class method should never be possible to call - __VTPRINTEXIT( "TVtMdtrStateIdle.CommandResponseL" ) - } - -TVtMdtrStateSending::TVtMdtrStateSending( CVtEngMdtrCommandSender& aSender, CMediatorCommandInitiator& aMediator ) -: TVtMdtrStateIdle( aSender, aMediator ) - { - __VTPRINTENTER( "TVtMdtrStateSending.ctr" ) - __VTPRINTEXITR( "TVtMdtrStateSending.ctr %x", (TInt) this ) - } - -void TVtMdtrStateSending::SendL( TUid aDomain, TUid aCategory, TInt aCommand ) - { - __VTPRINTENTER( "TVtMdtrStateSending.SendL" ) - TVtMdtrStateIdle* buffered = new ( ELeave )TVtMdtrStateBuffered( iSender, iMediator ); - CleanupStack::PushL( buffered ); - buffered->SendL( aDomain, aCategory, aCommand ); - CleanupStack::Pop( buffered ); - iSender.SetSenderState( *buffered ); - __VTPRINTEXIT( "TVtMdtrStateSending.SendL" ) - } - -void TVtMdtrStateSending::CommandResponseL( TUid aDomain, TUid aCategory, TInt aCommand, TInt aStatus ) - { - __VTPRINTENTER( "TVtMdtrStateSending.CommandResponseL" ) - __VTPRINT2( DEBUG_GEN, " command=%d", aCommand ) - __VTPRINT2( DEBUG_GEN, " response=%d", aStatus ) - TVtMdtrStateIdle* idle = new ( ELeave ) TVtMdtrStateIdle( iSender, iMediator ); - iSender.SetSenderState( *idle ); - __VTPRINTEXIT( "TVtMdtrStateSending.CommandResponseL" ) - } - -TVtMdtrStateBuffered::TVtMdtrStateBuffered( CVtEngMdtrCommandSender& aSender, CMediatorCommandInitiator& aMediator ) -: TVtMdtrStateIdle( aSender, aMediator ) - { - __VTPRINTENTER( "TVtMdtrStateBuffered.ctr" ) - __VTPRINTEXITR( "TVtMdtrStateBuffered.ctr %x", (TInt) this ) - } - -void TVtMdtrStateBuffered::SendL( TUid aDomain, TUid aCategory, TInt aCommand ) - { - __VTPRINTENTER( "TVtMdtrStateBuffered.SendL" ) - - iDomain = aDomain; - iCategory = aCategory; - iCommand = aCommand; - // iCommand is sent in CommandResponseL - __VTPRINTEXIT( "TVtMdtrStateBuffered.SendL" ) - } - -void TVtMdtrStateBuffered::CommandResponseL( TUid aDomain, TUid aCategory, TInt aCommand, TInt aStatus ) - { - __VTPRINTENTER( "TVtMdtrStateBuffered.CommandResponseL" ) - const TVersion KVtToPhoneCmdVersion( - KVideoTelToPhoneCmdVersionMajor, - KVideoTelToPhoneCmdVersionMinor, - KVideoTelToPhoneCmdVersionBuild ); - TBool nextStateIdle = ETrue; - TInt res = KErrNone; - if ( aCommand != iCommand ) - { - res = iMediator.IssueCommand( - KMediatorTelephonyDomain, - KCatAudioCommandsToTelephony, - iCommand, - KVtToPhoneCmdVersion, - KNullDesC8() ); - if ( res == KErrNone ) - { - nextStateIdle = EFalse; - } - } - TVtMdtrStateIdle* nextState = NULL; - if ( nextStateIdle ) - { - __VTPRINT2( DEBUG_GEN, " failed to send buffered command with error=%d", res ) - nextState = new ( ELeave ) TVtMdtrStateIdle( iSender, iMediator ); - } - else - { - nextState = new ( ELeave ) TVtMdtrStateSending( iSender, iMediator ); - CleanupStack::PushL( nextState ); - nextState->SendL( iDomain, iCategory, iCommand ); - CleanupStack::Pop( nextState ); - } - iSender.SetSenderState( *nextState ); - __VTPRINTEXIT( "TVtMdtrStateBuffered.CommandResponseL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/cvtengmdtrmessagelistener.cpp --- a/vtengines/videoteleng/Src/Base/cvtengmdtrmessagelistener.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,321 +0,0 @@ -/* -* Copyright (c) 2008 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: Mediator event listener implementation -* -*/ - - - -// INCLUDE FILES -#include "cvtengmdtrmessagelistener.h" -#include "VtEngUtils.h" -#include "CVtEngSettings.h" -#include "CVtEngEventManager.h" -#include "cvtengmediatorservice.h" - -#include -#include -#include -#include -#include -#include - -// CONSTANTS - -// mediator command timeout -static const TInt KVtEngMdtrCmdTimeout = 500000; - -// array granularity is 2 (enable mic, disable mic commands) -static const TInt KVtEngMdtrCmdArrayGranularity = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngMdtrMessageListener* CVtEngMdtrMessageListener::NewL( - CVtEngUtility& aUtils ) - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.NewL" ) - CVtEngMdtrMessageListener* self = new( ELeave ) - CVtEngMdtrMessageListener( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtEngMdtrMessageListener.NewL" ) - return self; - } - -// Destructor -CVtEngMdtrMessageListener::~CVtEngMdtrMessageListener() - { - // ignore error in unregistering - if ( iMediatorResponder ) - { - iMediatorResponder->UnregisterCommand( - KMediatorVideoTelephonyDomain, - KCatPhoneToVideotelCommands, - iCommandList ); - iCommandList.Close(); - iMediatorResponder->UnregisterCommand( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalCommands, - EVtMediatorReleaseDataport ); - - delete iMediatorResponder; - } - - - // ignore error in unregistering - if ( iMediatorEvents ) - { - iMediatorEvents->UnsubscribeEvent( KMediatorVideoTelephonyDomain, - KCatVideotelInternalEvents, - EVtMediatorEventVideoCallInformation ); - delete iMediatorEvents; - } - - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::MediatorCommandL -// Receives mediator command and passes it to service object -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrMessageListener::MediatorCommandL( - TUid /*aDomain*/, - TUid aCategory, - TInt aCommandId, - TVersion /*aVersion*/, - const TDesC8& /*aData*/ ) - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.MediatorCommandL" ) - // service object destroys itself after sending command response - CVtEngMediatorService::StartLD( *iMediatorResponder, iUtils, aCategory, aCommandId ); - __VTPRINTEXIT( "CVtEngMdtrMessageListener.MediatorCommandL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::CancelMediatorCommand -// Cancallation of mediator command. no-op, just returns response. -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrMessageListener::CancelMediatorCommand( - TUid /*aDomain*/, - TUid /*aCategory*/, - TInt /*aCommandId*/ ) - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.CancelMediatorCommand" ) - // No-op - __VTPRINTEXIT( "CVtEngMdtrMessageListener.CancelMediatorCommand" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrEventListener::MediatorEventL -// Receives mediator event from VT Mediator Plugin. The event -// contains CLI and/or Dataport name. -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrMessageListener::MediatorEventL( TUid /*aDomain*/, - TUid aCategory, - TInt aEventId, - const TDesC8& aData ) - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.MediatorEventL" ) - if ( aCategory == KCatVideotelInternalEvents && - aEventId == EVtMediatorEventVideoCallInformation ) - { - TVtMediatorInfoPackage package; - package.Copy( aData ); - TVtVideoTelephonyCallInformation data = package(); - __VTPRINT2( DEBUG_GEN, " VT call info data validity value=%d", - data.iEventDataValidity) - // if message contains dataport name save it - CVtEngSettings& settings = iUtils.Settings(); - if ( data.iEventDataValidity & - TVtVideoTelephonyCallInformation::EDataportValid ) - { - //__VTPRINT(DEBUG_GEN, " Dataport is ready") - settings.SetDataportInfoL( data.iDataport ); - } - // if message contains CLI info handle it (save and notify if state - // allows) - if ( data.iEventDataValidity & - TVtVideoTelephonyCallInformation::EDisplayTextValid ) - { - MVtEngSessionInfo::TCLI cli; - cli.iCallId = data.iCallId; - cli.iName = data.iDisplayText.Left( cli.iName.MaxLength() ); - cli.iVoiceCallPossible = data.iVoiceCallPossible; - settings.SetCLI( cli ); - - // ready == call is answered (allows setting app to foreground) - if ( IsReadyForCLIEvent() ) - { - // send event about CLI availability - CVtEngEventManager::NotifyEvent( KVtEngCLIAvailable ); - } - else - { - // Wait until connected state is reached (see HandleVtEventL) - __VTPRINT( DEBUG_GEN, - "CVtEngMdtrMessageListener defer CLI event" ) - iUtils.EventManager().AddObserverL( this ); - } - } - } - __VTPRINTEXIT( "CVtEngMdtrMessageListener.MediatorEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::HandleVtEventL -// -// Handles defered CLI event dispatching (to UI). CLI event was defered because -// engine state was not suitable in MediatorEventL which then started observing -// state changes. -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrMessageListener::HandleVtEventL( TInt aEvent ) - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.HandleVtEventL" ) - if ( aEvent == KVtEngSessionStateChanged && - IsReadyForCLIEvent() ) // <- ready == call is answered - { - iUtils.EventManager().RemoveObserver( this ); - __VTPRINT( DEBUG_GEN, - "CVtEngMdtrMessageListener dispatch defered CLI event" ) - CVtEngEventManager::NotifyEvent( KVtEngCLIAvailable ); - } - - __VTPRINTEXIT( "CVtEngMdtrMessageListener.HandleVtEventL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngMdtrMessageListener::ConstructL() - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.ConstructL" ) - - // for sending command responses - iMediatorResponder = CMediatorCommandResponder::NewL( this ); - - // for receiving events from VT Mediator Plugin (dataport/CLI info) - iMediatorEvents = CMediatorEventConsumer::NewL( this ); - - TCapabilitySet capSet; - capSet.SetEmpty(); - // for audio control - capSet.AddCapability( ECapabilityWriteDeviceData ); - - // define common attributes for all commands that engine is responsible for - MediatorService::TCommand command; - command.iCaps = capSet; - command.iVersion = TVersion( - KPhoneToVideotelCmdVersionMajor, - KPhoneToVideotelCmdVersionMinor, - KPhoneToVideotelCmdVersionBuild ); - command.iTimeout = KVtEngMdtrCmdTimeout; - - // enable microphone command - command.iCommandId = EVtCmdUnmute; - iCommandList.Append( command ); - - // disable microphone command - command.iCommandId = EVtCmdMute; - iCommandList.Append( command ); - - // register VT events that are raised by VT Mediator Plugin. - // !!! Note !!!! - // event subscription must be done before command registration because - // command registration triggers raising the event in the plugin. Different - // order would cause the engine to miss the event. - const TVersion commandVersion( - KVideotelMdtrCommandsVersionMajor, - KVideotelMdtrCommandsVersionMinor, - KVideotelMdtrCommandsVersionBuild ); - //capSet.SetEmpty(); - //capSet.AddCapability( ECapabilityPowerMgmt ); - - iMediatorResponder->RegisterCommand( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalCommands, - EVtMediatorReleaseDataport, - commandVersion, - capSet, - KVtEngMdtrCmdTimeout ); - - const TVersion eventVersion( - KTelephonyEventsVersionMajor, - KTelephonyEventsVersionMinor, - KTelephonyEventsVersionBuild ); - - TInt res = iMediatorEvents->SubscribeEvent( KMediatorVideoTelephonyDomain, - KCatVideotelInternalEvents, - EVtMediatorEventVideoCallInformation, - eventVersion ); - - if ( res == KErrNone ) - { - // register Mediator commands that we handle - res = iMediatorResponder->RegisterCommand( - KMediatorVideoTelephonyDomain, - KCatPhoneToVideotelCommands, - iCommandList ); - - } - __VTPRINTEXITR( "CVtEngMdtrMessageListener.ConstructL res=%d",res ) - // registering must not fail - User::LeaveIfError( res ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::CVtEngMdtrMessageListener -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngMdtrMessageListener::CVtEngMdtrMessageListener( CVtEngUtility& aUtils) - : iUtils( aUtils ), iCommandList( KVtEngMdtrCmdArrayGranularity ) - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.CVtEngMdtrMessageListener" ) - __VTPRINTEXIT( "CVtEngMdtrMessageListener.CVtEngMdtrMessageListener" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMdtrMessageListener::IsReadyForCLIEvent -// Checks if engine state is appropriate to send CLI event. -// ----------------------------------------------------------------------------- -// -TBool CVtEngMdtrMessageListener::IsReadyForCLIEvent() const - { - __VTPRINTENTER( "CVtEngMdtrMessageListener.IsReadyForCLIEvent" ) - const MVtEngSessionInfo::TSessionState state = - iUtils.StateManager()->SessionState(); - const TBool isReady = - ( state == MVtEngSessionInfo::EConnected || - state == MVtEngSessionInfo::ENegotiating || - state == MVtEngSessionInfo::EOpen ); - __VTPRINTEXITR( "CVtEngMdtrMessageListener.IsReadyForCLIEvent %d>", - isReady ) - return isReady; - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Base/cvtengmediatorservice.cpp --- a/vtengines/videoteleng/Src/Base/cvtengmediatorservice.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,301 +0,0 @@ -/* -* Copyright (c) 2008 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: Mediator service implementation -* -*/ - - - -// INCLUDE FILES -#include "cvtengmediatorservice.h" -#include "cvtenginternaloperation.h" -#include "CVtEngStateManager.h" -#include "CVtEngEventManager.h" -#include "VtEngUtils.h" -#include "CVtEngSettings.h" -#include -#include -#include -#include -#include -#include - -// CONSTANTS - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::StartLD -// Mediator service starter. -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::StartLD( - CMediatorCommandResponder& aResponder, - CVtEngUtility& aUtils, - const TUid aCategory, - const TInt aCommand ) - { - __VTPRINTENTER( "CVtEngMediatorService.StartLD" ) - CVtEngMediatorService* self = new ( ELeave ) CVtEngMediatorService( - aResponder, aUtils, aCategory, aCommand ); - CleanupStack::PushL( self ); - self->ConstructAndDoServiceL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtEngMediatorService.StartLD" ) - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CVtEngMediatorService::~CVtEngMediatorService() - { - // ensure this is removed - __VTPRINTENTER( "CVtEngMediatorService::~CVtEngMediatorService" ) - iUtils.EventManager().RemoveObserver( this ); - - // send response if destructed due to leave in ConstructAndDoServiceL - SendMediatorResponseD( EFalse ); - __VTPRINTEXIT( "CVtEngMediatorService::~CVtEngMediatorService" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::SetOperation -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::SetOperation( CVtEngOperation* /*aActiveOp*/ ) - { - __VTPRINTENTER( "CVtEngMediatorService.SetOperation" ) - // no-op - __VTPRINTEXIT( "CVtEngMediatorService.SetOperation" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::CommandCompleteL -// callback to internal operation. -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::CommandCompleteL( - const TVtEngCommandId /*aCommand*/, - const TInt aResult ) - { - __VTPRINTENTER( "CVtEngMediatorService.CommandCompleteL" ) - - iServiceStatus = aResult; - - // Sends response to Telephony if not already sent by - // HandleVtEventL -> SendMediatorResponseD - SendMediatorResponseD( ETrue ); - __VTPRINTEXITR( "CVtEngMediatorService.CommandCompleteL %d", aResult ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::HandleVtEventL -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::HandleVtEventL( TInt aEvent ) - { - __VTPRINTENTER( "CVtEngMediatorService.HandleVtEventL" ) - - // This is registered event observer when shutdown mediator command was - // received. Now send response if state precondition is met - if ( aEvent == KVtEngSessionStateChanged && - IsShuttingDown() ) - { - // no interest on events any more, task fulfilled - iUtils.EventManager().RemoveObserver( this ); - - // iServiceStatus used for mediator response - iServiceStatus = KErrNone; - - SendMediatorResponseD( EFalse ); - } - __VTPRINTEXIT( "CVtEngMediatorService.HandleVtEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::CVtEngMediatorService -// ----------------------------------------------------------------------------- -// -CVtEngMediatorService::CVtEngMediatorService( - CMediatorCommandResponder& aResponder, - CVtEngUtility& aUtils, - const TUid aCategory, - const TInt aCommandId ) : - iResponder( aResponder ), - iUtils( aUtils ), - iCategory( aCategory ), - iCommandId( aCommandId ), - iServiceStatus( KErrNotReady ) - { - __VTPRINTENTER( "CVtEngMediatorService.CVtEngMediatorService" ) - __VTPRINTEXIT( "CVtEngMediatorService.CVtEngMediatorService" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::ConstructAndDoServiceL -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::ConstructAndDoServiceL() - { - __VTPRINTENTER( "CVtEngMediatorService.ConstructAndDoServiceL" ) - __VTPRINT2( DEBUG_GEN, " CVtEngMediatorService.ConstructAndDoServiceL command id=%d", iCommandId ) - // if starting of any operation below fails (StartOperationL leaves), - // this object is deleted. Destructor sends mediator response. - // non-supported command leads to leave+destructor also (see default case) - if ( KCatVideotelInternalCommands == iCategory) - { - switch ( iCommandId ) - { - case EVtMediatorReleaseDataport: - if ( !IsShuttingDown() ) - { - // Mediator response is sent when state becomes appropriate, - // indicated by call to HandleVtEventL, or - // when operation callback CommandCompleteL is called, - // which ever comes first. However, this object is deleted - // only after operation callback is received. - iUtils.EventManager().AddObserverL( this ); - StartOperationL( KVtEngTerminateSession ); - } - // if already shutting down this is no op (and self destructed) - // if get this command because endactivecall from vt menu, do not do any op from here - else - { - SendMediatorResponseD(EFalse); - } - break; - default: - // requested command that is not supported, issue "failed" response - iServiceStatus = KErrNotSupported; - break; - } - } - else - { - switch ( iCommandId ) - { - case EVtCmdUnmute: - case EVtCmdMute: - { - TVtEngCommandId engineCmd = ( iCommandId == - EVtCmdUnmute ) ? KVtEngUnmuteOutgoingAudio : - KVtEngMuteOutgoingAudio; - if ( !IsShuttingDown() ) - { - StartOperationL( engineCmd ); - } - else - { - SendMediatorResponseD(EFalse); - } - } - break; - default: - // requested command that is not supported, issue "failed" response - iServiceStatus = KErrNotSupported; - break; - } - } - if ( iServiceStatus != KRequestPending && !IsShuttingDown() ) - { // results in destruction of this object and sending of mediator - // response with error - //__VTPRINT2( DEBUG_GEN, "CVtEngMediatorService.ConstructAndDoServiceL leave by iServiceStatus: %d", iServiceStatus ) - User::Leave( iServiceStatus ); - } - - __VTPRINTEXIT( "CVtEngMediatorService.ConstructAndDoServiceL" ) - } -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::IsShuttingDown -// Checks if shutdown is ongoing -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediatorService::IsShuttingDown() const - { - __VTPRINTENTER( "CVtEngMediatorService.IsShuttingDown" ) - const MVtEngSessionInfo::TSessionState state = - iUtils.StateManager()->SessionState(); - TBool isShuttingDown = EFalse; - - // consider shutdown true if clearing or idle - if ( state == MVtEngSessionInfo::EClearing || - state == MVtEngSessionInfo::EIdle ) - { - isShuttingDown = ETrue; - } - __VTPRINTEXITR( "CVtEngMediatorService.IsShuttingDown %d", - isShuttingDown ) - return isShuttingDown; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::StartOperationL -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::StartOperationL( const TVtEngCommandId aCommand ) - { - __VTPRINTENTER( "CVtEngMediatorService.StartOperationL" ) - iOperation = CVtEngInternalOperation::NewL( - aCommand, - iUtils.StateManager()->Handlers(), - *this ); - iOperation->ExecuteL(); - iServiceStatus = KRequestPending; - __VTPRINTEXIT( "CVtEngMediatorService.StartOperationL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediatorService::SendMediatorResponseD -// ----------------------------------------------------------------------------- -// -void CVtEngMediatorService::SendMediatorResponseD( const TBool aDeleteThis ) - { - __VTPRINTENTER( "CVtEngMediatorService.SendMediatorResponseD" ) - __VTPRINT2( DEBUG_GEN, "CVtEngMediatorService.SendMediatorResponseD command: %d", iCommandId ) - if ( iCommandId != KErrNotFound ) - { - if ( iCategory == KCatVideotelInternalCommands && iCommandId == EVtMediatorReleaseDataport ) - { - iResponder.IssueResponse( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalCommands, - iCommandId, - iServiceStatus, - KNullDesC8() ); - } - else - { - iResponder.IssueResponse( - KMediatorVideoTelephonyDomain, - KCatPhoneToVideotelCommands, - iCommandId, - iServiceStatus, - KNullDesC8() ); - } - - // prevents further response because destructor also calls this method - iCommandId = KErrNotFound; - } - if ( aDeleteThis ) - { - // note! check above is mandatory because this method is called - // also from destructor. - delete this; - } - __VTPRINTEXIT( "CVtEngMediatorService.SendMediatorResponseD" ) - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Commands/CVtEngCommandHandler.cpp --- a/vtengines/videoteleng/Src/Commands/CVtEngCommandHandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,549 +0,0 @@ -/* -* 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: Handles commands from user interface. -* -*/ - - - -// INCLUDE FILES - -#include -#include "CVtEngCommandHandler.h" -#include "CVtEngHandlerContainer.h" -#include "MVtEngCommandObserver.h" -#include "CVtEngOperation.h" -#include -#include "CVtEngStateManager.h" -#include -#include "VtEngUtils.h" - -#include "CVtEngStateIdle.h" -#include "CVtEngStateInitializing.h" -#include "CVtEngStateConnected.h" -#include "CVtEngStateRinging.h" -#include "CVtEngStateOpen.h" -#include "CVtEngStateNegotiating.h" -#include "CVtEngStateClearing.h" -#include "CVtEngStateAlerting.h" - -// CONSTANTS -const TInt KVtEngCommandPoolCommands = 1; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CVtEngCommandHandler -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngCommandHandler::CVtEngCommandHandler( - CVtEngHandlerContainer& aHandlers ) : - iObservers( 1 ), - iHandlers( aHandlers ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::ConstructL() - { - __VTPRINTENTER( "CmdHlr.ConstructL" ) - iCommandPool = new ( ELeave ) CVtEngCmdPool( KVtEngCommandPoolCommands ); - - // session termination - AddToPoolL( KVtEngInitializeEngine ); - AddToPoolL( KVtEngInitializeEngineDiag ); - AddToPoolL( KVtEngInitializeEngineTest ); - AddToPoolL( KVtEngPrepareViewFinder ); - AddToPoolL( KVtEngPrepareRemoteRenderDSA ); - AddToPoolL( KVtEngPrepareRemoteRenderDP ); - AddToPoolL( KVtEngPrepareRemoteRenderNGA ); - AddToPoolL( KVtEngResetEngine ); - __VTPRINTEXIT( "CmdHlr.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngCommandHandler* CVtEngCommandHandler::NewL( CVtEngHandlerContainer& aHandlers ) - { - __VTPRINT( DEBUG_GEN | DEBUG_CONSTRUCT, "CmdHlr.New") - CVtEngCommandHandler* self = new( ELeave ) CVtEngCommandHandler( aHandlers ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CVtEngCommandHandler::~CVtEngCommandHandler() - { - __VTPRINTENTER( "CmdHlr.~" ) - iObservers.Close(); - if ( iActiveOp ) - { - if ( iCommandPool->Get( iActiveOp->Command() ) == NULL ) - { - delete iActiveOp; - } - } - delete iCommandPool; - __VTPRINTEXIT( "CmdHlr.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::ExecuteL -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::ExecuteL( - const TVtEngCommandId aCommandId, - TDesC8* aParams ) - { - __VTPRINTENTER( "CmdHlr.ExecuteL" ) - - __VTPRINT2( DEBUG_GEN, "ComHlr:Exec cmdId=%d", aCommandId ) - ValidateL( aCommandId, aParams ); - CVtEngOperation* opFromPool = iCommandPool->Get( aCommandId ); - CVtEngOperation* op = opFromPool; - if ( op == NULL ) - { - op = CVtEngOperation::NewL( aCommandId, iHandlers, *this ); - CleanupStack::PushL( op ); - } - - switch ( aCommandId ) - { - case KVtEngInitializeEngine: - case KVtEngInitializeEngineTest: - case KVtEngInitializeEngineDiag: - case KVtEngResetEngine: - case KVtEngTerminateSession: - case KVtEngStartViewFinder: - case KVtEngStopViewFinder: - case KVtEngStartRenderRemote: - case KVtEngStopRenderRemote: - case KVtEngPauseRenderRemote: - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - case KVtEngStopDtmfTone: - case KVtEngRequestLastRemoteFrame: - // Handling of different UIIs - case KVtEngSetUIIDtmfSupport: - case KVtEngSetUIIBasicStringSupport: - case KVtEngSetUIIIA5StringSupport: - case KVtEngSetUIIGeneralStringSupport: - case KVtEngFreeze: - case KVtEngUnfreeze: - case KVtEngHandleLayoutChange: - - // Media object sharing (no parameters ) - case KVtEngStartShareImage: - case KVtEngStopShareImage: - op->ExecuteL( NULL ); - break; - // Media - case KVtEngSetUIForeground: - case KVtEngPrepareCamera: - case KVtEngPrepareViewFinder: - case KVtEngPrepareViewFinderDSA: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareViewFinderDP: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngSetSource: - case KVtEngSetZoomStep: - case KVtEngSetAudioRouting: - case KVtEngSetAudioVolume: - case KVtEngIncreaseAudioVolume: - case KVtEngDecreaseAudioVolume: - case KVtEngSendDtmf: - case KVtEngStartDtmfTone: - case KVtEngSetVideoQuality: - case KVtEngSwitchToVoice: - // Extension commands - case KVtEngSetContrast: - case KVtEngSetBrightness: - case KVtEngSetWhiteBalance: - case KVtEngSetColorTone: -#if defined ( RD_VT_RTF ) - case KVtEngStartRecord: - case KVtEngStopRecord: -#endif - // Media object sharing (with parameters ) - case KVtEngInitializeShareImage: - // Flow through, ok to execute - op->ExecuteL( aParams ); - break; - default: - User::Leave( KErrNotSupported ); - } - if ( opFromPool == NULL ) - { - CleanupStack::Pop( ); // op (deletes itself) - } - CVtEngStateManager* states = CVtEngUtility::StateManager(); - states->Update(); - __VTPRINTEXIT( "CmdHlr.ExecuteL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CancelCommand -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngCommandHandler::CancelCommand( const TVtEngCommandId aCommandId ) - { - __VTPRINTENTER( "CmdHlr.CancelCommand" ) - - __VTPRINT2( DEBUG_GEN, "ComHlr.Cancel cmd=%d", aCommandId ) - TInt err( KErrGeneral ); - if ( iActiveOp && - iActiveOp->Command() == aCommandId && - aCommandId != KVtEngResetEngine && - aCommandId != KVtEngInitializeEngineTest && - aCommandId != KVtEngInitializeEngineDiag) - { - iActiveOp->Cancel(); - err = KErrNone; - } - __VTPRINT2( DEBUG_GEN | DEBUG_DETAIL, "ComHlr.Cancel res=%d",err ) - __VTPRINTEXIT( "CmdHlr.CancelCommand" ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::GetCommandCaps -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngCommandHandler::GetCommandCaps( - const TVtEngCommandId aCommand ) - { - TInt caps( 0 ); - CheckAsynchronity( aCommand, caps ); - CheckSupport( aCommand, caps ); - CheckState( aCommand, caps ); - return caps; - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::PendingCommand -// -// ----------------------------------------------------------------------------- -// -TVtEngCommandId CVtEngCommandHandler::PendingCommand() - { - if ( iActiveOp ) - { - return iActiveOp->Command(); - } - return KVtEngCommandNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::AddObserverL -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::AddObserverL( - MVtEngCommandObserver& aObserver ) - { - User::LeaveIfError( iObservers.Append( &aObserver ) ); - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::RemoveObserver -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::RemoveObserver( - MVtEngCommandObserver& aObserver ) - { - const TInt pos( iObservers.Find( &aObserver ) ); - if ( pos >= 0 ) - { - iObservers.Remove( pos ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CommandCompleteL -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::CommandCompleteL( - const TVtEngCommandId aCommand, - const TInt aResult ) - { - __VTPRINTENTER( "CmdHlr.CommandCompleteL" ) - __VTPRINT3( DEBUG_GEN, " completed cmd=%d,res=%d", aCommand, aResult ) - TInt count( iObservers.Count() ); - while ( count-- ) - { - MVtEngCommandObserver* observer = iObservers[ count ]; - observer->HandleVTCommandPerformedL( aCommand, aResult ); - } - __VTPRINTEXIT( "CmdHlr.CommandCompleteL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::SetOperation -// Sets active operation -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::SetOperation( CVtEngOperation* aActiveOp ) - { - iActiveOp = aActiveOp; - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::AddToPoolL -// Adds a command to command pool. Only commands without parameters and -// that don't delete themselfs can currently be added. -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::AddToPoolL( TVtEngCommandId aCommand ) - { - CVtEngOperation* op = CVtEngOperation::NewL( - aCommand, iHandlers, *this, EFalse ); - CleanupStack::PushL( op ); - iCommandPool->AppendL( op ); - CleanupStack::Pop(); // op - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::ValidateL -// Checks if command can be performed. -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::ValidateL( - const TVtEngCommandId aCommandId, - TDesC8* /*aParams*/ ) - { - // check if async command is already pending and new - // command is async - TInt caps( 0 ); - CheckState( aCommandId, caps ); - if ( !(caps & EAttribEnabled ) ) - { - User::Leave( KErrNotReady ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CheckAsynchronity -// Checks if command is async -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::CheckAsynchronity( - const TVtEngCommandId aCommandId, - TInt& aCaps ) - { - switch ( aCommandId ) - { - case KVtEngInitializeEngine: - case KVtEngInitializeEngineTest: - case KVtEngInitializeEngineDiag: - case KVtEngResetEngine: - case KVtEngTerminateSession: - case KVtEngSetSource: - case KVtEngPrepareCamera: - case KVtEngSetAudioRouting: - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - case KVtEngSetAudioVolume: - case KVtEngHandleLayoutChange: - case KVtEngUnfreeze: - - // Media object sharing - case KVtEngInitializeShareImage: - case KVtEngStartShareImage: - case KVtEngStopShareImage: - case KVtEngSwitchToVoice: - aCaps |= EAttribAsync; - break; - default: - aCaps &= (~EAttribAsync); - break; - } - __VTPRINT3( DEBUG_GEN | DEBUG_RETURN, "ComHlr:capsA cmd=%d,caps=%d", aCommandId, aCaps ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CheckSupport -// Checks if command is supported -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::CheckSupport( - const TVtEngCommandId aCommandId, - TInt& aCaps ) - { - switch ( aCommandId ) - { - case KVtEngInitializeEngine: - case KVtEngInitializeEngineTest: - case KVtEngInitializeEngineDiag: - case KVtEngResetEngine: - case KVtEngTerminateSession: - case KVtEngStartViewFinder: - case KVtEngStopViewFinder: - case KVtEngPrepareViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngStartRenderRemote: - case KVtEngStopRenderRemote: - case KVtEngSetAudioRouting: - case KVtEngSetAudioVolume: - case KVtEngIncreaseAudioVolume: - case KVtEngDecreaseAudioVolume: - case KVtEngPauseRenderRemote: - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - case KVtEngSetSource: - case KVtEngPrepareCamera: - case KVtEngStartDtmfTone: - case KVtEngStopDtmfTone: - case KVtEngFreeze: - case KVtEngUnfreeze: - case KVtEngSetVideoQuality: - case KVtEngHandleLayoutChange: - // Handling of different UIIs, support is there - case KVtEngSetUIIDtmfSupport: - case KVtEngSetUIIBasicStringSupport: - case KVtEngSetUIIIA5StringSupport: - case KVtEngSetUIIGeneralStringSupport: - case KVtEngSetUIForeground: - case KVtEngRequestLastRemoteFrame: - - // Media object sharing - case KVtEngInitializeShareImage: - case KVtEngStartShareImage: - case KVtEngStopShareImage: - case KVtEngSwitchToVoice: - aCaps |= EAttribSupported; - break; - - // Extension commands - case KVtEngSetContrast: - case KVtEngSetBrightness: - case KVtEngSetWhiteBalance: - case KVtEngSetColorTone: -#if defined ( RD_VT_RTF ) - case KVtEngStartRecord: - case KVtEngStopRecord: -#endif - aCaps |= EAttribSupported; - break; - - default: - aCaps &= (~EAttribSupported); - __VTPRINT( DEBUG_GEN, "ComHlr.NOT SUPPORTED" ) - break; - } - __VTPRINT3( DEBUG_GEN | DEBUG_DETAIL, " capsSupport cmd=%d,caps=%d", aCommandId, aCaps ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CheckState -// Checks if command is possible in current state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngCommandHandler::CheckState( - const TVtEngCommandId aCommandId, - TInt& aCaps ) - { - aCaps &= (~EAttribEnabled); - if ( !(iActiveOp && ( aCaps & EAttribAsync ) ) ) - { - const CVtEngStateManager* states = CVtEngUtility::StateManager(); - if ( states->IsCommandPossible( aCommandId ) ) - { - aCaps |= EAttribEnabled; - } -#ifdef VTDEBUG - else - { - __VTPRINT( DEBUG_GEN, "ComHlr.ChkState INVALID" ) - } -#endif // VTDEBUG - } - __VTPRINT3( DEBUG_GEN | DEBUG_DETAIL, " capsState cmd=%d,caps=%d", aCommandId, aCaps ) - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CVtEngCmdPool::CVtEngCmdPool -// C++ constructor -// -// ----------------------------------------------------------------------------- -// -CVtEngCommandHandler::CVtEngCmdPool::CVtEngCmdPool( TInt aGranularity ) : - CArrayPtrFlat( aGranularity ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CVtEngCmdPool::CVtEngCmdPool -// Destructor - deletes operations in the pool. -// -// ----------------------------------------------------------------------------- -// -CVtEngCommandHandler::CVtEngCmdPool::~CVtEngCmdPool( ) - { - ResetAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CVtEngCommandHandler::CVtEngCmdPool::Get -// Returns pointer to an operation in the pool. -// -// ----------------------------------------------------------------------------- -// -CVtEngOperation* CVtEngCommandHandler::CVtEngCmdPool::Get( - const TVtEngCommandId aId ) - { - TInt count( Count() ); - CVtEngOperation* ret = NULL; - while ( count-- ) - { - CVtEngOperation* op = At( count ); - if ( op->Command() == aId ) - { - ret = op; - count = 0; // break - } - } - return ret; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Commands/CVtEngOperation.cpp --- a/vtengines/videoteleng/Src/Commands/CVtEngOperation.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,333 +0,0 @@ -/* -* 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: Operation base class implementation. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngOperation.h" -#include "CVtEngCommandHandler.h" -#include "TVtEngOperationUtils.h" -#include "VtEngUtils.h" -#include "cvtengmdtrcommandsender.h" -#include "cvtlogger.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngOperation::NewL -// Symbian two-phase constructor -// -// ----------------------------------------------------------------------------- -// -CVtEngOperation* CVtEngOperation::NewL( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete ) - { - CVtEngOperation* self = new ( ELeave ) - CVtEngOperation( aCommandId, aHandlers, aObserver, aDelete ); - - CleanupStack::PushL( self ); - self->iAsyncCallback = new ( ELeave ) - CAsyncCallBack( CActive::EPriorityStandard ); - self->iAsyncCallback->Set( TCallBack( ASyncHandleOpComplete, self ) ); - - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::CVtEngOperation -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngOperation::CVtEngOperation( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete ) : - iCommand( aCommandId ), - iHandlers( aHandlers ), - iObserver( aObserver ), - iDelete( aDelete ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::~CVtEngOperation -// Destructor -// -// ----------------------------------------------------------------------------- -// -CVtEngOperation::~CVtEngOperation() - { - Cancel(); - delete iAsyncCallback; - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::HandleOpCompleteL -// Destructor -// -// ----------------------------------------------------------------------------- -// -void CVtEngOperation::HandleOpComplete( const TInt aResult ) - { - __VTPRINTENTER( "EngOp.HandleOpComplete" ) - iObserver.SetOperation( NULL ); - CVtEngMdtrCommandSender& mediatorSender = - CVtEngUtility::EngineUtils()->MediatorCommands(); - switch( iCommand ) - { - case KVtEngTerminateSession: - // send mediator command to telephony for call release - mediatorSender.EndCall(); - break; - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - // notify telephony subsystems about new microphone state - mediatorSender.NotifyOutgoingAudioState( - iCommand == KVtEngUnmuteOutgoingAudio ); - break; - default: - break; - } -#ifdef VTDEBUG - TRAPD( err, iObserver.CommandCompleteL( iCommand, aResult ) ); - __VTPRINT2( DEBUG_GEN, "EngOp.Complete err=", err ) -#else - TRAP_IGNORE( iObserver.CommandCompleteL( iCommand, aResult ) ); -#endif // VTDEBUG - if ( iDelete ) - { - delete this; - } - __VTPRINTEXITR( "EngOp.HandleOpComplete %d", aResult ) - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::ASyncHandleOpComplete -// Destructor -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngOperation::ASyncHandleOpComplete( TAny* aPtr ) - { - __VTPRINTENTER( "EngOp.ASyncHandleOpComplete" ) - CVtEngOperation* self = reinterpret_cast< CVtEngOperation* >( aPtr ); - TInt error( self->iAsyncErr ); - self->iAsyncErr = KErrNone; - self->HandleOpComplete( error ); - __VTPRINTEXIT( "EngOp.ASyncHandleOpComplete" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::ExecuteL -// Destructor -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngOperation::ExecuteL( TDesC8* aParams ) - { - __VTPRINTENTER( "EngOp.ExecuteL" ) - TBool complete( EFalse ); - - // Offer for synchronous handling. - TRAPD( err, complete = OfferExecuteSyncL( aParams ) ); -#ifdef VTDEBUG - if ( err < KErrNone ) - { - __VTPRINT2( DEBUG_GEN, "EngOp.ExecuteL LEAVE = %d", err ) - } -#endif - User::LeaveIfError( err ); - if ( !complete ) - { - // async request - switch ( iCommand ) - { - case KVtEngResetEngine: - case KVtEngInitializeEngine: - case KVtEngInitializeEngineTest: - case KVtEngInitializeEngineDiag: - case KVtEngTerminateSession: - case KVtEngSwitchToVoice: - TVtEngEngineInitUtil::HandleL( *this, iHandlers ); - break; - - case KVtEngSetSource: - case KVtEngPrepareCamera: - case KVtEngStartViewFinder: - case KVtEngPauseViewFinder: - case KVtEngStopViewFinder: - case KVtEngStartRenderRemote: - case KVtEngStopRenderRemote: - case KVtEngHandleLayoutChange: - case KVtEngUnfreeze: - - // Media object sharing - case KVtEngStopShareImage: - TVtEngRenderUtil::HandleL( *this, iHandlers ); - break; - - // Media object sharing - // These two commands must be trapped and completed without leave - // because Application UI has to be able to act according to error. - case KVtEngInitializeShareImage: - case KVtEngStartShareImage: - TRAP( err, TVtEngRenderUtil::HandleL( *this, iHandlers ) ); - break; - - case KVtEngSetAudioRouting: - TVtEngAudioRoutingUtil::HandleL( *this ); - break; - - case KVtEngSetAudioVolume: - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - TVtEngAudioPlaybackUtil::HandleL( *this, iHandlers ); - break; - default: - __VTPRINT( DEBUG_GEN, "EngOp.ExecuteL not handled" ) - break; - } - - iObserver.SetOperation( this ); - - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_GEN, "EngOp.ExecuteL completing command %d", err ) - iAsyncErr = err; - iAsyncCallback->CallBack(); - } - } - else if ( iDelete ) - { - delete this; - } - __VTPRINTEXITR( "EngOp.ExecuteL %d", complete ) - return complete; - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::Cancel -// Cancels operation. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngOperation::Cancel() - { - __VTPRINTENTER( "EngOp.Cancel") - __VTPRINT2( DEBUG_GEN, "Command id = %d", iCommand) - switch ( iCommand ) - { - case KVtEngInitializeEngine: - //TVtEngEngineInitUtil::Cancel( *this ); - break; - case KVtEngInitializeShareImage: - TVtEngRenderUtil::Cancel( *this ,iHandlers); - break; - default: - break; - } - __VTPRINTEXIT( "EngOp.Cancel" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CVtEngOperation::OfferExecuteSyncL -// -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngOperation::OfferExecuteSyncL( TDesC8* aParams ) - { - __VTPRINTENTER( "EngOp.OfferExecuteSyncL" ) - TBool complete( EFalse ); - iParams = aParams; // reset back to null in ExecuteL - // test - - switch ( iCommand ) - { - case KVtEngIncreaseAudioVolume: - case KVtEngDecreaseAudioVolume: - TVtEngAudioPlaybackUtil::HandleL( *this, iHandlers ); - complete = ETrue; - break; - case KVtEngPrepareViewFinder: - case KVtEngPrepareViewFinderDSA: - case KVtEngPrepareViewFinderDP: - case KVtEngStartViewFinder: - case KVtEngPauseViewFinder: - case KVtEngStopViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngStartRenderRemote: - case KVtEngStopRenderRemote: - case KVtEngPauseRenderRemote: - case KVtEngSetZoomStep: - case KVtEngFreeze: - TVtEngViewFinderConfigureUtil::HandleL( *this, iHandlers ); - complete = ETrue; - break; - case KVtEngPrepareRemoteRender: - break; - case KVtEngStartDtmfTone: - case KVtEngStopDtmfTone: - // Handling of different UIIs, support is there - case KVtEngSetUIIDtmfSupport: - case KVtEngSetUIIBasicStringSupport: - case KVtEngSetUIIIA5StringSupport: - case KVtEngSetUIIGeneralStringSupport: - - TVtEngMediaTransportUtil::HandleL( *this, iHandlers ); - complete = ETrue; - break; - - case KVtEngSetUIForeground: - case KVtEngSetVideoQuality: - case KVtEngRequestLastRemoteFrame: - TVtEngRenderUtil::HandleL( *this, iHandlers ); - complete = ETrue; - break; - - // Extension commands - case KVtEngSetContrast: - case KVtEngSetBrightness: - case KVtEngSetWhiteBalance: - case KVtEngSetColorTone: -#if defined ( RD_VT_RTF ) - case KVtEngStartRecord: - case KVtEngStopRecord: -#endif - TVtEngExtensionUtil::HandleL( *this ); - complete = ETrue; - break; - - default: - __VTPRINT( DEBUG_GEN, "EngOp.ExecuteL not handled sync" ) - break; - } - __VTPRINTEXITR( "EngOp.OfferExecuteSyncL %d", complete ) - return complete; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Commands/TVtEngOperationUtils.cpp --- a/vtengines/videoteleng/Src/Commands/TVtEngOperationUtils.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* 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: Handler utilities implementation. -* -*/ - - - -// INCLUDE FILES -#include "TVtEngOperationUtils.h" -#include "VtEngPanic.h" -#include "CVtEngInitializer.h" -#include "VtEngUtils.h" -#include "CVtEngOperation.h" -#include "CVtEngHandlerContainer.h" -#include "CVtEngMediaHandler.h" -#include "CVtEngAudioHandler.h" -#include "CVtEngSessionHandler.h" -#include "CVtEngStateManager.h" -#include "CVtEngSettings.h" -#include "cvtengmdtrcommandsender.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtEngRenderUtil::HandleL -// unpacks and handles a rendering command -// -// ----------------------------------------------------------------------------- -// -void TVtEngRenderUtil::HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ) - { - CVtEngMediaHandler& media = - static_cast( aHandlers.Media() ); - - media.HandleL( aOperation ); - } - -// ----------------------------------------------------------------------------- -// TVtEngRenderUtil::Cancel -// cancel the specify pending command -// -// ----------------------------------------------------------------------------- -// - -void TVtEngRenderUtil::Cancel( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ) - { - const TVtEngCommandId id = aOperation.Command(); - __VTPRINTENTER( "TVtEngRenderUtil.Cancel") - __VTPRINT2( DEBUG_GEN, "Command id = %d", id) - if ( id == KVtEngInitializeShareImage ) - { - CVtEngMediaHandler& media = - static_cast( aHandlers.Media() ); - - media.CancelInitializeShareImage(); - } - __VTPRINTEXIT( "TVtEngRenderUtil.Cancel") - } -// ----------------------------------------------------------------------------- -// TVtEngAudioRoutingUtil::HandleL -// unpacks and handles audio routing command. -// -// ----------------------------------------------------------------------------- -// - -void TVtEngAudioRoutingUtil::HandleL( - CVtEngOperation& aOperation ) - { - CVtEngUtility::StateManager()->HandleOperationL( aOperation ); - } - -// ----------------------------------------------------------------------------- -// TVtEngAudioPlaybackUtil::HandleL -// unpacks and handles audio playback command. -// -// ----------------------------------------------------------------------------- -// -void TVtEngAudioPlaybackUtil::HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ) - { - __VTPRINTENTER( "AudioPlaybackUtil.HandleL" ) - if ( aOperation.Command() == KVtEngSetAudioVolume ) - { - CVtEngSettings& settings = CVtEngUtility::Settings(); - const TPckgC& pckg = - static_cast&> - ( *aOperation.Parameters() ); - - settings.SetVolume( pckg().iHandsetVolume, pckg().iHandsfreeVolume, - ETrue ); - } - - // All the commands are though passed to handler - CVtEngMediaHandler& media = - static_cast( aHandlers.Media() ); - __VTPRINT( DEBUG_DETAIL, "TVtEngAudioPlaybackUtil::HandleL:Handler fetched") - - media.HandleL( aOperation ); - __VTPRINTEXIT( "AudioPlaybackUtil.HandleL" ) - } - -// ----------------------------------------------------------------------------- -// TVtEngMediaTransportUtil::HandleL -// unpacks and handles media transport command. -// -// ----------------------------------------------------------------------------- -// -void TVtEngMediaTransportUtil::HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ) - { - __VTPRINTENTER( "MediaTransportUtil.HandleL" ) - const TVtEngCommandId command( aOperation.Command() ); - if ( command == KVtEngStopDtmfTone || - command == KVtEngStartDtmfTone || - // DTMF commands - command == KVtEngSetUIIDtmfSupport || - command == KVtEngSetUIIBasicStringSupport || - command == KVtEngSetUIIIA5StringSupport || - command == KVtEngSetUIIGeneralStringSupport ) - { - aHandlers.Dtmf().HandleL( aOperation ); - } - - __VTPRINTEXIT( "MediaTransportUtil.HandleL" ) - } - -// ----------------------------------------------------------------------------- -// TVtEngViewFinderConfigureUtil::HandleL -// unpacks and handles -// -// ----------------------------------------------------------------------------- -// -void TVtEngViewFinderConfigureUtil::HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& aHandlers ) - { - CVtEngMediaHandler& media = - static_cast( aHandlers.Media() ); - - media.HandleL( aOperation ); - } - -// ----------------------------------------------------------------------------- -// TVtEngCameraConfigUtil::HandleL -// unpacks and handles -// -// ----------------------------------------------------------------------------- -// -void TVtEngCameraConfigUtil::HandleL( - CVtEngOperation& /*aOperation*/, - CVtEngHandlerContainer& /*aHandlers*/ ) - { - } - -// ----------------------------------------------------------------------------- -// TVtEngEngineInitUtil::HandleL -// Handles engine initialization and uninitialization command. -// -// ----------------------------------------------------------------------------- -// -void TVtEngEngineInitUtil::HandleL( - CVtEngOperation& aOperation, - CVtEngHandlerContainer& /* aHandlers */ ) - { - __VTPRINTENTER( "EngineInitUtil.HandleL" ) - const TVtEngCommandId id = aOperation.Command(); - - CVtEngInitializer& initializer = - CVtEngUtility::EngineUtils()->Initializer(); - - switch ( id ) - { - case KVtEngInitializeEngine: - case KVtEngInitializeEngineDiag: - case KVtEngInitializeEngineTest: - initializer.InitializeL( aOperation ); - break; - case KVtEngResetEngine: - initializer.Uninitialize( aOperation ); - break; - case KVtEngTerminateSession: - CVtEngUtility::StateManager()->HandleOperationL( aOperation ); - break; - case KVtEngSwitchToVoice: - CVtEngUtility::MediatorCommands().SwitchToVoiceL( aOperation ); - break; - default: - Panic( EVtEngPanicIncorrectUtility ); - break; - } - __VTPRINTEXIT( "EngineInitUtil.HandleL" ) - } - -void TVtEngEngineInitUtil::Cancel( CVtEngOperation& aOperation ) - { - const TVtEngCommandId id = aOperation.Command(); - if ( id == KVtEngInitializeEngine ) - { - CVtEngInitializer& initializer = - CVtEngUtility::EngineUtils()->Initializer(); - initializer.CancelInit(); - } - } - -// ----------------------------------------------------------------------------- -// TVtEngExtensionUtil::HandleL -// handles extension operations. -// -// ----------------------------------------------------------------------------- -// -void TVtEngExtensionUtil::HandleL( - CVtEngOperation& aOperation ) - { - CVtEngUtility::StateManager()->HandleOperationL( aOperation ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Commands/cvtenginternaloperation.cpp --- a/vtengines/videoteleng/Src/Commands/cvtenginternaloperation.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* Copyright (c) 2008 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: Internal operation class implementation -* -*/ - - -// INCLUDE FILES -#include "cvtenginternaloperation.h" -#include "mvtengoperationobserver.h" -#include "CVtEngStateManager.h" -#include "TVtEngOperationUtils.h" -#include "VtEngUtils.h" -#include "cvtlogger.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngOperation::NewL -// Symbian two-phase constructor -// -// ----------------------------------------------------------------------------- -// -CVtEngInternalOperation* CVtEngInternalOperation::NewL( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete ) - { - __VTPRINTENTER( "CVtEngInternalOperation.NewL<" ) - CVtEngInternalOperation* self = new ( ELeave ) - CVtEngInternalOperation( aCommandId, aHandlers, aObserver, aDelete ); - __VTPRINTEXIT( "CVtEngInternalOperation.NewL>" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngInternalOperation::CVtEngInternalOperation -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngInternalOperation::CVtEngInternalOperation( - TVtEngCommandId aCommandId, - CVtEngHandlerContainer& aHandlers, - MVtEngOperationObserver& aObserver, - TBool aDelete ) : CVtEngOperation( aCommandId, aHandlers, aObserver, - aDelete ) - { - __VTPRINTENTER( "CVtEngInternalOperation.CVtEngInternalOperation" ) - __VTPRINTEXIT( "CVtEngInternalOperation.CVtEngInternalOperation" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInternalOperation::~CVtEngInternalOperation -// Destructor -// -// ----------------------------------------------------------------------------- -// -CVtEngInternalOperation::~CVtEngInternalOperation() - { - __VTPRINTENTER( "CVtEngInternalOperation.~" ) - __VTPRINTEXIT( "CVtEngInternalOperation.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngInternalOperation::HandleOpCompleteL -// Destructor -// -// ----------------------------------------------------------------------------- -// -void CVtEngInternalOperation::HandleOpComplete( const TInt aResult ) - { - __VTPRINTENTER( "CVtEngInternalOperation.HandleOpComplete" ) - #ifdef VTDEBUG - TRAPD( err, iObserver.CommandCompleteL( iCommand, aResult ) ); - __VTPRINT2( DEBUG_GEN, "EngOp.Complete err=", err ) -#else - TRAP_IGNORE( iObserver.CommandCompleteL( iCommand, aResult ) ); -#endif // VTDEBUG - if ( iDelete ) - { - delete this; - } - __VTPRINTEXITR( "CVtEngInternalOperation.HandleOpComplete %d>", aResult ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// CVtEngInternalOperation::ExecuteL -// Destructor -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngInternalOperation::ExecuteL() - { - __VTPRINTENTER( "CVtEngInternalOperation.ExecuteL" ) - const CVtEngStateManager* states = CVtEngUtility::StateManager(); - TInt err( KErrNotReady ); - if ( states->IsCommandPossible( iCommand ) ) - { - err = KErrNone; - switch ( iCommand ) - { - case KVtEngTerminateSession: - TVtEngEngineInitUtil::HandleL( *this, iHandlers ); - break; - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - TVtEngAudioPlaybackUtil::HandleL( *this, iHandlers ); - break; - default: - __VTPRINT( DEBUG_GEN, "EngOp.ExecuteL not handled" ) - err = KErrNotSupported; - break; - } - } - User::LeaveIfError( err ); - __VTPRINTEXIT( "CVtEngInternalOperation.ExecuteL" ) - return EFalse; - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Extensions/CVtEngCameraPreferences.cpp --- a/vtengines/videoteleng/Src/Extensions/CVtEngCameraPreferences.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,437 +0,0 @@ -/* -* 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: Videoteleng Camera Preferences extension -* -*/ - - -// INCLUDE FILES -#include "CVtEngCameraPreferences.h" -#include "VtEngPanic.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "mvtengcamerapreferencesobserver.h" - -#include -#include - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::CVtEngCameraPreferences -// C++ constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -// -CVtEngCameraPreferences::CVtEngCameraPreferences(): - CVtEngExtensionBase( - KVtEngExtensionCameraPreferences ) - { - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::ConstructL -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CVtEngCameraPreferences::ConstructL() - { - __VTPRINTENTER( "CVtEngCameraPreferences.ConstructL" ) - __VTPRINTEXIT( "CVtEngCameraPreferences.ConstructL" ) - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::NewL -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CVtEngCameraPreferences* CVtEngCameraPreferences::NewL() - { - CVtEngCameraPreferences* self = new( ELeave ) CVtEngCameraPreferences; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::~CVtEngCameraPreferences -// Destructor. Cannot leave. -// ---------------------------------------------------------------------------- -// -CVtEngCameraPreferences::~CVtEngCameraPreferences() - { - __VTPRINTENTER( "CameraPreferences.~" ) - if ( iObserver ) - { - iObserver->Detach( *this ); - } - __VTPRINTEXIT( "CameraPreferences.~" ) - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetInterface -// -// ---------------------------------------------------------------------------- -// -TAny* CVtEngCameraPreferences::GetInterface() - { - __VTPRINTENTER( "CameraPreferences.GetInterface") - // Cast first as API MVtEngCameraPreferences* class - // and after that to TAny* - __VTPRINTEXIT( "CameraPreferences.GetInterface" ) - return reinterpret_cast< TAny* >( ( MVtEngCameraPreferences* ) this ); - - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::HandleL -// -// ---------------------------------------------------------------------------- -// -TBool CVtEngCameraPreferences::HandleL( CVtEngOperation* aOp ) - { - __VTPRINTENTER( "CameraPreferences.HandleL" ) - const TVtEngCommandId id( aOp->Command() ); - __VTPRINT2( DEBUG_GEN, "CVtEngCameraPreferences.HandleL CMD ID[%d] ", id ) - - // Check provider - if ( iProvider == NULL ) - { - __VTPRINTEXITR( "CVtEngCameraPreferences.HandleL iProvider [%d]", - ( TInt )iProvider ) - User::Leave( KErrNotReady ); - } - // Check which command and call - // active provider with operation params - switch ( id ) - { - case KVtEngSetContrast: - { - TInt contrast = 0; - TVtEngOpParamUtil< TInt >::Set( contrast, *aOp ); - iProvider->SetContrastL( contrast ); - if ( iObserver ) - { - iObserver->ContrastUpdated( contrast ); - } - break; - } - case KVtEngSetBrightness: - { - TInt brightness = 0; - TVtEngOpParamUtil< TInt >::Set( brightness, *aOp ); - iProvider->SetBrightnessL( brightness ); - if ( iObserver ) - { - iObserver->BrightnessUpdated( brightness ); - } - break; - } - case KVtEngSetWhiteBalance: - { - CCamera::TWhiteBalance whitebalance = CCamera::EWBAuto; - TVtEngOpParamUtil< CCamera::TWhiteBalance >::Set( whitebalance, - *aOp ); - iProvider->SetWhiteBalanceL( whitebalance ); - if ( iObserver ) - { - iObserver->WhiteBalanceUpdated( TWhiteBalance( whitebalance ) ); - } - break; - } - case KVtEngSetColorTone: - { - CCamera::CCameraImageProcessing::TEffect colortone = - CCamera::CCameraImageProcessing::EEffectNone; - TVtEngOpParamUtil< CCamera::CCameraImageProcessing::TEffect >::Set( - colortone, *aOp ); - iProvider->SetColorToneL( colortone ); - if ( iObserver ) - { - iObserver->ColorToneUpdated( TColorTone( colortone ) ); - } - break; - } - //Not supported command - default: - __VTPRINTEXITR( - "CVtEngCameraPreferences.HandleL NOT SUPPORTED CMD[%d]", id ) - return EFalse; - } - __VTPRINTEXIT( "CameraPreferences.HandleL" ) - return ETrue; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::ValidateCommand -// -// ---------------------------------------------------------------------------- - -TBool CVtEngCameraPreferences::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINTENTER( "CameraPreferences.ValidateCommand" ) - // Check provider - if ( iProvider == NULL ) - { - __VTPRINTEXITR( - "CVtEngCameraPreferences.ValidateCommand iProvider [%d]", - ( TInt ) iProvider) - return EFalse; - } - // Take provider info is needed down below - TVSDataProviderInfo info; - iProvider->ProviderInfo( info ); - - // local or hw support - // set as False - TBool hworlocalsupport = EFalse; - - // Check which command and check if - // if provider and local variation supports - __VTPRINT2( DEBUG_GEN, - "CVtEngCameraPreferences.ValidateCommand CMD ID[%d] ", aCommandId ) - switch ( aCommandId ) - { - case KVtEngSetContrast: - { - if ( info.iOptionsSupported & TCameraInfo::EContrastSupported ) - { - hworlocalsupport = ETrue; - } - break; - } - case KVtEngSetBrightness: - { - if ( info.iOptionsSupported & TCameraInfo::EBrightnessSupported ) - { - hworlocalsupport = ETrue; - } - break; - } - case KVtEngSetWhiteBalance: - { - if ( info.iWhiteBalanceModesSupported != CCamera::EWBAuto ) - { - hworlocalsupport = ETrue; - } - break; - } - case KVtEngSetColorTone: - { - if ( info.iSupportedColorTones != - CCamera::CCameraImageProcessing::EEffectNone ) - { - hworlocalsupport = ETrue; - } - break; - } - // Not supported command - default: - { - __VTPRINT2( DEBUG_GEN, - "CVtEngCameraPreferences.ValidateCommand NOT SUPPORTED CMD[%d]", - aCommandId) - hworlocalsupport = EFalse; - } - } - __VTPRINTEXITR( "CVtEngCameraPreferences.ValidateCommand return value[%d]", - hworlocalsupport) - return hworlocalsupport; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetColorTone -// -// ---------------------------------------------------------------------------- -// -TInt CVtEngCameraPreferences::GetColorTone( - MVtEngCameraPreferences::TColorTone& aColortone ) const - { - __VTPRINTENTER( "CameraPreferences.GetColorTone" ) - if ( iProvider == NULL ) - { - __VTPRINTEXITR( "CVtEngCameraPreferences.GetColorTone iProvider[%d]", - ( TInt )iProvider) - return KErrNotReady; - } - TInt error; - CCamera::CCameraImageProcessing::TEffect colortone; - error = iProvider->GetColorTone( colortone ); - aColortone = ( MVtEngCameraPreferences::TColorTone ) colortone; - __VTPRINTEXITR( "CameraPreferences.GetColorTone error [%d]",error ) - return error; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetSupportedColorTones -// -// ---------------------------------------------------------------------------- -// -TInt CVtEngCameraPreferences::GetSupportedColorTones( - TUint32& aSupportedColorTones ) const - { - __VTPRINTENTER( "CameraPreferences.GetSupportedColorTones" ) - if ( iProvider == NULL ) - { - __VTPRINTEXITR( - "CVtEngCameraPreferences.GetSupportedColorTones iProvider[%d]", - ( TInt )iProvider) - return KErrNotReady; - } - - TVSDataProviderInfo info; - iProvider->ProviderInfo( info ); - aSupportedColorTones = info.iSupportedColorTones; - __VTPRINTEXITR( "CameraPreferences.GetSupportedColorTones [%b]", - info.iSupportedColorTones) - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetWhiteBalance -// -// ---------------------------------------------------------------------------- -// -TInt CVtEngCameraPreferences::GetWhiteBalance( - MVtEngCameraPreferences::TWhiteBalance& aWhiteBalance ) const - { - __VTPRINTENTER( "CameraPreferences.GetWhiteBalance" ) - if ( iProvider == NULL ) - { - __VTPRINTEXITR( - "CVtEngCameraPreferences.GetWhiteBalance iProvider [%d]", - ( TInt )iProvider ) - return KErrNotReady; - } - TInt error; - CCamera::TWhiteBalance whitebalance; - error = iProvider->GetWhiteBalance( whitebalance ); - aWhiteBalance = (MVtEngCameraPreferences::TWhiteBalance) whitebalance; - __VTPRINTEXITR( "CameraPreferences.GetWhiteBalance error [%d]",error ) - return error; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetSupportedWhiteBalanceModes -// -// ---------------------------------------------------------------------------- -// -TInt CVtEngCameraPreferences::GetSupportedWhiteBalanceModes( - TUint32& aWhiteBalance ) const - { - __VTPRINTENTER( "CameraPreferences.GetSupportedWhiteBalanceModes" ) - if ( iProvider == NULL ) - { - __VTPRINTEXITR( - "CVtEngCameraPreferences.GetSupportedWhiteBalanceModes iProvider [%d]", - ( TInt )iProvider) - return KErrNotReady; - } - - TVSDataProviderInfo info; - iProvider->ProviderInfo( info ); - aWhiteBalance = info.iWhiteBalanceModesSupported; - __VTPRINTEXITR( "CameraPreferences.GetSupportedWhiteBalanceModes [%b]", - info.iWhiteBalanceModesSupported) - return KErrNone; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetBrightness -// -// ---------------------------------------------------------------------------- -// -TInt CVtEngCameraPreferences::GetBrightness( TInt& aBrightness ) const - { - __VTPRINTENTER( "CameraPreferences.GetBrightness" ) - if ( iProvider == NULL ) - { - __VTPRINTEXITR( "CVtEngCameraPreferences.GetBrightness iProvider [%d]", - ( TInt )iProvider) - - return KErrNotReady; - } - TInt error; - error = iProvider->GetBrightness( aBrightness ); - __VTPRINTEXITR( "CameraPreferences.GetBrightness error [%d]",error ) - return error; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::GetContrast -// -// ---------------------------------------------------------------------------- -// -TInt CVtEngCameraPreferences::GetContrast( TInt& aContrast ) const - { - __VTPRINTENTER( "CameraPreferences.GetContrast" ) - if ( iProvider == NULL ) - { - __VTPRINTEXITR( "CVtEngCameraPreferences.GetContrast iProvider [%d]", - ( TInt )iProvider) - return KErrNotReady; - } - TInt error; - error = iProvider->GetContrast( aContrast ); - __VTPRINTEXITR( "CameraPreferences.GetContrast error [%d]",error ) - - return error; - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::SetProvider -// -// ---------------------------------------------------------------------------- -// -void CVtEngCameraPreferences::SetProvider( CVSDataProvider* aProvider, - MVtEngCameraPreferencesObserver& aObserver ) - { - __VTPRINTENTER( "CameraPreferences.SetProvider" ) - if ( iObserver ) - { - iObserver->Detach( *this ); - iObserver = NULL; - } - iProvider = aProvider; - iObserver = &aObserver; - if ( iObserver ) - { - iObserver->Attach( *this ); - } - __VTPRINTEXIT( "CameraPreferences.SetProvider" ) - } - -// ---------------------------------------------------------------------------- -// CVtEngCameraPreferences::Detach -// -// ---------------------------------------------------------------------------- -// -void CVtEngCameraPreferences::Detach( MVtEngCameraPreferencesObserver& - aObserver ) - { - __VTPRINTENTER( "CameraPreferences.Detach" ) - if ( iObserver == &aObserver ) - { - iObserver = NULL; - } - __VTPRINTEXITR( "CameraPreferences.Detach $%x", TInt( iObserver ) ) - } - - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Extensions/CVtEngExtensionBase.cpp --- a/vtengines/videoteleng/Src/Extensions/CVtEngExtensionBase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* 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: Videoteleng extension base class -* -*/ - - -// INCLUDE FILES -#include "CVtEngExtensionBase.h" - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// CVtEngExtensionBase::CVtEngExtensionBase -// C++ constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -// -CVtEngExtensionBase::CVtEngExtensionBase( TUid aExtensionUid ): - iExtensionUid( aExtensionUid ) - { - } -// ---------------------------------------------------------------------------- -// CVtEngExtensionBase::Uid -// -// -// ---------------------------------------------------------------------------- -// -const TUid& CVtEngExtensionBase::Uid() const - { - return iExtensionUid; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Extensions/CVtEngExtensions.cpp --- a/vtengines/videoteleng/Src/Extensions/CVtEngExtensions.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,267 +0,0 @@ -/* -* 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: Videoteleng API extension configuration -* -*/ - - -// INCLUDE FILES -#include "CVtEngExtensions.h" -#include "VtEngPanic.h" -#include "VtEngUtils.h" - -#include "CVtEngOperation.h" -#include "CVtEngMediaHandler.h" -#include "CVtEngCameraPreferences.h" -#include "cvtengrecord2file.h" - -#include - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::CVtEngExtensions -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngExtensions::CVtEngExtensions(): - iExtensionArray( KExtensionGranularity ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngExtensions::ConstructL() - { - __VTPRINTENTER( "Extensions.ConstructL" ) - __VTPRINTEXIT( "Extensions.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngExtensions* CVtEngExtensions::NewL() - { - CVtEngExtensions* self = new( ELeave ) CVtEngExtensions; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::~CVtEngExtensions -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngExtensions::~CVtEngExtensions() - { - __VTPRINTENTER( "Extensions.~" ) - // Clean and destroy pointer array - iExtensionArray.ResetAndDestroy(); - __VTPRINTEXIT( "Extensions.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::CreateExtensions -// -// ----------------------------------------------------------------------------- -// -CVtEngExtensionBase* CVtEngExtensions::CreateExtensionsL( const TUid& aUid, - CVtEngMediaHandler& aHandler) - { - __VTPRINTENTER( "Extensions.CreateExtensions" ) - - // init local variables - TInt error = KErrNotSupported; - CVtEngExtensionBase* extension = NULL; - - // Check if supported UID - if ( aUid == KVtEngExtensionCameraPreferences || - aUid == KVtEngExtensionRecord2File ) - { - // Create extension - extension = aHandler.CreateExtensionsL( aUid ); - - // Push it to clean up stack because - // it needs to be append in to - // array and it can be failed - CleanupStack::PushL( extension ); - - // append extension in to array - error = iExtensionArray.Append(extension); - if ( error != KErrNone ) - { - // if append fails - // clear clean up stack and leave - __VTPRINTEXITR( - "Extensions.CreateExtensions iExtension.Append failed %d", - error ) - CleanupStack::PopAndDestroy(); - User::Leave( error ); - } - // append succesful - // pop extension from clena up stack and return - __VTPRINTEXITR( - "Extensions.CreateExtensions iExtension UID[%d] succesfully Appended", - aUid.iUid) - CleanupStack::Pop(); - return extension; - } - // not supported UID - // leave with error - else - { - __VTPRINTEXITR( - "Extensions.CreateExtensions Extension NOTSUPPORTED UID%d", - aUid.iUid ) - User::Leave( error ); - return extension; - } - - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::GetClientInterface -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngExtensions::GetClientInterface( TAny** aInterfacePtr, - const TUid& aUid , CVtEngMediaHandler& aHandler) - { - __VTPRINTENTER( "Extensions.GetClientInterface" ) - // if aInterfacePtr pointer is NULL -> panic - __ASSERT_ALWAYS( aInterfacePtr,Panic( EVtEngPanicInvalidPointer ) ); - - // init local variables - CVtEngExtensionBase* extension = NULL; - TInt error = KErrGeneral; - - // initialize IF pointer to be NULL - // if correct extension API IF is found - // then changed to valid pointer - *aInterfacePtr = NULL; - - // Check if extension is allready in pointer array - TInt index = LookupExtensions( aUid ); - if ( index != KErrNotFound ) - { - *aInterfacePtr = iExtensionArray[index]->GetInterface(); - __VTPRINTEXITR( "Extensions.GetClientInterface error [%d]", KErrNone ) - return KErrNone; - } - // Create extension - else - { - TRAP( error, extension = CreateExtensionsL( aUid, aHandler ) ); - if ( extension && error == KErrNone ) - { - *aInterfacePtr = extension->GetInterface(); - error = KErrNone; - } - __VTPRINTEXITR( "Extensions.GetClientInterface error [%d]", error ) - return error; - } - } -// ----------------------------------------------------------------------------- -// CVtEngExtensions::LookupExtensions -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngExtensions::LookupExtensions( const TUid& aUid) const - { - __VTPRINTENTER( "Extensions.LookupExtensions" ) - TInt index( iExtensionArray.Count() ); - - // Loop whole extension array - while( index-- ) - { - // If matches in one of arrays UIDs - if( aUid == iExtensionArray[index]->Uid() ) - { - __VTPRINTEXITR( "Extensions.LookupExtensions index [%d]", index) - return index; - } - } - __VTPRINTEXITR("Extensions.LookupExtensions Not Found index [%d]", - KErrNotFound) - return KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::OfferOperationL -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngExtensions::OfferOperationL( CVtEngOperation* aOp ) - { - __VTPRINTENTER( "Extensions.OfferOperationL" ) - - TInt index( iExtensionArray.Count() ); - - // Format cmdComleted as false - TBool cmdCompleted = EFalse; - // Offer operation to all extension in array - while( index-- ) - { - // If valid extension found - if ( iExtensionArray[index]->HandleL( aOp ) ) - { - cmdCompleted = ETrue; - break; - } - } - __VTPRINTEXITR( "Extensions.OfferOperationL cmdCompleted [%d]", - cmdCompleted) - return cmdCompleted; - } - -// ----------------------------------------------------------------------------- -// CVtEngExtensions::ValidateCommand -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngExtensions::ValidateCommand( const TVtEngCommandId aCommandId ) - { - __VTPRINTENTER( "Extensions.ValidateCommand" ) - TInt index( iExtensionArray.Count() ); - - // Format oKToPerform as false - TBool oKToPerform = EFalse; - // Try validate command in all extensions in array - while( index-- ) - { - // If valid extension found - if ( iExtensionArray[index]->ValidateCommand( aCommandId ) ) - { - oKToPerform = ETrue; - break; - } - } - __VTPRINTEXITR( "Extensions.ValidateCommand oKToPerform [%d]", - oKToPerform) - return oKToPerform; - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Extensions/cvtengr2ftoneplayer.cpp --- a/vtengines/videoteleng/Src/Extensions/cvtengr2ftoneplayer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* -* Copyright (c) 2003, 2004, 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: Plays snap, self-timer and video start/stop sounds. -* -*/ - - -// INCLUDES -#include - -#include - -#include -#include - -#include - -#include "cvtengr2ftoneplayer.h" - -// CONSTANTS - -// FORWARD DECLARATIONS - -// ================= MEMBER FUNCTIONS ======================= - -// ---------------------------------------------------------- -// CVtEngR2FTonePlayer::CVtEngR2FTonePlayer -// C++ constructor -// ---------------------------------------------------------- -// -CVtEngR2FTonePlayer::CVtEngR2FTonePlayer() - { - } - - -// --------------------------------------------------------------------------- -// CVtEngR2FTonePlayer::NewL -// Symbian OS two-phased constructor -// --------------------------------------------------------------------------- -// -CVtEngR2FTonePlayer* CVtEngR2FTonePlayer::NewL() - { - CVtEngR2FTonePlayer* self = new ( ELeave ) CVtEngR2FTonePlayer(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// ---------------------------------------------------------- -// CVtEngR2FTonePlayer::ConstructL -// Symbian OS 2nd phase constructor -// ---------------------------------------------------------- -// -void CVtEngR2FTonePlayer::ConstructL() - { - __VTPRINTENTER( "CVtEngR2FTonePlayer.ConstructL" ) - iAudioPlayer = CMdaAudioPlayerUtility::NewL( *this, - KAudioPriorityVideoRecording, - TMdaPriorityPreference( KAudioPrefCamera ) ); - - iVideoStartSound = StringLoader::LoadL( R_VIDEOTELUI_VIDEO_RECORD_START_SOUND_PATH ); - iVideoStopSound = StringLoader::LoadL( R_VIDEOTELUI_VIDEO_RECORD_STOP_SOUND_PATH ); - iSoundInProgress = EFalse; - iOpenFileInProgress = EFalse; - __VTPRINTEXIT( "CVtEngR2FTonePlayer.ConstructL" ) - } - - -// Destructor. -CVtEngR2FTonePlayer::~CVtEngR2FTonePlayer() - { - if ( iAudioPlayer ) - { - iAudioPlayer->Close(); - delete iAudioPlayer; - } - - delete iVideoStartSound; - delete iVideoStopSound; - } - - -// --------------------------------------------------------------------------- -// CVtEngR2FTonePlayer::PlaySound -// Play a sound with given id. -// --------------------------------------------------------------------------- -// -TInt CVtEngR2FTonePlayer::PlaySound( TInt aSound ) - { - __VTPRINTENTER( "CVtEngR2FTonePlayer.PlaySound" ) - TInt err = KErrNone; - iAudioPlayer->Stop(); - iAudioPlayer->Close(); - - switch ( aSound ) - { - case EVtR2FVideoStartSoundId: - case EVtR2FVideoStopSoundId: - { - __VTPRINT( DEBUG_GEN,"CVtEngR2FTonePlayer.PlaySound() user sound" ) - - // Set correct sound file - TPtrC soundFile = *iVideoStartSound; - if ( aSound == EVtR2FVideoStopSoundId ) - { - soundFile.Set( *iVideoStopSound ); - } - - // Video recording start sound using MMF - if ( !iOpenFileInProgress && !iSoundInProgress ) - { - TRAP( err, iAudioPlayer->OpenFileL( soundFile ) ); - if ( !err ) - { - __VTPRINT( DEBUG_GEN,"CVtEngR2FTonePlayer.PlaySound() open now in progress" ) - iOpenFileInProgress = ETrue; - } - } - else - { - __VTPRINT( DEBUG_GEN, "CVtEngR2FTonePlayer.PlaySound() err, in use" ) - // The last OpenFileL call still hasnt completed. - // Cannot start playing a new file. - err = KErrInUse; - } - break; - } - - default: - { - // Other sounds are not supported - err = KErrArgument; - break; - } - } - __VTPRINTEXIT( "CVtEngR2FTonePlayer.PlaySound" ) - return err; - } - -// --------------------------------------------------------------------------- -// CVtEngR2FTonePlayer::Stop -// Stop any ongoing sound. -// --------------------------------------------------------------------------- -// -void CVtEngR2FTonePlayer::StopSound() - { - __VTPRINTENTER( "CVtEngR2FTonePlayer.StopSound" ) - - iAudioPlayer->Stop(); - iAudioPlayer->Close(); - - __VTPRINTEXIT( "CVtEngR2FTonePlayer.StopSound" ) - } - -// --------------------------------------------------------------------------- -// CVtEngR2FTonePlayer::MapcInitComplete -// CMdaAudioPlayerUtility initialization complete -// --------------------------------------------------------------------------- -// -void CVtEngR2FTonePlayer::MapcInitComplete( - TInt aError, const TTimeIntervalMicroSeconds& aDuration ) - { - __VTPRINTENTER( "CVtEngR2FTonePlayer.MapcInitComplete" ) - __VTPRINT3( DEBUG_GEN, "CVtEngR2FTonePlayer.MapcInitComplete(%d, %d) ", - aError, I64INT( aDuration.Int64()) ) - - (void) aDuration; - - iOpenFileInProgress = EFalse; - - // If tone can be played - if ( !aError ) - { - __VTPRINT( DEBUG_GEN, "CVtEngR2FTonePlayer.MapcInitComplete() play" ) - iSoundInProgress = ETrue; - iAudioPlayer->Play(); - } - // error occured during tone player init - else - { - __VTPRINT( DEBUG_GEN,"CVtEngR2FTonePlayer.MapcInitComplete() error" ) - } - __VTPRINTEXIT( "CVtEngR2FTonePlayer.MapcInitComplete" ) - } - - -// --------------------------------------------------------------------------- -// CVtEngR2FTonePlayer::MapcPlayComplete -// Playback complete, notify observer -// --------------------------------------------------------------------------- -// -void CVtEngR2FTonePlayer::MapcPlayComplete( TInt aError ) - { - __VTPRINTENTER( "CVtEngR2FTonePlayer.MapcPlayComplete" ) - __VTPRINT2( DEBUG_GEN, "CVtEngR2FTonePlayer.MapcPlayComplete(%d)", aError) - - (void) aError; - - iSoundInProgress = EFalse; - __VTPRINTEXIT( "CVtEngR2FTonePlayer.MapcPlayComplete" ) - } - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Extensions/cvtengrecord2file.cpp --- a/vtengines/videoteleng/Src/Extensions/cvtengrecord2file.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,203 +0,0 @@ -/* -* 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: Videoteleng Record to file extension -* -*/ - - -// INCLUDE FILES -#include "cvtengrecord2file.h" -#include "VtEngPanic.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "cvtengr2ftoneplayer.h" - -#include - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::CVtEngRecord2File -// C++ constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -// -CVtEngRecord2File::CVtEngRecord2File(): - CVtEngExtensionBase( - KVtEngExtensionRecord2File ) - { - } - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::ConstructL -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -// -void CVtEngRecord2File::ConstructL() - { - __VTPRINTENTER( "CVtEngRecord2File.ConstructL" ) - - iTonePlayer = CVtEngR2FTonePlayer::NewL(); - __VTPRINTEXIT( "CVtEngRecord2File.ConstructL" ) - } - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::NewL -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CVtEngRecord2File* CVtEngRecord2File::NewL() - { - CVtEngRecord2File* self = new( ELeave ) CVtEngRecord2File; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::~CVtEngRecord2File -// Destructor. Cannot leave. -// ---------------------------------------------------------------------------- -// -CVtEngRecord2File::~CVtEngRecord2File() - { - - __VTPRINTENTER( "CVtEngRecord2File.~" ) - if ( iTonePlayer ) - { - iTonePlayer->StopSound(); - delete iTonePlayer; - } - __VTPRINTEXIT( "CVtEngRecord2File.~" ) - } -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::GetInterface -// -// ---------------------------------------------------------------------------- -// -TAny* CVtEngRecord2File::GetInterface() - { - __VTPRINTENTER( "CVtEngRecord2File.GetInterface") - // Cast first as API MVtEngRecord2File* class - // and after that to TAny* - __VTPRINTEXIT( "CVtEngRecord2File.GetInterface" ) - return reinterpret_cast< TAny* >( ( MVtEngRecord2File* ) this ); - - } - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::HandleL -// -// ---------------------------------------------------------------------------- -// -TBool CVtEngRecord2File::HandleL( CVtEngOperation* aOp ) - { - __VTPRINTENTER( "CVtEngRecord2File.HandleL" ) - const TVtEngCommandId id( aOp->Command() ); - __VTPRINT2( DEBUG_GEN, "CVtEngRecord2File.HandleL CMD ID[%d] ", id ) - - // Check which command and call - // active provider with operation params - switch ( id ) - { - case KVtEngStartRecord: - { - - iTonePlayer->PlaySound( CVtEngR2FTonePlayer::EVtR2FVideoStartSoundId ); - break; - } - case KVtEngStopRecord: - { - - iTonePlayer->PlaySound( CVtEngR2FTonePlayer::EVtR2FVideoStopSoundId ); - break; - } - //Not supported command - default: - __VTPRINTEXITR( - "CVtEngRecord2File.HandleL NOT SUPPORTED CMD[%d]", id ) - return EFalse; - } - __VTPRINTEXIT( "CVtEngRecord2File.HandleL" ) - return ETrue; - } - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::ValidateCommand -// -// ---------------------------------------------------------------------------- - -TBool CVtEngRecord2File::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINTENTER( "CVtEngRecord2File.ValidateCommand" ) - - // local or hw support - // set as False - TBool support = EFalse; - - // Check which command and check if - // if provider and local variation supports - __VTPRINT2( DEBUG_GEN, - "CVtEngRecord2File.ValidateCommand CMD ID[%d] ", aCommandId ) - switch ( aCommandId ) - { - case KVtEngStartRecord: - { - support = ETrue; - break; - } - - case KVtEngStopRecord: - { - support = ETrue; - break; - } - // Not supported command - default: - { - __VTPRINT2( DEBUG_GEN, - "CVtEngRecord2File.ValidateCommand NOT SUPPORTED CMD[%d]", - aCommandId) - support = EFalse; - } - } - __VTPRINTEXITR( "CVtEngRecord2File.ValidateCommand return value[%d]", - support) - return support; - } - -// ---------------------------------------------------------------------------- -// CVtEngRecord2File::IsTonePlaySupported -// FOR TESTING PURPOSES REMOVE! -// ---------------------------------------------------------------------------- - -TInt CVtEngRecord2File::IsTonePlaySupported( TBool& aSupported) const - { - if (iTonePlayer) - { - aSupported = ETrue; - } - else - { - aSupported = EFalse; - } - __VTPRINT2( DEBUG_GEN, "CVtEngRecord2File.IsTonePlaySupported bool[%d] ", (TInt)aSupported ) - return KErrNone; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngDrawDP.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngDrawDP.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2026 +0,0 @@ -/* -* Copyright (c) 2004-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: Remote video handler. -* -*/ - - -// INCLUDE FILES - -#include "CVtEngDrawDP.h" -#include "CVtEngEventManager.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "MVtEngFrameObserver.h" -#include -#include -#include -#include - -#include - -// LOCAL CONSTANTS AND MACROS - -// YCbCr conversion constants - -// Luma -static const TUint32 KYLut[ 256 ] = - { - 0x00000000, 0x00400801, 0x00801002, 0x00C01803, - 0x01002004, 0x01402805, 0x01803006, 0x01C03807, - 0x02004008, 0x02404809, 0x0280500A, 0x02C0580B, - 0x0300600C, 0x0340680D, 0x0380700E, 0x03C0780F, - 0x04008010, 0x04408811, 0x04809012, 0x04C09813, - 0x0500A014, 0x0540A815, 0x0580B016, 0x05C0B817, - 0x0600C018, 0x0640C819, 0x0680D01A, 0x06C0D81B, - 0x0700E01C, 0x0740E81D, 0x0780F01E, 0x07C0F81F, - 0x08010020, 0x08410821, 0x08811022, 0x08C11823, - 0x09012024, 0x09412825, 0x09813026, 0x09C13827, - 0x0A014028, 0x0A414829, 0x0A81502A, 0x0AC1582B, - 0x0B01602C, 0x0B41682D, 0x0B81702E, 0x0BC1782F, - 0x0C018030, 0x0C418831, 0x0C819032, 0x0CC19833, - 0x0D01A034, 0x0D41A835, 0x0D81B036, 0x0DC1B837, - 0x0E01C038, 0x0E41C839, 0x0E81D03A, 0x0EC1D83B, - 0x0F01E03C, 0x0F41E83D, 0x0F81F03E, 0x0FC1F83F, - 0x10020040, 0x10420841, 0x10821042, 0x10C21843, - 0x11022044, 0x11422845, 0x11823046, 0x11C23847, - 0x12024048, 0x12424849, 0x1282504A, 0x12C2584B, - 0x1302604C, 0x1342684D, 0x1382704E, 0x13C2784F, - 0x14028050, 0x14428851, 0x14829052, 0x14C29853, - 0x1502A054, 0x1542A855, 0x1582B056, 0x15C2B857, - 0x1602C058, 0x1642C859, 0x1682D05A, 0x16C2D85B, - 0x1702E05C, 0x1742E85D, 0x1782F05E, 0x17C2F85F, - 0x18030060, 0x18430861, 0x18831062, 0x18C31863, - 0x19032064, 0x19432865, 0x19833066, 0x19C33867, - 0x1A034068, 0x1A434869, 0x1A83506A, 0x1AC3586B, - 0x1B03606C, 0x1B43686D, 0x1B83706E, 0x1BC3786F, - 0x1C038070, 0x1C438871, 0x1C839072, 0x1CC39873, - 0x1D03A074, 0x1D43A875, 0x1D83B076, 0x1DC3B877, - 0x1E03C078, 0x1E43C879, 0x1E83D07A, 0x1EC3D87B, - 0x1F03E07C, 0x1F43E87D, 0x1F83F07E, 0x1FC3F87F, - 0x20040080, 0x20440881, 0x20841082, 0x20C41883, - 0x21042084, 0x21442885, 0x21843086, 0x21C43887, - 0x22044088, 0x22444889, 0x2284508A, 0x22C4588B, - 0x2304608C, 0x2344688D, 0x2384708E, 0x23C4788F, - 0x24048090, 0x24448891, 0x24849092, 0x24C49893, - 0x2504A094, 0x2544A895, 0x2584B096, 0x25C4B897, - 0x2604C098, 0x2644C899, 0x2684D09A, 0x26C4D89B, - 0x2704E09C, 0x2744E89D, 0x2784F09E, 0x27C4F89F, - 0x280500A0, 0x284508A1, 0x288510A2, 0x28C518A3, - 0x290520A4, 0x294528A5, 0x298530A6, 0x29C538A7, - 0x2A0540A8, 0x2A4548A9, 0x2A8550AA, 0x2AC558AB, - 0x2B0560AC, 0x2B4568AD, 0x2B8570AE, 0x2BC578AF, - 0x2C0580B0, 0x2C4588B1, 0x2C8590B2, 0x2CC598B3, - 0x2D05A0B4, 0x2D45A8B5, 0x2D85B0B6, 0x2DC5B8B7, - 0x2E05C0B8, 0x2E45C8B9, 0x2E85D0BA, 0x2EC5D8BB, - 0x2F05E0BC, 0x2F45E8BD, 0x2F85F0BE, 0x2FC5F8BF, - 0x300600C0, 0x304608C1, 0x308610C2, 0x30C618C3, - 0x310620C4, 0x314628C5, 0x318630C6, 0x31C638C7, - 0x320640C8, 0x324648C9, 0x328650CA, 0x32C658CB, - 0x330660CC, 0x334668CD, 0x338670CE, 0x33C678CF, - 0x340680D0, 0x344688D1, 0x348690D2, 0x34C698D3, - 0x3506A0D4, 0x3546A8D5, 0x3586B0D6, 0x35C6B8D7, - 0x3606C0D8, 0x3646C8D9, 0x3686D0DA, 0x36C6D8DB, - 0x3706E0DC, 0x3746E8DD, 0x3786F0DE, 0x37C6F8DF, - 0x380700E0, 0x384708E1, 0x388710E2, 0x38C718E3, - 0x390720E4, 0x394728E5, 0x398730E6, 0x39C738E7, - 0x3A0740E8, 0x3A4748E9, 0x3A8750EA, 0x3AC758EB, - 0x3B0760EC, 0x3B4768ED, 0x3B8770EE, 0x3BC778EF, - 0x3C0780F0, 0x3C4788F1, 0x3C8790F2, 0x3CC798F3, - 0x3D07A0F4, 0x3D47A8F5, 0x3D87B0F6, 0x3DC7B8F7, - 0x3E07C0F8, 0x3E47C8F9, 0x3E87D0FA, 0x3EC7D8FB, - 0x3F07E0FC, 0x3F47E8FD, 0x3F87F0FE, 0x3FC7F8FF - }; - -// Chroma1 (Cb) -static const TUint32 KCbLut[ 256 ] = - { - 0x0001531C, 0x00014B1E, 0x00014B20, 0x00014B22, - 0x00014324, 0x00014325, 0x00014327, 0x00013B29, - 0x00013B2B, 0x00013B2D, 0x0001332E, 0x00013330, - 0x00013332, 0x00012B34, 0x00012B35, 0x00012B37, - 0x00012339, 0x0001233B, 0x0001233D, 0x00011B3E, - 0x00011B40, 0x00011B42, 0x00011344, 0x00011345, - 0x00011347, 0x00010B49, 0x00010B4B, 0x00010B4D, - 0x0001034E, 0x00010350, 0x00010352, 0x0000FB54, - 0x0000FB55, 0x0000FB57, 0x0000F359, 0x0000F35B, - 0x0000F35D, 0x0000EB5E, 0x0000EB60, 0x0000EB62, - 0x0000E364, 0x0000E366, 0x0000E367, 0x0000DB69, - 0x0000DB6B, 0x0000DB6D, 0x0000D36E, 0x0000D370, - 0x0000D372, 0x0000CB74, 0x0000CB76, 0x0000CB77, - 0x0000C379, 0x0000C37B, 0x0000C37D, 0x0000BB7E, - 0x0000BB80, 0x0000BB82, 0x0000B384, 0x0000B386, - 0x0000B387, 0x0000AB89, 0x0000AB8B, 0x0000AB8D, - 0x0000AB8E, 0x0000A390, 0x0000A392, 0x0000A394, - 0x00009B96, 0x00009B97, 0x00009B99, 0x0000939B, - 0x0000939D, 0x0000939F, 0x00008BA0, 0x00008BA2, - 0x00008BA4, 0x000083A6, 0x000083A7, 0x000083A9, - 0x00007BAB, 0x00007BAD, 0x00007BAF, 0x000073B0, - 0x000073B2, 0x000073B4, 0x00006BB6, 0x00006BB7, - 0x00006BB9, 0x000063BB, 0x000063BD, 0x000063BF, - 0x00005BC0, 0x00005BC2, 0x00005BC4, 0x000053C6, - 0x000053C7, 0x000053C9, 0x00004BCB, 0x00004BCD, - 0x00004BCF, 0x000043D0, 0x000043D2, 0x000043D4, - 0x00003BD6, 0x00003BD8, 0x00003BD9, 0x000033DB, - 0x000033DD, 0x000033DF, 0x00002BE0, 0x00002BE2, - 0x00002BE4, 0x000023E6, 0x000023E8, 0x000023E9, - 0x00001BEB, 0x00001BED, 0x00001BEF, 0x000013F0, - 0x000013F2, 0x000013F4, 0x00000BF6, 0x00000BF8, - 0x00000BF9, 0x000003FB, 0x000003FD, 0x000003FF, - 0x00000000, 0x00000001, 0x00000003, 0x00000005, - 0x001FF807, 0x001FF808, 0x001FF80A, 0x001FF00C, - 0x001FF00E, 0x001FF010, 0x001FE811, 0x001FE813, - 0x001FE815, 0x001FE017, 0x001FE018, 0x001FE01A, - 0x001FD81C, 0x001FD81E, 0x001FD820, 0x001FD021, - 0x001FD023, 0x001FD025, 0x001FC827, 0x001FC828, - 0x001FC82A, 0x001FC02C, 0x001FC02E, 0x001FC030, - 0x001FB831, 0x001FB833, 0x001FB835, 0x001FB037, - 0x001FB039, 0x001FB03A, 0x001FA83C, 0x001FA83E, - 0x001FA840, 0x001FA041, 0x001FA043, 0x001FA045, - 0x001F9847, 0x001F9849, 0x001F984A, 0x001F904C, - 0x001F904E, 0x001F9050, 0x001F8851, 0x001F8853, - 0x001F8855, 0x001F8057, 0x001F8059, 0x001F805A, - 0x001F785C, 0x001F785E, 0x001F7860, 0x001F7061, - 0x001F7063, 0x001F7065, 0x001F6867, 0x001F6869, - 0x001F686A, 0x001F606C, 0x001F606E, 0x001F6070, - 0x001F5872, 0x001F5873, 0x001F5875, 0x001F5877, - 0x001F5079, 0x001F507A, 0x001F507C, 0x001F487E, - 0x001F4880, 0x001F4882, 0x001F4083, 0x001F4085, - 0x001F4087, 0x001F3889, 0x001F388A, 0x001F388C, - 0x001F308E, 0x001F3090, 0x001F3092, 0x001F2893, - 0x001F2895, 0x001F2897, 0x001F2099, 0x001F209A, - 0x001F209C, 0x001F189E, 0x001F18A0, 0x001F18A2, - 0x001F10A3, 0x001F10A5, 0x001F10A7, 0x001F08A9, - 0x001F08AB, 0x001F08AC, 0x001F00AE, 0x001F00B0, - 0x001F00B2, 0x001EF8B3, 0x001EF8B5, 0x001EF8B7, - 0x001EF0B9, 0x001EF0BB, 0x001EF0BC, 0x001EE8BE, - 0x001EE8C0, 0x001EE8C2, 0x001EE0C3, 0x001EE0C5, - 0x001EE0C7, 0x001ED8C9, 0x001ED8CB, 0x001ED8CC, - 0x001ED0CE, 0x001ED0D0, 0x001ED0D2, 0x001EC8D3, - 0x001EC8D5, 0x001EC8D7, 0x001EC0D9, 0x001EC0DB, - 0x001EC0DC, 0x001EB8DE, 0x001EB8E0, 0x001EB8E2 - }; - -// Chroma1 (Cr) -static const TUint32 KCrLut[ 256 ] = - { - 0xD302D000, 0xD382C800, 0xD3C2C000, 0xD442B800, - 0xD482B800, 0xD502B000, 0xD542A800, 0xD582A800, - 0xD602A000, 0xD6429800, 0xD6C29000, 0xD7029000, - 0xD7428800, 0xD7C28000, 0xD8028000, 0xD8827800, - 0xD8C27000, 0xD9027000, 0xD9826800, 0xD9C26000, - 0xDA425800, 0xDA825800, 0xDAC25000, 0xDB424800, - 0xDB824800, 0xDC024000, 0xDC423800, 0xDC823800, - 0xDD023000, 0xDD422800, 0xDDC22000, 0xDE022000, - 0xDE421800, 0xDEC21000, 0xDF021000, 0xDF820800, - 0xDFC20000, 0xE041F800, 0xE081F800, 0xE0C1F000, - 0xE141E800, 0xE181E800, 0xE201E000, 0xE241D800, - 0xE281D800, 0xE301D000, 0xE341C800, 0xE3C1C000, - 0xE401C000, 0xE441B800, 0xE4C1B000, 0xE501B000, - 0xE581A800, 0xE5C1A000, 0xE601A000, 0xE6819800, - 0xE6C19000, 0xE7418800, 0xE7818800, 0xE7C18000, - 0xE8417800, 0xE8817800, 0xE9017000, 0xE9416800, - 0xE9816800, 0xEA016000, 0xEA415800, 0xEAC15000, - 0xEB015000, 0xEB814800, 0xEBC14000, 0xEC014000, - 0xEC813800, 0xECC13000, 0xED412800, 0xED812800, - 0xEDC12000, 0xEE411800, 0xEE811800, 0xEF011000, - 0xEF410800, 0xEF810800, 0xF0010000, 0xF040F800, - 0xF0C0F000, 0xF100F000, 0xF140E800, 0xF1C0E000, - 0xF200E000, 0xF280D800, 0xF2C0D000, 0xF300D000, - 0xF380C800, 0xF3C0C000, 0xF440B800, 0xF480B800, - 0xF4C0B000, 0xF540A800, 0xF580A800, 0xF600A000, - 0xF6409800, 0xF6C09000, 0xF7009000, 0xF7408800, - 0xF7C08000, 0xF8008000, 0xF8807800, 0xF8C07000, - 0xF9007000, 0xF9806800, 0xF9C06000, 0xFA405800, - 0xFA805800, 0xFAC05000, 0xFB404800, 0xFB804800, - 0xFC004000, 0xFC403800, 0xFC803800, 0xFD003000, - 0xFD402800, 0xFDC02000, 0xFE002000, 0xFE401800, - 0xFEC01000, 0xFF001000, 0xFF800800, 0xFFC00000, - 0x00000000, 0x00400000, 0x009FF800, 0x011FF000, - 0x015FF000, 0x01DFE800, 0x021FE000, 0x025FE000, - 0x02DFD800, 0x031FD000, 0x039FC800, 0x03DFC800, - 0x041FC000, 0x049FB800, 0x04DFB800, 0x055FB000, - 0x059FA800, 0x05DFA800, 0x065FA000, 0x069F9800, - 0x071F9000, 0x075F9000, 0x079F8800, 0x081F8000, - 0x085F8000, 0x08DF7800, 0x091F7000, 0x095F7000, - 0x09DF6800, 0x0A1F6000, 0x0A9F5800, 0x0ADF5800, - 0x0B5F5000, 0x0B9F4800, 0x0BDF4800, 0x0C5F4000, - 0x0C9F3800, 0x0D1F3000, 0x0D5F3000, 0x0D9F2800, - 0x0E1F2000, 0x0E5F2000, 0x0EDF1800, 0x0F1F1000, - 0x0F5F1000, 0x0FDF0800, 0x101F0000, 0x109EF800, - 0x10DEF800, 0x111EF000, 0x119EE800, 0x11DEE800, - 0x125EE000, 0x129ED800, 0x12DED800, 0x135ED000, - 0x139EC800, 0x141EC000, 0x145EC000, 0x149EB800, - 0x151EB000, 0x155EB000, 0x15DEA800, 0x161EA000, - 0x169E9800, 0x16DE9800, 0x171E9000, 0x179E8800, - 0x17DE8800, 0x185E8000, 0x189E7800, 0x18DE7800, - 0x195E7000, 0x199E6800, 0x1A1E6000, 0x1A5E6000, - 0x1A9E5800, 0x1B1E5000, 0x1B5E5000, 0x1BDE4800, - 0x1C1E4000, 0x1C5E4000, 0x1CDE3800, 0x1D1E3000, - 0x1D9E2800, 0x1DDE2800, 0x1E1E2000, 0x1E9E1800, - 0x1EDE1800, 0x1F5E1000, 0x1F9E0800, 0x1FDE0800, - 0x205E0000, 0x209DF800, 0x211DF000, 0x215DF000, - 0x21DDE800, 0x221DE000, 0x225DE000, 0x22DDD800, - 0x231DD000, 0x239DC800, 0x23DDC800, 0x241DC000, - 0x249DB800, 0x24DDB800, 0x255DB000, 0x259DA800, - 0x25DDA800, 0x265DA000, 0x269D9800, 0x271D9000, - 0x275D9000, 0x279D8800, 0x281D8000, 0x285D8000, - 0x28DD7800, 0x291D7000, 0x295D7000, 0x29DD6800, - 0x2A1D6000, 0x2A9D5800, 0x2ADD5800, 0x2B1D5000, - 0x2B9D4800, 0x2BDD4800, 0x2C5D4000, 0x2C9D3800 - }; - - -// Posting surface factory DLL's name -_LIT( KDPAPIDLLName, "PostingSurfaceFactory.dll" ); - -// Reversed enumeration for the bitmaps. -static const MDisplaySink::TBitmapNo KVtEngBitmapNoReversed[] = - { - MDisplaySink::ESecondBitmap, - MDisplaySink::EFirstBitmap - }; - -// Default posting format (if this or KDefaultPostingFormat420 is not -// supported, BaseConstructL() will leave with KErrNotSupported) -const CPostingSurface::TPostingFormat KDefaultPostingFormat422 = - CPostingSurface::EYuv422LeBt601Range0; - -// Default posting format (if this or KDefaultPostingFormat422 is not -// supported, BaseConstructL() will leave with KErrNotSupported) -const CPostingSurface::TPostingFormat KDefaultPostingFormat420 = - CPostingSurface::EYuv420PlanarBt601Range0; - -// Default posting buffering flags. -const TUint KDefaultPostingBufferingFlags = - // Double buffering - CPostingSurface::EDoubleBuffering | - // Progressive frames (no interlacing) - CPostingSurface::EProgressiveFrames | - // Do not allow frameskip - CPostingSurface::EDisAllowFrameSkip | - // Use internal buffers (allocated by DP) - CPostingSurface::EInternalBuffers; - -// Default pixel aspect ratio num. Aspect ratio = Num/Denom. -const TUint16 KDefaultPixelAspectRatioNum = 1; - -// Default pixel aspect ratio denom. Aspect ratio = Num/Denom. -const TUint16 KDefaultPixelAspectRatioDenom = 1; - -// LOCAL METHODS - -// ----------------------------------------------------------------------------- -// DoConvertYuv420toXRGB0888 -// ----------------------------------------------------------------------------- -// -inline void DoConvertYuv420toXRGB0888( - TInt aWidth, // width in pixels - const TUint8*& aSourceDataPtrY1, // pointer to Y data row 1 - const TUint8*& aSourceDataPtrY2, // pointer to Y data row 2 - const TUint8*& aSourceDataPtrU, // pointer to U data row - const TUint8*& aSourceDataPtrV, // pointer to V data row - TUint8* aDestDataPtr1, // pointer to destination row 1 - TUint8* aDestDataPtr2 // pointer to destination row 2 - ) - { - TUint32* destDataPtr1 = reinterpret_cast< TUint32* >( aDestDataPtr1 ); - TUint32* destDataPtr2 = reinterpret_cast< TUint32* >( aDestDataPtr2 ); - // width assumed to be even - TInt pixelsLeft = aWidth / 2; - - TUint32 r, g, b; - TUint32 LutY0, LutY1, LutC; - TUint32 pixel; - TUint32 OverflowMask = 0xC0180300U; - - // One scanline at the time - while ( pixelsLeft-- ) - { - - // row 1, 2 pixels - - LutY0 = KYLut[*aSourceDataPtrY1++]; - LutY1 = KYLut[*aSourceDataPtrY1++]; - LutC = KCbLut[*aSourceDataPtrU++]; - LutC += KCrLut[*aSourceDataPtrV++]; - - pixel = LutY0 + LutC; - - if (pixel & OverflowMask) - { - if (pixel & 0xC0000000U) - { - if (pixel & 0x80000000U) - { - pixel &= ~0x3FC00000U; - } - else - { - pixel |= 0x3FC00000U; - } - } - if (pixel & 0x00180000U) - { - if (pixel & 0x00100000U) - { - pixel &= ~0x0007F800U; - } - else - { - pixel |= 0x0007F800U; - } - } - if (pixel & 0x00000300U) - { - if (pixel & 0x00000200U) - { - pixel &= ~0x000000FFU; - } - else - { - pixel |= 0x000000FFU; - } - } - } - - r = (pixel >> 6) & 0xFF0000; - g = (pixel >> 3) & 0x00FF00; - b = pixel & 0x0000FF; - - *destDataPtr1++ = 0xFF000000 | r | g | b; - - pixel = LutY1 + LutC; - - if (pixel & OverflowMask) - { - if (pixel & 0xC0000000U) - { - if (pixel & 0x80000000U) - { - pixel &= ~0x3FC00000U; - } - else - { - pixel |= 0x3FC00000U; - } - } - if (pixel & 0x00180000U) - { - if (pixel & 0x00100000U) - { - pixel &= ~0x0007F800U; - } - else - { - pixel |= 0x0007F800U; - } - } - if (pixel & 0x00000300U) - { - if (pixel & 0x00000200U) - { - pixel &= ~0x000000FFU; - } - else - { - pixel |= 0x000000FFU; - } - } - } - - r = (pixel >> 6) & 0xFF0000; - g = (pixel >> 3) & 0x00FF00; - b = pixel & 0x0000FF; - - *destDataPtr1++ = 0xFF000000 | r | g | b; - - // row, 2 pixels - - LutY0 = KYLut[*aSourceDataPtrY2++]; - LutY1 = KYLut[*aSourceDataPtrY2++]; - - pixel = LutY0 + LutC; - - if (pixel & OverflowMask) - { - if (pixel & 0xC0000000U) - { - if (pixel & 0x80000000U) - { - pixel &= ~0x3FC00000U; - } - else - { - pixel |= 0x3FC00000U; - } - } - if (pixel & 0x00180000U) - { - if (pixel & 0x00100000U) - { - pixel &= ~0x0007F800U; - } - else - { - pixel |= 0x0007F800U; - } - } - if (pixel & 0x00000300U) - { - if (pixel & 0x00000200U) - { - pixel &= ~0x000000FFU; - } - else - { - pixel |= 0x000000FFU; - } - } - } - - r = (pixel >> 6) & 0xFF0000; - g = (pixel >> 3) & 0x00FF00; - b = pixel & 0x0000FF; - - *destDataPtr2++ = 0xFF000000 | r | g | b; - - pixel = LutY1 + LutC; - - if (pixel & OverflowMask) - { - if (pixel & 0xC0000000U) - { - if (pixel & 0x80000000U) - { - pixel &= ~0x3FC00000U; - } - else - { - pixel |= 0x3FC00000U; - } - } - if (pixel & 0x00180000U) - { - if (pixel & 0x00100000U) - { - pixel &= ~0x0007F800U; - } - else - { - pixel |= 0x0007F800U; - } - } - if (pixel & 0x00000300U) - { - if (pixel & 0x00000200U) - { - pixel &= ~0x000000FFU; - } - else - { - pixel |= 0x000000FFU; - } - } - } - - r = (pixel >> 6) & 0xFF0000; - g = (pixel >> 3) & 0x00FF00; - b = pixel & 0x0000FF; - - *destDataPtr2++ = 0xFF000000 | r | g | b; - - } - } - -// ----------------------------------------------------------------------------- -// DoConvertYuv422toXRGB0888 -// ----------------------------------------------------------------------------- -// -inline void DoConvertYuv422toXRGB0888( - TInt aWidth, // width in pixels - const TUint8*& aSourceDataPtr, // pointer to source row - TUint8* aDestDataPtr // pointer to destination row - ) - { - TUint32* destDataPtr = reinterpret_cast< TUint32* >( aDestDataPtr ); - // width assumed to be even - TInt pixelsLeft = aWidth / 2; - - TUint32 r, g, b; - TUint32 LutY0, LutY1, LutC; - TUint32 pixel; - TUint32 OverflowMask = 0xC0180300U; - - // One scanline at the time - while ( pixelsLeft-- ) - { - - LutC = KCbLut[*aSourceDataPtr++]; - LutY0 = KYLut[*aSourceDataPtr++]; - LutC += KCrLut[*aSourceDataPtr++]; - LutY1 = KYLut[*aSourceDataPtr++]; - - pixel = LutY0 + LutC; - - if (pixel & OverflowMask) - { - if (pixel & 0xC0000000U) - { - if (pixel & 0x80000000U) - { - pixel &= ~0x3FC00000U; - } - else - { - pixel |= 0x3FC00000U; - } - } - if (pixel & 0x00180000U) - { - if (pixel & 0x00100000U) - { - pixel &= ~0x0007F800U; - } - else - { - pixel |= 0x0007F800U; - } - } - if (pixel & 0x00000300U) - { - if (pixel & 0x00000200U) - { - pixel &= ~0x000000FFU; - } - else - { - pixel |= 0x000000FFU; - } - } - } - - r = (pixel >> 6) & 0xFF0000; - g = (pixel >> 3) & 0x00FF00; - b = pixel & 0x0000FF; - - *destDataPtr++ = 0xFF000000 | r | g | b; - - pixel = LutY1 + LutC; - - if (pixel & OverflowMask) - { - if (pixel & 0xC0000000U) - { - if (pixel & 0x80000000U) - { - pixel &= ~0x3FC00000U; - } - else - { - pixel |= 0x3FC00000U; - } - } - if (pixel & 0x00180000U) - { - if (pixel & 0x00100000U) - { - pixel &= ~0x0007F800U; - } - else - { - pixel |= 0x0007F800U; - } - } - if (pixel & 0x00000300U) - { - if (pixel & 0x00000200U) - { - pixel &= ~0x000000FFU; - } - else - { - pixel |= 0x000000FFU; - } - } - } - - r = (pixel >> 6) & 0xFF0000; - g = (pixel >> 3) & 0x00FF00; - b = pixel & 0x0000FF; - - *destDataPtr++ = 0xFF000000 | r | g | b; - } - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::NewL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawDP* CVtEngDrawDP::NewL( - MDisplaySinkObserver* aObserver ) - { - __VTPRINTENTER( "RVD(DP).NewL" ) - CVtEngDrawDP* self = new ( ELeave ) CVtEngDrawDP( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - __VTPRINTEXIT( "RVD(DP).NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::~CVtEngDrawDP -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawDP::~CVtEngDrawDP() - { - __VTPRINTENTER( "RVD(DP).~" ) - Cancel(); - delete iFrameBuffer; - delete iBufferWaiter; - delete iPostingSurface; - __VTPRINT( DEBUG_MEDIA , "RVD(DP).~ RRegion::Close()" ) - iClipRegion.Close(); - CloseDPLibrary(); - - delete iTarget; - delete iSource; - delete iImageScaler; - __VTPRINTEXIT( "RVD(DP).~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngDraw -// C++ constructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawDP::CVtEngDrawDP( MDisplaySinkObserver* aObserver ) : - CVtEngDraw( aObserver ), iClipRegion( 1 ), - iPostingFormat( KDefaultPostingFormat422 ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseConstructL -// Base construction. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseConstructL() - { - __VTPRINTENTER( "RVD(DP).BaseConstructL" ) - if ( IsFlag( EFlagUIForeground ) ) - { - DoBaseConstructL(); - } - else - { - SetFlag( EBaseConstructCalled ); - } - __VTPRINTEXIT( "RVD(DP).BaseConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CreateSinkL -// Instantiates display sink. -// ----------------------------------------------------------------------------- -// -MDisplaySink* CVtEngDrawDP::CreateSinkL() - { - __VTPRINTENTER( "RVD(DP).CreateSinkL" ) - TDisplaySinkParamsDP params; - GetSinkParams( params ); - MDisplaySink* sink = ::CreateSinkL( params, KNullDesC8 ); - if ( IsFlag( EBaseConstructCalled ) ) - { - sink->Pause(); - SetFlag( ESinkParamUpdateRequired | ESinkResumeRequired ); - } - __VTPRINTEXIT( "RVD(DP).CreateSinkL" ) - return sink; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::BaseRefreshL -// Draw a frame. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseRefreshL() - { - __VTPRINTENTER( "RVD(DP).BaseRefreshL" ) - __VTPRINTEXIT( "RVD(DP).BaseRefreshL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseRefreshBitmapsL -// Refreshes bitmaps sizes and display mode if needed. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseRefreshBitmapsL() - { - __VTPRINTENTER( "RVD(DP).BaseRefreshBitmapsL" ) - BaseConstructL(); - InitializePostingSurfaceL(); - // set the params for DS - UpdateSinkParamsL(); - ClearFlag( EFirstFrameReceived ); - __VTPRINTEXIT( "RVD(DP).BaseRefreshBitmapsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseDoCancel -// DoCancel for derived class. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseDoCancel() - { - __VTPRINTENTER( "RVD(DP).BaseDoCancel" ) - __VTPRINTEXIT( "RVD(DP).BaseDoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseVerifyConfigL -// Checks current configuration against DP implementation. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseVerifyConfigL() - { - __VTPRINTENTER( "RVD(DP).BaseVerifyConfigL" ) - // Check support for requested size - if ( !SupportsSize( iSourceSize ) ) - { - __VTPRINT( DEBUG_MEDIA , - "RVD(DP).BaseVerifyConfigL Size NOT supported" ) - User::Leave( KErrNotSupported ); - } - RecalculateClipRegionL(); - __VTPRINTEXIT( "RVD(DP).BaseVerifyConfigL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseRestartL -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseRestartL() - { - __VTPRINTENTER( "RVD(DP).BaseRestartL" ) - if ( IsFlag( EFlagUIForeground ) ) - { - RecalculateClipRegionL(); - iBufferWaiter->FetchBuffer(); - } - __VTPRINTEXIT( "RVD(DP).BaseRestartL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseAbortNow -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseAbortNow() - { - __VTPRINTENTER( "RVD(DP).BaseAbortNow" ) - UpdateVtFrame(); - __VTPRINTEXIT( "RVD(DP).BaseAbortNow" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::StartDrawL -// Starts the drawing. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseStartDrawL() - { - __VTPRINTENTER( "RVD(DP).BaseStartDrawL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( EBaseBaseStartDrawCalled ); - } - else - { - DoBaseStartDrawL(); - } - __VTPRINTEXIT( "RVD(DP).BaseStartDrawL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseStopDraw -// Stop the drawing. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseStopDraw() - { - // Cancel the timer in any case. - __VTPRINTENTER( "RVD(DP).BaseStopDraw" ) - ClearFlag( EBaseBaseStartDrawCalled ); - iWatcher->Cancel(); - if ( iDSA ) - { - ClearFlag( ERemoteVideoDrawing | EStarted ); - iDSA->Cancel(); - } - iBufferWaiter->Cancel(); - Cancel(); - __VTPRINTEXIT( "RVD(DP).BaseStopDraw" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseSetConfigL -// Sets new configuration. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseSetConfigL( const TVtEngRenderConfig& aConfig ) - { - __VTPRINTENTER( "RVD(DP).BaseSetConfigL" ) - Mem::FillZ( &iConfig, sizeof( TVtEngRenderConfigDP ) ); - iConfig = aConfig; - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( EBaseSetConfigCalled ); - } - else - { - ConfigUpdatedL(); - } - __VTPRINTEXIT( "RVD(DP).BaseSetConfigL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseSetUIForegroundL -// Sets UI foreground status. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseSetUIForegroundL( TBool aForeground ) - { - __VTPRINTENTER( "RVD(DP).BaseSetUIForegroundL" ) - if( aForeground ) - { - TBool wasSentToBackground( IsFlag( ESentToBackground ) ); - SetFlag( EFlagUIForeground ); - ClearFlag( ESentToBackground ); - if( IsFlag( EDelayedCallsMask ) ) - { - HandleDelayedCallsL(); - } - if ( wasSentToBackground ) - { - BaseRefreshBitmapsL(); - Restart( RDirectScreenAccess::ETerminateCancel ); - BaseStartDrawL(); - } - } - else - { - if ( !IsFlag( EBaseConstructCalled ) ) - { - BaseStopDraw(); - delete iPostingSurface; - iPostingSurface = 0; - for ( TInt i = MDisplaySink::EFirstBitmap; - i < MDisplaySink::EFirstBitmap + KVtEngMaxBuffers; i++ ) - { - iBuffers[ i ].UnSet(); - } - SetFlag( ESentToBackground ); - } - ClearFlag( EFlagUIForeground ); - } - __VTPRINTEXIT( "RVD(DP).BaseSetUIForegroundL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseRequestLastFrame -// Request update last remote video frame through MVtEngFrameObserver::vtSetFrame -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseRequestLastFrame() - { - __VTPRINTENTER( "RVD(DP).BaseRequestLastFrame" ) - UpdateVtFrame(); - __VTPRINTEXIT( "RVD(DP).BaseRequestLastFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BaseVideoFrameSizeChangedL -// Called when incoming frame buffer size changes. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BaseVideoFrameSizeChangedL( const TSize& aTo ) - { - __VTPRINTENTER( "RVD(DP).BaseVideoFrameSizeChangedL" ) - CreateFrameBufferL( aTo ); - __VTPRINTEXIT( "RVD(DP).BaseVideoFrameSizeChangedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::Config -// Returns current configuration. -// ----------------------------------------------------------------------------- -// -TVtEngRenderConfig& CVtEngDrawDP::Config() - { - return iConfig; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::RunL -// CActive heir execution method. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::RunL() - { - __VTPRINTENTER( "RVD(DP).RunL" ) - - TInt bitmapNo( iStatus.Int() ); - - if ( bitmapNo < KErrNone ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DP).RunL notify rvd problem" ) - CVtEngEventManager::NotifyEvent( KVtEngRemoteRenderingProblem ); - return; - } - - TVtEngBuffer& buffer = iBuffers[ bitmapNo ]; - - if ( !iDSUpdated ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DP).RunL !Updated" ) - __VTPRINTEXIT( "RVD(DP).RunL" ) - return; - } - else if ( !IsFlag( EFlagUIForeground ) ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DP).RunL !Flag( EFlagUIForeground )" ) - __VTPRINTEXIT( "RVD(DP).RunL" ) - if ( iPostingSurface ) - { - iPostingSurface->PostBuffer( buffer.Buffer() ); - buffer.UnSet(); - iBufferWaiter->FetchBuffer(); - } - return; - } - else if ( buffer.Buffer() == NULL ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DP).RunL signalled with NULL buffer" ) - TInt result( iBufferWaiter->FetchBuffer() ); - __VTPRINT2( DEBUG_MEDIA, - "RVD(DP).RunL FetchBuffer %d", result ) - User::LeaveIfError( result ); - __VTPRINTEXIT( "RVD(DP).RunL" ) - return; - } - - // Image received, reset counter. - iCheckpoint = KVtEngWatcherThreshold; - - StoreFrameBuffer( buffer.Buffer() ); - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).RunL flags=%d", iFlags ) - TBool firstFrame( !IsFlag ( EFirstFrameReceived ) ); - SetFlag( EFirstFrameReceived ); - // Remote video is about to start? - if ( !IsFlag( EStarted ) && IsFlag( EReadyInternal ) ) - { - if ( !iDSA->IsActive() ) - { - iDSA->StartL(); - } - SetFlag( EStarted ); - if ( !iConfig.iClipRect.IsEmpty() ) - { - SetFlag( EReadyForeground ); - iDSA->Gc()->SetClippingRect( iConfig.iClipRect ); - RecalculateClipRegionL(); - } - __VTPRINT( DEBUG_MEDIA, "RVD(DP).RunL notify rvd start" ) - //CVtEngEventManager::NotifyEvent( KVtEngRemoteVideoStarted ); - } - if ( firstFrame ) - { - CVtEngEventManager::NotifyEvent( KVtEngRemoteVideoStarted ); - } - TRAPD( setClipRegResult, SetClipRegionL() ); - if ( setClipRegResult ) - { - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).RunL SetClipRegionL failed %d", - setClipRegResult ); - } - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).RunL received buffer %d $%x", - bitmapNo, - reinterpret_cast< TUint >( buffer.Buffer() ) ) - TInt result - ( iPostingSurface->PostBuffer( buffer.Buffer() ) ); - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).RunL PostBuffer %d", result ) - buffer.UnSet(); - if ( iBuffers[ KVtEngBitmapNoReversed[ bitmapNo ] ].IsSet() ) - { - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).RunL reactivating for buffer %d", - KVtEngBitmapNoReversed[ bitmapNo ] ) - Activate(); - DisplaySink().NextFrame(); - } - - if ( result == KErrNotReady ) - { - BaseRefreshBitmapsL(); - result = KErrNone; - } - - User::LeaveIfError( result ); - result = iBufferWaiter->FetchBuffer(); - __VTPRINT2( DEBUG_MEDIA, - "RVD(DP).RunL FetchBuffer %d", result ) - User::LeaveIfError( result ); - - __VTPRINTEXIT( "RVD(DP).RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::BufferReady -// BufferReady -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::BufferReady( CPostingSurface::TPostingBuff* aBuffer ) - { - __VTPRINTENTER( "RVD(DP).BufferReady" ) - SetAvailableToSink( aBuffer ); - __VTPRINTEXIT( "RVD(DP).BufferReady" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::FetchError -// Buffer fetching error -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::FetchError( TInt ) - { - __VTPRINTENTER( "RVD(DP).FetchError" ) - CVtEngEventManager::NotifyEvent( KVtEngRemoteRenderingProblem ); - __VTPRINTEXIT( "RVD(DP).FetchError" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::HandleDelayedCallsL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::HandleDelayedCallsL() - { - __VTPRINTENTER( "RVD(DP).HandleDelayedCallsL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - DoBaseConstructL(); - } - if ( IsFlag( EBaseSetConfigCalled ) ) - { - ConfigUpdatedL(); - ClearFlag( EBaseSetConfigCalled ); - } - if ( IsFlag( EInitializePostingSurfaceCalled ) ) - { - DoInitializePostingSurfaceL(); - } - if ( IsFlag( ESinkParamUpdateRequired ) ) - { - DoUpdateSinkParamsL(); - } - if ( IsFlag( EBaseBaseStartDrawCalled ) ) - { - DoBaseStartDrawL(); - } - __VTPRINTEXIT( "RVD(DP).HandleDelayedCallsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::DoBaseConstructL -// Base construction implementation -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::DoBaseConstructL() - { - __VTPRINTENTER( "RVD(DP).DoBaseConstructL" ) - - if ( !iImageScaler ) - { - iImageScaler = - CVtImageScaler::NewL( *this, CVtImageScaler::EBilinear ); - } - delete iBufferWaiter; - iBufferWaiter = NULL; - delete iPostingSurface; - iPostingSurface = NULL; - - // Load DP API library - LoadDPLibraryL(); - - // Create posting surface instance - iPostingSurface = CreatePostingSurfaceL(); - - CPostingSurface::TPostingFormat previousPostingFormat( iPostingFormat ); - - // Check support for format - if ( !SupportsFormat( KDefaultPostingFormat420 ) ) - { - if ( !SupportsFormat( KDefaultPostingFormat422 ) ) - { - __VTPRINT( DEBUG_MEDIA , - "RVD(DP).BaseConstructL Format NOT supported" ) - User::Leave( KErrNotSupported ); - } - else - { - __VTPRINT( DEBUG_MEDIA , "RVD(DP).BaseConstructL using 422" ) - iPostingFormat = KDefaultPostingFormat422; - } - } - else - { - __VTPRINT( DEBUG_MEDIA , "RVD(DP).BaseConstructL using 420" ) - iPostingFormat = KDefaultPostingFormat420; - } - iPostingSurface->GetCapabilities( iPostingCaps ); - iBufferWaiter = - new ( ELeave ) CVtEngBufferWaiter( *iPostingSurface, *this ); - for ( TInt i = MDisplaySink::EFirstBitmap; - i < MDisplaySink::EFirstBitmap + KVtEngMaxBuffers; i++ ) - { - iBuffers[ i ].UnSet(); - } - - // If posting for is different from previous, then free frame buffer - if ( ( previousPostingFormat != iPostingFormat ) || !iFrameBuffer ) - { - CreateFrameBufferL( iSourceSize ); - } - ClearFlag( EBaseConstructCalled ); - __VTPRINTEXIT( "RVD(DP).DoBaseConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::UpdateSinkParamsL -// Updates sink params -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::UpdateSinkParamsL() - { - __VTPRINTENTER( "RVD(DP).UpdateSinkParamsL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( ESinkParamUpdateRequired ); - } - else - { - DoUpdateSinkParamsL(); - } - __VTPRINTEXIT( "RVD(DP).UpdateSinkParamsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::DoBaseStartDrawL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::DoBaseStartDrawL() - { - __VTPRINTENTER( "RVD(DP).DoBaseStartDrawL" ) - UpdateVtFrame(); - if ( iDSA ) - { - SetFlag( EReadyInternal ); - if ( !iWatcher->IsActive() ) - { - iWatcher->Start( KVtEngWatcherTimeout, KVtEngWatcherTimeout, - iCallback ); - } - User::LeaveIfError( iBufferWaiter->FetchBuffer() ); - SetFlag( ERemoteVideoDrawing ); - } - else - { - User::Leave( KErrNotReady ); - } - ClearFlag( EBaseBaseStartDrawCalled ); - __VTPRINTEXIT( "RVD(DP).DoBaseStartDrawL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::DoInitializePostingSurfaceL -// Initializes posting surface. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::DoInitializePostingSurfaceL() - { - __VTPRINTENTER( "RVD(DP).DoInitializePostingSurfaceL" ) - CPostingSurface::TPostingSourceParams postingSourceParams; - GetPostingSourceParams( postingSourceParams ); - CPostingSurface::TPostingParams postingParams; - GetPostingParams( postingParams ); - // Create and start DSA for getting access to DP - CreateAndStartDSAL(); - - /*S60 Display Posting API has a limitation that only one surface instance can be - created at a time. Unfortunately there's no way to check when posting is really - free. PostingSurface initialization maybe returns KErrInUse. - Please refer to TSW error EAKC-7R3TME. - The transition effect between landscape and portrait uses ATID to achieve smooth - transition. ATID and PostingSurface share the same buffers and cannot be used - simultaneously. PostingSurface initialization maybe returns KErrNotReady. - Please refer to TSW error EWXO-7P4DV3. - So it probably requires some kind of timer based retry to bypass these cases.*/ - TInt err; - while (1) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DP).DoInitializePostingSurfaceL Initialize PostingSurface" ); - TRAP( err, iPostingSurface->InitializeL(postingSourceParams, postingParams) ); - if ( err == KErrNone) - { - break; - } - else - { - //time interval for each PostingSurface initialization is 0.2 second. - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).DoInitializePostingSurfaceL InitPS error = %d", err ) - User::After(200000); - } - } - - delete iTarget; iTarget = NULL; - iTarget = CVtImageBitmap::NewL( - postingParams.iDisplayedRect.Size(), EColor16MU ); - if ( iSource ) - { - if ( IsFlag( EFrameBufferFilled ) && - !IsFlag( EFrameBufferNeedsConvertAndScale ) ) - { - iImageScaler->ScaleNowL( *iSource, *iTarget ); - Config().iObserver->vtSetFrame( - MVtEngFrameObserver::ERemoteVideoFrame, - &iTarget->Bitmap() ); - } - else - { - Config().iObserver->vtSetFrame( - MVtEngFrameObserver::ERemoteVideoFrame, NULL ); - } - } - else - { - //delete iSource; iSource = NULL; - iSource = CVtImageBitmap::NewL( iSourceSize, EColor16MU ); - Config().iObserver->vtSetFrame( MVtEngFrameObserver::ERemoteVideoFrame, - NULL ); - } - RecalculateClipRegionL(); - ClearFlag( EInitializePostingSurfaceCalled ); - __VTPRINTEXIT( "RVD(DP).DoInitializePostingSurfaceL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::DoUpdateSinkParamsL -// Updates sink params -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::DoUpdateSinkParamsL() - { - __VTPRINTENTER( "RVD(DP).DoUpdateSinkParamsL" ) - TDisplaySinkParamsDP params; - GetSinkParams( params ); - DisplaySink().UpdateSinkParamsL( params, iDSUpdated ); - ClearFlag( ESinkParamUpdateRequired ); - if ( IsFlag( ESinkResumeRequired ) ) - { - DisplaySink().Resume(); - ClearFlag( ESinkResumeRequired ); - } - __VTPRINTEXIT( "RVD(DP).DoUpdateSinkParamsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::IsAlphaTrashed -// Checks if the alpha has been trashed on screen buffer. -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::IsAlphaTrashed() const - { - __VTPRINTENTER( "RVD(DP).IsAlphaTrashed" ) - TBool isTrashed( EFalse ); - const CFbsScreenDevice& sdev( *iDSA->ScreenDevice() ); - if ( sdev.DisplayMode() == EColor16MA ) - { - TRgb color; - TPoint point( iClipRegion.BoundingRect().Center() ); - sdev.GetPixel( color, point ); - isTrashed = ( color.Alpha() != 0 ); - } - __VTPRINTEXITR( "RVD(DP).IsAlphaTrashed %d", isTrashed ) - return isTrashed; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SetClipRegionL -// Sets clipping region for DP. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::SetClipRegionL() - { - __VTPRINTENTER( "RVD(DP).SetClipRegionL" ) - if ( iClipRegionUpdated || IsAlphaTrashed() ) - { - iClipRegionUpdated = EFalse; - CFbsBitGc* gc = iDSA->Gc(); - gc->SetClippingRegion( iDSA->DrawingRegion() ); - gc->SetDrawMode( CGraphicsContext::EDrawModeAND ); - gc->SetBrushColor( TRgb( 255, 255, 255, 0 ) ); - gc->Clear(); - iDSA->ScreenDevice()->Update(); - User::LeaveIfError( - iPostingSurface->SetClipRegion( iClipRegion ) ); - } - __VTPRINTEXIT( "RVD(DP).SetClipRegionL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::InitializePostingSurfaceL -// Initializes posting surface. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::InitializePostingSurfaceL() - { - __VTPRINTENTER( "RVD(DP).InitializePostingSurfaceL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( EInitializePostingSurfaceCalled ); - } - else - { - DoInitializePostingSurfaceL(); - } - __VTPRINTEXIT( "RVD(DP).InitializePostingSurfaceL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::GetPostingSourceParams -// Fills posting source params structure. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::GetPostingSourceParams( - CPostingSurface::TPostingSourceParams& aParams ) const - { - __VTPRINTENTER( "RVD(DP).GetPostingSourceParams" ) - Mem::FillZ( &aParams, sizeof( CPostingSurface::TPostingSourceParams ) ); - aParams.iPostingBuffering = KDefaultPostingBufferingFlags; - aParams.iBufferType = CPostingSurface::EStandardBuffer; - aParams.iPostingUsage = CPostingSurface::EVideoCapture; - aParams.iSourceImageSize = iSourceSize; - aParams.iPostingFormat = iPostingFormat; - aParams.iPixelAspectRatioNum = KDefaultPixelAspectRatioNum; - aParams.iPixelAspectRatioDenom = KDefaultPixelAspectRatioDenom; - aParams.iContentCopyRestricted = EFalse; - __VTPRINTEXIT( "RVD(DP).GetPostingSourceParams" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::GetPostingParams -// Fills posting params structure. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::GetPostingParams( - CPostingSurface::TPostingParams& aParams ) const - { - __VTPRINTENTER( "RVD(DP).GetPostingParams" ) - Mem::FillZ( &aParams, sizeof( CPostingSurface::TPostingParams ) ); - - aParams.iDisplayedRect = iConfig.iClipRect; - - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).GetPostingParams DRect.iTl (%d, %d)", - aParams.iDisplayedRect.iTl.iX, aParams.iDisplayedRect.iTl.iY ); - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).GetPostingParams DRect.iBr (%d, %d)", - aParams.iDisplayedRect.iBr.iX, aParams.iDisplayedRect.iBr.iY ); - - TRect& dispRect( aParams.iDisplayedRect ); - dispRect.Move( iConfig.iOffset ); - FixRectForDP( dispRect ); - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).GetPostingParams OffsDRect.iTl (%d, %d)", - dispRect.iTl.iX, dispRect.iTl.iY ); - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).GetPostingParams OffsDRect.iBr (%d, %d)", - dispRect.iBr.iX, dispRect.iBr.iY ); - - aParams.iScaleToRect = TRect( aParams.iDisplayedRect.Size() ); - - aParams.iInputCrop = iSourceSize; - - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).GetPostingParams InputCrop.iTl (%d, %d)", - aParams.iInputCrop.iTl.iX, aParams.iInputCrop.iTl.iY ); - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).GetPostingParams InputCrop.iBr (%d, %d)", - aParams.iInputCrop.iBr.iX, aParams.iInputCrop.iBr.iY ); - - aParams.iBackGround = iConfig.iBackGround; - __VTPRINTEXIT( "RVD(DP).GetPostingParams" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsFormat -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsFormat( - const CPostingSurface::TPostingFormat& aFormat ) const - { - return iPostingSurface->FormatSupported( aFormat ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsSize -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsSize( const TSize& aSize ) const - { - return ( iPostingCaps.iMaxPixelSize.iWidth >= aSize.iWidth ) && - ( iPostingCaps.iMaxPixelSize.iHeight >= aSize.iHeight ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsRotation -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsRotation( - CPostingSurface::TRotationType aRotation ) const - { - return ( ( aRotation & iPostingCaps.iSupportedRotations ) == aRotation ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsMirroring -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsMirroring() const - { - return iPostingCaps.iSupportsMirroring; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsScaling -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsScaling() const - { - return iPostingCaps.iSupportsScaling; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsBrightness -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsBrightness() const - { - return iPostingCaps.iSupportsBrightnessControl; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SupportsContrast -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::SupportsContrast() const - { - return iPostingCaps.iSupportsContrastControl; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::GetFrameBufferSize -// Returns size of frame buffer in bytes for given pixel size and current -// posting format. -// ----------------------------------------------------------------------------- -// -TInt CVtEngDrawDP::GetFrameBufferSize( const TSize& aSize ) const - { - TInt size( -1 ); - __VTPRINTENTER( "RVD(DP).GetFrameBufferSize" ) - switch( iPostingFormat ) - { - case KDefaultPostingFormat420: - size = ( aSize.iWidth * aSize.iHeight * 3 ) >> 1; - break; - - case KDefaultPostingFormat422: - size = ( aSize.iWidth * aSize.iHeight ) * 2; - break; - - default: - break; - } - __VTPRINTEXITR( "RVD(DP).GetFrameBufferSize %d", size ) - return size; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::RecalculateClipRegionL -// Updates clipregion. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::RecalculateClipRegionL() - { - __VTPRINTENTER( "RVD(DP).RecalculateClipRegionL" ) - // Clip region needs to be updated - iClipRegionUpdated = ETrue; - iClipRegion.Clear(); - TRect clippingRect( iConfig.iClipRect ); - clippingRect.Move( iConfig.iOffset ); - FixRectForDP( clippingRect ); - iClipRegion.AddRect( clippingRect ); - if ( iClipRegion.CheckError() ) - { - __VTPRINT( DEBUG_MEDIA , - "RVD(DP).RecalculateClipRegionL failed to add cliprect" ) - User::Leave( KErrNoMemory ); - } - - if ( IsFlag( EStarted ) && iDSA && iDSA->DrawingRegion() ) - { - iClipRegion.Intersect( *iDSA->DrawingRegion() ); - if ( iClipRegion.CheckError() ) - { - __VTPRINT( DEBUG_MEDIA , - "RVD(DP).RecalculateClipRegionL failed to intersect" ) - User::Leave( KErrNoMemory ); - } - -#ifdef VTDEBUG - - TRect bRect( iClipRegion.BoundingRect() ); - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).RecalculateClipRegionL BRect.iTl (%d, %d)", - bRect.iTl.iX, bRect.iTl.iY ); - __VTPRINT3( DEBUG_MEDIA, "RVD(DP).RecalculateClipRegionL BRect.iBr (%d, %d)", - bRect.iBr.iX, bRect.iBr.iY ); -#endif // VTDEBUG - } - __VTPRINTEXIT( "RVD(DP).RecalculateClipRegionL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::FixRectForDP -// Fixes rect for DP (i.e. width is made even and starting X coordinate is made -// even as well) -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::FixRectForDP( TRect& aRect ) const - { - __VTPRINTENTER( "RVD(DP).FixRectForDP" ) - if ( aRect.iTl.iX & 1 ) - { - aRect.Move( 1, 0 ); - aRect.SetWidth( Max( 0, aRect.Width() - 1 ) ); - } - if ( aRect.Width() & 1 ) - { - aRect.SetWidth( aRect.Width() - 1 ); - } - __VTPRINTEXIT( "RVD(DP).FixRectForDP" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::RecalculateClipRegionL -// Fills sink params. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::GetSinkParams( TDisplaySinkParamsDP& aSinkParams ) - { - __VTPRINTENTER( "RVD(DP).GetSinkParams" ) - Mem::FillZ( &aSinkParams, sizeof( TDisplaySinkParamsDP ) ); - aSinkParams.iThreadId = RThread().Id(); - aSinkParams.iRequestStatusPtr = &iStatus; - aSinkParams.iObserver = iObserver; - aSinkParams.iPostingBuffer1 = &iBuffers[ 0 ].Buffer(); - aSinkParams.iPostingBuffer2 = &iBuffers[ 1 ].Buffer(); - aSinkParams.iFrameSize = iSourceSize; - aSinkParams.iPostingFormat = iPostingFormat; - aSinkParams.iFlags = TDisplaySinkParams::EDisplaySinkDP; - __VTPRINTEXITR( "RVD(DP).GetSinkParams flags=%d", - (TInt) aSinkParams.iFlags ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::DisplaySink -// Returns reference to sink. -// ----------------------------------------------------------------------------- -// -MDisplaySink& CVtEngDrawDP::DisplaySink() - { - return *iDisplaySink; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::StoreFrameBuffer -// Stores given frame buffer. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::StoreFrameBuffer( - CPostingSurface::TPostingBuff* aPostingBuffer ) - { - __VTPRINTENTER( "RVD(DP).StoreFrameBuffer" ) - if ( iPostingFormat == KDefaultPostingFormat422 ) - { - const TInt height( iSourceSize.iHeight ); - const TInt srcStride( aPostingBuffer->GetStride() ); - const TInt dstStride( iSourceSize.iWidth * 2 ); - TUint8* dst = - const_cast< TUint8* >( iFrameBuffer->Des().Ptr() ); - const TUint8* src = - reinterpret_cast< const TUint8* >( aPostingBuffer->GetBuffer() ); - for ( TInt y = height - 1; y >= 0; y-- ) - { - dst = Mem::Copy( dst, src, dstStride ); - src += srcStride; - } - } - else - { - TInt frameBufferSizeInBytes( GetFrameBufferSize( iSourceSize ) ); - TPtrC8 postingBufferDesC( - reinterpret_cast< const TUint8* >( aPostingBuffer->GetBuffer() ), - frameBufferSizeInBytes ); - *iFrameBuffer = postingBufferDesC; - } - SetFlag( EFrameBufferFilled | EFrameBufferNeedsConvertAndScale ); - __VTPRINTEXIT( "RVD(DP).StoreFrameBuffer" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CreateFrameBufferL -// Creates frame buffer. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::CreateFrameBufferL( const TSize& aSize ) - { - __VTPRINTENTER( "RVD(DP).CreateFrameBufferL" ) - delete iFrameBuffer; iFrameBuffer = NULL; - iFrameBuffer = HBufC8::NewL( GetFrameBufferSize( aSize ) ); - ClearFlag( EFrameBufferFilled | EFrameBufferNeedsConvertAndScale ); - __VTPRINTEXIT( "RVD(DP).CreateFrameBufferL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SetAvailableToSink -// Sets posting buffer available to sink. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::SetAvailableToSink( CPostingSurface::TPostingBuff* aBuffer ) - { - __VTPRINTENTER( "RVD(DP).SetAvailableToSink" ) - for ( TInt i = MDisplaySink::EFirstBitmap; - i < MDisplaySink::EFirstBitmap + KVtEngMaxBuffers; i++ ) - { - if ( !iBuffers[ i ].IsSet() ) - { - __VTPRINT3( DEBUG_MEDIA, - "RVD(DP).SetAvailableToSink buffer %d: $%x", - i, reinterpret_cast< TUint >( aBuffer->GetBuffer() ) ); - iBuffers[ i ].Set( aBuffer ); - Activate(); - DisplaySink().SetBitmapAvailable( - static_cast< MDisplaySink::TBitmapNo >( i ) ); - break; - } - } - __VTPRINTEXIT( "RVD(DP).SetAvailableToSink" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::SetAvailableToSink -// Sets posting buffer available to sink. -// ----------------------------------------------------------------------------- -// -CPostingSurface* CVtEngDrawDP::CreatePostingSurfaceL() - { - __VTPRINTENTER( "RVD(DP).CreatePostingSurfaceL" ) - CPostingSurface* postingSurface = NULL; - CPostingSurfaceFactory* ( *createFactoryL )() = - reinterpret_cast< CPostingSurfaceFactory*(*)() >( iDPLib->Lookup( 1 ) ); - if ( createFactoryL ) - { - CPostingSurfaceFactory* factory = createFactoryL(); - CleanupStack::PushL( factory ); - postingSurface = factory->NewPostingSurfaceL( EMainDisplay ); - CleanupStack::PopAndDestroy(); // factory - } - __VTPRINTEXIT( "RVD(DP).CreatePostingSurfaceL" ) - return postingSurface; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CloseDPLibrary -// Close the DP API library and free the allocated instance. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::CloseDPLibrary() - { - if ( iDPLib ) - { - iDPLib->Close(); - delete iDPLib; - iDPLib = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::LoadDPLibraryL -// Loads DP API library. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::LoadDPLibraryL() - { - CloseDPLibrary(); - iDPLib = new ( ELeave ) RLibrary(); - TInt error( iDPLib->Load( KDPAPIDLLName() ) ); - if ( error ) - { - delete iDPLib; - iDPLib = NULL; - User::Leave( error ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::Convert420ToVtImg -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::Convert420ToVtImg( HBufC8* aSource, - CVtImageBitmap& aTarget ) - { - __VTPRINTENTER( "RVD(DP).Convert420ToVtImg" ) - - CFbsBitmap& bitmap( aTarget.Bitmap() ); - TSize size( bitmap.SizeInPixels() ); - TInt height( size.iHeight ); - TInt width( size.iWidth ); - TInt bytes( bitmap.ScanLineLength( width, bitmap.DisplayMode() ) ); - - const TUint8* y1ptr = aSource->Ptr(); - const TUint8* y2ptr = y1ptr + width; - const TUint8* uptr = y1ptr + ( width * height ); - const TUint8* vptr = uptr + ( width * height ) / 4; - - bitmap.LockHeap(); - - TUint8* d1ptr = reinterpret_cast< TUint8* >( bitmap.DataAddress() ); - TUint8* d2ptr = d1ptr + bytes; - - height /= 2; // divide by 2 because we process to rows at time - bytes *= 2; // multiply by 2 so we don't need to do it in loop - - while ( height-- ) - { - DoConvertYuv420toXRGB0888( width, y1ptr, y2ptr, uptr, vptr, d1ptr, - d2ptr ); - y1ptr = y2ptr; - y2ptr += width; - d1ptr += bytes; - d2ptr += bytes; - } - - bitmap.UnlockHeap(); - - __VTPRINTEXIT( "RVD(DP).Convert420ToVtImg" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::Convert422ToVtImg -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::Convert422ToVtImg( HBufC8* aSource, CVtImageBitmap& aTarget ) - { - __VTPRINTENTER( "RVD(DP).Convert422ToVtImg" ) - CFbsBitmap& bitmap( aTarget.Bitmap() ); - TSize size( bitmap.SizeInPixels() ); - TInt height( size.iHeight ); - TInt width( size.iWidth ); - TInt bytes( bitmap.ScanLineLength( width, bitmap.DisplayMode() ) ); - - const TUint8* sptr = aSource->Ptr(); - - bitmap.LockHeap(); - - TUint8* dptr = reinterpret_cast< TUint8* >( bitmap.DataAddress() ); - while ( height-- ) - { - DoConvertYuv422toXRGB0888( width, sptr, dptr ); - dptr += bytes; - } - - bitmap.UnlockHeap(); - - __VTPRINTEXIT( "RVD(DP).Convert422ToVtImg" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::UpdateVtFrame -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::UpdateVtFrame() - { - __VTPRINTENTER( "RVD(DP).UpdateVtFrame" ) - if ( IsFlag( EFrameBufferFilled ) ) - { - CFbsBitmap* bitmap = NULL; - if ( IsFlag( EFrameBufferNeedsConvertAndScale ) ) - { - if ( iPostingFormat == KDefaultPostingFormat422 ) - { - Convert422ToVtImg( iFrameBuffer, *iSource ); - } - else - { - Convert420ToVtImg( iFrameBuffer, *iSource ); - } - TRAPD( error, iImageScaler->ScaleNowL( *iSource, *iTarget ) ); - if ( !error ) - { - bitmap = &iTarget->Bitmap(); - } - ClearFlag( EFrameBufferNeedsConvertAndScale ); - } - else - { - bitmap = &iTarget->Bitmap(); - } - Config().iObserver->vtSetFrame( MVtEngFrameObserver::ERemoteVideoFrame, - bitmap ); - } - __VTPRINTEXIT( "RVD(DP).UpdateVtFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::ScalingFinished -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::ScalingFinished( TInt ) - { - } - -// Implementation for CVtEngDrawDP::TVtEngBuffer - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::TVtEngBuffer::TVtEngBuffer -// -// ----------------------------------------------------------------------------- -// -CVtEngDrawDP::TVtEngBuffer::TVtEngBuffer() - : iBuffer( 0 ) - { - __VTPRINTENTER( "RVD(DP).Buffer.Ctor" ) - __VTPRINTEXIT( "RVD(DP).Buffer.Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::TVtEngBuffer::Set -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::TVtEngBuffer::Set( CPostingSurface::TPostingBuff* aBuffer ) - { - __VTPRINTENTER( "RVD(DP).Buffer.Set" ) - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).Buffer.Set $%x", - reinterpret_cast< TUint >( aBuffer->GetBuffer() ) ) - iBuffer = aBuffer; - __VTPRINTEXIT( "RVD(DP).Buffer.Set" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::TVtEngBuffer::UnSet -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::TVtEngBuffer::UnSet() - { - __VTPRINTENTER( "RVD(DP).Buffer.UnSet" ) - iBuffer = 0; - __VTPRINTEXIT( "RVD(DP).Buffer.UnSet" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::TVtEngBuffer::IsSet -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawDP::TVtEngBuffer::IsSet() const - { - return ( iBuffer != 0 ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::TVtEngBuffer::Buffer -// -// ----------------------------------------------------------------------------- -// -CPostingSurface::TPostingBuff*& CVtEngDrawDP::TVtEngBuffer::Buffer() - { - return iBuffer; - } - -// Implementation for CVtEngDrawDP::CVtEngBufferWaiter - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngBufferWaiter::CVtEngBufferWaiter -// ----------------------------------------------------------------------------- -// -CVtEngDrawDP::CVtEngBufferWaiter::CVtEngBufferWaiter - ( CPostingSurface& aPostingSurface, MVtEngBufferWaiterObserver& aObserver ) - : CActive( CActive::EPriorityStandard ), - iPostingSurface( &aPostingSurface ), iObserver( &aObserver ) - { - __VTPRINTENTER( "RVD(DP).BufferWaiter.Ctor" ) - CActiveScheduler::Add( this ); - __VTPRINTEXIT( "RVD(DP).BufferWaiter.Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngBufferWaiter::~CVtEngBufferWaiter -// ----------------------------------------------------------------------------- -// -CVtEngDrawDP::CVtEngBufferWaiter::~CVtEngBufferWaiter() - { - __VTPRINTENTER( "RVD(DP).BufferWaiter.~" ) - Cancel(); - __VTPRINTEXIT( "RVD(DP).BufferWaiter.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngBufferWaiter::Activate -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::CVtEngBufferWaiter::Activate() - { - __VTPRINTENTER( "RVD(DP).BufferWaiter.Activate" ) - iStatus = KRequestPending; - SetActive(); - __VTPRINTEXIT( "RVD(DP).BufferWaiter.Activate" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngBufferWaiter::FetchBuffer -// ----------------------------------------------------------------------------- -// -TInt CVtEngDrawDP::CVtEngBufferWaiter::FetchBuffer() - { - __VTPRINTENTER( "RVD(DP).BufferWaiter.FetchBuffer" ) - // do nothing if we're already active - if ( IsActive() ) - { - __VTPRINTEXIT( "RVD(DP).BufferWaiter.FetchBuffer" ) - return KErrNone; - } - // else start fetching - Activate(); - __VTPRINTEXIT( "RVD(DP).BufferWaiter.FetchBuffer" ) - return iPostingSurface->WaitForNextBuffer( iStatus ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngBufferWaiter::RunL -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::CVtEngBufferWaiter::RunL() - { - __VTPRINTENTER( "RVD(DP).BufferWaiter.RunL" ) - __VTPRINT2( DEBUG_MEDIA, "RVD(DP).BufferWaiter.RunL %d", iStatus.Int() ); - TInt result( iStatus.Int() ); - if ( result == KErrNone ) - { - iObserver->BufferReady( iPostingSurface->NextBuffer() ); - } - else - { - iObserver->FetchError( result ); - } - __VTPRINTEXIT( "RVD(DP).BufferWaiter.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDP::CVtEngBufferWaiter::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDP::CVtEngBufferWaiter::DoCancel() - { - __VTPRINTENTER( "RVD(DP).BufferWaiter.DoCancel" ) - iPostingSurface->CancelBuffer(); - __VTPRINTEXIT( "RVD(DP).BufferWaiter.DoCancel" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngDrawDSA.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngDrawDSA.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,586 +0,0 @@ -/* -* 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: Remote video handler. -* -*/ - - -// INCLUDE FILES - -#include "CVtEngDrawDSA.h" -#include "CVtEngEventManager.h" -#include "VtEngPanic.h" -#include "MVtEngFrameObserver.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include -#include -#include - -// LOCAL CONSTANTS - -// Default display mode. -const TDisplayMode KVtEngDefaultDisplayMode( EColor64K ); - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::NewL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawDSA* CVtEngDrawDSA::NewL( - MDisplaySinkObserver* aObserver ) - { - CVtEngDrawDSA* self = new ( ELeave ) CVtEngDrawDSA( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::~CVtEngDrawDSA -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawDSA::~CVtEngDrawDSA() - { - __VTPRINTENTER( "RVD(DSA).~" ) - Cancel(); - delete iBitmap1; - delete iBitmap2; - if ( iImageScaler ) - { - iImageScaler->Release(); - } - __VTPRINTEXIT( "RVD(DSA).~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::CVtEngDrawDSA -// C++ constructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawDSA::CVtEngDrawDSA( MDisplaySinkObserver* aObserver ) : - CVtEngDraw( aObserver ), iBitmapSetAvail( ETrue ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseConstructL -// Base construction. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseConstructL( ) - { - __VTPRINTENTER( "RVD(DSA).BaseConstructL" ) - TSize vtEngRemoteVideoDefaultSize( KVtEngRemoteVideoDefaultWidth, - KVtEngRemoteVideoDefaultHeight ); - - iBitmap1 = new ( ELeave ) CFbsBitmap(); - User::LeaveIfError( iBitmap1->Create( - vtEngRemoteVideoDefaultSize, KVtEngDefaultDisplayMode ) ); - iBitmap2 = new ( ELeave ) CFbsBitmap(); - User::LeaveIfError( iBitmap2->Create( - vtEngRemoteVideoDefaultSize, KVtEngDefaultDisplayMode ) ); - iImageScaler = VtEngScalerFactory::CreateScalerL( *this ); - __VTPRINT2( DEBUG_MEDIA | DEBUG_CONSTRUCT, - "RVD.ConL scaler ok %d", iImageScaler != NULL ) - __VTPRINTEXIT( "RVD(DSA).BaseConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::CreateSinkL -// Instantiates display sink. -// ----------------------------------------------------------------------------- -// -MDisplaySink* CVtEngDrawDSA::CreateSinkL() - { - __VTPRINTENTER( "RVD(DSA).CreateSinkL" ) - TDisplaySinkParamsDSA params; - GetSinkParams( params ); - MDisplaySink* sink = ::CreateSinkL( params, KNullDesC8 ); - __VTPRINTEXITR( "RVD(DSA).CreateSinkL flags=%d", params.iFlags ) - return sink; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseDoCancel -// DoCancel for derived class. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseDoCancel() - { - __VTPRINTENTER( "RVD(DSA).BaseDoCancel" ) - __VTPRINTEXIT( "RVD(DSA).BaseDoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseVerifyConfigL -// Checks current configuration against DSA implementation. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseVerifyConfigL() - { - __VTPRINTENTER( "RVD(DSA).BaseVerifyConfigL" ) - __VTPRINTEXIT( "RVD(DSA).BaseVerifyConfigL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseRestartL -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseRestartL() - { - __VTPRINTENTER( "RVD(DSA).BaseRestartL" ) - __VTPRINTEXIT( "RVD(DSA).BaseRestartL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseAbortNow -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseAbortNow() - { - __VTPRINTENTER( "RVD(DSA).BaseAbortNow" ) - __VTPRINTEXIT( "RVD(DSA).BaseAbortNow" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseStartDrawL -// Starts the drawing. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseStartDrawL() - { - __VTPRINTENTER( "RVD(DSA).BaseStartDrawL" ) - if ( iDSA ) - { - SetFlag( EReadyInternal ); - if ( !IsActive() ) - { - Activate(); - iDisplaySink->SetBitmapAvailable( MDisplaySink::EFirstBitmap ); - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "RVD(DSA).BaseStartDrawL bmp avail done" ) - iWatcher->Start( KVtEngWatcherTimeout, KVtEngWatcherTimeout, - iCallback ); - } - SetFlag( ERemoteVideoDrawing ); - } - else - { - User::Leave( KErrNotReady ); - } - __VTPRINTEXIT( "RVD(DSA).BaseStartDrawL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseStopDraw -// Stop the drawing. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseStopDraw() - { - // Cancel the timer in any case. - __VTPRINTENTER( "RVD(DSA).BaseStopDraw" ) - iWatcher->Cancel(); - if ( iDSA ) - { - ClearFlag( ERemoteVideoDrawing | EStarted ); - iDSA->Cancel(); - } - - // Stop also scaling - if ( iImageScaler ) - { - iImageScaler->Cancel(); - } - - Cancel(); - __VTPRINTEXIT( "RVD(DSA).BaseStopDraw" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseSetConfigL -// Sets new configuration. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseSetConfigL( const TVtEngRenderConfig& aConfig ) - { - __VTPRINTENTER( "RVD(DSA).BaseSetConfigL" ) - Mem::FillZ( &iConfig, sizeof( TVtEngRenderConfigDSA ) ); - iConfig = aConfig; - ConfigUpdatedL(); - __VTPRINTEXIT( "RVD(DSA).BaseSetConfigL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseSetUIForegroundL -// Sets UI foreground status. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseSetUIForegroundL( TBool aForeground ) - { - __VTPRINTENTER( "RVD(DSA).BaseSetUIForegroundL" ) - if ( aForeground ) - { - TBool wasSentToBackground( IsFlag( ESentToBackground ) ); - SetFlag( EFlagUIForeground ); - ClearFlag( ESentToBackground ); - if ( wasSentToBackground ) - { - BaseRefreshBitmapsL(); - Restart( RDirectScreenAccess::ETerminateCancel ); - BaseStartDrawL(); - } - } - else - { - BaseStopDraw(); - ClearFlag( EFlagUIForeground ); - SetFlag( ESentToBackground ); - } - __VTPRINTEXIT( "RVD(DSA).BaseSetUIForegroundL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseVideoFrameSizeChangedL -// Called when incoming frame buffer size changes. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseVideoFrameSizeChangedL( const TSize& /*aTo*/ ) - { - __VTPRINTENTER( "RVD(DSA).BaseVideoFrameSizeChangedL" ) - __VTPRINTEXIT( "RVD(DSA).BaseVideoFrameSizeChangedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseRequestLastFrame -// Request update last remote video frame through MVtEngFrameObserver::vtSetFrame -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseRequestLastFrame() - { - __VTPRINTENTER( "RVD(DSA).BaseRequestLastFrame" ) - __VTPRINTEXIT( "RVD(DSA).BaseRequestLastFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::Config -// Returns current configuration. -// ----------------------------------------------------------------------------- -// -TVtEngRenderConfig& CVtEngDrawDSA::Config() - { - return iConfig; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::RunL -// CActive heir execution method. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::RunL() - { - __VTPRINTENTER( "RVD(DSA).RunL" ) - __VTPRINT2( DEBUG_MEDIA, " bmpNo=%d", iBitmapNo ) - iBitmapNo = iStatus.Int() == 0 ? - MDisplaySink::ESecondBitmap : - MDisplaySink::EFirstBitmap ; - - iBitmapSetAvail = EFalse; - - TBool dropFrame( EFalse ); - - if ( !iDSUpdated ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).RunL !Updated" ) - dropFrame = ETrue; - } - else if ( !IsFlag( EFlagUIForeground ) ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).RunL !Flag( EFlagUIForeground )" ) - dropFrame = ETrue; - } - - if ( dropFrame ) - { - iBitmapSetAvail = ETrue; - Activate(); - iDisplaySink->SetBitmapAvailable( iBitmapNo ); - __VTPRINTEXIT( "RVD(DSA).RunL" ) - return; - } - - // Image received, reset counter. - iCheckpoint = KVtEngWatcherThreshold; - - __VTPRINT2( DEBUG_MEDIA, "RVD(DSA).RunL iStatus=%d", iStatus.Int() ) - if ( iStatus >= KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA, "RVD(DSA).RunL flags=%d", iFlags ) - TBool firstFrame( !IsFlag ( EFirstFrameReceived ) ); - SetFlag( EFirstFrameReceived ); - - // Remote video is about to start? - if ( !IsFlag( EStarted ) && IsFlag( EReadyInternal ) ) - { - SetFlag( EStarted ); - iDSA->StartL(); - if ( !iConfig.iClipRect.IsEmpty() ) - { - SetFlag( EReadyForeground ); - iDSA->Gc()->SetClippingRect( iConfig.iClipRect ); - } - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).RunL notify rvd start" ) - //CVtEngEventManager::NotifyEvent( KVtEngRemoteVideoStarted ); - } - if ( firstFrame ) - { - CVtEngEventManager::NotifyEvent( KVtEngRemoteVideoStarted ); - } - if ( IsFlag( EStarted ) ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).RunL refresh" ) - BaseRefreshL(); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, "RVD.RunL notify rvd problem" ) - CVtEngEventManager::NotifyEvent( KVtEngRemoteRenderingProblem ); - __VTPRINTEXIT( "RVD(DSA).RunL" ) - return; - } - - __VTPRINT( DEBUG_MEDIA, "RVD.RunL setting active" ) - Activate(); - - // Set bitmap only if not to be scaled - if( !iImageScaler ) - { - if ( !iBitmapSetAvail ) - { - iDisplaySink->SetBitmapAvailable( iBitmapNo ); - iBitmapSetAvail = ETrue; - } - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).ScalingCompleted set bmp available" ) - } - - __VTPRINTEXIT( "RVD(DSA).RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::ScalingCompleted -// Callback to receive scaled images. -// Draws received image. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::ScalingCompleted( - CFbsBitmap* aBitmap, - TInt aError ) - { - __VTPRINTENTER( "RVD(DSA).ScalingCompleted" ) - __VTPRINT2( DEBUG_MEDIA, "RVD(DSA).ScalingReady %d", aError ) - __VTPRINT2( DEBUG_MEDIA, "RVD(DSA).ScalingReady image %d", aBitmap ? 1 : 0 ) - if ( aError == KErrNone && - aBitmap != NULL ) - { - DrawBitmap( *aBitmap ); - if ( !iBitmapSetAvail ) - { - // Set bitmap available if not already set - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).ScalingCompleted set bmp available" ) - Activate(); - iDisplaySink->SetBitmapAvailable( iBitmapNo ); - iBitmapSetAvail = ETrue; - } - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).ScalingCompleted available?" ) - } - else if ( aError != KErrCancel ) - { - // Notification of failed scaling. - CVtEngEventManager::NotifyEvent( KVtEngRemoteRenderingProblem ); - __VTPRINT( DEBUG_MEDIA, "RVD(DSA).ScalingReady problems" ) - } - __VTPRINTEXITR( "RVD(DSA).ScalingCompleted err=%d", aError ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseRefreshL -// If using scaler, start the scaling otherwise draw a bitmap. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseRefreshL() - { - __VTPRINTENTER( "RVD(DSA).BaseRefreshL" ) - if ( iConfig.iWindow ) - { - if ( IsFlag( EReady ) && IsFlag( EFirstFrameReceived ) && - IsFlag( EFlagUIForeground ) ) - { - CFbsBitmap* current = iBitmapNo != 0 ? iBitmap1 : iBitmap2; - if ( current ) - { - if ( iImageScaler ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "RVD(DSA).BaseRefreshL scaling" ) - TInt index = 0; - if ( current == iBitmap2 ) - { - index = 1; - } - iImageScaler->Cancel(); - iImageScaler->ScaleL( index ); - } - else - { - DrawBitmap( *current ); - } - } - } - } - __VTPRINTEXIT( "RVD(DSA).BaseRefreshL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::BaseRefreshBitmapsL -// Refreshes bitmaps sizes and display mode if needed. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::BaseRefreshBitmapsL() - { - __VTPRINTENTER( "RVD(DSA).BaseRefreshBitmapsL" ) - const TDisplayMode currentMode( iConfig.iWsSreenDevice->DisplayMode() ); - TBool refreshDisplayMode = EFalse; - TSize newSize( KVtEngRemoteVideoDefaultWidth, - KVtEngRemoteVideoDefaultHeight ); - - // Use new size if supplied - if ( iSourceSize.iHeight > 0 && iSourceSize.iWidth > 0 ) - { - newSize = iSourceSize; - iSourceSize.iHeight = 0; - iSourceSize.iWidth = 0; - } - - __VTPRINT( DEBUG_MEDIA , "================== RVD.RFBM ==================" ) - __VTPRINT2( DEBUG_MEDIA , " newSize.iWidth: %d", newSize.iWidth) - __VTPRINT2( DEBUG_MEDIA , " newSize.iHeight: %d ", newSize.iHeight ) - __VTPRINT( DEBUG_MEDIA , "================== RVD.RFBM ==================" ) - - TBool refreshSize = EFalse; - if ( iBitmap1 ) - { - refreshDisplayMode = ( iBitmap1->DisplayMode() != currentMode ); - refreshSize = ( newSize != iBitmap1->SizeInPixels() ); - } - - // Delete and create the bitmaps - if ( refreshDisplayMode || refreshSize || !iBitmap1 || !iBitmap2 ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "RVD(DSA).BaseRefreshBitmapsL bmp create" ) - if ( iImageScaler ) - { - iImageScaler->Cancel(); - } - - iConfig.iObserver->vtSetFrame( - MVtEngFrameObserver::ERemoteVideoFrame, 0 ); - delete iBitmap1; - iBitmap1 = NULL; - delete iBitmap2; - iBitmap2 = NULL; - - iBitmap1 = new ( ELeave ) CFbsBitmap(); - User::LeaveIfError( iBitmap1->Create( - newSize, currentMode ) ); - iBitmap2 = new ( ELeave ) CFbsBitmap(); - User::LeaveIfError( iBitmap2->Create( - newSize, currentMode ) ); - ClearFlag( EFirstFrameReceived ); - } - - // set the params for DS - TDisplaySinkParamsDSA params; - GetSinkParams( params ); - - // Update the scaler - if ( iImageScaler ) - { - // Try to configure first, if returns true - // configure again - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "RVD(DSA).BaseRefreshBitmapsL cnfg" ) - - iImageScaler->ConfigureL( currentMode, - iConfig.iRect.Size(), params.iBitmap1Handle, - params.iBitmap2Handle ); - - if ( IsFlag( EFirstFrameReceived ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "CVtEngDrawDSA::RefreshBitmapsL RFR" ) - BaseRefreshL(); - } - - } - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "RVD(DSA).BaseRefreshBitmapsL USP" ) - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "RVD(DSA).BaseRefreshBitmapsL USP flag" ) - iDisplaySink->UpdateSinkParamsL( params, iDSUpdated ); - Activate(); - iDisplaySink->SetBitmapAvailable( MDisplaySink::EFirstBitmap ); - __VTPRINTEXIT( "RVD(DSA).BaseRefreshBitmapsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::DrawBitmap -// Draws bitmap -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::DrawBitmap( CFbsBitmap& aBitmap ) - { - __VTPRINTENTER( "RVD(DSA).DrawBitmap" ) - __ASSERT_ALWAYS( aBitmap.Handle(), - Panic( EVtEngPanicInvalidBitmapHandle ) ); - __ASSERT_ALWAYS( iDSA, Panic( EVtEngPanicInvalidPointer ) ); - iDSA->Gc()->SetFaded( iConfig.iWindow->IsFaded() ); - iDSA->Gc()->BitBlt( iConfig.iRect.iTl, &aBitmap ); - iDSA->ScreenDevice()->Update(); - iConfig.iObserver->vtSetFrame( MVtEngFrameObserver::ERemoteVideoFrame, - &aBitmap ); - __VTPRINTEXITR( "RVD(DSA).DrawBitmap h=%d", aBitmap.Handle() ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::GetSinkParams -// ----------------------------------------------------------------------------- -// -void CVtEngDrawDSA::GetSinkParams( TDisplaySinkParamsDSA& aSinkParams ) - { - __VTPRINTENTER( "RVD(DSA).GetSinkParams" ) - aSinkParams.iThreadId = RThread().Id(); - aSinkParams.iRequestStatusPtr = &iStatus; - aSinkParams.iObserver = iObserver; - aSinkParams.iBitmap1Handle = iBitmap1->Handle(); - aSinkParams.iBitmap2Handle = iBitmap2->Handle(); - aSinkParams.iFlags = TDisplaySinkParams::EDisplaySinkDSA; - __VTPRINTEXIT( "RVD(DSA).GetSinkParams" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngDrawNGA.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngDrawNGA.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1143 +0,0 @@ -/* -* Copyright (c) 2004-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: Class for NGA Drawer. -* -*/ - -// INCLUDE FILES - -#include "CVtEngDrawNGA.h" -#include "CVtEngEventManager.h" -#include "VtEngPanic.h" -#include "MVtEngFrameObserver.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include -#include -#include -#include - -// Reversed enumeration for the bitmaps. -static const MDisplaySink::TBitmapNo KVtEngBitmapNoReversed[] = - { - MDisplaySink::ESecondBitmap, - MDisplaySink::EFirstBitmap - }; - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVTSurfaceBuffer::TVTSurfaceBuffer -// -// ----------------------------------------------------------------------------- -// -TVTSurfaceBuffer::TVTSurfaceBuffer( TUint8* aBuffer, TInt aSurfaceNo ) - : iBuffer( aBuffer ), iSurfaceBufferNo(aSurfaceNo) - { - __VTPRINTENTER( "RVD(NGA).TVTSurfaceBuffer.Ctor" ) - __VTPRINTEXIT( "RVD(NGA).TVTSurfaceBuffer.Ctor" ) - } -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVTSurfaceBuffer::Buffer -// -// ----------------------------------------------------------------------------- -// -TUint8*& TVTSurfaceBuffer::Buffer() - { - return iBuffer; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVTSurfaceBuffer::SurfaceNo -// -// ----------------------------------------------------------------------------- -// -TInt TVTSurfaceBuffer::SurfaceNo() - { - return iSurfaceBufferNo; - } - -void TVTSurfaceBuffer::Set( TUint8* aBuffer, TInt aSurfaceNo ) - { - iBuffer = aBuffer; - iSurfaceBufferNo = aSurfaceNo; - } - -void TVTSurfaceBuffer::UnSet() - { - iBuffer = NULL; - iSurfaceBufferNo = KErrNotFound; - } -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::NewL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawNGA* CVtEngDrawNGA::NewL( - MDisplaySinkObserver* aObserver ) - { - CVtEngDrawNGA* self = new ( ELeave ) CVtEngDrawNGA( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::~CVtEngDrawNGA -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawNGA::~CVtEngDrawNGA() - { - __VTPRINTENTER( "RVD(NGA).~" ) - Cancel(); - - if(iSurfaceCreated) - { - - if (iSurfaceManager) - { - iConfig.iRemoteWindow->RemoveBackgroundSurface(ETrue); - iConfig.iWsSession->UnregisterSurface(0, iSurfaceId); - iSurfaceChunk->Close(); - delete iSurfaceChunk; - iSurfaceChunk = NULL; - iSurfaceManager->CloseSurface(iSurfaceId); - iSurfaceUpdateSession.CancelAllUpdateNotifications(); - iSurfaceUpdateSession.Close(); - - /* Close the surface manager handle */ - iSurfaceManager->Close(); - - delete iSurfaceManager; - iSurfaceManager = 0; - } - - for ( TInt i = KVtEngMaxSurfaceBuffers-1; i >= 0 ; i-- ) - { - if (iCallBackTable[i]) - { - iCallBackTable[i]->Cancel(); - delete iCallBackTable[i]; - iCallBackTable[i] = NULL; - } - } - - iSurfaceBuffers[ 0 ].UnSet(); - iSurfaceBuffers[ 1 ].UnSet(); - iSurfaceBuffer0.UnSet(); - iSurfaceBuffer1.UnSet(); - } - delete iBufferWaiter; - iWaitingBuffers.Reset(); - - __VTPRINTEXIT( "RVD(NGA).~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngDrawNGA -// C++ constructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngDrawNGA::CVtEngDrawNGA( MDisplaySinkObserver* aObserver ) : - CVtEngDraw( aObserver ), - iSurfaceFormat( EUidPixelFormatYUV_420Planar ) - - { - iConfig.iRemoteWindow = NULL; - iConfig.iWsSession = NULL; - iSurfaceCreated = EFalse; - iWaitingBuffers.Reset(); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseConstructL -// Base construction. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseConstructL( ) - { - __VTPRINTENTER( "RVD(NGA).BaseConstructL" ) - DoBaseConstructL(); - __VTPRINTEXIT( "RVD(NGA).BaseConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CreateSinkL -// Instantiates display sink. -// ----------------------------------------------------------------------------- -// -MDisplaySink* CVtEngDrawNGA::CreateSinkL() - { - __VTPRINTENTER( "RVD(NGA).CreateSinkL" ) - TDisplaySinkParamsNGA params; - GetSinkParams( params ); - MDisplaySink* sink = ::CreateSinkL( params, KNullDesC8 ); - if ( IsFlag( EBaseConstructCalled ) ) - { - sink->Pause(); - SetFlag( ESinkParamUpdateRequired | ESinkResumeRequired ); - } - __VTPRINTEXITR( "RVD(NGA).CreateSinkL flags=%d", params.iFlags ) - return sink; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseRefreshL -// If using scaler, start the scaling otherwise draw a bitmap. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseRefreshL() - { - __VTPRINTENTER( "RVD(NGA).BaseRefreshL" ) - __VTPRINTEXIT( "RVD(NGA).BaseRefreshL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseRefreshBitmapsL -// Refreshes bitmaps sizes and display mode if needed. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseRefreshBitmapsL() - { - __VTPRINTENTER( "RVD(NGA).BaseRefreshBitmapsL" ) - BaseConstructL(); - CreateSurfaceL(); - // set the params for DS - UpdateSinkParamsL(); - ClearFlag( EFirstFrameReceived ); - __VTPRINTEXIT( "RVD(NGA).BaseRefreshBitmapsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseDoCancel -// DoCancel for derived class. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseDoCancel() - { - __VTPRINTENTER( "RVD(NGA).BaseDoCancel" ) - __VTPRINTEXIT( "RVD(NGA).BaseDoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseVerifyConfigL -// Checks current configuration against DSA implementation. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseVerifyConfigL() - { - __VTPRINTENTER( "RVD(NGA).BaseVerifyConfigL" ) - __VTPRINTEXIT( "RVD(NGA).BaseVerifyConfigL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseRestartL -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseRestartL() - { - __VTPRINTENTER( "RVD(NGA).BaseRestartL" ) - __VTPRINTEXIT( "RVD(NGA).BaseRestartL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseAbortNow -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseAbortNow() - { - __VTPRINTENTER( "RVD(NGA).BaseAbortNow" ) - __VTPRINTEXIT( "RVD(NGA).BaseAbortNow" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseStartDrawL -// Starts the drawing. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseStartDrawL() - { - __VTPRINTENTER( "RVD(NGA).BaseStartDrawL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( EBaseBaseStartDrawCalled ); - } - else - { - DoBaseStartDrawL(); - } - __VTPRINTEXIT( "RVD(NGA).BaseStartDrawL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseStopDraw -// Stop the drawing. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseStopDraw() - { - // Cancel the timer in any case. - __VTPRINTENTER( "RVD(NGA).BaseStopDraw" ) - ClearFlag( EBaseBaseStartDrawCalled ); - iWatcher->Cancel(); - iBufferWaiter->Cancel(); - ClearFlag( ERemoteVideoDrawing | EStarted ); - for ( TInt i = KVtEngMaxSurfaceBuffers-1; i >= 0 ; i-- ) - { - if (iCallBackTable[i]) - { - iCallBackTable[i]->Cancel(); - } - } - Cancel(); - - __VTPRINTEXIT( "RVD(NGA).BaseStopDraw" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseSetConfigL -// Sets new configuration. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseSetConfigL( const TVtEngRenderConfig& aConfig ) - { - __VTPRINTENTER( "RVD(NGA).BaseSetConfigL" ) - Mem::FillZ( &iConfig, sizeof( TVtEngRenderConfigNGA ) ); - iConfig = aConfig; - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( EBaseSetConfigCalled ); - } - else - { - ConfigUpdatedL(); - } - __VTPRINTEXIT( "RVD(NGA).BaseSetConfigL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseSetUIForegroundL -// Sets UI foreground status. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseSetUIForegroundL( TBool aForeground ) - { - __VTPRINTENTER( "RVD(NGA).BaseSetUIForegroundL" ) - __VTPRINTEXIT( "RVD(NGA).BaseSetUIForegroundL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseRequestLastFrame -// Request update last remote video frame through MVtEngFrameObserver::vtSetFrame -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseRequestLastFrame() - { - __VTPRINTENTER( "RVD(NGA).BaseRequestLastFrame" ) - __VTPRINTEXIT( "RVD(NGA).BaseRequestLastFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BaseVideoFrameSizeChangedL -// Called when incoming frame buffer size changes. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BaseVideoFrameSizeChangedL( const TSize& /*aTo*/ ) - { - __VTPRINTENTER( "RVD(NGA).BaseVideoFrameSizeChangedL" ) - BaseConstructL(); - - TInt err; - - iConfig.iRemoteWindow->RemoveBackgroundSurface(ETrue); - iConfig.iWsSession->UnregisterSurface(0, iSurfaceId); - - iSurfaceChunk->Close(); - delete iSurfaceChunk; - iSurfaceChunk = NULL; - iSurfaceManager->CloseSurface(iSurfaceId); - iSurfaceUpdateSession.CancelAllUpdateNotifications(); - iSurfaceUpdateSession.Close(); - - /* Close the surface manager handle */ - iSurfaceManager->Close(); - delete iSurfaceManager; - iSurfaceManager = 0; - - for ( TInt i = KVtEngMaxSurfaceBuffers-1; i >= 0 ; i-- ) - { - if (iCallBackTable[i]) - { - iCallBackTable[i]->Cancel(); - delete iCallBackTable[i]; - iCallBackTable[i] = NULL; - } - } - iSurfaceBuffers[ 0 ].UnSet(); - iSurfaceBuffers[ 1 ].UnSet(); - iSurfaceBuffer0.UnSet(); - iSurfaceBuffer1.UnSet(); - iWaitingBuffers.Reset(); - - err = iSurfaceUpdateSession.Connect(); - User::LeaveIfError(err); - - iSurfaceManager = new RSurfaceManager(); - - User::LeaveIfNull(iSurfaceManager); - err = iSurfaceManager->Open(); - User::LeaveIfError(err); - - RSurfaceManager::TSurfaceCreationAttributesBuf attributes; - attributes().iPixelFormat = iSurfaceFormat; - attributes().iSize = iSourceSize; - attributes().iBuffers = KVtEngMaxSurfaceBuffers; - - //attributes().iStride = iSourceSize.iWidth*2; - attributes().iStride = iSourceSize.iWidth*3/2; - - attributes().iOffsetToFirstBuffer = 0; - attributes().iAlignment = 4; - attributes().iContiguous = EFalse; - attributes().iMappable = ETrue; - - err = iSurfaceManager->CreateSurface(attributes, iSurfaceId); - User::LeaveIfError(err); - - // Map to chunk - iSurfaceChunk = new RChunk(); - User::LeaveIfNull(iSurfaceChunk); - err = iSurfaceManager->MapSurface(iSurfaceId, *iSurfaceChunk); - User::LeaveIfError(err); - - // Get the info from the surfaceManager - RSurfaceManager::TInfoBuf info; - err = iSurfaceManager->SurfaceInfo(iSurfaceId, info); - User::LeaveIfError(err); - - TInt offset; - iSurfaceManager->GetBufferOffset(iSurfaceId, 0, offset); - iSurfaceBuffer0.Set(iSurfaceChunk->Base() + offset, 0 ); - iSurfaceManager->GetBufferOffset(iSurfaceId, 1, offset); - iSurfaceBuffer1.Set(iSurfaceChunk->Base() + offset, 1 ); - - iConfig.iWsSession->RegisterSurface(0, iSurfaceId); - iConfig.iRemoteWindow->SetBackgroundSurface(iSurfaceId); - - iCallBackTable[0] = new(ELeave) CActiveCallBack( - TCallBack(SurfaceBuffer0Ready, this), - CActive::EPriorityStandard-1); - CActiveScheduler::Add(iCallBackTable[0]); - - iCallBackTable[1] = new(ELeave) CActiveCallBack( - TCallBack(SurfaceBuffer1Ready, this), - CActive::EPriorityStandard-1); - CActiveScheduler::Add(iCallBackTable[1]); - - iSurfaceCreated = ETrue; - - ClearFlag( EInitializePostingSurfaceCalled ); - - // set the params for DS - UpdateSinkParamsL(); - ClearFlag( EFirstFrameReceived ); - - __VTPRINTEXIT( "RVD(NGA).BaseVideoFrameSizeChangedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawDSA::Config -// Returns current configuration. -// ----------------------------------------------------------------------------- -// -TVtEngRenderConfig& CVtEngDrawNGA::Config() - { - return iConfig; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::RunL -// CActive heir execution method. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::RunL() - { - __VTPRINTENTER( "RVD(NGA).RunL" ) - - TInt bitmapNo( iStatus.Int() ); - - if ( bitmapNo < KErrNone ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(NGA).RunL notify rvd problem" ) - CVtEngEventManager::NotifyEvent( KVtEngRemoteRenderingProblem ); - return; - } - - TVtEngBuffer& buffer = iSurfaceBuffers[ bitmapNo ]; - - if ( !iDSUpdated ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(NGA).RunL !Updated" ) - __VTPRINTEXIT( "RVD(NGA).RunL" ) - return; - } - else if ( buffer.SurfaceBuffer() == NULL ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(NGA).RunL signalled with NULL buffer" ) - TInt result( iBufferWaiter->FetchBuffer() ); - User::LeaveIfError( result ); - __VTPRINTEXIT( "RVD(NGA).RunL" ) - return; - } - - // Image received, reset counter. - iCheckpoint = KVtEngWatcherThreshold; - - __VTPRINT2( DEBUG_MEDIA, "RVD(NGA).RunL flags=%d", iFlags ) - TBool firstFrame( !IsFlag ( EFirstFrameReceived ) ); - SetFlag( EFirstFrameReceived ); - if ( firstFrame ) - { - CVtEngEventManager::NotifyEvent( KVtEngRemoteVideoStarted ); - } - - TInt surfaceno = buffer.SurfaceBuffer()->SurfaceNo(); - __VTPRINT2( DEBUG_MEDIA, "RVD(NGA).RunL received buffer surface id %d", surfaceno ) - if ( iSubmitPending ) - { - __VTPRINT( DEBUG_MEDIA, "RVD(NGA).RunL submit pending") - iWaitingBuffers.AddLast(buffer); - } - else - { - iCallBackTable[surfaceno]->iStatus = KRequestPending; - iCallBackTable[surfaceno]->SetActive(); - iSurfaceUpdateSession.NotifyWhenDisplayed(iCallBackTable[surfaceno]->iStatus, iTimeStamp); - iSubmitPending = ETrue; - iSurfaceUpdateSession.SubmitUpdate(0, iSurfaceId, surfaceno, NULL); - buffer.UnSet(); - } - if ( iSurfaceBuffers[ KVtEngBitmapNoReversed[ bitmapNo ] ].IsSet() ) - { - __VTPRINT2( DEBUG_MEDIA, "RVD(NGA).RunL reactivating for buffer %d", - KVtEngBitmapNoReversed[ bitmapNo ] ) - Activate(); - DisplaySink().NextFrame(); - } - TInt result = iBufferWaiter->FetchBuffer(); - User::LeaveIfError( result ); - - __VTPRINTEXIT( "RVD(NGA).RunL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::BufferReadyL -// BufferReadyL -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::BufferReadyL( TVTSurfaceBuffer* aBuffer ) - { - __VTPRINTENTER( "RVD(NGA).BufferReadyL" ) - SetAvailableToSink( aBuffer ); - __VTPRINTEXIT( "RVD(NGA).BufferReadyL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::FetchError -// Buffer fetching error -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::FetchError( TInt ) - { - __VTPRINTENTER( "RVD(NGA).FetchError" ) - CVtEngEventManager::NotifyEvent( KVtEngRemoteRenderingProblem ); - __VTPRINTEXIT( "RVD(NGA).FetchError" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::DoBaseConstructL -// Base construction implementation -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::DoBaseConstructL() - { - __VTPRINTENTER( "RVD(NGA).DoBaseConstructL" ) - delete iBufferWaiter; - iBufferWaiter = NULL; - - iBufferWaiter = - new ( ELeave ) CVtEngBufferWaiter( *this ); - - for ( TInt i = MDisplaySink::EFirstBitmap; - i < MDisplaySink::EFirstBitmap + KVtEngMaxSurfaceBuffers; i++ ) - { - iSurfaceBuffers[ i ].UnSet(); - } - ClearFlag( EBaseConstructCalled ); - __VTPRINTEXIT( "RVD(NGA).DoBaseConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::UpdateSinkParamsL -// Updates sink params -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::UpdateSinkParamsL() - { - __VTPRINTENTER( "RVD(NGA).UpdateSinkParamsL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( ESinkParamUpdateRequired ); - } - else - { - DoUpdateSinkParamsL(); - } - __VTPRINTEXIT( "RVD(NGA).UpdateSinkParamsL" ) - } - - - // ----------------------------------------------------------------------------- -// CVtEngDrawNGA::DoBaseStartDrawL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::DoBaseStartDrawL() - { - __VTPRINTENTER( "RVD(NGA).DoBaseStartDrawL" ) - SetFlag( EReadyInternal ); - if ( !iWatcher->IsActive() ) - { - iWatcher->Start( KVtEngWatcherTimeout, KVtEngWatcherTimeout, - iCallback ); - } - - DoSurfaceBuffer0Ready(); - DoSurfaceBuffer1Ready(); - - User::LeaveIfError( iBufferWaiter->FetchBuffer() ); - - - SetFlag( ERemoteVideoDrawing ); - ClearFlag( EBaseBaseStartDrawCalled ); - __VTPRINTEXIT( "RVD(NGA).DoBaseStartDrawL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::DoCreateSurfaceL -// Create surface implementation. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::DoCreateSurfaceL() - { - __VTPRINTENTER( "RVD(NGA).DoCreateSurfaceL" ) - TInt err; - - if(iSurfaceCreated) - { - - if (iSurfaceManager) - { - /* Change log for recreate surface objects - * Surface staffs should NOT be recreated once created, - * but unregister and register needs to be done since the - * bounding window change its position and size. At this - * moment, reset the iWaitingBuffers and reset the callbacks - * are recommended. - */ - iConfig.iRemoteWindow->RemoveBackgroundSurface(ETrue); - iConfig.iWsSession->UnregisterSurface(0, iSurfaceId); - - /* Comment out below code to prevent delete the surface objects - * at this current stage, code below should NOT be removed due to - * potential future uses. - */ - /* - iSurfaceChunk->Close(); - delete iSurfaceChunk; - iSurfaceChunk = NULL; - iSurfaceManager->CloseSurface(iSurfaceId); - iSurfaceUpdateSession.CancelAllUpdateNotifications(); - iSurfaceUpdateSession.Close(); - */ - - /* Close the surface manager handle */ - /* - iSurfaceManager->Close(); - delete iSurfaceManager; - iSurfaceManager = 0; - */ - } - for ( TInt i = KVtEngMaxSurfaceBuffers-1; i >= 0 ; i-- ) - { - if (iCallBackTable[i]) - { - iCallBackTable[i]->Cancel(); - delete iCallBackTable[i]; - iCallBackTable[i] = NULL; - } - } - /* Comment out below code to prevent delete the surface buffers, - * otherwise the last buffer would not store the last frame. - * Code below should NOT be removed due to potential future uses. - */ - /* - iSurfaceBuffers[ 0 ].UnSet(); - iSurfaceBuffers[ 1 ].UnSet(); - iSurfaceBuffer0.UnSet(); - iSurfaceBuffer1.UnSet(); - */ - iWaitingBuffers.Reset(); - } - /* Add else branch to escape the recreate of the surface objects, - * it could be changed in future. - */ - else - { - err = iSurfaceUpdateSession.Connect(); - User::LeaveIfError(err); - - iSurfaceManager = new RSurfaceManager(); - - User::LeaveIfNull(iSurfaceManager); - err = iSurfaceManager->Open(); - User::LeaveIfError(err); - - RSurfaceManager::TSurfaceCreationAttributesBuf attributes; - attributes().iPixelFormat = iSurfaceFormat; - attributes().iSize = iSourceSize; - attributes().iBuffers = KVtEngMaxSurfaceBuffers; - - //attributes().iStride = iSourceSize.iWidth*2; - attributes().iStride = iSourceSize.iWidth*3/2; - - attributes().iOffsetToFirstBuffer = 0; - attributes().iAlignment = 4; - attributes().iContiguous = EFalse; - attributes().iMappable = ETrue; - - err = iSurfaceManager->CreateSurface(attributes, iSurfaceId); - User::LeaveIfError(err); - - // Map to chunk - iSurfaceChunk = new RChunk(); - User::LeaveIfNull(iSurfaceChunk); - err = iSurfaceManager->MapSurface(iSurfaceId, *iSurfaceChunk); - User::LeaveIfError(err); - - // Get the info from the surfaceManager - RSurfaceManager::TInfoBuf info; - err = iSurfaceManager->SurfaceInfo(iSurfaceId, info); - User::LeaveIfError(err); - - TInt offset; - iSurfaceManager->GetBufferOffset(iSurfaceId, 0, offset); - iSurfaceBuffer0.Set(iSurfaceChunk->Base() + offset, 0 ); - iSurfaceManager->GetBufferOffset(iSurfaceId, 1, offset); - iSurfaceBuffer1.Set(iSurfaceChunk->Base() + offset, 1 ); - } - - iConfig.iWsSession->RegisterSurface(0, iSurfaceId); - iConfig.iRemoteWindow->SetBackgroundSurface(iSurfaceId); - - iCallBackTable[0] = new(ELeave) CActiveCallBack( - TCallBack(SurfaceBuffer0Ready, this), - CActive::EPriorityStandard-1); - CActiveScheduler::Add(iCallBackTable[0]); - - iCallBackTable[1] = new(ELeave) CActiveCallBack( - TCallBack(SurfaceBuffer1Ready, this), - CActive::EPriorityStandard-1); - CActiveScheduler::Add(iCallBackTable[1]); - - iSurfaceCreated = ETrue; - - ClearFlag( EInitializePostingSurfaceCalled ); - __VTPRINTEXIT( "RVD(NGA).DoCreateSurfaceL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::DoUpdateSinkParamsL -// Updates sink params -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::DoUpdateSinkParamsL() - { - __VTPRINTENTER( "RVD(NGA).DoUpdateSinkParamsL" ) - TDisplaySinkParamsNGA params; - GetSinkParams( params ); - DisplaySink().UpdateSinkParamsL( params, iDSUpdated ); - ClearFlag( ESinkParamUpdateRequired ); - if ( IsFlag( ESinkResumeRequired ) ) - { - DisplaySink().Resume(); - ClearFlag( ESinkResumeRequired ); - } - __VTPRINTEXIT( "RVD(DP).DoUpdateSinkParamsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CreateSurfaceL -// Create surface. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::CreateSurfaceL() - { - __VTPRINTENTER( "RVD(NGA).CreateSurfaceL" ) - if ( IsFlag( EBaseConstructCalled ) ) - { - SetFlag( EInitializePostingSurfaceCalled ); - } - else - { - DoCreateSurfaceL(); - } - __VTPRINTEXIT( "RVD(NGA).CreateSurfaceL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::GetSinkParams -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::GetSinkParams( TDisplaySinkParamsNGA& aSinkParams ) - { - __VTPRINTENTER( "RVD(NGA).GetSinkParams" ) - Mem::FillZ( &aSinkParams, sizeof( TDisplaySinkParamsNGA ) ); - aSinkParams.iThreadId = RThread().Id(); - aSinkParams.iRequestStatusPtr = &iStatus; - aSinkParams.iObserver = iObserver; - aSinkParams.iSurfaceBuffer1 = &iSurfaceBuffers[ 0 ].Buffer(); - aSinkParams.iSurfaceBuffer2 = &iSurfaceBuffers[ 1 ].Buffer(); - aSinkParams.iFrameSize = iSourceSize; - aSinkParams.iSurfaceFormat = iSurfaceFormat; - aSinkParams.iFlags = TDisplaySinkParams::EDisplaySinkNGA; - __VTPRINTEXITR( "RVD(NGA).GetSinkParams flags=%d", - (TInt) aSinkParams.iFlags ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::DisplaySink -// Returns reference to sink. -// ----------------------------------------------------------------------------- -// -MDisplaySink& CVtEngDrawNGA::DisplaySink() - { - return *iDisplaySink; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::SetToSink -// Sets posting buffer to sink. -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::SetAvailableToSink( TVTSurfaceBuffer* aBuffer ) - { - __VTPRINTENTER( "RVD(NGA).SetAvailableToSink" ) - for ( TInt i = MDisplaySink::EFirstBitmap; - i < MDisplaySink::EFirstBitmap + KVtEngMaxSurfaceBuffers; i++ ) - { - if ( !iSurfaceBuffers[ i ].IsSet() ) - { - iSurfaceBuffers[ i ].Set( aBuffer ); - Activate(); - DisplaySink().SetBitmapAvailable( - static_cast< MDisplaySink::TBitmapNo >( i ) ); - break; - } - } - __VTPRINTEXIT( "RVD(NGA).SetAvailableToSink" ) - } - -TInt CVtEngDrawNGA::SurfaceBuffer0Ready( TAny* aAny ) - { - __VTPRINTENTER( "RVD(NGA).SurfaceBuffer0Ready" ) - __VTPRINTEXIT( "RVD(NGA).SurfaceBuffer0Ready" ) - return ((CVtEngDrawNGA*)aAny)->DoSurfaceBuffer0Ready(); - } - -TBool CVtEngDrawNGA::DoSurfaceBuffer0Ready() - { - __VTPRINTENTER( "RVD(NGA).DoSurfaceBuffer0Ready" ) - if ( iSubmitPending ) - { - iSubmitPending = EFalse; - } - if (!iWaitingBuffers.IsEmpty()) - { - TVtEngBuffer* buffer = iWaitingBuffers.First(); - TInt surfaceno = buffer->SurfaceBuffer()->SurfaceNo(); - __VTPRINT2( DEBUG_MEDIA, "RVD(NGA).DoSurfaceBuffer0Ready, surface buffer %d is in waitingqueue", surfaceno ) - iCallBackTable[surfaceno]->iStatus = KRequestPending; - iCallBackTable[surfaceno]->SetActive(); - iSurfaceUpdateSession.NotifyWhenDisplayed(iCallBackTable[surfaceno]->iStatus, iTimeStamp); - iSubmitPending = ETrue; - iSurfaceUpdateSession.SubmitUpdate(0, iSurfaceId, surfaceno, NULL); - iWaitingBuffers.Remove(*buffer); - buffer->UnSet(); - } - iBufferWaiter->BufferAvailable(iSurfaceBuffer0); - __VTPRINTEXIT( "RVD(NGA).DoSurfaceBuffer0Ready" ) - return ETrue; - } - -TInt CVtEngDrawNGA::SurfaceBuffer1Ready( TAny* aAny ) - { - __VTPRINTENTER( "RVD(NGA).SurfaceBuffer1Ready" ) - __VTPRINTEXIT( "RVD(NGA).SurfaceBuffer1Ready" ) - return ((CVtEngDrawNGA*)aAny)->DoSurfaceBuffer1Ready(); - } - -TBool CVtEngDrawNGA::DoSurfaceBuffer1Ready() - { - __VTPRINTENTER( "RVD(NGA).DoSurfaceBuffer1Ready" ) - if ( iSubmitPending ) - { - iSubmitPending = EFalse; - } - - if (!iWaitingBuffers.IsEmpty()) - { - TVtEngBuffer* buffer = iWaitingBuffers.First(); - TInt surfaceno = buffer->SurfaceBuffer()->SurfaceNo(); - __VTPRINT2( DEBUG_MEDIA, "RVD(NGA).DoSurfaceBuffer0Ready, surface buffer %d is in waitingqueue", surfaceno ) - iCallBackTable[surfaceno]->iStatus = KRequestPending; - iCallBackTable[surfaceno]->SetActive(); - iSurfaceUpdateSession.NotifyWhenDisplayed(iCallBackTable[surfaceno]->iStatus, iTimeStamp); - iSubmitPending = ETrue; - iSurfaceUpdateSession.SubmitUpdate(0, iSurfaceId, surfaceno, NULL); - iWaitingBuffers.Remove(*buffer); - buffer->UnSet(); - } - iBufferWaiter->BufferAvailable(iSurfaceBuffer1); - __VTPRINTEXIT( "RVD(NGA).DoSurfaceBuffer1Ready" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVtEngBuffer::TVtEngBuffer -// -// ----------------------------------------------------------------------------- -// -CVtEngDrawNGA::TVtEngBuffer::TVtEngBuffer() - : iBuffer( 0 ), iSurfaceBuffer(0) - { - __VTPRINTENTER( "RVD(NGA).Buffer.Ctor" ) - __VTPRINTEXIT( "RVD(NGA).Buffer.Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVtEngBuffer::Set -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::TVtEngBuffer::Set( TVTSurfaceBuffer* aBuffer ) - { - __VTPRINTENTER( "RVD(NGA).Buffer.Set" ) - iSurfaceBuffer = aBuffer; - iBuffer = aBuffer->Buffer(); - __VTPRINTEXIT( "RVD(NGA).Buffer.Set" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVtEngBuffer::UnSet -// -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::TVtEngBuffer::UnSet() - { - __VTPRINTENTER( "RVD(NGA).Buffer.UnSet" ) - iSurfaceBuffer = 0; - iBuffer = 0; - __VTPRINTEXIT( "RVD(NGA).Buffer.UnSet" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVtEngBuffer::IsSet -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngDrawNGA::TVtEngBuffer::IsSet() const - { - return ( iSurfaceBuffer != NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVtEngBuffer::Buffer -// -// ----------------------------------------------------------------------------- -// -TVTSurfaceBuffer* &CVtEngDrawNGA::TVtEngBuffer::SurfaceBuffer() - { - return iSurfaceBuffer; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::TVtEngBuffer::Buffer -// -// ----------------------------------------------------------------------------- -// -TUint8* &CVtEngDrawNGA::TVtEngBuffer::Buffer() - { - return iBuffer; - } -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::CVtEngBufferWaiter -// ----------------------------------------------------------------------------- -// -CVtEngDrawNGA::CVtEngBufferWaiter::CVtEngBufferWaiter - //( CVideoRenderer& aVideoRenderer, MVtEngNGABufferWaiterObserver& aObserver ) - ( MVtEngNGABufferWaiterObserver& aObserver ) - : CActive( CActive::EPriorityStandard ), - iObserver( &aObserver ) - { - __VTPRINTENTER( "RVD(NGA).BufferWaiter.Ctor" ) - for ( TInt i = 0; i < KVtEngMaxSurfaceBuffers; i++ ) - { - this->iBuffers[ i ] = NULL; - } - CActiveScheduler::Add( this ); - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::~CVtEngBufferWaiter -// ----------------------------------------------------------------------------- -// -CVtEngDrawNGA::CVtEngBufferWaiter::~CVtEngBufferWaiter() - { - __VTPRINTENTER( "RVD(NGA).BufferWaiter.~" ) - Cancel(); - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::Activate -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::CVtEngBufferWaiter::Activate() - { - __VTPRINTENTER( "RVD(NGA).BufferWaiter.Activate" ) - iStatus = KRequestPending; - SetActive(); - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.Activate" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::FetchBuffer -// ----------------------------------------------------------------------------- -// -TInt CVtEngDrawNGA::CVtEngBufferWaiter::FetchBuffer() - { - __VTPRINTENTER( "RVD(NGA).BufferWaiter.FetchBuffer" ) - if ( IsActive() ) - { - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.FetchBuffer 1" ) - return KErrNone; - } - - Activate(); - if (iStatus == KRequestPending) - { - for ( TInt i = 0; i < KVtEngMaxSurfaceBuffers; i++ ) - { - if(this->iBuffers[ i ] != NULL) - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - break; - } - } - } - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.FetchBuffer 2" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::BufferAvailable -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::CVtEngBufferWaiter::BufferAvailable(TVTSurfaceBuffer& aBuffer) -{ - __VTPRINTENTER( "RVD(NGA).BufferWaiter.BufferAvailable" ) - for ( TInt i = 0; i < KVtEngMaxSurfaceBuffers; i++ ) - { - if(this->iBuffers[ i ] == NULL ) - { - this->iBuffers[ i ]= &aBuffer; - break; - } - } - - if(iStatus == KRequestPending ) - { - for ( TInt i = 0; i < KVtEngMaxSurfaceBuffers; i++ ) - { - if(this->iBuffers[ i ] != NULL) - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - break; - } - } - } - - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.BufferAvailable" ) -} - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::RunL -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::CVtEngBufferWaiter::RunL() - { - __VTPRINTENTER( "RVD(NGA).BufferWaiter.RunL" ) - TInt result( iStatus.Int() ); - if ( result == KErrNone ) - { - for ( TInt i = 0; i < KVtEngMaxSurfaceBuffers; i++ ) - { - if(this->iBuffers[ i ] != NULL) - { - TRAP_IGNORE( iObserver->BufferReadyL( this->iBuffers[ i ] ) ); - this->iBuffers[ i ] = NULL; - break; - } - } - } - else - { - iObserver->FetchError( result ); - } - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDrawNGA::CVtEngBufferWaiter::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtEngDrawNGA::CVtEngBufferWaiter::DoCancel() - { - __VTPRINTENTER( "RVD(NGA).BufferWaiter.DoCancel" ) - - if ( iStatus == KRequestPending ) - { - TRequestStatus* status = &iStatus; - User::RequestComplete(status, KErrCancel); - } - - __VTPRINTEXIT( "RVD(NGA).BufferWaiter.DoCancel" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngDtmfHandler.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngDtmfHandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Handler for DTMF sending. -* -*/ - - -// INCLUDE FILES -#include "CVtEngDtmfHandler.h" -#include "CVtEngMediaHandler.h" -#include "VtEngPanic.h" -#include "cvtlogger.h" - -// LOCAL MACROS -#define DTMF_STATES_COUNT 3 -const TInt KProtoDtmfCommandId = -1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::NewL -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfHandler* CVtEngDtmfHandler::NewL( MVtH324ConfigCommand& aH324Config ) - { - __VTPRINTENTER( "DTMF.New" ) - CVtEngDtmfHandler* self = new ( ELeave ) CVtEngDtmfHandler( aH324Config ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "DTMF.New" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::~CVtEngDtmfHandler -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfHandler::~CVtEngDtmfHandler() - { - __VTPRINTENTER( "DTMF.~" ) - if ( iDtmfStates ) - { - iDtmfStates->ResetAndDestroy(); - } - delete iDtmfStates; - if( iProtoDtmf ) - { - VTProtocolFactory::DeleteUserInputIndication(iProtoDtmf); - } - iProtoDtmf = NULL; - __VTPRINTEXIT( "DTMF.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::HandleL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::HandleL( CVtEngOperation& aOp ) - { - __VTPRINTENTER( "DTMF.HandleL" ) - - const TVtEngCommandId cmdId( aOp.Command() ); - switch ( cmdId ) - { - case KVtEngStartDtmfTone: - { - __VTPRINT( DEBUG_MEDIA , "DTMF. start tone" ) - TChar tone; - TVtEngOpParamUtil::Set( tone, aOp ); - CVtEngDtmfState* state = (*iDtmfStates)[iCurrentState]; - if ( state ) - { - TVtEngDtmfTone dtmfTone( tone ); - state->SendDtmfL( dtmfTone ); - } - } - break; - case KVtEngStopDtmfTone: - __VTPRINT( DEBUG_MEDIA , "DTMF. stop tone (no op)" ) - break; - // Handling of different UIIs - case KVtEngSetUIIDtmfSupport: - SetUIISupport( EDTMFString ); - __VTPRINT( DEBUG_MEDIA , "DTMF Support enabled" ) - break; - case KVtEngSetUIIBasicStringSupport: - SetUIISupport( EBasicString ); - __VTPRINT( DEBUG_MEDIA , "Basic string Support enabled" ) - break; - case KVtEngSetUIIIA5StringSupport: - SetUIISupport( EIA5String ); - __VTPRINT( DEBUG_MEDIA , "IA5 String Support enabled" ) - break; - case KVtEngSetUIIGeneralStringSupport: - SetUIISupport( EGeneralString ); - __VTPRINT( DEBUG_MEDIA , "General String Support enabled" ) - break; - default: - __VTPRINT( DEBUG_MEDIA , "DTMF.Handle cmd not supported" ) - User::Leave( KErrNotSupported ); - } - __VTPRINTEXIT( "DTMF.HandleL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::ActivateState -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfState& CVtEngDtmfHandler::ActivateState( TVtEngDtmfState aNewState ) - { - __VTPRINTENTER( "DTMF.ActivateState" ) - __VTPRINT2( DEBUG_MEDIA , " new state=%d", aNewState ) - __ASSERT_ALWAYS( aNewState >= EVtDtmfStateIdle && - aNewState <= EVtDtmfStateBuffered, - Panic( EVtEngPanicInvalidDtmfState) ); - iCurrentState = aNewState; - __VTPRINTEXIT( "DTMF.ActivateState" ) - return *(*iDtmfStates)[iCurrentState]; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::SendComplete -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::SendComplete( TInt aError ) - { - __VTPRINTENTER( "DTMF.SendComplete" ) -#ifdef VTDEBUG - TRAPD( ignore, HandleSendCompleteL( aError ) ); - __VTPRINT2( DEBUG_MEDIA , "DTMF.SendComplete err=%d", ignore ) -#else - TRAP_IGNORE( HandleSendCompleteL( aError ) ); -#endif // VTDEBUG - __VTPRINTEXIT( "DTMF.SendComplete" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::ProtoDtmf -// -// ----------------------------------------------------------------------------- -// -MVTUserInput& CVtEngDtmfHandler::ReserveProtoDtmfL( - const TVtEngDtmfTone& aTone ) - { - __VTPRINTENTER( "DTMF.ReserveProtoDtmfL" ) - if ( iProtoDtmf != NULL ) - { - __VTPRINT( DEBUG_MEDIA , "DTMF.ReserveProtoDtmfL IN USE" ) - User::Leave( KErrInUse ); - } - TUint8 val = (TUint8) aTone.iTone; - -#ifdef VTDEBUG - if ( CVtLogger::Flags() & CVtLogger::ELogMedia ) - { - const TChar ch( val ); - _LIT( KVtDtmfBufferTrace, "VT: DTMF. tone value=" ); - TBuf<25> buffer( KVtDtmfBufferTrace() ); - buffer.Append( ch ); - RDebug::Print( buffer ); - } -#endif - - - - // NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // IT MUST BE CHECKED IS GIVEN LETTER SUPPORTED BY - // USED ENCODING SCHEME. NOW WE PASS ONLY NUMBERS AND * AND # - // AND THEY ARE SAFE TO USE BUT USING POWERFULL UIIs GIVE POSSIBILITY - // TO SEND ALL DIGITS AND NUMBERS. IN THAT CASE SET OF CHARS MUST BE CHECKED - // IN VTENGINE. (THAT IS THE REASON WHY THERE IS SEPARATE IF ELSEs) - // NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - __VTPRINT2( DEBUG_MEDIA , "DTMF. Proto USERINPUT %d", iUIISupport ) - switch ( iUIISupport ) - { - case EBasicString: - case EIA5String: - case EGeneralString: - __VTPRINT( DEBUG_MEDIA , "DTMF. Proto USERINPUT alphanumeric" ) - iProtoDtmf = VTProtocolFactory::CreateUserInputIndication( EVtUiiDTFM, val ); - break; - case EDTMFString: - __VTPRINT( DEBUG_MEDIA , "DTMF. Proto USERINPUT iDTMFString" ) - iProtoDtmf = VTProtocolFactory::CreateUserInputIndication( EVtUiiAlphaNumeric, val); - break; - default: - __VTPRINT( DEBUG_MEDIA , "DTMF. Proto USERINPUT unsupported" ) - break; - } - __VTPRINTEXIT( "DTMF.ReserveProtoDtmfL" ) - return *iProtoDtmf; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::ReleaseProtoDtmf -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::ReleaseProtoDtmf() - { - __VTPRINTENTER( "DTMF.ReleaseProtoDtmf" ) - if( iProtoDtmf ) - { - VTProtocolFactory::DeleteUserInputIndication(iProtoDtmf); - } - iProtoDtmf = NULL; - __VTPRINTEXIT( "DTMF.ReleaseProtoDtmf" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::CVtEngDtmfHandler -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfHandler::CVtEngDtmfHandler( MVtH324ConfigCommand& aH324Config ) : - iCurrentState( EVtDtmfStateIdle ), iH324Config( aH324Config ), - iUIISupport( EIA5String ), iIssuedDtmfCommandId(KProtoDtmfCommandId) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::ConstructL() - { - __VTPRINTENTER( "DTMF.ConstructL" ) - iDtmfStates = new ( ELeave ) - CArrayPtrFlat( DTMF_STATES_COUNT ); - - for ( TInt state = EVtDtmfStateIdle; - state <= EVtDtmfStateBuffered; - state++ ) - { - CreateStateL( state ); - } - __VTPRINTEXIT( "DTMF.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::HandleSendCompleteL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::HandleSendCompleteL( TInt aError ) - { - __VTPRINTENTER( "DTMF.HandleSendCompleteL" ) - - __VTPRINT2( DEBUG_MEDIA , " HandleSendCompleteL err=%d", aError ) - if ( iDtmfStates ) - { - CVtEngDtmfState* state = (*iDtmfStates)[iCurrentState]; - if ( state ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "DTMF. complete on state %d", iCurrentState ) - state->DtmfSendCompleteL( aError ); - } - } - __VTPRINTEXIT( "DTMF.HandleSendCompleteL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::CreateState -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::CreateStateL( TInt aState ) - { - __VTPRINTENTER( "DTMF.CreateStateL" ) - CVtEngDtmfState* dtmfState = NULL; - switch ( aState ) - { - case EVtDtmfStateIdle: - dtmfState = CVtEngDtmfIdle::NewL( *this, iH324Config ); - break; - case EVtDtmfStateSending: - dtmfState = CVtEngDtmfSending::NewL( *this, iH324Config ); - break; - case EVtDtmfStateBuffered: - dtmfState = CVtEngDtmfBuffered::NewL( *this, iH324Config ); - break; - default: - Panic( EVtEngPanicInvalidDtmfState ); - break; - } - CleanupStack::PushL( dtmfState ); - iDtmfStates->AppendL( dtmfState ); - CleanupStack::Pop(); - __VTPRINTEXIT( "DTMF.CreateStateL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::GetUIISupport -// returns the current UII support -// ----------------------------------------------------------------------------- -// -CVtEngDtmfHandler::TUIISupport CVtEngDtmfHandler::GetUIISupport() const - { - __VTPRINT2( DEBUG_MEDIA , "DTMF. GETUSERINPUT support=%d", iUIISupport ) - return iUIISupport; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::SetUIISupport -// Sets the UII support mode -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::SetUIISupport( CVtEngDtmfHandler::TUIISupport aValue ) - { - __VTPRINT2( DEBUG_MEDIA , "DTMF. SETUSERINPUT support=%d", aValue ) - iUIISupport = aValue; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::CheckCommandId -// Compares last issued DTMF command ID to parameter given command ID -// ----------------------------------------------------------------------------- -// -TBool CVtEngDtmfHandler::CheckCommandId( TInt aCheckCommandId ) const - { - __VTPRINT3( DEBUG_MEDIA , "DTMF. CHKCMID aCheckCommandId=%d iIssuedDtmfCommandId=%d",\ - aCheckCommandId, iIssuedDtmfCommandId ) - - if( iIssuedDtmfCommandId == aCheckCommandId ) - { - return ETrue; - } - - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfHandler::StoreCommandId -// Stores given command ID -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfHandler::StoreCommandId( TInt aStoreCommandId ) - { - __VTPRINT2( DEBUG_MEDIA , "DTMF. STORECOMMANDID aStoreCommandId=%d", aStoreCommandId ) - - iIssuedDtmfCommandId = aStoreCommandId; - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngImageScaler.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngImageScaler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,314 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Image scaler -* -*/ - - - -// INCLUDE FILES -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "CVtEngImageScaler.h" -#include -#include -#include -#include - -// CONSTANTS -// The number of used bitmaps as scaling targets. -const TInt KVtEngTargetBitmapCount = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -MVtEngImageScaler* CVtEngImageScaler::NewL( - MVtEngScalerObserver& aObserver ) - { - __VTPRINTENTER( "Scaler.NewL" ) - CVtEngImageScaler* scaler = new ( ELeave ) CVtEngImageScaler( aObserver ); - CleanupStack::PushL( scaler ); - scaler->ConstructL(); - CleanupStack::Pop( scaler ); - __VTPRINTEXIT( "Scaler.NewL" ) - return scaler; - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngImageScaler::ConstructL() - { - iVtScaler = CVtImageScaler::NewL( *this ); - GetScalingMethodL(); - iVtScaler->SetQualityL( iScalingMethod ); - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::ScaleL -// Scaling method. -// ----------------------------------------------------------------------------- -// -void CVtEngImageScaler::ScaleL( - TInt aSourceIndex ) - { - __VTPRINTENTER( "Scaler.ScaleL" ) - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL index=%d", - aSourceIndex ) - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL target index=%d", - iTargetBitmapInUse ) - if ( iVtScaler->IsActive() ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL NActive" ) - User::Leave( KErrInUse ); - } - - // If there is no bitmaps done, do leave. - // The caller should call ConfigureL. - if ( iSources.Count() <= 0 || iTargets.Count() <= 0 ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleL: not conf" ) - User::Leave( KErrNotReady ); - } - iVtScaler->ScaleL( *iSources[ aSourceIndex ] , - *iTargets[iTargetBitmapInUse] ); - __VTPRINTEXIT( "Scaler.ScaleL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::Configure -// Configure scaling. -// ----------------------------------------------------------------------------- -// -TBool CVtEngImageScaler::ConfigureL( - TDisplayMode aDisplayMode, - TSize aSize, - TInt aSourceHandle1, - TInt aSourceHandle2 ) - { - __VTPRINTENTER( "Scaler.ConfigureL" ) - __VTPRINT( DEBUG_MEDIA , "================== Scaler.Config ==================" ) - __VTPRINT2( DEBUG_MEDIA, " aSize.iWidth:%d ", aSize.iWidth) - __VTPRINT2( DEBUG_MEDIA, " aSize.iHeight:%d ", aSize.iHeight ) - __VTPRINT2( DEBUG_MEDIA, " aDisplayMode:%d", aDisplayMode ) - __VTPRINT( DEBUG_MEDIA , "================== Scaler.Config ==================" ) - - TInt sourceHandle1( 0 ); - if ( iSources.Count() > 0 ) - { - CVtImageBitmap* bmp = iSources[ EFirstBitmap ]; - if ( bmp ) - { - sourceHandle1 = bmp->Bitmap().Handle(); - } - } - TInt sourceHandle2( 0 ); - if ( iSources.Count() > 1 ) - { - CVtImageBitmap* bmp = iSources[ ESecondBitmap ]; - if ( bmp ) - { - sourceHandle2 = bmp->Bitmap().Handle(); - } - } - - // Do we have to cancel scaling first? - TBool cancelled( iVtScaler->IsActive() ); - - if ( aSourceHandle1 != sourceHandle1 || aSourceHandle2 != sourceHandle2 - || aSize != iSize || iMode != aDisplayMode ) - { - if ( cancelled ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:Config cancel" ) - Cancel(); - } - } - else - { - // Do we need the update => NO - __VTPRINTEXITR( "Scaler.ConfigureL %d", EFalse ) - return EFalse; - } - - // Store new mode and size. - iMode = aDisplayMode; - iSize = aSize; - - // The RVD source images have changed. - if ( aSourceHandle1 != sourceHandle1 || aSourceHandle2 != sourceHandle2 ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "Scaler:ConfigureL create bitmaps" ) - CVtImageBitmap* vtBitmap = CVtImageBitmap::NewL( aSourceHandle1 ); - CleanupStack::PushL( vtBitmap ); - CVtImageBitmap* vtBitmap2 = CVtImageBitmap::NewL( aSourceHandle2 ); - CleanupStack::PushL( vtBitmap2 ); - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ConfigureL source reset" ) - iSources.ResetAndDestroy(); - iSources.AppendL( vtBitmap ); - iSources.AppendL( vtBitmap2 ); - CleanupStack::Pop( KVtEngTargetBitmapCount ); // vtBitMaps - } - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ConfigureL create targets" ) - CVtImageBitmap* vtBitmapT = CVtImageBitmap::NewL( aSize, aDisplayMode ); - CleanupStack::PushL( vtBitmapT ); - CVtImageBitmap* vtBitmapT2 = CVtImageBitmap::NewL( aSize, aDisplayMode ); - CleanupStack::PushL( vtBitmapT2 ); - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ConfigureL target reset" ) - iTargets.ResetAndDestroy(); - iTargets.AppendL( vtBitmapT ); - iTargets.AppendL( vtBitmapT2 ); - CleanupStack::Pop( KVtEngTargetBitmapCount ); // vtBitMapTs - - __VTPRINTEXITR( "Scaler.ConfigureL %d", cancelled ) - return cancelled; - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::ScalingFinished -// Callback telling that scaling is done. -// ----------------------------------------------------------------------------- -// -void CVtEngImageScaler::ScalingFinished( TInt aError ) - { - __VTPRINTENTER( "Scaler.ScalingFinished" ) - - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:ScaleFin ", aError ) - - if ( aError == KErrNone ) - { - CFbsBitmap& bitmap = iTargets [ iTargetBitmapInUse ]->Bitmap(); - __VTPRINT2( DEBUG_MEDIA, "Scaler.ScalingFin index", iTargetBitmapInUse ) - - if ( iTargetBitmapInUse == EFirstBitmap ) - { - iTargetBitmapInUse = ESecondBitmap; - } - else - { - iTargetBitmapInUse = EFirstBitmap; - } - // Notify client of done scaling - iObserver.ScalingCompleted( &bitmap, aError ); - } - else - { - iObserver.ScalingCompleted( NULL, aError ); - } - __VTPRINTEXIT( "Scaler.ScalingFinished" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::~CVtEngImageScaler -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtEngImageScaler::~CVtEngImageScaler() - { - __VTPRINTENTER( "Scaler.~" ) - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Scaler:Dtor" ) - iTargets.ResetAndDestroy(); - iTargets.Close(); - iSources.ResetAndDestroy(); - iSources.Close(); - delete iVtScaler; - __VTPRINTEXIT( "Scaler.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::CVtEngImageScaler -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CVtEngImageScaler::CVtEngImageScaler( - MVtEngScalerObserver& aObserver ) : - iObserver( aObserver ), iTargetBitmapInUse ( EFirstBitmap ), - iScalingMethod( CVtImageScaler::EWeightedAverage ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::Release -// Interface function implementation to delete the implementation. -// ----------------------------------------------------------------------------- -// -void CVtEngImageScaler::Release() - { - // Delete myself - __VTPRINTENTER( "Scaler.Release" ) - delete this; - __VTPRINTEXIT( "Scaler.Release" ) - } - -// ----------------------------------------------------------------------------- -// VtEngScalerFactory::CreateScalerL -// Creates the image scaler. -// ----------------------------------------------------------------------------- -// -MVtEngImageScaler* VtEngScalerFactory::CreateScalerL( - MVtEngScalerObserver& aObserver ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "VtEngScalerFactory::CreateScalerL" ) - return CVtEngImageScaler::NewL( aObserver ); - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::Cancel -// Cancels the conversion. -// ----------------------------------------------------------------------------- -// -TInt CVtEngImageScaler::Cancel() - { - __VTPRINTENTER( "Scaler.Cancel" ) - iVtScaler->Cancel(); - __VTPRINTEXIT( "Scaler.Cancel" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngImageScaler::GetScalingMethodL -// Gets the used scaling method from local variation. -// ----------------------------------------------------------------------------- -// -void CVtEngImageScaler::GetScalingMethodL() - { - __VTPRINTENTER( "Scaler.GetScalingMethodL" ) - // Check if the scaling method is non-default - CVtEngSettings& settings = CVtEngUtility::Settings(); - if( settings.CheckBits( - KVTLVFlagScalingMethodENearest ) ) - { - iScalingMethod = CVtImageScaler::ENearest; - } - else if ( settings.CheckBits( - KVTLVFlagScalingMethodEBilinear ) ) - { - iScalingMethod = CVtImageScaler::EBilinear; - } - __VTPRINTEXITR( "Scaler.GetScalingMethodL %d", (TInt) iScalingMethod ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngLocalVideo.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngLocalVideo.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4532 +0,0 @@ -/* -* Copyright (c) 2004-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: Local video configuration -* -*/ - - - -// INCLUDE FILES -#include "CVtEngLocalVideo.h" -#include "CVtEngMediaHandler.h" -#include "VtEngPanic.h" -#include "MVtEngFrameObserver.h" -#include "CVtEngStateManager.h" -#include "CVtEngEventManager.h" -#include "MVtEngMedia.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "VtEngEvents.h" -#include -#include -#include -#include -#include - -#include "CVtEngCameraPreferences.h" - -// LOCAL CONSTANTS AND MACROS - -// Maximum count of providers stored (cameras, still, blank) -const TInt KVtEngProviderCountMax = 4; - -// Max zoom step count. -const TInt KVtMaxZoomStep = 10; - -// If prepare camera is called when provider is ready signal -// immediately back with positive value. -const TInt KVtEngAlreadySelected = 1; - -// If source is already active signal with this. -const TInt KVtEngAlreadyActive = 2; - -// Number of providers buffered in image sharer -const TInt KVtEngNumProvidersBuffered = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngLocalVideo -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::CVtEngLocalVideo( - CVtEngMediaHandler& aObserver ) - - /** priority is high to ensure that this AO gets scheduled as soon as - * possible after signaling. If local video is requested a service, e.g. - * source switch while its signaled but not yet scheduled, local video's - * internal state may be compromised (signal AO => start selecting new source - * => RunL [this would break ongoing source selection] - */ - : CActive( EPriorityHigh ), - iRenderingMethod( EUnspecified ), - iObserver( aObserver ), - iCurrentCamera( MVtEngMedia::ESecondaryCamera ), - iLayoutChangeHandler( *this ) - { - ResetIndices(); - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.c++") - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::ConstructL() - { - __VTPRINTENTER( "LocVideo.ConstructL" ) - - iAsyncCallBack = new ( ELeave ) CAsyncCallBack( - TCallBack( CallBackFunc, this ), EPriorityStandard ); - - TInt indexMobile( KErrNotFound ); - iShareImage = CVtEngShareImage::NewL( *this ); - iSourceController = CVSController::NewL( this ); - iVideoProviders = - new ( ELeave ) CArrayFixFlat( KVtEngProviderCountMax ); - iSource = iSourceController->CreateDataSourceL( this ); - PauseVideoSending(); - TInt providers( iSourceController->ProvidersAvailable() ); - iNumSupportedCameras = providers - 1; - ResetIndices(); - __VTPRINT2( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.providers=%d",providers) - // Get the device specified default camera. - TInt cameraId( iCurrentCamera ); - TInt err( SetCameraTrackingL( cameraId ) ); - if ( err == KErrNone && cameraId != EPSPreferredCameraUnknown ) - { - // Only if valid camera. - iCurrentCamera = MapCameraInternally( cameraId ); - err = KErrAlreadyExists; - } - - while ( providers-- ) - { - CVSDataProvider* provider = NULL; - TRAP_IGNORE( provider = - iSourceController->CreateDataProviderL( providers, this, iSource ) ); - if ( provider ) - { - CleanupStack::PushL( provider ); - TProviderItem item; - TVSDataProviderInfo info; - provider->ProviderInfo( info ); - TBool destroy( ETrue ); - __VTPRINT2( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.Orient=%d", - info.iOrientation ) - switch ( info.iOrientation ) - { - case TCameraInfo::EOrientationInwards: - SetFlag( EFlagCamera1Available ); - item.iType = KVtEngProviderCam1; - if ( err != KErrAlreadyExists ) - { - // Set only if value not obtained from PubSub - iCurrentCamera = MVtEngMedia::EPrimaryCamera; - } - iProviderInfoIndexCam1 = providers; - __VTPRINT2( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.ConL ID C1=%d", - iProviderInfoIndexCam1 ) - break; - case TCameraInfo::EOrientationOutwards: - // Configures outwards camera, it is treated as camera 1 - // if there is only one camera in the device. - ConfigureOutwardsCameraItem( item, providers ); - break; - case TCameraInfo::EOrientationMobile: - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.Mobile") - item.iType = KVtEngProviderTempImage; - indexMobile = providers; - __VTPRINT2( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.Mobile ID=%d", - indexMobile ) - break; - case TCameraInfo::EOrientationUnknown: - { - item.iType = KVtEngProviderImage; - item.iProvider = provider; - item.iProviderState = EPermanent; - destroy = EFalse; // don't delete still provider - CreateBlankProviderL( providers ); - - if ( CVtEngUtility::Settings(). - IsDefaultStillImageDefined() ) - { - CreateDefaultStillImageProviderL( providers ); - } - - iProviderInfoIndexStill = providers; - __VTPRINT2( DEBUG_MEDIA | DEBUG_CONSTRUCT, - "LocVideo.ConL ID Still=%d",iProviderInfoIndexStill ) - } - break; - default: - break; - } - iVideoProviders->AppendL( item ); - CleanupStack::Pop(); - if ( destroy ) - { - delete provider; - provider = NULL; - } - } - } - iObserver.SetSelectedCameraId( iCurrentCamera ); - // Check if mobile is there, and either 1 or 2 is not. - - if ( indexMobile != KErrNotFound ) - { - TProviderItem* item = NULL; - const TInt err = GetProviderByType( KVtEngProviderTempImage, item ); - __ASSERT_ALWAYS( err != KErrNotFound, - Panic( EVtEngPanicInvalidInitializationState ) ); - if ( iProviderInfoIndexCam1 == KErrNotFound ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.ConL Switch 1" ) - item->iType = KVtEngProviderCam1; - iProviderInfoIndexCam1 = indexMobile; - SetFlag( EFlagCamera1Available ); - } - else - { - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "LocVideo.ConL Switch 2" ) - DeleteProvider( KVtEngProviderCam2 ); - item->iType = KVtEngProviderCam2; - iProviderInfoIndexCam2 = indexMobile; - SetFlag( EFlagCamera2Available ); - } - } - __VTPRINTEXIT( "LocVideo.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ConfigureOutwardsCameraItem -// Creates providers item for outwards camera type. It is treated as -// a) primary camera in single camera configurations -// b) secondary camera in two camera configurations -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::ConfigureOutwardsCameraItem( - TProviderItem& aItem, - const TInt aCurrentIndex ) - { - __VTPRINTENTER( "LocVideo.ConfigureOutwardsCameraItem" ) - if ( iNumSupportedCameras == 1 ) - { - SetFlag( EFlagCamera1Available ); - aItem.iType = KVtEngProviderCam1; - iProviderInfoIndexCam1 = aCurrentIndex; - iCurrentCamera = MVtEngMedia::EPrimaryCamera; - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.ConL ID C1=%d", iProviderInfoIndexCam1 ) - } - else - { - SetFlag( EFlagCamera2Available ); - aItem.iType = KVtEngProviderCam2; - iProviderInfoIndexCam2 = aCurrentIndex; - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.ConL ID C2=%d", iProviderInfoIndexCam2 ) - } - __VTPRINTEXITR( "LocVideo.ConfigureOutwardsCameraItem iCurrentCamera=%d", - iCurrentCamera ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CallBackFunc -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CompleteOperation( const TInt aResult ) - { - __VTPRINTENTER( "LocVideo.CompleteOperation" ) - SetResult( aResult ); - iAsyncCallBack->CallBack(); - __VTPRINTEXITR( "LocVideo.CompleteOperation %d", aResult ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::VideoChannelOpenedL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::VideoChannelOpenedL() - { - __VTPRINTENTER( "LocVideo.VideoChannelOpenedL" ) - if ( iDelayedSelect.IsDelayedSelectPending() ) - { - SelectSourceL( iDelayedSelect.DelayedSelectTarget() ); - } - __VTPRINTEXIT( "LocVideo.VideoChannelOpenedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CallBackFunc -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::CallBackFunc( TAny* aPtr ) - { - __VTPRINTENTER( "LocVideo.CallBackFunc" ) - CVtEngLocalVideo* self = reinterpret_cast< CVtEngLocalVideo* >( aPtr ); - TInt result( KErrNone ); - TRAP( result, - self->iObserver.HandleLocalVideoOperationCompleteL( - self->Result() ) ); - __VTPRINTEXITR( "LocVideo.CallBackFunc %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::Result -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::Result() const - { - __VTPRINTENTER( "LocVideo.Result" ) - __VTPRINTEXITR( "LocVideo.Result %d", iResult ) - return iResult; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetResult -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetResult( const TInt aResult ) - { - __VTPRINTENTER( "LocVideo.SetResult" ) - iResult = aResult; - __VTPRINTEXITR( "LocVideo.SetResult %d", iResult ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo* CVtEngLocalVideo::NewL( - CVtEngMediaHandler& aObserver ) - { - __VTPRINTENTER( "LocVid.NewL" ) - CVtEngLocalVideo* self = new( ELeave ) - CVtEngLocalVideo( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL( ); - CleanupStack::Pop(); - __VTPRINTEXIT( "LocVid.NewL" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::~CVtEngLocalVideo -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::~CVtEngLocalVideo() - { - __VTPRINTENTER( "LocVid.~" ) - // Cancel the object - if ( iActiveProvider ) - { - iActiveProvider->DetachFromCameraPreferences(); - } - if ( iAsyncCallBack ) - { - iAsyncCallBack->Cancel(); - delete iAsyncCallBack; - } - Cancel(); - if ( iVideoProviders ) - { - while ( iVideoProviders->Count() ) - { - TProviderItem& item = (*iVideoProviders)[0]; - CVSDataProvider* provider = item.iProvider; - delete provider; - iVideoProviders->Delete( 0 ); - } - delete iVideoProviders; - } - - delete iCameraListener; - iCameraListener = NULL; - - delete iSource; - delete iSourceController; - DeleteAudioSource(); - delete iShareImage; - __VTPRINTEXIT( "LocVid.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::vsProviderError -// Handles error in provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::vsProviderError( TInt aError ) - { - if( aError == KErrCancel ) - { - vsProviderReady(); - return; - } - __VTPRINTENTER( "LocVid.vsProviderError" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.ProviderError=%d", aError ) - iInitializingProvider = NULL; - if ( aError != KErrNone ) - { - iShareImage->Error( aError ); - if ( !iLayoutChangeHandler.ProviderError( aError ) ) - { - const TState previousState = iState; - iState = ELocNone; - __VTPRINT( DEBUG_MEDIA, " STATE TO NONE" ) - - // If the error indicates that camera is in use - if ( aError == KErrInUse && previousState == ELocInitializing ) - { - // Store the error to be used later - if( iSelectedProvider ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.ProviderError in use") - iSelectedProvider->iErrorCode = aError; - if ( iSelectedProvider->iType == KVtEngProviderCam1 ) - { - ClearFlag( EFlagCamera1Available ); - } - else if ( iSelectedProvider->iType == KVtEngProviderCam2 ) - { - ClearFlag( EFlagCamera2Available ); - } - } - } - // Camera has been lost - if ( aError == KVsErrCameraNoLongerReserved ) - { - if ( !IsActive() ) - { - SetActive(); - TRequestStatus* status = &iStatus; - User::RequestComplete( status, aError ); - __VTPRINT( DEBUG_MEDIA, - "LocVideo.ProviderError AO start" ) - __VTPRINTEXITR( - "LocVid.vsProviderError err=%d", aError ) - - __VTPRINT( DEBUG_MEDIA, - "LocVideo.ProviderError iSelectedProvider NULL" ) - if ( iSelectedProvider ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.ProviderError iSelectedProvider NULL" ) - iSelectedProvider->iInitialized = EFalse; - iSelectedProvider->iProviderState = - (CVtEngLocalVideo::TProviderState) aError; - __VTPRINT( DEBUG_MEDIA, - "LocVideo.ProviderError iSelectedProvider NULL" ) - } - return; - } - } - if ( iSelectedProvider ) - { - // Try to select the last known to function camera - if ( iSelectedProvider->iType == KVtEngProviderCam1 || - iSelectedProvider->iType == KVtEngProviderCam2 ) - { - if ( !IsActive() ) - { - SetActive(); - TRequestStatus* status = &iStatus; - User::RequestComplete( status, aError ); - __VTPRINT( DEBUG_MEDIA, - "LocVideo.ProviderError AO start" ) - __VTPRINTEXITR( - "LocVid.vsProviderError err=%d", aError ) - return; - } - } - //Error code needed later - iSelectedProvider->iInitialized = EFalse; - iSelectedProvider->iProviderState = - (CVtEngLocalVideo::TProviderState) aError; - iSelectedProvider = NULL; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - " selected provider nulled" ) - } - else if ( iActiveProvider && - !IsFlag( EFlagInitializeOnly ) && - previousState == ELocSwichingProvider ) - { - iActiveProvider = iFadingProvider; - iFadingProvider = NULL; - } - if ( IsFlag( EFlagSignalSourceSelection ) ) - { - ClearFlag( EFlagSignalSourceSelection ); - TRAP_IGNORE( - iObserver.HandleLocalVideoOperationCompleteL( aError ) ); - } - } - } - __VTPRINTEXIT( "LocVid.vsProviderError" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::vsProviderReady -// Provider is ready to be taken into use. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::vsProviderReady() - { - __VTPRINTENTER( "LocVid.vsProviderReady" ) - - __VTPRINT3( DEBUG_MEDIA, "LocVideo.ProviderReady state=%d, initOnly=%d", - iState, IsFlag( EFlagInitializeOnly ) ) - const TState prevState( iState ); - - if ( iInitializingProvider ) - { - iInitializingProvider->iInitialized = ETrue; - - // Set camera flags in order to recover - // error situation (error occured during init) - if ( iInitializingProvider->iType == KVtEngProviderCam1 ) - { - __VTPRINT( DEBUG_MEDIA, " LocVid.vsProviderReady KVtEngProviderCam1" ) - SetFlag( EFlagCamera1Available ); - } - else if ( iInitializingProvider->iType == KVtEngProviderCam2 ) - { - __VTPRINT( DEBUG_MEDIA, " LocVid.vsProviderReady KVtEngProviderCam2" ) - SetFlag( EFlagCamera2Available ); - } - - iInitializingProvider = NULL; - } - - iState = ELocReady; - __VTPRINT( DEBUG_MEDIA, " STATE TO READY" ) - - if ( iLayoutChangeHandler.ProviderReady() ) - { - __VTPRINTEXIT( "LocVid.vsProviderReady" ) - return; - } - - if ( prevState == ELocInitializing && !IsFlag( EFlagInitializeOnly ) ) - { - TProviderItem* switchTo = iActiveProvider; - if ( iSelectedProvider ) - { - iSelectedProvider->iErrorCode = KErrNone; - switchTo = iSelectedProvider; - iSelectedProvider = NULL; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " selected provider nulled" ) - } - __VTPRINT( DEBUG_MEDIA, "LocVideo.ProviderReady switching") - SwitchProvider( switchTo ); - __VTPRINTEXIT( "LocVid.vsProviderReady" ) - return; - } - else - { - iSelectedProvider = NULL; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "Selected provider nulled, UDS" ) - UpdateState(); - __VTPRINT( DEBUG_MEDIA, - "LocVideo.vsProviderReady KVtEngSourceCapsChanged") - CVtEngEventManager::NotifyEvent( KVtEngSourceCapsChanged ); - } - - if ( IsFlag( EFlagSignalSourceSelection ) ) - { - ClearFlag( EFlagSignalSourceSelection ); - TRAP_IGNORE( iObserver.HandleLocalVideoOperationCompleteL( KErrNone ) ); - } - __VTPRINTEXIT( "LocVid.vsProviderReady" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::vsProviderSwitchDone -// Provider switched. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::vsProviderSwitchDone( CVSDataProvider* aOldProvider ) - { - __VTPRINTENTER( "LocVid.vsProviderSwitchDone" ) - iState = ELocReady; - __VTPRINT( DEBUG_MEDIA, " STATE TO READY" ) - - iFadingProvider = NULL; - - if ( iActiveProvider && iActiveProvider->iProvider ) - { - iActiveProvider->iProvider->ProviderInfo( iProviderInfo ); - TInt error( iActiveProvider->RestoreZoomFactor() ); - if ( error ) - { - __VTPRINT2( DEBUG_MEDIA, - "LocVid.vsProviderSwitchDone restoring stored zoom FAILED %d", - error ) - } - } - - iShareImage->ProviderSwitchDone( aOldProvider ); - - if ( iActiveProvider && iActiveProvider->iType == KVtEngProviderCam1 ) - { - iCurrentCamera = MVtEngMedia::EPrimaryCamera; - iObserver.SetSelectedCameraId( iCurrentCamera ); - } - else if ( iActiveProvider && iActiveProvider->iType == KVtEngProviderCam2 ) - { - iCurrentCamera = MVtEngMedia::ESecondaryCamera; - iObserver.SetSelectedCameraId( iCurrentCamera ); - } - - // Let layout change handler handle providerswitch - if ( iLayoutChangeHandler.ProviderSwitchDone( aOldProvider ) ) - { - CVtEngEventManager::NotifyEvent( KVtEngLCHProviderSwitchDone ); - __VTPRINTEXIT( "LocVid.vsProviderSwitchDone" ) - return; - } - - ClearFlag( EFlagFrozen ); - - // If initilization of the waiting provider fails fall back to the last one. - TVtEngProviderType backupProviderType( KVtEngProviderNone ); - - // Delete non-permanent old provider - const TInt indexI( ProviderIndexByInstance( aOldProvider ) ); - - // delete provider that became unavailable - if ( indexI != KErrNotFound ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.providerSwitchDone indexInstance=%d", indexI ) - TProviderItem& item( ( *iVideoProviders )[ indexI ] ); - if ( item.iProviderState != EPermanent && - item.iProviderState != ERefreshing ) - { - DeleteProvider( item ); - TRAP_IGNORE( item.iProvider = CreateDataProviderL( item.iType ) ); - } - } - - // Uninitialize fading provider - const TInt indexF = ProviderIndexByState( EFading ); - if ( indexF != KErrNotFound ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.providerSwitchDone fading indexFading=%d", indexF ) - TProviderItem& item = (*iVideoProviders)[indexF]; - - // Mark up type of the last provider. - backupProviderType = item.iType; - - DeleteProvider( item ); - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.providerSwitchDone fading=%d", item.iType ) - TRAP_IGNORE( item.iProvider = CreateDataProviderL( item.iType ) ); - } - - // Initialize waiting provider - TInt err( KErrNone ); - const TInt indexW( ProviderIndexByState( EWaiting ) ); - if ( indexW != KErrNotFound ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.providerSwitchDone waiting=%d", indexW ) - TProviderItem& item = (*iVideoProviders)[indexW]; - item.iProviderState = EUndefined; - TRAP( err, InitializeProviderL( item ) ); - if ( err == KErrNone) - { - iSelectedProvider = &item; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " selected provider set" ) - backupProviderType = KVtEngProviderNone; - } - else - { - iState = ELocNone; - __VTPRINT( DEBUG_MEDIA, " STATE TO NONE" ) - __VTPRINT2( DEBUG_MEDIA, "failed initializing provider=%d", err ) - // If initialization failed indicate that provider is not available - if ( item.iType == KVtEngProviderCam1 ) - { - ClearFlag( EFlagCamera1Available ); - } - else if ( item.iType == KVtEngProviderCam2 ) - { - ClearFlag( EFlagCamera2Available ); - } - else if( item.iType == KVtEngProviderShareImage ) - { - iShareImage->Error( err ); - } - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - } - - // Reconstruct refreshing (new still image) provider. - const TInt indexR( ProviderIndexByState( ERefreshing ) ); - if ( indexR != KErrNotFound ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.providerSwitchDone refreshing") - TProviderItem& item = (*iVideoProviders)[indexR]; - DeleteProvider( item ); - - // If still image disabled in settings. - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - const TBool stillImageValid( config.iVideo.iImageIsValid ); - TRAP( err, - { - item.iProvider = CreateDataProviderL( item.iType ); - if ( stillImageValid ) - { - InitializeProviderL( item ); - } - else - { - item.iProviderState = EPermanent; // change back to original - } - } ); - if ( err == KErrNone && stillImageValid ) - { - iSelectedProvider = &item; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " selected provider set" ) - } - else - { - iState = ELocNone; - __VTPRINT2( DEBUG_MEDIA, " STATE TO NONE initerr=%d", err ) - } - } - - // If we have delayed select pending -> initiate new switch and return - if ( iDelayedSelect.IsDelayedSelectPending() ) - { - ClearFlag( EFlagCheckRevertToPrevious ); - TVtEngProviderType pending = iDelayedSelect.DelayedSelectTarget(); - __VTPRINT2( DEBUG_MEDIA, " delayed select pending type = %d", pending ) - if( iActiveProvider && iActiveProvider->iType == pending ) - { - // clear the iDelayedSelect to KVtEngProviderUndefined - // and no need to select again,continue complete this vsProviderSwitchDone - iDelayedSelect.DelayedSelectTarget(); - } - else - { - TRAP_IGNORE( SelectSourceL( pending ) ); - __VTPRINTEXIT( "LocVid.vsProviderSwitchDone" ) - return; - } - } - - if ( IsFlag( EFlagSignalSourceSelection ) && - iState != ELocInitializing && // Set in InitializeProviderL if called - err == KErrNone && // but not if init (or create provider in - // there) failed. - !IsFlag( EFlagCheckRevertToPrevious ) ) - { - // Signal only if we're in final state (i.e. not if blank provider - // was switched and just started initializing a camera). - ClearFlag( EFlagSignalSourceSelection ); - TRAP_IGNORE( iObserver.HandleLocalVideoOperationCompleteL( KErrNone ) ); - } - else if ( IsFlag( EFlagCheckRevertToPrevious ) && - ( iState == ELocReady || iState == ELocNone ) ) - { - ClearFlag( EFlagCheckRevertToPrevious ); - MVtEngMedia::TCameraId currentCam( MVtEngMedia::EPrimaryCamera ); - iObserver.GetCurrentCameraId( currentCam ); - backupProviderType = - ( currentCam==MVtEngMedia::EPrimaryCamera ) ? - KVtEngProviderCam1 : KVtEngProviderCam2; - } - - __VTPRINT2( DEBUG_MEDIA, " switch done iState=%d", iState ) - - //Inform camera preferences that valid provider is set - // Check that valid provider exist - // and set it as provider to camera - // preferences - if ( iActiveProvider ) - { - __VTPRINT2( DEBUG_MEDIA, "switch done prov.state=%d", - iActiveProvider->iProviderState ) - // Set provider to camera preferences - // only if camera preferences exist - if ( iCameraPref) - { - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.providerSwitchDone iCameraPref->SetProvider type=%d", - iActiveProvider->iType ) - iCameraPref->SetProvider( iActiveProvider->iProvider, - *iActiveProvider ); - - TInt error( iActiveProvider->RestorePreferences() ); - if ( error ) - { - __VTPRINT2( DEBUG_MEDIA, " restoring preferences FAILED %d", - error ) - } - } - else - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.providerSwitchDone camera pref not created" ) - } - } - - if ( IsFlag( EFlagInitialized ) && iState != ELocInitializing ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.providerSwitchDone KVtEngSourceCapsChanged" ) - CVtEngEventManager::NotifyEvent( KVtEngSourceChanged ); - } - - TRAP( err, StartViewFinderIfWasStartedL() ); // err is ignored - - if ( backupProviderType != KVtEngProviderNone ) - { - // Initialization of new provider failed, - // try reverting back to last one. - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.providerSwitchDone revert to %d", backupProviderType ) - TRAP( err, SelectSourceL( backupProviderType ) ); - if ( err != KErrNone ) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - } - - __VTPRINTEXIT( "LocVid.vsProviderSwitchDone" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::vsViewFinderFrameReady -// View finder image can be set. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::vsViewFinderFrameReady( CFbsBitmap& aFrame ) - { - __VTPRINTENTER( "LocVid.vsViewFinderFrameReady" ) - if ( iActiveProvider && - iActiveProvider->iType != KVtEngProviderNone ) - { - TRAP_IGNORE( iOptions.iObserver->vtHandleFrameL( - MVtEngFrameObserver::ELocalVideoFrame, &aFrame ) ); - } - __VTPRINTEXIT( "LocVid.vsViewFinderFrameReady" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::vsProvidersChanged -// Provider state has changed. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::vsProvidersChanged( TBool aAttached ) - { - __VTPRINTENTER( "LocVid.vsProvidersChanged" ) - - __VTPRINT2( DEBUG_MEDIA, " vsProvidersChanged attached=%d", aAttached ) - __VTPRINT2( DEBUG_MEDIA, " vsProvidersChanged state=%d",iState ) - if ( iAudioSource == NULL ) - { - // If this is called from ConstructL (indirectly) return immediately - if ( aAttached || iCurrentCamera == MVtEngMedia::EPrimaryCamera ) - { - SetFlag( EFlagCamera1Available ); - iObserver.SetSelectedCameraId( MVtEngMedia::EPrimaryCamera, ETrue ); - } - else - { - ClearFlag( EFlagCamera1Available ); - iObserver.SetSelectedCameraId( - MVtEngMedia::ESecondaryCamera, ETrue ); - } - __VTPRINTEXIT( "LocVid.vsProvidersChanged" ) - return; - } - - // If primary camera was not available and state is not "open" - // UI should be requested for answer. Precondition is also that - // primary camera is now available. - TBool notifyAnswer( EFalse ); - TInt activeMedia( 0 ); - - const MVtEngSessionInfo::TSessionState state( - CVtEngUtility::StateManager()->SessionState() ); - - __VTPRINT2( DEBUG_MEDIA, " vsProvidersChanged, call state=%d", state ) - if ( state == MVtEngSessionInfo::EReceiving ) - { - __VTPRINT2( DEBUG_MEDIA, " vsProvidersChanged attached=%d", aAttached ) - if ( !IsFlag( EFlagCamera1Available ) && aAttached ) - { - notifyAnswer = ETrue; - } - } - - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged answer=%d", notifyAnswer ) - CVtEngLocalVideo::TVtEngProviderType providerToSelect( KVtEngProviderNone ); - TRAPD( err, providerToSelect = UpdateAvailableProvidersL() ); - if ( err == KErrNone ) - { - // Now get the state to check if video has been disabled - GetMediaState( activeMedia ); - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged mediastate=%d", activeMedia ) - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged iState=%d", iState ) - - // values for checking if switch is allowed - TBool activeIsStillOrBlank ( EFalse ); - TBool activeIsBlankAndNewCam1( EFalse ); - if ( iActiveProvider ) - { - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged iActivePType=%d", iActiveProvider->iType ) - if ( iActiveProvider->iType == KVtEngProviderImage || - iActiveProvider->iType == KVtEngProviderNone ) - { - activeIsStillOrBlank = ETrue; - if ( providerToSelect == KVtEngProviderCam1 && - iActiveProvider->iType == KVtEngProviderNone ) - { - activeIsBlankAndNewCam1 = ETrue; - } - } - } - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged blank active new cam1=%d", - activeIsBlankAndNewCam1 ) - - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged provider=%d", providerToSelect ) - - if ( providerToSelect == KVtEngProviderCam1 ) - { - iObserver.SetSelectedCameraId( MVtEngMedia::EPrimaryCamera ); - } - else if ( providerToSelect == KVtEngProviderCam2 ) - { - // delete provider that became unavailable - iObserver.SetSelectedCameraId( MVtEngMedia::ESecondaryCamera ); - } - - // Check if SelectSource should be called - if ( !notifyAnswer && // for incoming calls automatic switch not allowed - ( iState == ELocNone || iState == ELocReady ) && - IsFlag( EFlagInitialized ) ) - { - __VTPRINT( DEBUG_MEDIA, " vsProvidersChanged ok to select" ) - // Allow switch if video disabled (still/blank active) - // and cam1 available. - ClearFlag( EFlagInitializeOnly ); - ClearFlag( EFlagCheckRevertToPrevious ); - if ( activeIsStillOrBlank && - providerToSelect == KVtEngProviderCam2 ) - { - SetFlag( EFlagInitializeOnly ); - } - else if ( activeIsBlankAndNewCam1 ) - { - iObserver.AutoEnableVideo(); - } - else if ( providerToSelect == KVtEngProviderNone ) - { - iObserver.AutoEnableVideo( EFalse ); - } - SetFlag( EFlagAutomaticSwitchCallback ); - TRAP( err, SelectSourceL( providerToSelect ) ); - ClearFlag( EFlagAutomaticSwitchCallback ); - - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA, - " vsProvidersChanged,select failed=%d", err ) - if ( providerToSelect == KVtEngProviderCam1 && - iNumSupportedCameras > 1 ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.vsProvidersChanged 2 2" ) - SetFlag( EFlagCamera2Available ); - ClearFlag( EFlagCamera1Available ); - TRAP( err, SelectSourceL( KVtEngProviderCam2 ) ); - } - else if ( providerToSelect == KVtEngProviderCam2 ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.vsProvidersChanged 2 still") - ClearFlag( EFlagCamera2Available ); - TRAP( err, SelectSourceL( KVtEngProviderImage ) ); - } - } - } - else - { - __VTPRINT( DEBUG_MEDIA, " vsProvidersChanged Not Changed" ) - if ( iState == ELocInitializing && - iSelectedProvider && - iSelectedProvider->iType != providerToSelect ) - { - SetFlag( EFlagCheckRevertToPrevious ); - } - } - - CVtEngStateManager* states = CVtEngUtility::StateManager(); - states->Update(); - - if ( IsFlag( EFlagCamera1Available ) || - IsFlag( EFlagCamera2Available ) ) - { - if ( notifyAnswer ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.vsProvidersChanged KVtEngSessionAnswerPossible") - CVtEngEventManager::NotifyEvent( KVtEngSessionAnswerPossible ); - } - else if ( !notifyAnswer && - // Don't notify before selection is done. - ( iState == ELocReady || - iState == ELocNone ) ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.vsProvidersChanged KVtEngSourceCapsChanged" ) - CVtEngEventManager::NotifyEvent( KVtEngSourceCapsChanged ); - } - } - else if ( !IsFlag( EFlagCamera1Available ) && - !IsFlag( EFlagCamera2Available ) ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.vsProvidersChanged NO CAMS" ) - CVtEngEventManager::NotifyEvent( KVtEngSourceCapsChanged ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.vsProvidersChanged KVtEngResourceMemAllocFailure" ) - CVtEngEventManager::NotifyEvent( KVtEngResourceMemAllocFailure ); - } - __VTPRINTEXITR( "LocVid.vsProvidersChanged err=%d", err ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetViewFinderParameters -// Configures parameters for rendering via window server. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetViewFinderParameters( - const TVtEngRenderingOptions& aParams ) - { - __VTPRINTENTER( "LocVid.SetViewFinderParameters" ) - - // Before setting the params, stop VF - if( ViewFinderStarted() ) - { - StopViewFinder(); - } - - iOptions.iSize = aParams.iSize; - __VTPRINT2( DEBUG_MEDIA, - " width = %d", iOptions.iSize.iWidth ); - __VTPRINT2( DEBUG_MEDIA, - " height = %d", iOptions.iSize.iHeight ); - - iOptions.iObserver = aParams.iObserver; - iRenderingMethod = EWindowServer; - __VTPRINTEXIT( "LocVid.SetViewFinderParameters" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetViewFinderParameters -// Configures parameters for rendering with direct screen access. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetViewFinderParameters( - const TVtEngRenderingOptionsDSA& aDSA ) - { - __VTPRINTENTER( "LocVid.SetVFParamsDSA" ) - - // Before setting the params, stop VF - if( ViewFinderStarted() ) - { - StopViewFinder(); - } - - iRenderingMethod = EDSA; - iDsaOptions.iClipRect = aDSA.iClipRect; - iDsaOptions.iRect = aDSA.iRect; - iDsaOptions.iWindow = &aDSA.iWindow; - iDsaOptions.iWs = &aDSA.iWs; - iDsaOptions.iWsSD = &aDSA.iWsSD; - __VTPRINTEXIT( "LocVid.SetVFParamsDSA" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetViewFinderParameters -// Configures parameters for rendering with display posting. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetViewFinderParameters( - const TVtEngRenderingOptionsDP& aDP ) - { - __VTPRINTENTER( "LocVid.SetVFParamsDP" ) - - // Before setting the params, stop VF - if( ViewFinderStarted() ) - { - StopViewFinder(); - } - - iRenderingMethod = EDP; - iDsaOptions.iClipRect = aDP.iClipRect; - iDsaOptions.iRect = aDP.iRect; - iDsaOptions.iWindow = &aDP.iWindow; - iDsaOptions.iWs = &aDP.iWs; - iDsaOptions.iWsSD = &aDP.iWsSD; - __VTPRINTEXIT( "LocVid.SetVFParamsDP" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetDefaultStillImageL -// Sets default still image. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetDefaultStillImageL() - { - __VTPRINTENTER( "LocVid.SetDefaultStillImageL" ) - - TProviderItem* item = NULL; - GetProviderByType( KVtEngProviderDefaultStillImage, item ); - if ( item ) - { - CVSDataProvider* provider = item->iProvider; - - if ( provider && item->iType == KVtEngProviderDefaultStillImage ) - { - if ( item->iInitialized ) - { - StopViewFinder(); - - TInt providerIndex = - ProviderIndex( KVtEngProviderDefaultStillImage ); - - TProviderItem* defaultStillProviderItem = - &( *iVideoProviders )[providerIndex]; - SwitchProvider( defaultStillProviderItem ); - } - else - { - InitializeProviderL( *item ); - iSelectedProvider = item; - } - } - } - __VTPRINTEXIT( "LocVid.SetDefaultStillImageL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetStillImageL -// Sets still image. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetStillImageL( TBool aSetAsActive ) - { - __VTPRINTENTER( "LocVid.SetStillImageL" ) - - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - const TBool stillImageValid( config.iVideo.iImageIsValid ); - if ( iState == ELocInitializing && stillImageValid ) - { - __VTPRINT( DEBUG_MEDIA, " setStill failed" ) - User::Leave( KErrNotReady ); - } - - TInt count( iVideoProviders->Count() ); - TBool done( EFalse ); - while ( count-- ) - { - TProviderItem& item = ( *iVideoProviders )[count]; - CVSDataProvider* provider = item.iProvider; - - if ( item.iType == KVtEngProviderImage ) - { - if ( provider && item.iInitialized ) - { - // If still image provider is active change to temp provider - if ( iActiveProvider && - ( iActiveProvider->iType == KVtEngProviderImage ) ) - { - __VTPRINT( DEBUG_MEDIA, "Act.prov. must be deleted" ) - StopViewFinder(); - iActiveProvider->iProviderState = ERefreshing; - TInt providerIndex = ProviderIndex( KVtEngProviderNone ); - TProviderItem* blankProviderItem = - &( *iVideoProviders )[providerIndex]; - SwitchProvider( blankProviderItem ); - __VTPRINTEXIT( "LocVideo.SetStillImageL" ) - return; - } - - //Only way to change image is first delete the provider - delete provider; - item.iProvider = NULL; - - // Create it again. - // If there is a provider info for still. - if ( iProviderInfoIndexStill != KErrNotFound ) - { - item.iProvider = iSourceController->CreateDataProviderL( - iProviderInfoIndexStill, - this, iSource ); - item.iType = KVtEngProviderImage; - item.iInitialized = EFalse; - } - } - // Do initialization only if valid image (still not - // cleared in settings). - if ( stillImageValid ) - { - InitializeProviderL( item ); - if ( aSetAsActive ) - { - iSelectedProvider = &item; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - " selected provider set" ) - } - } - done = ETrue; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.SetStillImageL ok" ) - } - } - if ( !done ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.SetStillImageL fail") - User::Leave( KErrGeneral ); - } - __VTPRINTEXIT( "LocVid.SetStillImageL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializeL -// Initializes default blank provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::InitializeL() - { - __VTPRINTENTER( "LocVid.InitializeL" ) - const TInt index( ProviderIndex( KVtEngProviderNone ) ); - TProviderItem* item = &(*iVideoProviders)[index]; - if ( iActiveProvider && - iActiveProvider->iType == KVtEngProviderImage ) - { - // Blank provider is set to active only - // if there is not valid still image. - SetFlag( EFlagInitializeOnly ); - iSelectedProvider = item; - } - else - { - iActiveProvider = item; - } - InitializeProviderL( *item ); - SetFlag( EFlagSignalSourceSelection ); - SetFlag( EFlagInitialized ); - __VTPRINTEXIT( "LocVid.InitializeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SelectSourceL -// Selects source. -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::SelectSourceL( TVtEngProviderType aSource ) - { - __VTPRINTENTER( "LocVid.SelectSourceL" ) - - __VTPRINT2( DEBUG_MEDIA, " source=%d", aSource ) - - if ( iDelayedSelect.IsDelayedSelectPending() && - ( aSource != KVtEngProviderShareImage ) && - ( aSource == KVtEngProviderCam1 || - aSource == KVtEngProviderCam2 || - aSource == KVtEngProviderImage ) ) - { - aSource = iDelayedSelect.DelayedSelectTarget(); - } - - if( IsProviderWaiting( aSource ) ) - { - // If waiting for provide switch and a provider initialization - // don't allow selection. - __VTPRINT( DEBUG_MEDIA, "LocVideo.SelectSourceL already waiting" ) - User::Leave( KErrNotReady ); - } - - // To be selected source is already active - if ( IsActiveProvider( aSource ) ) - { - Cancel(); - TRequestStatus* status = &iStatus; - SetActive(); - User::RequestComplete( status, KVtEngAlreadyActive ); - SetFlag( EFlagSignalSourceSelection ); - __VTPRINT2( DEBUG_MEDIA, "LocVideo.SelectSourceL start AO=%d", - KVtEngAlreadyActive ) - if ( iActiveProvider ) - { - __VTPRINT2( DEBUG_MEDIA, "LocVideo. activeProv type=%d", - iActiveProvider->iType ) - } - // In case there were errors, NULL the selected provider - // to be able to initialize it when needed - if( iSelectedProvider ) - { - if( iSelectedProvider->iErrorCode ) - { - iSelectedProvider->iInitialized = EFalse; - iSelectedProvider->iProviderState = - (CVtEngLocalVideo::TProviderState) - iSelectedProvider->iErrorCode; - iSelectedProvider = NULL; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " selprovider nulled" ) - } - } - // Not actually switching but virtually doing it because - // async callback will be made. - __VTPRINTEXITR( "LocVid.SelectSourceL %d", ETrue ) - return ETrue; - } - __VTPRINT2( DEBUG_MEDIA, "LocVideo.Selectsource iState=%d", iState ) - if ( iState == ELocInitializing && - aSource == KVtEngProviderImage && - iActiveProvider && - iActiveProvider->iType != KVtEngProviderNone ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.SelectSource initialization pending" ) - User::Leave( KErrNotReady ); - } - // We have switch pending - else if ( iState == ELocSwichingProvider ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.SelectSource switching -> set delayed select" ) - iDelayedSelect.NotifyDelayedSelect( aSource ); - __VTPRINTEXITR( "LocVid.SelectSourceL %d", ETrue ) - return ETrue; - } - - TBool initialized( EFalse ); - TProviderItem item; - TInt providerIndex( GetProviderByType( aSource, item ) ); - - if ( providerIndex != KErrNotFound ) - { - // requested provider found, set initialization status - __VTPRINT2( DEBUG_MEDIA, "LocVideo.SelectSource index=%d", providerIndex ) - initialized = item.iInitialized; - } - else - { // requested provider not found - __VTPRINT( DEBUG_MEDIA, "LocVideo.SelectSource create provider" ) - // Try to create provider - TInt index = KErrNotFound; - switch ( aSource ) - { - case KVtEngProviderCam2: - index = iProviderInfoIndexCam2; - break; - case KVtEngProviderNone: - case KVtEngProviderImage: - case KVtEngProviderDefaultStillImage: - // Image sharing - case KVtEngProviderShareImage: - index = iProviderInfoIndexStill; - break; - case KVtEngProviderCam1: - index = iProviderInfoIndexCam1; - default: - break; - } - - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.SelectSource create provider ID=%d", index ) - if ( index != KErrNotFound ) - { - TProviderItem newItem; - newItem.iProvider = - iSourceController->CreateDataProviderL( - index, this, iSource ); - newItem.iType = aSource; - CleanupStack::PushL( newItem.iProvider ); - iVideoProviders->AppendL( newItem ); - CleanupStack::Pop(); - providerIndex = iVideoProviders->Count() - 1; - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.SelectSource create provider ok=%d", - newItem.iProvider != NULL ) - } - } - - TBool initOrSwitch = EFalse; - - // Initialize provider - if ( providerIndex != KErrNotFound && !initialized ) - { - if ( iActiveProvider->iProviderState != EPermanent ) - { - // Active provider must be destroyed and new one initialized - __VTPRINT( DEBUG_MEDIA, "LocVideo.SelectSource del Act.prov" ) - (*iVideoProviders)[providerIndex].iProviderState = EWaiting; - iActiveProvider->iProviderState = EFading; - StopViewFinder(); - providerIndex = ProviderIndex( KVtEngProviderNone ); - __VTPRINT2( DEBUG_MEDIA, "LocVideo.SelectSource index for none=%d", - providerIndex ) - } - else - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.SelectSource do init" ) - UninitializeProviderL(); - TProviderItem& initItem = ( *iVideoProviders )[providerIndex]; - InitializeProviderL( initItem ); - // This item is stored, make it initialized only when callback - // received. - iSelectedProvider = &initItem; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " selected provider set" ) - initOrSwitch = InitializingOrSwitching(); - __VTPRINTEXITR( "LocVid.SelectSourceL %d", initOrSwitch ) - return initOrSwitch; - } - } - - // Switch provider - if ( providerIndex != KErrNotFound ) - { - if ( !IsFlag( EFlagInitializeOnly ) ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.SelectSource ready for switch") - StopViewFinder(); - TProviderItem* switchItem = &(*iVideoProviders)[providerIndex]; - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.SelectSource switchItem %d", switchItem->iType ) - SwitchProvider( switchItem ); - } - else if ( initialized && IsFlag( EFlagInitializeOnly ) ) - { - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.SelectSource already initialized start AO %d", - KVtEngAlreadySelected ) - TProviderItem* switchItem = &( *iVideoProviders )[providerIndex]; - iActiveProvider = switchItem; - Cancel(); - TRequestStatus* status = &iStatus; - SetActive(); - User::RequestComplete( status, KVtEngAlreadySelected ); - } - else - { - __VTPRINT3( DEBUG_MEDIA, " initialized=%d,flags=%d", - initialized, iFlags ) - } - } - - // Error - if ( iActiveProvider == NULL ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.SelectSource leave" ) - User::Leave( KErrNotFound ); - } - - initOrSwitch = InitializingOrSwitching(); - __VTPRINTEXITR( "LocVid.SelectSourceL %d", initOrSwitch ) - return initOrSwitch; - } - -// ---------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializeProviderL -// Initializes a provider. -// ---------------------------------------------------------------------------- -// -void CVtEngLocalVideo::InitializeProviderL( - TProviderItem& aProviderItem ) - { - __VTPRINTENTER( "LocVid.InitializeProviderL" ) - - __VTPRINT2( DEBUG_MEDIA, "LocVideo.InitProv type=%d", aProviderItem.iType ) - - if ( iInitializingProvider ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.InitProv ERROR, already initializing" ) - User::Leave( KErrNotReady ); - } - - iInitializingProvider = &aProviderItem; - - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - TPckgBuf< TVSStillImageDataProviderParams > pckg; - - __VTPRINT2( DEBUG_MEDIA, "LocVideo.InitProv type=%d", aProviderItem.iType ) - CVSDataProvider* provider = aProviderItem.iProvider; - if ( provider == NULL ) - { - aProviderItem.iInitialized = EFalse; - aProviderItem.iProvider = CreateDataProviderL( aProviderItem.iType ); - provider = aProviderItem.iProvider; - } - else if ( aProviderItem.iInitialized ) - { - __VTPRINT2( DEBUG_MEDIA, "LocVideo.InitProv AO start %d", KErrNone ) - Cancel(); - TRequestStatus* status = &iStatus; - SetActive(); - User::RequestComplete( status, KErrNone ); - __VTPRINTEXIT( "LocVid.InitializeProviderL" ) - return; - } - User::LeaveIfNull( provider ); - switch ( aProviderItem.iType ) - { - case KVtEngProviderCam1: - case KVtEngProviderCam2: - provider->InitializeL( KNullDesC8 ); - iState = ELocInitializing; - __VTPRINT( DEBUG_MEDIA, " STATE TO INITIALIZING" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.InitProv type=%d", - aProviderItem.iType ) - break; - case KVtEngProviderNone: - // Blank provider. - pckg().iInitialize = - TVSStillImageDataProviderParams::EInitializeAsBlankImage; - provider->InitializeL( pckg ); - iState = ELocInitializing; - __VTPRINT( DEBUG_MEDIA, " STATE TO INITIALIZING" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.InitProv type=%d", - aProviderItem.iType ) - break; - case KVtEngProviderImage: - { - if ( config.iVideo.iImageIsValid ) - { - pckg().iInitialize = - TVSStillImageDataProviderParams::EInitializeFromGeneralSettings; - provider->InitializeL( pckg ); - iState = ELocInitializing; - __VTPRINT( DEBUG_MEDIA, " STATE TO INITIALIZING" ) - __VTPRINT( DEBUG_MEDIA, "LocVideo.InitProv Still image") - } - else - { - User::Leave( KErrPathNotFound ); - } - } - break; - case KVtEngProviderDefaultStillImage: - pckg().iInitialize = - TVSStillImageDataProviderParams::EInitializeAsDefaultStillImage; - - provider->InitializeL( pckg ); - iState = ELocInitializing; - __VTPRINT( DEBUG_MEDIA, " STATE TO INITIALIZING" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.InitProv type=%d", - aProviderItem.iType ) - break; - default: - Panic( EVtEngPanicNoVideoProvider ); - break; - } - //aProviderItem.iInitialized = ETrue; - __VTPRINTEXIT( "LocVid.InitializeProviderL" ) - } - -// ---------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializeShareProviderL -// Initializes a provider that is used for sharing. -// ---------------------------------------------------------------------------- -// -void CVtEngLocalVideo::InitializeShareProviderL( - TProviderItem& aProviderItem, const TDesC8& aParams ) - { - __VTPRINTENTER( "LocVid.InitializeShareProviderL" ) - aProviderItem.iProvider->InitializeL( aParams ); - aProviderItem.iInitialized = ETrue; - iState = ELocInitializing; - SetFlag( EFlagSignalSourceSelection | EFlagInitializeOnly ); - __VTPRINTEXIT( "LocVid.InitializeShareProviderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ReCreateProviderL -// ----------------------------------------------------------------------------- -void CVtEngLocalVideo::ReCreateProviderL( - TProviderItem& aProviderItem, const TVtEngProviderType aType ) - { - __VTPRINTENTER( "LocVid.ReCreateProviderL" ) - - TInt index( KErrNotFound ); - - switch ( aType ) - { - case KVtEngProviderShareImage: - index = iProviderInfoIndexStill; - break; - - default: - User::Leave( KErrNotSupported ); - } - - // Delete old instance - DeleteProvider( aProviderItem ); - - // Create new instance - aProviderItem.iProvider = iSourceController->CreateDataProviderL( - index, this, iSource ); - aProviderItem.iType = aType; - - __VTPRINTEXIT( "LocVid.ReCreateProviderL" ) - } - -// ---------------------------------------------------------------------------- -// CVtEngLocalVideo::CameraIdToType -// Camera ID to type mapping. -// ---------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngProviderType CVtEngLocalVideo::CameraIdToType( - MVtEngMedia::TCameraId aId ) - { - TVtEngProviderType type( KVtEngProviderCam2 ); - switch ( aId ) - { - case MVtEngMedia::EPrimaryCamera: - type = KVtEngProviderCam1; - break; - case MVtEngMedia::ESecondaryCamera: - type = KVtEngProviderCam2; - break; - default: - type = KVtEngProviderNone; - break; - } - return type; - } - -// ---------------------------------------------------------------------------- -// CVtEngLocalVideo::RunL -// CActive heir, acts according to status. -// ---------------------------------------------------------------------------- -// -void CVtEngLocalVideo::RunL() - { - __VTPRINTENTER( "LocVid.RunL" ) - - const TInt status( iStatus.Int() ); - TVtEngProviderType providerType = KVtEngProviderNone; - __VTPRINT2( DEBUG_MEDIA, "LocVideo.RunL %d", status ) - switch ( status ) - { - case KVtEngAlreadySelected: - SetFlag( EFlagSignalSourceSelection ); - vsProviderReady(); - break; - case KVtEngAlreadyActive: - TRAP_IGNORE( - iObserver.HandleLocalVideoOperationCompleteL( KErrNone ) ); - break; - case KErrNone: - vsProviderSwitchDone( NULL ); - UpdateState(); - break; - // Camera has been lost during VT - case KVsErrCameraNoLongerReserved: - __VTPRINT2( DEBUG_MEDIA, "LocVideo.status =%d", - status ) - //delete provider here and null pointer - if ( iSelectedProvider ) - { - DeleteProvider( *iSelectedProvider ); - iSelectedProvider = NULL; - } - - // Check if still is in use - providerType = KVtEngProviderImage; - GetHighestSelectableProvider( providerType ); - - __VTPRINT2( DEBUG_MEDIA, "LocVideo.providerType=%d", - providerType ) - - iObserver.AutoEnableVideo( EFalse ); - SetFlag( EFlagAutomaticSwitchCallback ); - TRAPD( err, SelectSourceL( providerType ) ); - ClearFlag( EFlagAutomaticSwitchCallback ); - - if ( err != KErrNone ) - { - TRAP( err, iObserver.HandleLocalVideoOperationCompleteL( err) ); - } - break; - default: - // error - { - switch( iSelectedProvider->iType ) - { - case KVtEngProviderCam1: - ClearFlag( EFlagCamera1Available ); - break; - case KVtEngProviderCam2: - ClearFlag( EFlagCamera2Available ); - break; - default: - break; - } - DeleteProvider( *iSelectedProvider ); - iSelectedProvider = NULL; - MVtEngMedia::TCameraId currentCam( MVtEngMedia::EPrimaryCamera ); - iObserver.GetCurrentCameraId( currentCam ); - TVtEngProviderType providerType( CameraIdToType( currentCam ) ); - GetHighestSelectableProvider( providerType ); - TRAPD( err, SelectSourceL( providerType ) ); - if ( err != KErrNone ) - { - TRAP( err, iObserver.HandleLocalVideoOperationCompleteL( err) ); - } - } - } - __VTPRINTEXIT( "LocVid.RunL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::IsActiveProvider -// Returns ETrue if given provider is already active. -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::IsActiveProvider( TVtEngProviderType aType ) const - { - __VTPRINTENTER( "LocVid.IsActiveProvider" ) - const TBool active( - ( iActiveProvider && iActiveProvider->iType == aType ) || - ( iSelectedProvider && iSelectedProvider->iType == aType ) ); - __VTPRINTEXITR( "LocVid.IsActiveProvider %d", active ) - return active; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::DoCancel -// Does nothing. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::DoCancel() - { - __VTPRINTENTER( "LocVid.DoCancel" ) - __VTPRINTEXIT( "LocVid.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ActiveProvider -// Returns active provider. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngProviderType CVtEngLocalVideo::ActiveProvider() const - { - if ( iActiveProvider ) - { - return iActiveProvider->iType; - } - return KVtEngProviderNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::StartViewFinderIfWasStartedL -// View finder image can be set. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::StartViewFinderIfWasStartedL() - { - __VTPRINTENTER( "LocVid.StartViewFinderIfWasStartedL" ) - if ( IsFlag( EFlagUIForeground ) && IsFlag( EFlagVFEnabled ) && - iState == ELocReady ) - { - StartViewFinderL(); - } - __VTPRINTEXIT( "LocVid.StartViewFinderIfWasStartedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::StartViewFinderL -// Starts view finder. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::StartViewFinderL( TBool aClientRequest ) - { - __VTPRINTENTER( "LocVid.StartViewFinderL" ) - __ASSERT_ALWAYS( iVideoProviders->Count(), - Panic ( EVtEngPanicNoVideoProvider ) ); - - if ( aClientRequest ) - { - SetFlag( EFlagVFEnabled ); - } - if ( iRenderingMethod == EUnspecified || !iActiveProvider ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.startVF error") - User::Leave( KErrNotReady ); - } - CVSDataProvider* provider = iActiveProvider->iProvider; - if ( !provider ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.startVF error no provider") - User::Leave( KErrNotReady ); - } - else if ( provider->ViewFinderActive() ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.startVF already started") - iViewFinderState = ( iRenderingMethod == EWindowServer ) ? - EVFReceivingBitmaps : EVFRenderingDsa; - __VTPRINTEXIT( "LocVid.StartViewFinderL" ) - return; - } - else if ( !IsFlag( EFlagInitialized ) ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.startVF not initialized") - __VTPRINTEXIT( "LocVid.StartViewFinderL" ) - return; - } - else if ( iState != ELocReady ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_RETURN, - "LocVideo.startVF incorrect iState=%d", iState ) - } - else - { - // Lint requires this one - __VTPRINT( DEBUG_MEDIA, - "LocVideo.startVF unsupported clause" ) - } - - CheckOthersStopped( *provider ); - if ( iRenderingMethod == EWindowServer ) - { - TSize size( iOptions.iSize ); - provider->StartViewFinderBitmapsL( size ); - iViewFinderState = EVFReceivingBitmaps; - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, " started" ) - } - else - { - provider->StartViewFinderDirectL( - *(iDsaOptions.iWs), - *(iDsaOptions.iWsSD), - *(iDsaOptions.iWindow), - iDsaOptions.iRect, - iDsaOptions.iClipRect ); - iViewFinderState = EVFRenderingDsa; - } - - if( iActiveProvider->iType == CVtEngLocalVideo::KVtEngProviderCam1 && - !provider->ViewFinderMirror() ) - { - provider->SetViewFinderMirrorL( ETrue ); - } - - __VTPRINTEXIT( "LocVid.StartViewFinderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::StopViewFinder -// Stops view finder. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::StopViewFinder( TBool aClientRequest ) - { - __VTPRINTENTER( "LocVid.StopViewFinder" ) - if ( aClientRequest ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.stopVF clearing EFlagVFEnabled" ) - ClearFlag( EFlagVFEnabled ); - } - if ( iActiveProvider && - iViewFinderState != EVFNone && - iActiveProvider->iProvider && - iActiveProvider->iProvider->ViewFinderActive() ) - { - TRAP_IGNORE( iOptions.iObserver->vtHandleFrameL( - MVtEngFrameObserver::ELocalVideoFrame, NULL ) ); - iActiveProvider->iProvider->StopViewFinder(); - __VTPRINT( DEBUG_MEDIA, "LocVideo.stopVF Stopped" ) - if ( IsFlag( EFlagAutomaticSwitchCallback ) || - IsFlag( EFlagUIBackground ) ) - { - // UI needs to be notified if stop done due to automatic - // source switch (from vsProvidersChanged). - ClearFlag( EFlagAutomaticSwitchCallback ); - CVtEngEventManager::NotifyEvent( KVtEngViewFinderStopped ); - __VTPRINT( DEBUG_MEDIA, "LocVideo.stopVF Notified" ) - } - } - iViewFinderState = EVFNone; - __VTPRINTEXIT( "LocVid.StopViewFinder" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::FreezeL -// Freezes provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::FreezeL() - { - __VTPRINTENTER( "LocVid.FreezeL" ) - if( OkToFreeze() ) - { - iActiveProvider->iProvider->FreezeL(); - SetFlag( EFlagFrozen ); - } - __VTPRINTEXIT( "LocVid.FreezeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::UnfreezeL -// Unfreezes provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::UnfreezeL() - { - __VTPRINTENTER( "LocVid.UnfreezeL" ) - if( OkToUnfreeze() ) - { - if ( !iLayoutChangeHandler.UnfreezeL() ) - { - iActiveProvider->iProvider->UnfreezeL(); - if ( iDelayedSelect.IsDelayedSelectPending() ) - { - TVtEngProviderType type( iDelayedSelect.DelayedSelectTarget() ); - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.UnfreezeL delayed switch to %d", type ) - SelectSourceL( type ); - } - else - { - CompleteOperation( KErrNone ); - } - } - ClearFlag( EFlagFrozen ); - } - __VTPRINTEXIT( "LocVid.UnfreezeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CheckOthersStopped -// Stops view finder of other providers than the one given as parameter. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CheckOthersStopped( const CVSDataProvider& aProvider ) - { - __VTPRINTENTER( "LocVid.CheckOthersStopped" ) - TInt count( iVideoProviders->Count() ); - while ( count-- ) - { - TProviderItem& item = ( *iVideoProviders )[count]; - if ( item.iProvider && - item.iProvider != &aProvider && - item.iProvider->ViewFinderActive() ) - { - item.iProvider->StopViewFinder(); - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, "LocVideo.OtherStop" ) - } - } - __VTPRINTEXIT( "LocVid.CheckOthersStopped" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::Source -// Returns video source. -// ----------------------------------------------------------------------------- -// -MVTVideoSource* CVtEngLocalVideo::Source() const - { - return iSource; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::AudioSource -// Returns audio source. -// ----------------------------------------------------------------------------- -// -MVTAudioSource* CVtEngLocalVideo::AudioSource() const - { - return iAudioSource; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetMediaState -// Returns media state. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetMediaState( TInt& aActiveMedia ) - { - aActiveMedia = 0; - if ( !IsFlag( EFlagAudioMuted ) ) - { - aActiveMedia |= MVtEngMedia::EMediaAudio; - // Check if the thing is muted - } - - if ( iActiveProvider ) - { - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetMediaState provider type=%d", - iActiveProvider->iType ) - switch ( iActiveProvider->iType ) - { - case KVtEngProviderCam1: - case KVtEngProviderCam2: - case KVtEngProviderImage: - case KVtEngProviderShareImage: - aActiveMedia |= MVtEngMedia::EMediaVideo; - break; - default: - break; - } - } - __VTPRINT2( DEBUG_MEDIA | DEBUG_RETURN, - "LocVideo.GetMediaState media state=%d", aActiveMedia ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetMediaSource -// Returns media source. -// ----------------------------------------------------------------------------- -// -MVtEngMedia::TMediaSource CVtEngLocalVideo::GetMediaSource() - { - MVtEngMedia::TMediaSource source( MVtEngMedia::EMediaNone ); - if ( iActiveProvider ) - { - switch ( iActiveProvider->iType ) - { - case KVtEngProviderCam1: - case KVtEngProviderCam2: - source = MVtEngMedia::EMediaCamera; - break; - case KVtEngProviderShareImage: - source = MVtEngMedia::EMediaShare; - break; - case KVtEngProviderImage: - case KVtEngProviderDefaultStillImage: - source = MVtEngMedia::EMediaStillImage; - break; - default: - source = MVtEngMedia::EMediaNone; - break; - } - } - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetMediaSource src=%d", (TInt) source ) - return source; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetSourceCaps -// Returns capability of providers . -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetSourceCaps( TInt& aCaps ) - { - aCaps = 0; - TInt count( iVideoProviders->Count() ); - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetSourceCaps count=%d", count ) - while ( count-- ) - { - switch ( iVideoProviders->At(count).iType ) - { - case KVtEngProviderCam1: - __VTPRINT( DEBUG_MEDIA, - "LocVideo.GetSourceCaps cam1" ) - if ( IsFlag( EFlagCamera1Available ) ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.GetSourceCaps cam1 flagged" ) - aCaps |= MVtEngMedia::ESourceCapsPrimaryCamera; - } - break; - case KVtEngProviderCam2: - __VTPRINT( DEBUG_MEDIA, "LocVideo.GetSourceCaps cam2" ) - if ( IsFlag( EFlagCamera2Available ) ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.GetSourceCaps cam2 flagged" ) - aCaps |= MVtEngMedia::ESourceCapsSecondaryCamera; - } - break; - case KVtEngProviderImage: - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.GetSourceCaps image" ) - // Make sure that image is valid - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - if( config.iVideo.iImageIsValid ) - { - aCaps |= MVtEngMedia::ESourceCapsStillImage; - } - } - break; - default: - break; - } - } - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetSourceCaps caps=%d", aCaps ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializeOnly -// Sets boolean to indicate if the provider is to be initialized only. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::InitializeOnly( TBool aInitOnly ) - { - InitializeOnlyEx( GetMediaSource() != MVtEngMedia::EMediaCamera && - aInitOnly ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializeOnlyEx -// Sets boolean to indicate if the provider is to be initialized only. Does -// not check current media source. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::InitializeOnlyEx( TBool aInitOnly ) - { - SetFlag( EFlagSignalSourceSelection ); - ClearFlag( EFlagInitializeOnly ); - if ( aInitOnly ) - { - SetFlag( EFlagInitializeOnly ); - } -#ifdef VTDEBUG - if ( IsFlag( EFlagInitializeOnly ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " initOnly SET" ) - } - else - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, " initOnly CLEARED" ) - } -#endif - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetProviderByType -// Return provider of particular type. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetProviderByType( - TVtEngProviderType aType, - TProviderItem& aItem ) - { - TInt ret( KErrNotFound ); - TInt count( iVideoProviders->Count() ); - while ( count-- ) - { - if ( ( *iVideoProviders )[count].iType == aType ) - { - aItem = ( *iVideoProviders )[count]; - ret = count; - count = 0; - } - } - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetProviderByType idx=%d", ret ) - return ret; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetProviderByType -// Return provider of particular type. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetProviderByType( - TVtEngProviderType aType, - TProviderItem*& aItem ) - { - TInt ret( KErrNotFound ); - TInt count( iVideoProviders->Count() ); - while ( count-- ) - { - if ( ( *iVideoProviders )[count].iType == aType ) - { - aItem = &( *iVideoProviders )[count]; - ret = count; - count = 0; - } - } - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetProviderByType* idx=%d", ret ) - return ret; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetProviderByInstance -// Return provider with particular provider instance. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetProviderByInstance( - const CVSDataProvider* aInstance, - TProviderItem*& aItem ) const - { - TInt indexI( ProviderIndexByInstance( aInstance ) ); - if ( indexI != KErrNotFound ) - { - aItem = &( *iVideoProviders )[ indexI ]; - } - else - { - aItem = NULL; - } - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetProviderByType* idx=%d", indexI ) - return indexI; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ProviderIndex -// Returns provider index by type. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::ProviderIndex( TVtEngProviderType aType ) const - { - for( TInt count = iVideoProviders->Count() - 1; count >= 0; count-- ) - { - if ( ( *iVideoProviders )[ count ].iType == aType ) - { - return count; - } - } - return KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ProviderIndexByState -// Gets a provider index by state. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::ProviderIndexByState( TProviderState aState ) const - { - for( TInt count = iVideoProviders->Count() - 1; count >= 0; count-- ) - { - if ( ( *iVideoProviders )[ count ].iProviderState == aState ) - { - return count; - } - } - return KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ProviderIndexByInstance -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::ProviderIndexByInstance( - const CVSDataProvider* aInstance) const - { - for( TInt count = iVideoProviders->Count() - 1; count >= 0; count-- ) - { - if ( ( *iVideoProviders )[ count ].iProvider == aInstance ) - { - return count; - } - } - return KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CreateDataProviderL -// Creates VideoSource provider by type. -// ----------------------------------------------------------------------------- -// -CVSDataProvider* CVtEngLocalVideo::CreateDataProviderL( - TVtEngProviderType aType ) - { - __VTPRINTENTER( "LocVid.CreateDataProviderL" ) - __VTPRINT2( DEBUG_MEDIA, " provider type=%d", aType ) - TInt index = KErrNotFound; - switch ( aType ) - { - case KVtEngProviderNone: - case KVtEngProviderImage: - case KVtEngProviderShareImage: - case KVtEngProviderDefaultStillImage: - __VTPRINT( DEBUG_MEDIA, "LocVideo.CreateDataProviderL Still" ) - index = iProviderInfoIndexStill; - break; - case KVtEngProviderCam1: - __VTPRINT( DEBUG_MEDIA, "LocVideo.CreateDataProviderL Cam1" ) - index = iProviderInfoIndexCam1; - break; - case KVtEngProviderCam2: - __VTPRINT( DEBUG_MEDIA, "LocVideo.CreateDataProviderL Cam2" ) - index = iProviderInfoIndexCam2; - break; - default: - __VTPRINT( DEBUG_MEDIA, "LocVideo.CreateDataProviderL Mobile" ) - break; - } - - CVSDataProvider* provider = NULL; - if ( index != KErrNotFound ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.CreateDataProviderL provider is" ) - provider = - iSourceController->CreateDataProviderL( - index, this, iSource ); - } - - __VTPRINT2( DEBUG_MEDIA, " provider created=%d", - ( TInt ) ( provider != NULL ) ) - __VTPRINTEXIT( "LocVid.CreateDataProviderL" ) - return provider; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CreateBlankProvider -// Creates blank provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CreateBlankProviderL( const TInt aIndex ) - { - __VTPRINTENTER( "LocVid.CreateBlankProviderL" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.CreateBlankProviderL idx=%d", aIndex ) - CVSDataProvider* provider = NULL; - TRAP_IGNORE( provider = iSourceController->CreateDataProviderL( - aIndex, this, iSource ) ); - CleanupStack::PushL( provider ); - TProviderItem item; - item.iProvider = provider; - item.iType = KVtEngProviderNone; - item.iInitialized = EFalse; - item.iProviderState = EPermanent; - iVideoProviders->AppendL( item ); - CleanupStack::Pop(); - __VTPRINTEXIT( "LocVid.CreateBlankProviderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CreateDefaultStillImageProviderL -// Creates default still image provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CreateDefaultStillImageProviderL( const TInt aIndex ) - { - __VTPRINTENTER( "LocVid.CreateDefaultStillImageProviderL" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.CreateDefaultStillImageProviderL idx=%d", aIndex ) - CVSDataProvider* provider = NULL; - TRAP_IGNORE( provider = iSourceController->CreateDataProviderL( - aIndex, this, iSource ) ); - CleanupStack::PushL( provider ); - TProviderItem item; - item.iProvider = provider; - item.iType = KVtEngProviderDefaultStillImage; - item.iInitialized = EFalse; - item.iProviderState = EPermanent; - iVideoProviders->AppendL( item ); - CleanupStack::Pop(); - __VTPRINTEXIT( "LocVid.CreateDefaultStillImageProviderL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::UpdateAvailableProvidersL -// Updates current providers and their information. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngProviderType - CVtEngLocalVideo::UpdateAvailableProvidersL() - { - __VTPRINTENTER( "LocVid.UpdateAvailableProvidersL" ) - TVtEngProviderType type( KVtEngProviderNone ); - TInt count( iSourceController->ProvidersAvailable() ); - iNumSupportedCameras = count - 1; - TVSDataProviderInfo providerInfo; - TBool primaryAvailable( EFalse ); - TBool secondaryAvailable( EFalse ); - TBool mobileAvailable( EFalse ); - TInt indexMobile( KErrNotFound ); - ClearFlag( EFlagCamera1Available ); - ClearFlag( EFlagCamera2Available ); - ResetIndices(); - while ( count-- ) - { - iSourceController->ProviderInfoL( count, providerInfo ); - if ( providerInfo.iOrientation == TCameraInfo::EOrientationInwards || - // treat outwards camera as primary when only 1 cam in the system - ( providerInfo.iOrientation == TCameraInfo::EOrientationOutwards && - iNumSupportedCameras == 1 ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP inw" ) - type = KVtEngProviderCam1; - primaryAvailable = ETrue; - SetFlag( EFlagCamera1Available ); - iProviderInfoIndexCam1 = count; - } - else if ( - providerInfo.iOrientation == TCameraInfo::EOrientationOutwards ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP outw" ) - secondaryAvailable = ETrue; - SetFlag( EFlagCamera2Available ); - iProviderInfoIndexCam2 = count; - } - else if ( providerInfo.iOrientation == TCameraInfo::EOrientationMobile ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP mobile" ) - mobileAvailable = ETrue; - indexMobile = count; - } - else if ( providerInfo.iOrientation == TCameraInfo::EOrientationUnknown ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP still" ) - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - if ( config.iVideo.iImageIsValid ) - { - iProviderInfoIndexStill = count; - } - } - } - if ( !primaryAvailable && mobileAvailable ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP 1 upd" ) - type = KVtEngProviderCam1; - iProviderInfoIndexCam1 = indexMobile; - primaryAvailable = ETrue; - SetFlag( EFlagCamera1Available ); - } - else if ( primaryAvailable && mobileAvailable ) - { - // No 1, 2 and mobile. - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP 2 upd" ) - DeleteProvider( KVtEngProviderCam2 ); - secondaryAvailable = ETrue; - iProviderInfoIndexCam2 = indexMobile; - SetFlag( EFlagCamera2Available ); - } - else if ( !primaryAvailable && secondaryAvailable ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP !1 & 2" ) - type = KVtEngProviderCam2; - } - else if ( type == KVtEngProviderNone ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP none" ) - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - if ( config.iVideo.iImageIsValid ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.UAP valid image" ) - type = KVtEngProviderImage; - } - } - - __VTPRINTEXITR( "LocVid.UpdateAvailableProvidersL %d", type ) - return type; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SwitchProvider -// Switches to active provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SwitchProvider( TProviderItem* aSwitchToItem ) - { - __VTPRINTENTER( "LocVid.SwitchProvider" ) - - iState = ELocSwichingProvider; - __VTPRINT( DEBUG_MEDIA, " STATE TO SWITCHING" ) - iFadingProvider = iActiveProvider; - iActiveProvider = aSwitchToItem; - TRAPD( err, iSource->SwitchDataProviderL( iActiveProvider->iProvider ) ); - if ( err != KErrNone ) - { - iState = ELocReady; // go to AO - __VTPRINT( DEBUG_MEDIA, " STATE TO READY" ) - } - switch ( iState ) - { - case ELocReady: // Switch done. Sync. - { - // Entered here if SwitchDataProviderL causes direct call to - // vsProviderSwitchDone. Since provider switch should be async - // from client point of view now start AO and signal in RunL. - Cancel(); - TRequestStatus* status = &iStatus; - SetActive(); - User::RequestComplete( status, err ); - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.SwitchProvider AO start %d", err ) - } - // fall through - case ELocSwichingProvider: // Async. - case ELocNone: - SetFlag( EFlagSignalSourceSelection ); - break; - default: - break; - } - __VTPRINTEXIT( "LocVid.SwitchProvider" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SwitchProvider -// Overloaded method that takes new active provider as a parameter. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SwitchProvider( TProviderItem& aProviderItem ) - { - __VTPRINTENTER( "LocVid.SwitchProvider by aProviderItem" ) - StopViewFinder( EFalse ); - SwitchProvider( &aProviderItem ); - __VTPRINTEXIT( "LocVid.SwitchProvider by aProviderItem" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::IsInitialized -// Checks if a provider with given id is initialized. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::IsInitialized( - MVtEngMedia::TCameraId aId, - TBool& aInitialized ) - { - __VTPRINT2( DEBUG_MEDIA, "LocVideo.IsInitialized ID:%d", aId ) - TInt count( iVideoProviders->Count() ); - TVtEngProviderType type = CameraIdToType( aId ); - aInitialized = EFalse; - TInt err( KErrNotFound ); - while ( count-- ) - { - TProviderItem& item = ( *iVideoProviders )[count]; - if ( item.iType == type ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.IsInitialized found" ) - aInitialized = item.iInitialized; - if ( ( !aInitialized && item.iProviderState < KErrNone ) || - item.iErrorCode < KErrNone ) - { - __VTPRINT( DEBUG_MEDIA, "LocVideo.IsInitialized problems" ) - err = item.iErrorCode; - } - else - { - err = KErrNone; - } - count = 0; // break - } - } - __VTPRINT3( DEBUG_MEDIA | DEBUG_RETURN, - "LocVideo.IsInitialized isInitialized=%d,err=%d", aInitialized, err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::UpdateState -// Updates view finder state. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::UpdateState() - { - __VTPRINTENTER( "LocVid.UpdateState" ) - - if ( iActiveProvider ) - { - CVSDataProvider* provider = iActiveProvider->iProvider; - __VTPRINT2 ( DEBUG_MEDIA, "LocVideo.UpdateState, provider active", - provider->ViewFinderActive() ) - if ( provider && provider->ViewFinderActive()) - { - iViewFinderState = ( iRenderingMethod == EWindowServer ) ? - EVFReceivingBitmaps : EVFRenderingDsa; - } - } - ClearFlag( EFlagInitializeOnly ); - __VTPRINT2( DEBUG_MEDIA | DEBUG_RETURN, - "LocVideo.UpdateState iViewFinderState %d", iViewFinderState ) - __VTPRINTEXIT( "LocVid.UpdateState" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializingOrSwitching -// Is either initializing or doing a provider switch. -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::InitializingOrSwitching() const - { - return ( iState == ELocInitializing || - iState == ELocSwichingProvider ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::UninitializeProviderL -// Uninitializes initialized non-permanent provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::UninitializeProviderL() - { - __VTPRINTENTER( "LocVid.UninitializeProviderL" ) - TInt count( iVideoProviders->Count() ); - while ( count-- ) - { - TProviderItem& item = ( *iVideoProviders )[count]; - if ( item.iProviderState == EUndefined && item.iInitialized ) - { - DeleteProvider( item ); - item.iProvider = CreateDataProviderL( item.iType ); - } - } - __VTPRINTEXIT( "LocVid.UninitializeProviderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetCameraInfo -// Gets camera info. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetCameraInfo( MVtEngMedia::TCameraId aId, - MVtEngMedia::TCameraInfo& aInfo ) - { - TBool initialized( EFalse ); - TInt err( IsInitialized( aId, initialized ) ); - TVSDataProviderInfo info; - if ( initialized && err == KErrNone ) - { - TVtEngProviderType type = CameraIdToType( aId ); - TProviderItem item; - GetProviderByType( type, item ); - item.iProvider->ProviderInfo( info ); - aInfo.iMaxDigitalZoom = info.iMaxDigitalZoom; - aInfo.iMaxZoom = info.iMaxZoom; - aInfo.iMinZoom = info.iMinZoom; - aInfo.iMajorZoomStepCount = - CalculateMajorDigitalZoomStepCount( item.iProvider ); - } - return initialized ? err : KErrNotReady; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetDigitalZoomFactor -// Gets current zoom step. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetDigitalZoomFactor( TInt& aCurrentStep ) - { - if ( !iActiveProvider || - !iActiveProvider->iProvider ) - { - return KErrNotReady; - } - aCurrentStep = iActiveProvider->iProvider->DigitalZoomFactor(); - __VTPRINT2( DEBUG_MEDIA, "LocVideo.GetZ %d", aCurrentStep ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetMaxDigitalZoomStep -// Gets max. digital zoom step. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetMaxDigitalZoomStep( TInt& aMaxZoomStep ) - { - if ( !iActiveProvider || - !iActiveProvider->iProvider ) - { - return KErrNotReady; - } - aMaxZoomStep = iProviderInfo.iMaxDigitalZoom; - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.MaxZStep %d", aMaxZoomStep ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetMajorDigitalZoomStepCount -// Gets number of major zoom level leaps. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo:: - GetMajorDigitalZoomStepCount( TInt& aCount, TBool /*aProviderSupplied*/ ) - { - /*__VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.GetMajZStepCount %d", aProviderSupplied )*/ - if ( !iActiveProvider || !iActiveProvider->iProvider ) - { - return KErrNotReady; - } - aCount = CalculateMajorDigitalZoomStepCount( iProviderInfo ); - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.GetMajZStepCount %d", aCount ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetMajorDigitalZoomStep -// Maps major step to zoom step. Note: aIndex is given in range -// [0 .. CalculateMajorDigitalZoomStepCount() - 1] -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::GetMajorDigitalZoomStep( const TInt aIndex, TInt& aStep ) - { - if ( !iActiveProvider || !iActiveProvider->iProvider ) - { - // No active provider. - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "LocVideo.GetMajZStep NO active") - return; - } - if ( iProviderInfo.iMaxDigitalZoom > KVtMaxZoomStep ) - { - aStep = iProviderInfo.iMaxDigitalZoom * - Min( KVtMaxZoomStep, Max( 0, aIndex ) ) / KVtMaxZoomStep; - } - else - { - aStep = Min( iProviderInfo.iMaxDigitalZoom, Max( 0, aIndex ) ); - } - __VTPRINT3( DEBUG_MEDIA | DEBUG_DETAIL, - "LocVideo.GetMajZStep idx=%d,step=%d", aIndex, aStep ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetFreezeSupported -// Gets freeze supported value from provider. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::GetFreezeSupported( TBool& aFreezeSupported ) const - { - __VTPRINTENTER( "LocVideo.GetFreezeSupported" ) - if ( !iActiveProvider || - !iActiveProvider->iProvider ) - { - __VTPRINTEXIT( "LocVideo.GetFreezeSupported KErrNotReady") - return KErrNotReady; - } - aFreezeSupported = iProviderInfo.iFreezeSupported; - __VTPRINTEXITR( "LocVideo.GetFreezeSupported %d", aFreezeSupported ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::OkToFreeze -// Returns ETrue if it is ok to freeze provider (i.e. freeze is supported AND -// provider is not currently frozen) -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::OkToFreeze() const - { - __VTPRINTENTER( "LocVideo.OkToFreeze" ) - TBool isOk( EFalse ); - if ( iActiveProvider && - iActiveProvider->iProvider ) - { - isOk = ( iProviderInfo.iFreezeSupported && !IsFlag( EFlagFrozen ) ); - } - __VTPRINTEXITR( "LocVideo.OkToFreeze %d", isOk ) - return isOk; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::OkToUnfreeze -// Returns ETrue if it is ok to unfreeze provider (i.e. freeze is supported AND -// provider is currently frozen) -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::OkToUnfreeze() const - { - __VTPRINTENTER( "LocVideo.OkToUnfreeze" ) - TBool isOk( EFalse ); - if ( iActiveProvider && - iActiveProvider->iProvider ) - { - isOk = ( iProviderInfo.iFreezeSupported && IsFlag( EFlagFrozen ) ); - } - __VTPRINTEXITR( "LocVideo.OkToUnfreeze %d", isOk ) - return isOk; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::Mute -// Sets the audio state as muted. -// ----------------------------------------------------------------------------- -void CVtEngLocalVideo::Mute() - { - SetFlag( EFlagAudioMuted ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::UnMute -// Sets the audio state on again. -// ----------------------------------------------------------------------------- -void CVtEngLocalVideo::UnMute() - { - ClearFlag( EFlagAudioMuted ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetUIForeground -// Sets UI foreground state. -// ----------------------------------------------------------------------------- -void CVtEngLocalVideo::SetUIForeground( TBool aForeground ) - { - __VTPRINTENTER( "LocVideo.SetUIForeground" ) - __VTPRINT2( DEBUG_GEN, " foreground=%d", aForeground ) - - //Error indicator - TInt err = KErrNone; - if ( aForeground ) - { - if ( iDelayedSelect.IsDelayedSelectPending() ) - { - TVtEngProviderType type( iDelayedSelect.DelayedSelectTarget() ); - __VTPRINT2( DEBUG_MEDIA, - "LocVideo.SetUIForeground delayed switch to %d", type ) - SelectSourceL( type ); - } - - SetFlag( EFlagUIForeground ); - ClearFlag( EFlagUIBackground ); - if ( IsFlag( EFlagVFEnabled ) ) - { - //Ignore error - TRAP (err, StartViewFinderL( EFalse )); - } - else - { - MVtEngMedia::TShareObjectState sharingState; - GetObjectSharingState( sharingState ); - if ( sharingState == MVtEngMedia::ESharingImage ) - { - //Ignore error - TRAP (err, StartViewFinderL( ETrue )); - } - } - } - else - { - ClearFlag( EFlagUIForeground ); - SetFlag( EFlagUIBackground ); - StopViewFinder( EFalse ); - ClearFlag( EFlagUIBackground ); - } - __VTPRINTEXIT( "LocVideo.SetUIForeground" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetObjectSharingState -// Get current media object sharing state. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::GetObjectSharingState( - MVtEngMedia::TShareObjectState& aObjectSharingState ) const - { - __VTPRINTENTER( "LocVid.GetObjectSharingState" ) - if( iActiveProvider && iActiveProvider->iProvider ) - { - iShareImage->GetObjectSharingState( aObjectSharingState ); - } - else - { - aObjectSharingState = MVtEngMedia::ENotAbleToShare; - } - __VTPRINTEXITR( "LocVid.GetObjectSharingState %d", aObjectSharingState ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::InitializeShareImageL -// Start Image sharing initialization. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::InitializeShareImageL( - const MVtEngMedia::TShareObjectImageParameters& aParameters, - TBool& aFirstTime ) - { - __VTPRINTENTER( "LocVid.InitializeShareImageL" ) - - iShareImage->InitializeL( aParameters, - iActiveProvider->iType, aFirstTime ); - - __VTPRINTEXIT( "LocVid.InitializeShareImageL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::StartShareImageL -// Stop sharing Image. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::StartShareImageL() - { - __VTPRINTENTER( "LocVid.StartShareImageL" ) - const TBool delayed( iDelayedSelect.IsDelayedSelectPending() ); - const TVtEngProviderType type( iDelayedSelect.DelayedSelectTarget() ); - iShareImage->ShareL(); - if ( delayed ) - { - __VTPRINT2( DEBUG_MEDIA, - "LocVid.StartShareImageL IsDelayedSelectPending type = %d", - type ) - iShareImage->NotifyCameraChanged( type ); - } - __VTPRINTEXIT( "LocVid.StartShareImageL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::StopShareImageL -// Stop sharing Image. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::StopShareImageL() - { - __VTPRINTENTER( "LocVid.StopShareImageL" ) - iShareImage->StopL(); - __VTPRINTEXIT( "LocVid.StopShareImageL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ShareError -// Report error to image sharer. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::ShareError( TInt aError ) - { - __VTPRINTENTER( "LocVid.ShareError" ) - iShareImage->Error( aError ); - __VTPRINTEXIT( "LocVid.ShareError" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ShareStoredSource -// -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngProviderType CVtEngLocalVideo::ShareStoredSource() const - { - __VTPRINTENTER( "LocVid.ShareStoredSource" ) - const TVtEngProviderType stored( iShareImage->StoredSource() ); - __VTPRINTEXITR( "LocVid.ShareStoredSource = %d", stored ) - return stored; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SettingsChanged -// Called when GS settings changed. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SettingsChanged() - { - __VTPRINTENTER( "LocVid.SettingsChanged" ) - iShareImage->SettingsChanged(); - __VTPRINTEXIT( "LocVid.SettingsChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetIsPrepareCameraCalled -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetIsPrepareCameraCalled( TBool aCalled ) - { - __VTPRINTENTER( "LocVid.SetIsPrepareCameraCalled" ) - iPrepareCameraCalled = aCalled; - __VTPRINTEXITR( "LocVid.SetIsPrepareCameraCalled %d", iPrepareCameraCalled ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::IsPrepareCameraCalled -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::IsPrepareCameraCalled() const - { - __VTPRINTENTER( "LocVid.IsPrepareCameraCalled" ) - __VTPRINTEXITR( "LocVid.IsPrepareCameraCalled %d", iPrepareCameraCalled ) - return iPrepareCameraCalled; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::HandleLayoutChangeL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::HandleLayoutChangeL() - { - __VTPRINTENTER( "LocVid.HandleLayoutChangeL" ) - iLayoutChangeHandler.HandleLayoutChangeL(); - __VTPRINTEXIT( "LocVid.HandleLayoutChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::IsDelayedSelectPending -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::IsDelayedSelectPending() const - { - return iDelayedSelect.IsDelayedSelectPending(); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::DeleteProvider -// Deletes provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::DeleteProvider( - TProviderItem& aItem ) - { - __VTPRINTENTER( "LocVid.DeleteProvider" ) - aItem.iProviderState = EUndefined; - if ( aItem.iProvider && - aItem.iInitialized && - aItem.iProvider->ViewFinderActive() ) - { - aItem.iProvider->StopViewFinder(); - } - delete aItem.iProvider; - aItem.iInitialized = EFalse; - aItem.iProvider = NULL; - __VTPRINTEXIT( "LocVid.DeleteProvider" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::DeleteProvider -// Deletes provider. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::DeleteProvider( const TVtEngProviderType aType ) - { - TProviderItem dummy; - const TInt pos( GetProviderByType( aType, dummy ) ); - if ( pos >= 0 ) // valid index - { - TProviderItem& item = ( *iVideoProviders )[pos]; - DeleteProvider( item ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::Reset -// Resets local video handler. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::Reset() - { - __VTPRINTENTER( "LocVid.Reset" ) - - __VTPRINT( DEBUG_MEDIA, "LocVideo.Reset" ) - DeleteProvider( KVtEngProviderCam1 ); - DeleteProvider( KVtEngProviderCam2 ); - DeleteAudioSource(); - - ClearFlag( EFlagAudioMuted | - EFlagSignalSourceSelection | - EFlagInitialized | - EFlagVFEnabled | - EFlagFrozen ); - - __VTPRINT( DEBUG_MEDIA, "LocVideo.Reset clearing EFlagVFEnabled and other" ) - - StopViewFinder(); - __VTPRINTEXIT( "LocVid.Reset" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetDigitalZoomFactorL -// Sets video provider's digital zoom step. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetDigitalZoomFactorL( TInt aDigitalZoomFactor ) - { - __VTPRINTENTER( "LocVid.SetDigitalZoomFactorL" ) - __VTPRINT2( DEBUG_MEDIA, "LocVideo.SetZoom %d", aDigitalZoomFactor ) - if ( !iActiveProvider || - !iActiveProvider->iProvider ) - { - User::Leave( KErrNotReady ); - } - CVSDataProvider* provider( iActiveProvider->iProvider ); - provider->SetDigitalZoomFactorL( aDigitalZoomFactor ); - iActiveProvider->iStoredZoomFactor = provider->DigitalZoomFactor(); - __VTPRINTEXIT( "LocVid.SetDigitalZoomFactorL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetFlag -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetFlag( const TInt aFlag ) - { - iFlags |= aFlag; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ClearFlag -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::ClearFlag( const TInt aFlag ) - { - iFlags &= ~aFlag; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::IsFlag -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::IsFlag( const TInt aFlag ) const - { - return ( ( iFlags & aFlag ) != 0 ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CalculateMajorDigitalZoomStepCount -// Utility function to calculate amount of major zoom steps. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::CalculateMajorDigitalZoomStepCount( - CVSDataProvider* aProvider ) - { - TVSDataProviderInfo info; - aProvider->ProviderInfo( info ); - return CalculateMajorDigitalZoomStepCount( info ); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CalculateMajorDigitalZoomStepCount -// Utility function to calculate amount of major zoom steps. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::CalculateMajorDigitalZoomStepCount( - const TVSDataProviderInfo& aInfo ) const - { - TInt zStepCount( aInfo.iMaxDigitalZoom ? - aInfo.iMaxDigitalZoom + 1 : 0 ); - TInt maxZStepCount( KVtMaxZoomStep + 1 ); - return zStepCount > maxZStepCount ? maxZStepCount : zStepCount; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::TProviderItem -// Constructor. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TProviderItem::TProviderItem() : - iProvider( NULL ), - iType( KVtEngProviderUndefined ), - iInitialized( EFalse ), - iErrorCode( 0 ), - iProviderState( EUndefined ), - iStoredZoomFactor( 0 ), - iZFErr( KErrNone ), - iCamPrefs( NULL ), - iFirstTime( ETrue ) - { - __VTPRINTENTER( "LocVid.TProviderItem.ctor" ) - ResetStoredValues(); - __VTPRINTEXITR( "LocVid.TProviderItem.ctor $%x", TInt( this ) ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::~TProviderItem -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TProviderItem::~TProviderItem() - { - __VTPRINTENTER( "LocVid.TProviderItem.~" ) - DetachFromCameraPreferences(); - __VTPRINTEXITR( "LocVid.TProviderItem.~ $%x", TInt( this ) ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::ResetStoredValues -// Resets stored values. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::ResetStoredValues() - { - __VTPRINTENTER( "LocVid.ResetStoredValues" ) - DetachFromCameraPreferences(); - __VTPRINTEXIT( "LocVid.ResetStoredValues" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::RestoreZoomFactor -// Tries to restore zoom factor. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::TProviderItem::RestoreZoomFactor() - { - __VTPRINTENTER( "LocVid.RestoreZoomFactor" ) - TRAP( iZFErr, - { - if ( iProvider && !iZFErr ) - { - iProvider->SetDigitalZoomFactorL( iStoredZoomFactor ); - iStoredZoomFactor = iProvider->DigitalZoomFactor(); - __VTPRINT2( DEBUG_GEN, "LocVideo.RestoreZoomFactor ZF now = %d", - iStoredZoomFactor ) - } - } ); - __VTPRINTEXITR( "LocVid.RestoreZoomFactor %d", iZFErr ) - return iZFErr; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::RestorePreferences -// Tries to restore preferences. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::TProviderItem::RestorePreferences() - { - __VTPRINTENTER( "LocVid.RestorePreferences" ) - TRAPD( error, - { - if ( iCamPrefs && iProvider && !iFirstTime ) - { - if ( !iCtErr ) - { - iProvider->SetColorToneL( - CCamera::CCameraImageProcessing::TEffect( iColorTone ) ); - } - if ( !iWbErr ) - { - iProvider->SetWhiteBalanceL( - CCamera::TWhiteBalance( iWhiteBalance ) ); - } - if ( !iBrErr ) - { - iProvider->SetBrightnessL( iBrightness ); - } - if ( !iCrErr ) - { - iProvider->SetContrastL( iContrast ); - } - } - } ); - __VTPRINTEXITR( "LocVid.RestorePreferences %d", error ) - return error; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::Attach -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::Attach( MVtEngCameraPreferences& - aCamPrefs ) - { - __VTPRINTENTER( "LocVid.Attach" ) - iCamPrefs = &aCamPrefs; - if ( iFirstTime ) - { - iCtErr = iCamPrefs->GetColorTone( iColorTone ); - iWbErr = iCamPrefs->GetWhiteBalance( iWhiteBalance ); - iBrErr = iCamPrefs->GetBrightness( iBrightness ); - iCrErr = iCamPrefs->GetContrast( iContrast ); - iFirstTime = EFalse; - } - __VTPRINTEXITR( "LocVid.Attach $%x", TInt( iCamPrefs ) ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::ColorToneUpdated -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::ColorToneUpdated( - MVtEngCameraPreferences::TColorTone aColorTone ) - { - __VTPRINTENTER( "LocVid.ColorToneUpdated" ) - iCtErr = KErrNone; - iColorTone = aColorTone; - __VTPRINTEXITR( "LocVid.ColorToneUpdated %d", aColorTone ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::WhiteBalanceUpdated -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::WhiteBalanceUpdated( - MVtEngCameraPreferences::TWhiteBalance aWhiteBalance ) - { - __VTPRINTENTER( "LocVid.WhiteBalanceUpdated" ) - iWbErr = KErrNone; - iWhiteBalance = aWhiteBalance; - __VTPRINTEXITR( "LocVid.WhiteBalanceUpdated %d", aWhiteBalance ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::BrightnessUpdated -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::BrightnessUpdated( TInt aBrightness ) - { - __VTPRINTENTER( "LocVid.BrightnessUpdated" ) - iBrErr = KErrNone; - iBrightness = aBrightness; - __VTPRINTEXITR( "LocVid.BrightnessUpdated %d", aBrightness ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::ContrastUpdated -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::ContrastUpdated( TInt aContrast ) - { - __VTPRINTENTER( "LocVid.ContrastUpdated" ) - iCrErr = KErrNone; - iContrast = aContrast; - __VTPRINTEXITR( "LocVid.ContrastUpdated %d", aContrast ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::Detach -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::Detach( MVtEngCameraPreferences& ) - { - __VTPRINTENTER( "LocVid.Detach" ) - iCamPrefs = NULL; - __VTPRINTEXIT( "LocVid.Detach" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TProviderItem::DetachFromCameraPreferences -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TProviderItem::DetachFromCameraPreferences() - { - __VTPRINTENTER( "LocVid.DetachFromCameraPreferences" ) - if ( iCamPrefs ) - { - static_cast< CVtEngCameraPreferences* >( iCamPrefs )->Detach( *this ); - iCamPrefs = NULL; - } - __VTPRINTEXIT( "LocVid.DetachFromCameraPreferences" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CreateAudioSource -// Creates audio source. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::CreateAudioSource() - { - __VTPRINTENTER( "LocVid.CreateAudioSource" ) - TInt err = KErrNone; - // Check if this really a target compilation -#if !defined( __WINS__ ) - iAudioSource = VTProtocolFactory::CreateAudioSource(); - if ( !iAudioSource ) - { - err = KErrNoMemory; - } -#endif // !(__WINS__) - __VTPRINTEXITR( "LocVid.CreateAudioSource %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::DeleteAudioSource -// Deletes audio source. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::DeleteAudioSource() - { - __VTPRINTENTER( "LocVid.DeleteAudioSource" ) - if( iAudioSource ) - { - VTProtocolFactory::DeletAudioSource(iAudioSource); - iAudioSource = NULL; - } - __VTPRINTEXIT( "LocVid.DeleteAudioSource" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::PauseVideoSending -// Pause video sending. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::PauseVideoSending() - { - __VTPRINTENTER( "LocVid.PauseVideoSending" ) - if ( iSource ) - { - iSource->PauseSending(); - } - __VTPRINTEXIT( "LocVid.PauseVideoSending" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ResumeVideoSending -// Resume video sending. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::ResumeVideoSending() - { - __VTPRINTENTER( "LocVid.ResumeVideoSending" ) - if ( iSource ) - { - iSource->ResumeSending(); - } - __VTPRINTEXIT( "LocVid.ResumeVideoSending" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ViewFinderStarted -// Is view finder started. -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::ViewFinderStarted() const - { - CVSDataProvider* provider = NULL; - if( iActiveProvider ) - { - provider = iActiveProvider->iProvider; - } - if ( !provider ) - { - return EFalse; - } - return provider->ViewFinderActive(); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ViewFinderStarted -// Is view finder started. -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::IsFrozen() const - { - TBool result = IsFlag( EFlagFrozen ); - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::ResetIndices -// Resets the provider info indices. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::ResetIndices() - { - iProviderInfoIndexCam1 = KErrNotFound; - iProviderInfoIndexCam2 = KErrNotFound; - iProviderInfoIndexStill = KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetCameraTracking -// Sets a listener for camera P & S data. -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::SetCameraTrackingL( TInt& aProviderIndex ) - { - __VTPRINTENTER( "LocVideo.SetCameraTracking" ) - iCameraListener = CVtEngPubSubsListener::NewL( KPSUidVTMediaConfiguration, - KPSPreferredCamera, this ); - - __VTPRINTEXIT( "LocVideo.SetCameraTracking" ) - return iCameraListener->Get( aProviderIndex ); - } - -// ----------------------------------------------------------------------------- -// CVtEngInitializer::HandleNotifyPSL -// Notification of changed port value. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::HandleNotifyPSL( - const TUid /*aUid */, const TInt& /* aKey */, - const TRequestStatus& aStatus ) - { - __VTPRINTENTER( "LocVideo.handleNotifyPSL " ) - if ( aStatus.Int() == KErrNone ) - { - // Get the new camera value. - TInt cameraId( EPSPreferredCameraUnknown ); - iCameraListener->Get( cameraId ); - // No need to check error, since MapCameraInternally will return - // current camera, and no actions will be taken. - MVtEngMedia::TCameraId camId( MapCameraInternally( cameraId ) ); - - TVtEngProviderType providerType( KVtEngProviderUndefined ); - TInt result( KErrNone ); - switch( camId ) - { - case MVtEngMedia::EPrimaryCamera: - if( IsFlag( EFlagCamera1Available ) ) - { - providerType = KVtEngProviderCam1; - } - else - { - result = KErrNotFound; - } - break; - - case MVtEngMedia::ESecondaryCamera: - if( IsFlag( EFlagCamera2Available ) ) - { - providerType = KVtEngProviderCam2; - } - else - { - result = KErrNotFound; - } - break; - - default: - result = KErrNotSupported; - break; - } - - User::LeaveIfError( result ); - - // If we're sharing, then notify camera change to image sharer - if ( GetMediaSource() == MVtEngMedia::EMediaShare || - iShareImage->IsInitializingShare() ) - { - iShareImage->NotifyCameraChanged( providerType ); - } - // If current provider is camera - else if ( GetMediaSource() == MVtEngMedia::EMediaCamera ) - { - // If current camera is different than new - if ( iCurrentCamera != camId ) - { - // If VT is in the foreground and Provider is unfrozen - if ( IsFlag( EFlagUIForeground ) && !IsFrozen() && !iObserver.IsVideoChannelClosed() ) - { - // select camera.. - SelectSourceL( providerType ); - } - else - { - iObserver.SetSelectedCameraId( camId ); - // ..else notify delayed select - iLayoutChangeHandler.CancelHandleLayoutChange(); - iDelayedSelect.NotifyDelayedSelect( providerType ); - } - } - else - { - // else ignore - } - } - // Else store camera type and on next SelectSourceL() use this instead - else - { - iObserver.SetSelectedCameraId( camId ); - // If prepare camera has not been called, then just - // update preferred camera - if ( GetMediaSource()!= MVtEngMedia::EMediaNone && - ( IsPrepareCameraCalled() || iObserver.IsVideoChannelClosed() ) ) - { - iLayoutChangeHandler.CancelHandleLayoutChange(); - iDelayedSelect.NotifyDelayedSelect( providerType ); - } - else - { - iCurrentCamera = camId; - } - } - } - __VTPRINTEXIT( "LocVideo.HandleNotifyPSL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::SetCurrentCameraId -// -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::SetCurrentCameraId( MVtEngMedia::TCameraId aCamId ) - { - __VTPRINTENTER( "LocVideo.SetCurrentCameraId" ) - iCurrentCamera = aCamId; - iObserver.SetSelectedCameraId( aCamId ); - __VTPRINTEXITR( "LocVideo.SetCurrentCameraId camId = %d", aCamId ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::MapCameraInternally -// Maps camera id to internal data structures. -// ----------------------------------------------------------------------------- -// -MVtEngMedia::TCameraId CVtEngLocalVideo::MapCameraInternally( TInt aCameraId ) - { - __VTPRINT2( DEBUG_GEN, "LocVideo.MapCameraInternally cameraId=%d", - aCameraId ) - if ( aCameraId == EPSPreferredCameraInwards || - iNumSupportedCameras == 1 ) - { - return MVtEngMedia::EPrimaryCamera; - } - else if ( aCameraId == EPSPreferredCameraOutwards ) - { - return MVtEngMedia::ESecondaryCamera; - } - __VTPRINT2( DEBUG_GEN, "LocVideo.MapCameraInternally curCam=%d", iCurrentCamera ) - return iCurrentCamera; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CameraAvailable -// Checks camera availabitility. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo:: - CameraAvailable( CVtEngLocalVideo::TVtEngProviderType &aType ) - { - __VTPRINT2( DEBUG_GEN, "LocVideo.CameraAvailable In.type=%d ", aType ) - if ( iCurrentCamera == MVtEngMedia::EPrimaryCamera ) - { - if ( IsFlag( EFlagCamera1Available ) ) - { - aType = KVtEngProviderCam1; - } - } - else if ( iCurrentCamera == MVtEngMedia::ESecondaryCamera ) - { - if ( IsFlag( EFlagCamera2Available ) ) - { - aType = KVtEngProviderCam2; - } - } - __VTPRINT2( DEBUG_GEN, "LocVideo.CameraAvailable Out.type=%d", aType ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::IsProviderWaiting -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::IsProviderWaiting( TVtEngProviderType aType ) const - { - __VTPRINTENTER( "LocVid.IsProviderWaiting" ) - TBool isWaiting( EFalse ); - TInt indexWaiting( ProviderIndexByState( EWaiting ) ); - if ( indexWaiting != KErrNotFound ) - { - TProviderItem& item = ( *iVideoProviders )[ indexWaiting ]; - isWaiting = ( item.iType == aType ); - } - __VTPRINTEXITR( "LocVid.IsProviderWaiting %d", isWaiting ) - return isWaiting; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::GetHighestSelectableProvider -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::GetHighestSelectableProvider( - CVtEngLocalVideo::TVtEngProviderType& aPreferred ) const - { - __VTPRINTENTER( "LocVid.GetHighestSelectableProvider" ) - const TVtEngProviderType preferred = aPreferred; - switch ( preferred ) - { - case KVtEngProviderCam1: - if ( IsFlag( EFlagCamera1Available ) ) - { - // cam1 is selectable, jump out - break; - } - // othwerwise fall through to next in priority order - case KVtEngProviderCam2: - if ( IsFlag( EFlagCamera2Available ) && - // Do not allow change to another camera without user permission, - // i.e. test preferred was cam1 but it wasn't available. - preferred != KVtEngProviderCam1 ) - { - // cam2 is selectable - aPreferred = KVtEngProviderCam2; - break; - } - // othwerwise fall through to next in priority order - case KVtEngProviderImage: - if ( CVtEngUtility::Settings().Config().iVideo.iImageIsValid ) - { - aPreferred = KVtEngProviderImage; - break; - } - // othwerwise fall through to next in priority order - case KVtEngProviderNone: - default: - // always available - aPreferred = KVtEngProviderNone; - break; - } - __VTPRINTEXITR( "LocVid.GetHighestSelectableProvider %d", aPreferred ) - return ( preferred == aPreferred ); - } - -// Implementation of CVtEngLocalVideo::CVtEngShareImage - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::NewL -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::CVtEngShareImage* CVtEngLocalVideo::CVtEngShareImage::NewL( - CVtEngLocalVideo& aLocalVideo ) - { - CVtEngShareImage* self = new ( ELeave ) CVtEngShareImage( aLocalVideo ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::~CVtEngShareImage -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::CVtEngShareImage::~CVtEngShareImage() - { - DeleteProviders(); - iBuffered.ResetAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::InitializeL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::InitializeL( - const MVtEngMedia::TShareObjectImageParameters& aParameters, - TVtEngProviderType aCurrent, - TBool& aFirstTime ) - { - __VTPRINTENTER( "LocVid.ShareImage.InitializeL" ) - if ( IsInitializing() ) - { - // Already initializing. - User::Leave( KErrNotReady ); - } - - - CVtEngLocalVideo::TProviderItem* freeProviderItem = FetchProviderItem(); - if ( !freeProviderItem ) - { - User::Leave( KErrInUse ); - } - - iParameters = aParameters; - CreateProviderL( *freeProviderItem ); - InitializeProviderL( *freeProviderItem ); - - // Only set stored type when sharing is started, if resharing (i.e. sharing - // new image when already sharing other image), then don't change stored - // type. - if ( iStoredType == KVtEngProviderUndefined ) - { - iSettingsChanged = EFalse; - iOriginalStoredType = iStoredType = aCurrent; - aFirstTime = ETrue; - } - else - { - aFirstTime = EFalse; - } - iInitializingProvider = freeProviderItem; - SetState( EInitializing ); - __VTPRINTEXIT( "LocVid.ShareImage.InitializeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::ShareL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::ShareL() - { - __VTPRINTENTER( "LocVid.ShareImage.ShareL" ) - if ( !IsInitializing() && iInitializingProvider ) - { - User::Leave( KErrNotReady ); - } - iActiveProvider = iInitializingProvider; - iInitializingProvider = NULL; - iLocalVideo->SwitchProvider( *iActiveProvider ); - SetState( ESharing ); - __VTPRINTEXIT( "LocVid.ShareImage.ShareL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::StopL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::StopL() - { - __VTPRINTENTER( "LocVid.ShareImage.StopL" ) - iLocalVideo->InitializeOnly( EFalse ); - - CVtEngLocalVideo::TVtEngProviderType target( StoredSource() ); - if ( iOriginalStoredType != target ) - { - TProviderItem* item = NULL; - if ( iLocalVideo->GetProviderByType( iOriginalStoredType, item ) - != KErrNotFound ) - { - if ( item->iProviderState != EPermanent ) - { - iLocalVideo->DeleteProvider( *item ); - } - } - } - - if ( iSettingsChanged ) - { - if ( target == KVtEngProviderDefaultStillImage ) - { - DeleteProvider( target ); - } - DeleteProvider( KVtEngProviderImage ); - } - - __VTPRINT2( DEBUG_MEDIA, "LocVid.ShareImage.StopL select %d", - target ) - iLocalVideo->SelectSourceL( target ); - - if ( iStoredType == KVtEngProviderCam1 || - iStoredType == KVtEngProviderCam2 ) - { - MVtEngMedia::TCameraId camId( - iStoredType == KVtEngProviderCam1 ? - MVtEngMedia::EPrimaryCamera : - MVtEngMedia::ESecondaryCamera ); - iLocalVideo->SetCurrentCameraId( camId ); - __VTPRINT2( DEBUG_MEDIA, "LocVid.ShareImage.StopL set camId %d", - camId ) - } - SetState( EStopped ); - __VTPRINTEXIT( "LocVid.ShareImage.StopL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::Error -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::Error( TInt -#ifdef _DEBUG - aError -#endif // _DEBUG - ) - { - TState stateAfter( EStopped ); - __VTPRINTENTER( "LocVid.ShareImage.Error" ) - if ( IsInitializing() ) - { - iInitializingProvider = NULL; - stateAfter = iPreviousState; - } - else if ( iState == ESharing ) - { - if ( iLocalVideo->iObserver.GetPendingCommand() != KVtEngInitializeShareImage ) - { - CVtEngEventManager::NotifyEvent( KVtEngShareImageDecodingError ); - } - stateAfter = ESharing; - //iActiveProvider = NULL; - } - SetState( stateAfter ); -#ifdef _DEBUG - __VTPRINTEXITR( "LocVid.ShareImage.Error %d", aError ) -#endif // _DEBUG - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::StoredSource -// -// Returns stored source for this share session. Stored source may have changed -// during share (e.g. when GS still image is being sent but during share -// GS still image is disabled => still image cannot be used anymore and thus -// None provider must be activated). All these conditions are checked by this -// method. -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngProviderType - CVtEngLocalVideo::CVtEngShareImage::StoredSource() const - { - __VTPRINTENTER( "LocVid.ShareImage.StoredSource" ) - CVtEngLocalVideo::TVtEngProviderType stored( iStoredType ); - - if ( iOriginalStoredType == KVtEngProviderNone || - iOriginalStoredType == KVtEngProviderImage || - iOriginalStoredType == KVtEngProviderDefaultStillImage ) - { - if ( CVtEngUtility::Settings().Config().iVideo.iImageIsValid ) - { - stored = KVtEngProviderImage; - } - else if ( CVtEngUtility::Settings().IsDefaultStillImageDefined() ) - { - stored = KVtEngProviderDefaultStillImage; - } - else - { - stored = KVtEngProviderNone; - } - } - __VTPRINTEXITR( "LocVid.ShareImage.StoredSource = %d", stored ) - return stored; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::CVtEngShareImage -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::CVtEngShareImage::CVtEngShareImage( - CVtEngLocalVideo& aLocalVideo ) - : iLocalVideo( &aLocalVideo ), iState( EStopped ), - iStoredType( KVtEngProviderUndefined ), - iOriginalStoredType( KVtEngProviderUndefined ), - iBuffered( 2 ), iSettingsChanged( EFalse ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::ConstructL() - { - __VTPRINTENTER( "LocVid.ShareImage.ConstructL" ) - for ( TInt i = 0; i < KVtEngNumProvidersBuffered; i++ ) - { - TProviderItem* item = new (ELeave) TProviderItem(); - CleanupStack::PushL( item ); - User::LeaveIfError( iBuffered.Append( item ) ); - CleanupStack::Pop(); // item - } - __VTPRINTEXIT( "LocVid.ShareImage.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::Parameters -// ----------------------------------------------------------------------------- -// -const MVtEngMedia::TShareObjectImageParameters& - CVtEngLocalVideo::CVtEngShareImage::Parameters() const - { - __VTPRINTENTER( "LocVid.ShareImage.Parameters" ) - __VTPRINTEXIT( "LocVid.ShareImage.Parameters" ) - return iParameters; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::IsInitializing -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::CVtEngShareImage::IsInitializing() const - { - TBool isInitializing( iState == EInitializing ); - __VTPRINTENTER( "LocVid.ShareImage.IsInitializing" ) - __VTPRINTEXITR( "LocVid.ShareImage.IsInitializing %d", isInitializing ) - return isInitializing; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::SetState -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::SetState( const TState aNewState ) - { - __VTPRINTENTER( "LocVid.ShareImage.SetState" ) - // Signal UI when entering or leaving initializing state - if ( aNewState == EInitializing ) - { - CVtEngEventManager::NotifyEvent( KVtEngShareImageInitializeBegin ); - } - else if ( iState == EInitializing ) - { - CVtEngEventManager::NotifyEvent( KVtEngShareImageInitializeEnd ); - } - // Reset stored type when stopping - if( aNewState == EStopped ) - { - iOriginalStoredType = iStoredType = KVtEngProviderUndefined; - iSettingsChanged = EFalse; - } - iPreviousState = iState; - iState = aNewState; - __VTPRINTEXITR( "LocVid.ShareImage.SetState iState = %d", iState ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::GetProviderItemL -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TProviderItem* - CVtEngLocalVideo::CVtEngShareImage::FetchProviderItem() const - { - __VTPRINTENTER( "LocVid.ShareImage.FetchProviderItem" ) - for( TInt i = 0; i < iBuffered.Count(); i++ ) - { - if( ( iBuffered[ i ] != iActiveProvider ) && - ( iBuffered[ i ] != iInitializingProvider ) ) - { - __VTPRINTEXIT( "LocVid.ShareImage.FetchProviderItem" ) - return iBuffered[ i ]; - } - } - __VTPRINTEXIT( "LocVid.ShareImage.FetchProviderItem" ) - return NULL; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::CreateProviderL -// ----------------------------------------------------------------------------- -void CVtEngLocalVideo::CVtEngShareImage::CreateProviderL( - TProviderItem& aProviderItem ) - { - __VTPRINTENTER( "LocVid.ShareImage.CreateProviderL" ) - iLocalVideo->ReCreateProviderL( aProviderItem, KVtEngProviderShareImage ); - __VTPRINTEXIT( "LocVid.ShareImage.CreateProviderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::InitializeProviderL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::InitializeProviderL( - TProviderItem& aProviderItem ) - { - __VTPRINTENTER( "LocVid.ShareImage.InitializeProviderL" ) - if( IsInitializing() ) - { - User::Leave( KErrNotReady ); - } - TPckgBuf< TVSStillImageDataProviderParams > pckg( Parameters() ); -#ifdef _DEBUG - RDebug::Print( _L( "LocVid.ShareImage.InitializeProviderL: %S" ), - &( pckg().iFileName ) ); -#endif // _DEBUG - iLocalVideo->InitializeShareProviderL( aProviderItem, pckg ); - __VTPRINTEXIT( "LocVid.ShareImage.InitializeProviderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::DeleteProvider -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::DeleteProvider( - TVtEngProviderType aProviderType ) - { - __VTPRINTENTER( "LocVid.ShareImage.DeleteProvider" ) - TProviderItem* pItem; - if ( iLocalVideo->GetProviderByType( aProviderType, pItem ) - != KErrNotFound ) - { - iLocalVideo->DeleteProvider( *pItem ); - } - __VTPRINTEXIT( "LocVid.ShareImage.DeleteProvider" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::GetObjectSharingState -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::GetObjectSharingState( - MVtEngMedia::TShareObjectState& aObjectSharingState ) const - { - __VTPRINTENTER( "LocVid.ShareImage.GetObjectSharingState" ) - switch ( iState ) - { - case EStopped: - aObjectSharingState = MVtEngMedia::ENotSharing; - break; - - case EInitializing: - aObjectSharingState = MVtEngMedia::EInitializingShareImage; - break; - - case ESharing: - aObjectSharingState = MVtEngMedia::ESharingImage; - break; - - default: - aObjectSharingState = MVtEngMedia::ENotAbleToShare; - break; - } - __VTPRINTEXIT( "LocVid.ShareImage.GetObjectSharingState" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::IsInitializingShare -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::CVtEngShareImage::IsInitializingShare() const - { - __VTPRINTENTER( "LocVid.ShareImage.IsInitializingShare" ) - const TBool result( iState == EInitializing ); - __VTPRINTEXITR( "LocVid.ShareImage.IsInitializingShare %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::SettingsChanged -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::SettingsChanged() - { - __VTPRINTENTER( "LocVid.ShareImage.SettingsChanged" ) - iSettingsChanged = ETrue; - __VTPRINTEXIT( "LocVid.ShareImage.SettingsChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::ProviderSwitchDone -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::ProviderSwitchDone( - CVSDataProvider* aOldProvider ) - { - __VTPRINTENTER( "LocVid.ShareImage.ProviderSwitchDone" ) - //if ( iState == EStopped ) - { - for ( TInt i = iBuffered.Count() - 1; i >= 0; i-- ) - { - if ( iBuffered[ i ]->iProvider == aOldProvider ) - { - iLocalVideo->DeleteProvider( *iBuffered[ i ] ); - break; - } - } - } - __VTPRINTEXIT( "LocVid.ShareImage.ProviderSwitchDone" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::NotifyCameraChanged -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::NotifyCameraChanged( - const TVtEngProviderType& aProviderType ) - { - __VTPRINTENTER( "LocVid.ShareImage.NotifyCameraChanged" ) - if ( ( iState == EInitializing ) || ( iState == ESharing ) ) - { - iStoredType = aProviderType; - } - __VTPRINTEXIT( "LocVid.ShareImage.NotifyCameraChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::DeleteProviders -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::DeleteProviders() - { - __VTPRINTENTER( "LocVid.ShareImage.DeleteProviders" ) - for ( TInt i = 0; i < iBuffered.Count(); i++ ) - { - iLocalVideo->DeleteProvider( *iBuffered[ i ] ); - } - __VTPRINTEXIT( "LocVid.ShareImage.DeleteProviders" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CVtEngShareImage::CancelInitialize -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CVtEngShareImage::CancelInitialize() - { - __VTPRINTENTER( "CVtEngLocalVideo.CVtEngShareImage.CancelInitialize"); - if( iInitializingProvider ) - { - if(iInitializingProvider->iProvider) - { - __VTPRINT( DEBUG_MEDIA,"iInitializingProvider->iProvider->CancelInitializing()"); - iInitializingProvider->iProvider->CancelInitializing(); - } - } - __VTPRINTEXIT( "CVtEngLocalVideo.CVtEngShareImage.CancelInitialize"); - } -// Implementation of CVtEngLocalVideo::TVtEngDelayedSelect - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngDelayedSelect::TVtEngDelayedSelect -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngDelayedSelect::TVtEngDelayedSelect() - : iDelayedProviderType( KVtEngProviderUndefined ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngDelayedSelect::NotifyDelayedSelect -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TVtEngDelayedSelect::NotifyDelayedSelect( - const TVtEngProviderType& aProviderType ) - { - __VTPRINTENTER( "LocVid.DelSel.NotifyDelayedSelect" ) - iDelayedProviderType = aProviderType; - __VTPRINTEXIT( "LocVid.DelSel.NotifyDelayedSelect" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngDelayedSelect::IsDelayedSelectPending -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::TVtEngDelayedSelect::IsDelayedSelectPending() const - { - __VTPRINTENTER( "LocVid.DelSel.IsDelayedSelectPending" ) - const TBool result( iDelayedProviderType != KVtEngProviderUndefined ); - __VTPRINTEXITR( "LocVid.DelSel.IsDelayedSelectPending %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngDelayedSelect::DelayedSelectTarget -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngProviderType -CVtEngLocalVideo::TVtEngDelayedSelect::DelayedSelectTarget() - { - __VTPRINTENTER( "LocVid.DelSel.DelayedSelectTarget" ) - TVtEngProviderType current( iDelayedProviderType ); - iDelayedProviderType = KVtEngProviderUndefined; - __VTPRINTEXITR( "LocVid.DelSel.DelayedSelectTarget %d", current ) - return current; - } - -// Implementation of CVtEngLocalVideo::TVtEngLayoutChangeHandler - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::TVtEngLayoutChangeHandler -// ----------------------------------------------------------------------------- -// -CVtEngLocalVideo::TVtEngLayoutChangeHandler::TVtEngLayoutChangeHandler( - CVtEngLocalVideo& aLocalVideo ) - : iLocalVideo( &aLocalVideo ), iState( EIdle ), - iStored( KVtEngProviderUndefined ) - { - __VTPRINTEXIT( "LocVid.LayoutCH.Ctor" ) - __VTPRINTEXIT( "LocVid.LayoutCH.Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::UnfreezeL -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::TVtEngLayoutChangeHandler::UnfreezeL() - { - TBool result( EFalse ); - __VTPRINTENTER( "LocVid.LayoutCH.UnfreezeL" ) - if ( iState == ELayoutChangePending ) - { - result = ETrue; - DoHandleLayoutChangeL(); - } - __VTPRINTEXITR( "LocVid.LayoutCH.UnfreezeL %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::HandleLayoutChangeL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TVtEngLayoutChangeHandler::HandleLayoutChangeL() - { - __VTPRINTENTER( "LocVid.LayoutCH.HandleLayoutChangeL" ) - TInt error( KErrNone ); - if ( iState != EIdle ) - { - if ( iState == ELayoutChangePending ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.HandleLayoutChangeL PENDING" ) - } - else - { - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.HandleLayoutChangeL NOT ready" ) - error = KErrNotReady; - } - CompleteOperation( error ); - } - else - { - // Only do reinitialize if camera is active source - if ( iLocalVideo->GetMediaSource() == MVtEngMedia::EMediaCamera && - !iLocalVideo->IsDelayedSelectPending() ) - { - if ( !iLocalVideo->IsFrozen() ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.HandleLayoutChangeL camera active, reinitialize" ) - DoHandleLayoutChangeL(); - } - else - { - iState = ELayoutChangePending; - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.HandleLayoutChangeL flag set, frozen" ) - CompleteOperation( error ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.HandleLayoutChangeL no op, camera is not active" ) - CompleteL( error ); - } - } - __VTPRINTEXITR( "LocVid.LayoutCH.HandleLayoutChangeL %d", error ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::CancelHandleLayoutChange -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TVtEngLayoutChangeHandler::CancelHandleLayoutChange() - { - __VTPRINTENTER( "LocVid.LayoutCH.CancelHandleLayoutChange" ) - if ( iState == ELayoutChangePending ) - { - iState = EIdle; - } - __VTPRINTEXITR( "LocVid.LayoutCH.CancelHandleLayoutChange iState = %d", - iState ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::DoHandleLayoutChangeL -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TVtEngLayoutChangeHandler::DoHandleLayoutChangeL() - { - __VTPRINTENTER( "LocVid.LayoutCH.DoHandleLayoutChangeL" ) - iStored = iLocalVideo->ActiveProvider(); - iState = ESwitchingBlank; - TVtEngProviderType providerType( KVtEngProviderNone ); - // Use user defined image, if available - if ( CVtEngUtility::Settings().IsDefaultStillImageDefined() ) - { - providerType = KVtEngProviderDefaultStillImage; - } - iLocalVideo->SelectSourceL( providerType ); - __VTPRINTEXIT( "LocVid.LayoutCH.DoHandleLayoutChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::Complete -// ----------------------------------------------------------------------------- -// -TInt CVtEngLocalVideo::TVtEngLayoutChangeHandler::Complete( const TInt aError ) - { - __VTPRINTENTER( "LocVid.LayoutCH.Complete" ) - TRAPD( error, CompleteL( aError ) ); - __VTPRINTEXITR( "LocVid.LayoutCH.Complete %d", error ) - return error; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::CompleteL -// Resets internal state and completes asynchronous operation. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TVtEngLayoutChangeHandler::CompleteL( const TInt aError ) - { - __VTPRINTENTER( "LocVid.LayoutCH.CompleteL" ) - iStored = KVtEngProviderUndefined; - iState = EIdle; - CompleteOperation( aError ); - __VTPRINTEXIT( "LocVid.LayoutCH.CompleteL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::CompleteOperation -// Completes asynchronous operation. -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::TVtEngLayoutChangeHandler::CompleteOperation( - const TInt aError ) - { - __VTPRINTENTER( "LocVid.LayoutCH.CompleteOperation" ) - iLocalVideo->CompleteOperation( aError ); - __VTPRINTEXIT( "LocVid.LayoutCH.CompleteOperation" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::ProviderError -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::TVtEngLayoutChangeHandler::ProviderError( TInt aError ) - { - TBool handled( EFalse ); - __VTPRINTENTER( "LocVid.LayoutCH.ProviderError" ) - if ( iState != EIdle && iState != ELayoutChangePending ) - { - handled = ETrue; - Complete( aError ); - } - __VTPRINTEXITR( "LocVid.LayoutCH.ProviderError %d", handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::ProviderReady -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::TVtEngLayoutChangeHandler::ProviderReady() - { - TBool handled( EFalse ); - __VTPRINTENTER( "LocVid.LayoutCH.ProviderReady" ) - switch ( iState ) - { - case ESwitchingCamera: - case EIdle: - break; - - case EInitializingCamera: - handled = ETrue; - iState = ESwitchingCamera; - TRAPD( error, iLocalVideo->SelectSourceL( iStored ) ); - if ( error ) - { - Complete( error ); - } - break; - - case ESwitchingBlank: - handled = ETrue; - break; - } - __VTPRINTEXITR( "LocVid.LayoutCH.ProviderReady %d", handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::TVtEngLayoutChangeHandler::ProviderSwitchDone -// ----------------------------------------------------------------------------- -// -TBool CVtEngLocalVideo::TVtEngLayoutChangeHandler::ProviderSwitchDone( - CVSDataProvider* aOldProvider ) - { - TBool handled( EFalse ); - __VTPRINTENTER( "LocVid.LayoutCH.ProviderSwitchDone" ) - switch ( iState ) - { - case EIdle: - // nothing to do - break; - - case ESwitchingBlank: - { - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.ProviderSwitchDone ESwitchingBlank" ) - handled = ETrue; - iState = EInitializingCamera; - TProviderItem* providerItem; - const TInt result( - iLocalVideo->GetProviderByInstance( aOldProvider, providerItem ) ); - if ( result != KErrNotFound ) - { - iLocalVideo->DeleteProvider( *providerItem ); - iLocalVideo->iCameraPref->SetProvider( NULL, - *iLocalVideo->iActiveProvider ); - - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.ProviderSwitchDone initializing provider" ) - - TRAPD( error, iLocalVideo->InitializeProviderL( *providerItem ) ); - - if ( error ) - { - __VTPRINT2( DEBUG_MEDIA, - "LocVid.LayoutCH.ProviderSwitchDone ERROR %d in initialize", - error ) - Complete( error ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.ProviderSwitchDone provider NOT found" ) - Complete( result ); - } - } - break; - - case EInitializingCamera: - handled = ETrue; - break; - - case ESwitchingCamera: - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.ProviderSwitchDone ESwitchingCamera" ) - TRAP_IGNORE( iLocalVideo->StartViewFinderIfWasStartedL() ); - //Re-Set provider to camera preference. Otherwise, after layout change, the provider in camera preference will be invalid - iLocalVideo->iCameraPref->SetProvider( iLocalVideo->iActiveProvider->iProvider, - *iLocalVideo->iActiveProvider ); - handled = ETrue; - __VTPRINT( DEBUG_MEDIA, - "LocVid.LayoutCH.ProviderSwitchDone reinit done" ) - Complete( KErrNone ); - break; - } - __VTPRINTEXITR( "LocVid.LayoutCH.ProviderSwitchDone %d", handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CreateCameraPreferencesL -// ----------------------------------------------------------------------------- -// -CVtEngCameraPreferences* CVtEngLocalVideo::CreateCameraPreferencesL() - { - __VTPRINTENTER( "LocVid.CreateCameraPreferencesL" ) - iCameraPref = CVtEngCameraPreferences::NewL(); - - // Check if provider exist and set it - // as provider to camera preferences - if ( iActiveProvider ) - { - __VTPRINT( DEBUG_MEDIA, - "LocVideo.CreateCameraPreferencesL SetProvider" ) - iCameraPref->SetProvider( iActiveProvider->iProvider, - *iActiveProvider ); - } - - __VTPRINTEXIT( "LocVid.CreateCameraPreferencesL" ) - return iCameraPref; - } - -// ----------------------------------------------------------------------------- -// CVtEngLocalVideo::CancelInitializeShareImage -// ----------------------------------------------------------------------------- -// -void CVtEngLocalVideo::CancelInitializeShareImage() - { - __VTPRINTENTER( "CVtEngLocalVideo.CancelInitializeShareImage"); - iShareImage->CancelInitialize(); - __VTPRINTEXIT( "CVtEngLocalVideo.CancelInitializeShareImage"); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngMediaHandler.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngMediaHandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4580 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of video session interface. -* -*/ - - -// INCLUDE FILES -#include "CVtEngMediaHandler.h" -#include "CVtEngLocalVideo.h" -#include "CVtEngRemoteVideo.h" -#include "MVtEngFrameObserver.h" -#include "CVtEngStateManager.h" -#include "CVtEngOperation.h" -#include "TVtEngRendering.h" -#include "TVtEngRenderingDSA.h" -#include "TVtEngRenderingDP.h" -#include "TVtEngRenderingNGA.h" -#include "VtEngUtils.h" -#include "CVtEngInitializer.h" -#include "CVtEngEventManager.h" -#include "CVtEngSettings.h" -#include "CVtEngHandlerContainer.h" -#include "MVtEngDtmfHandler.h" -#include "cvtengmdtrcommandsender.h" -#include "VtEngPanic.h" -#include -#include -#include -#include -#include -#include // BigEndian - -#include -#include "cvtengrecord2file.h" - -// MACROS -#ifdef VTDEBUG -// In debug mode sinks and sources are not necessarily added. -#define ADD_VIDEO_SINK { \ - if ( DEBUG_CFG_NO_VIDEO_SINK == 0 ) { AddVideoSink(); } } -#define ADD_VIDEO_SOURCE { \ - if ( DEBUG_CFG_NO_VIDEO_SOURCE == 0 ) { AddVideoSource(); } } -#define ADD_AUDIO_SOURCE \ - { if ( DEBUG_CFG_NO_AUDIO_SOURCE == 0 ) { AddAudioSource(); } } -#define ADD_AUDIO_SINK \ - { if ( DEBUG_CFG_NO_AUDIO_SINK == 0 ) { AddAudioSink(); } } -#else -// In release mode they are added. -#define ADD_VIDEO_SINK AddVideoSink(); -#define ADD_VIDEO_SOURCE AddVideoSource(); -#define ADD_AUDIO_SOURCE AddAudioSource(); -#define ADD_AUDIO_SINK AddAudioSink(); -#endif // VTDEBUG - -// CONSTANTS -const TInt KVtEngOperationArraySize = 2; -// System version string buffer length. -const TInt KVtEngSwVersionTextLength = KSysUtilVersionTextLength; -// Country code for version information. -const TUint8 KVtEngCountryCodeForProto = 60; -// Extension code for version information (unknown). -const TUint8 KVtEngExtensionForProto = 0; -// Manufacturer code for version information (unknown). -const TUint32 KVtEngManufacturerForProto = 0; -// Timer to detect too long disconnect. -const TInt KVtEngDisconnectionTimer = 20000000; -// Space character constant. -const TText KVtEngCharacterSpace( ' ' ); -// New line (\n) character constant. -const TInt KVtEngCharacterEndLine( 10 ); - -// Multiplex delay in milliseconds -const TInt KVtEngMultiplexingDelay = 150; - -// TradeOff values -const TInt KVtEngTradeOffDetailMax = 9; -const TInt KVtEngTradeOffNormalMax = 19; -const TInt KVtEngTradeOffMotionMax = 31; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::CVtEngMediaHandler -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::CVtEngMediaHandler() : - iProtoState( MVtProtocolCommand::EIdle ), - iAudioCtrl(0), - iProtoMaxVolume(0), - iTempProviderInfo( CVtEngLocalVideo::KVtEngProviderNone ), - iH324Config( 0 ), - iH263Encoder( 0 ) - { - if ( CVtEngUtility::Settings().IsDefaultStillImageDefined() ) - { - iTempProviderInfo = CVtEngLocalVideo::KVtEngProviderDefaultStillImage; - } - - // Check is AMR-WB supported or not in platform. Adjusted using local - // variation. - if ( CVtEngUtility::Settings().CheckBits( KVTLVFlagEnableAMR_WB ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "MH.c++ AMR-WB set ON" ) - iSdkInitInfo.iAMRWBOn = ETrue; - } - else - { - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "MH.c++ AMR-WB set OFF" ) - iSdkInitInfo.iAMRWBOn = EFalse; - } - - if ( CVtEngUtility::Settings().CheckBits( KVTLVFlagDisableMpeg4 ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "MH.c++ Mpeg4 set OFF" ) - iSdkInitInfo.iDisableMpeg4 = ETrue; - } - else - { - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "MH.c++ Mpeg4 set ON" ) - iSdkInitInfo.iDisableMpeg4 = EFalse; - } - - __VTPRINT( DEBUG_MEDIA | DEBUG_CONSTRUCT, "MH.c++" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::ConstructL() - { - __VTPRINTENTER( "MH.ConstructL" ) - - iAsyncCallback = CIdle::NewL( CActive::EPriorityHigh ); - iPendingOps = new ( ELeave) - CArrayFixFlat( KVtEngOperationArraySize ); - iPendingOps->SetReserveL( KVtEngOperationArraySize ); - - __VTPRINT2( DEBUG_MEDIA, "DebugFlags used are %d", CVtLogger::Flags() ) - - iLocalVideo = CVtEngLocalVideo::NewL( *this ); - __VTPRINTEXIT( "MH.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler* CVtEngMediaHandler::NewL() - { - CVtEngMediaHandler* self = new( ELeave )CVtEngMediaHandler(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::~CVtEngMediaHandler -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::~CVtEngMediaHandler() - { - __VTPRINTENTER( "MH.~" ) - if ( iPendingOps ) - { - iPendingOps->Reset(); // Make sure this is empty - delete iPendingOps; - } - delete iPendingOp; - delete iTimer; - delete iAsyncCallback; - delete iLocalVideo; - delete iRemoteVideo; - __VTPRINTEXIT( "MH.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetMediaState -// Returns media state. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetMediaState( - const TMediaDirection aMediaDirection, - TInt& aActiveMedia ) const - { - __VTPRINT2( DEBUG_MEDIA, "MH.GetMediaState direction=%d", aMediaDirection ) - aActiveMedia = 0; - switch ( aMediaDirection ) - { - case EMediaOutgoing: - { - const TInt result( iLocalVideo->GetMediaState( aActiveMedia ) ); - if ( !IsFlag( EOutVideoChannelClosed ) ) - { - aActiveMedia |= EMediaVideoChannelOpen; - } - if ( !IsFlag( EOutAudioChannelClosed ) ) - { - aActiveMedia |= EMediaAudioChannelOpen; - } - return result; - } - - case EMediaIncoming: - aActiveMedia = iRemoteMediaState; - if ( ( iRemoteVideo && !iRemoteVideo->GetDsaState() ) ) - { - aActiveMedia &= (~EMediaVideo); - } - __VTPRINT2( DEBUG_MEDIA, "MH.remoteState=%d", aActiveMedia ) - return KErrNone; - - default: - break; - } - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::RenderingStarted -// Returns the state of video. -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::RenderingStarted( - const TMediaDirection aDirection ) const - { - __VTPRINT2( DEBUG_MEDIA, "MH.RS %d", aDirection ) - TBool started( EFalse ); - if( aDirection == EMediaOutgoing ) - { - started = iLocalVideo->ViewFinderStarted(); - } - else // EMediaIncoming - { - started = iRemoteVideo->GetDsaState(); - } - - __VTPRINT2( DEBUG_MEDIA, "MH.RS started %d", started ) - return started; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetSource -// Returns active source. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetSource( TMediaSource& aSource ) const - { - TInt err( KErrNotReady ); - if ( iLocalVideo ) - { - aSource = iLocalVideo->GetMediaSource(); - err = KErrNone; - } - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetSourcesCaps -// Returns source selection capabilities. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetSourcesCaps( TInt& aCaps ) const - { - TInt err( KErrNotReady ); - if ( iLocalVideo ) - { - err = iLocalVideo->GetSourceCaps( aCaps ); - } - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetCurrentCameraId -// Returns current camera. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetCurrentCameraId( TCameraId& aId ) const - { - __VTPRINT( DEBUG_GEN, "MH.GetCurrentCameraId") - aId = iSelectedCameraId; - TInt err( KErrNotReady ); - - TBool initialized( EFalse ); - err = iLocalVideo->IsInitialized( aId, initialized ); - if ( !initialized && ( err != KErrInUse ) ) - { - __VTPRINT2( DEBUG_GEN, "MH.GetCurrentCameraId err=%d", KErrNotReady ) - return KErrNotReady; - } - __VTPRINT2( DEBUG_GEN, "MH.GetCurrentCameraId initialized err=%d", err ) - return err;//Not initialized - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetCameraInfo -// Returns camera information. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetCameraInfo( - const TCameraId aId, TCameraInfo& aInfo ) const - { - return iLocalVideo->GetCameraInfo( aId, aInfo ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetCurrentZoomStep -// Returns current zooming. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetCurrentZoomStep( TInt& aCurrentStep ) - { - return iLocalVideo->GetDigitalZoomFactor( aCurrentStep ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetMaxZoomStep -// Returns maximum zooming. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetMaxZoomStep( TInt& aMaxZoomStep ) - { - return iLocalVideo->GetMaxDigitalZoomStep( aMaxZoomStep ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetMajorZoomStepCount -// Gets number of major zoom level leaps. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetMajorZoomStepCount( TInt& aCount ) - { - return iLocalVideo->GetMajorDigitalZoomStepCount( aCount ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetMajorZoomStep -// Maps major zoom leap step to corresponding step index. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::GetMajorZoomStep( TInt aIndex, TInt& aStep ) - { - if ( iLocalVideo ) - { - iLocalVideo->GetMajorDigitalZoomStep( aIndex, aStep ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetFreezeSupported -// Maps major zoom leap step to corresponding step index. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetFreezeSupported( TBool& aFreezeSupported) const - { - if ( iLocalVideo ) - { - return iLocalVideo->GetFreezeSupported( aFreezeSupported ); - } - return KErrNotReady; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetFreezeState -// Returns KErrNotReady if provider is not ready yet. If KErrNone is returned -// then aFrozen will be ETrue if the provider is frozen, EFalse otherwise. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetFreezeState( TBool& aFrozen ) const - { - if ( iLocalVideo ) - { - aFrozen = iLocalVideo->IsFrozen(); - return KErrNone; - } - return KErrNotReady; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetDsaState -// Returns media state. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::GetDsaState( - const TMediaDirection aMediaDirection, - TBool& aActive ) const - { - if ( !iRemoteVideo ) - { - return KErrNotReady; - } - switch ( aMediaDirection ) - { - case EMediaOutgoing: - break; - case EMediaIncoming: - aActive = iRemoteVideo->GetDsaState(); - return KErrNone; - default: - break; - } - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::VideoCallConnected -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::VideoCallConnected () const - { - TBool connected = EFalse; - if ( MVtProtocolCommand::EConnected == iProtoState ) - { - connected = ETrue; - } - return connected; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetVideoQuality -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::GetVideoQuality( TVideoQuality& aVideoQuality ) const - { - __VTPRINTENTER( "MH.GetVideoQuality" ) - aVideoQuality = iVideoQuality.VideoQuality(); - __VTPRINTEXIT( "MH.GetVideoQuality" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetObjectSharingState -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::GetObjectSharingState( - TShareObjectState& aObjectSharingState ) const - { - __VTPRINTENTER( "MH.GetObjectSharingState" ) - if( iProtoState == MVtProtocolCommand::EConnected ) - { - iLocalVideo->GetObjectSharingState( aObjectSharingState ); - } - else - { - aObjectSharingState = ENotAbleToShare; - } - __VTPRINTEXIT( "MH.GetObjectSharingState" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetCameraOrientations -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::GetCameraOrientations( - TCameraOrientation& aPrimaryCameraOrientation, - TCameraOrientation& aSecondaryCameraOrientation ) const - { - __VTPRINTENTER( "MH.GetCameraOrientations" ) - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.GetCameraOrientations( aPrimaryCameraOrientation, - aSecondaryCameraOrientation ); - __VTPRINTEXIT( "MH.GetCameraOrientations" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::RequestLastRemoteFrame -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::RequestLastRemoteFrame( ) - { - __VTPRINTENTER( "MH.RequestLastRemoteFrame" ) - if( iRemoteVideo ) - iRemoteVideo->RequestLastFrame(); - __VTPRINTEXIT( "MH.RequestLastRemoteFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ValidateCommand -// Checks if command is valid in current proto state. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::ValidateCommand( const TVtEngCommandId aCommand ) const - { - __VTPRINTENTER( "MH.ValidateCommand" ) - __VTPRINT2( DEBUG_MEDIA, "MH.ValidateCommand cmd=%d", aCommand ) - TInt okToPerform( KErrNotReady ); - if ( iInitialized ) - { - switch ( aCommand ) - { - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - // mute/unmute not possible if audio channel closed. - if ( IsFlag( EOutAudioChannelClosed ) ) { - break; - } - case KVtEngSetAudioRouting: - case KVtEngSetAudioVolume: - if ( ( iProtoState == MVtProtocolCommand::EConnected ) && !iPendingOp ) - { - okToPerform = KErrNone; - } - break; - case KVtEngIncreaseAudioVolume: - case KVtEngDecreaseAudioVolume: - - if ( iProtoState == MVtProtocolCommand::EConnected ) - { - okToPerform = KErrNone; - } - break; - case KVtEngRequestLastRemoteFrame: - if ( iProtoState == MVtProtocolCommand::EConnected ) - { - okToPerform = KErrNone; - } - break; - case KVtEngPrepareViewFinder: - case KVtEngPrepareViewFinderDSA: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareViewFinderDP: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - okToPerform = KErrNone; // can be done any time - break; - - case KVtEngHandleLayoutChange: - if ( iLocalVideo && iLocalVideo->ActiveProvider() != - CVtEngLocalVideo::KVtEngProviderNone && !iPendingOp ) - { - okToPerform = KErrNone; - } - break; - - case KVtEngSetZoomStep: - { - const CVtEngLocalVideo::TVtEngProviderType - activeProvider( iLocalVideo->ActiveProvider() ); - if ( iRequestStatus == NULL && - iVSInitState == EInitStateNone && - ( activeProvider == CVtEngLocalVideo::KVtEngProviderCam1 || - activeProvider == CVtEngLocalVideo::KVtEngProviderCam2 ) ) - { - okToPerform = KErrNone; - } - } - break; - case KVtEngSetSource: - if ( !IsFlag( EOutVideoChannelClosed ) ) - { - okToPerform = KErrNone; - } - // when EOutVideoChannelClosed is active - // don't allow source switch because it may require - // pause or resume on Protocol which would fail when video - // channel is closed. - // Note1: this is especially for the case when channel is - // closed after being already open. - // Note2: it must be possible to set source already before Protocol - // is connected (in MONA calls) so Proto state check is not done. - break; - case KVtEngPrepareCamera: - case KVtEngStartViewFinder: - case KVtEngFreeze: - case KVtEngUnfreeze: - if ( iRequestStatus == NULL && - // If initialising or change provider during reset then - // not allowed - iVSInitState == EInitStateNone && - // If terminate ongoing then not allowed - iProtoState != MVtProtocolCommand::EIdle ) - { - okToPerform = KErrNone; - if( aCommand == KVtEngFreeze ) - { - if( !iLocalVideo->OkToFreeze() ) - { - okToPerform = KErrNotReady; - } - } - else if( aCommand == KVtEngUnfreeze ) - { - if( !iLocalVideo->OkToUnfreeze() ) - { - okToPerform = KErrNotReady; - } - } - } - break; - case KVtEngSetVideoQuality: - if( IsPending( ESetVideoQuality ) != KErrNotFound ) - { - okToPerform = KErrNotReady; - } - else - { - if ( iRequestStatus == NULL && iProtoState != MVtProtocolCommand::EIdle ) - { - okToPerform = KErrNone; - } - } - break; - - case KVtEngInitializeShareImage: - { - TShareObjectState objectSharingState; - GetObjectSharingState( objectSharingState ); - if ( ( objectSharingState != ENotAbleToShare ) && - ( objectSharingState != EInitializingShareImage ) && - !IsFlag( EOutVideoChannelClosed ) ) - { - okToPerform = KErrNone; - } - } - break; - - case KVtEngStartShareImage: - { - TShareObjectState objectSharingState; - GetObjectSharingState( objectSharingState ); - if( objectSharingState != ENotAbleToShare ) - { - okToPerform = KErrNone; - } - } - break; - - case KVtEngStopShareImage: - { - TShareObjectState objectSharingState; - GetObjectSharingState( objectSharingState ); - if ( ( objectSharingState == ESharingImage ) && - !IsFlag( EOutVideoChannelClosed ) ) - { - okToPerform = KErrNone; - } - } - break; - - case KVtEngTerminateSession: - if ( iProtoState == MVtProtocolCommand::EConnected || - iProtoState == MVtProtocolCommand::EConnecting ) - { - okToPerform = KErrNone; - } - break; - - default: - okToPerform= KErrNotSupported; - break; - } - } - __VTPRINT2( DEBUG_MEDIA, "MH.ValidateCommand okToPerform=%d", okToPerform ) - __VTPRINTEXIT( "MH.ValidateCommand" ) - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::IsVideoChannelClosed -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::IsVideoChannelClosed() const - { - __VTPRINTENTER( "MH.IsVideoChannelClosed" ) - const TBool result( IsFlag( EOutVideoChannelClosed ) ); - __VTPRINTEXITR( "MH.IsVideoChannelClosed %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleL -// Handles a request. -// -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleL( CVtEngOperation& aOperation ) - { - __VTPRINTENTER( "MH.HandleL" ) - - const TVtEngCommandId id( aOperation.Command() ); - if ( !iInitialized ) - { - __VTPRINT( DEBUG_MEDIA, "MH.Handle not ready" ) - User::Leave( KErrNotReady ); - } - __VTPRINT2( DEBUG_MEDIA, "MH.Handle cmdId=%d", id ) - switch ( id ) - { - case KVtEngSetUIForeground: - TBool foregroundValue; - TVtEngOpParamUtil::Set( foregroundValue, aOperation ); - if( iLocalVideo ) - { - iLocalVideo->SetUIForeground( foregroundValue ); - } - if( iRemoteVideo ) - { - iRemoteVideo->SetUIForegroundL( foregroundValue ); - } - break; - - case KVtEngSetAudioVolume: - { - __VTPRINT( DEBUG_MEDIA, "MH.Handle.Vol" ) - MVtEngAudio::TVtEngOutputVolume volSetting; - TVtEngOpParamUtil::Set( - volSetting, aOperation ); - - // Store volume. - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.SetVolume( - volSetting.iHandsetVolume, - volSetting.iHandsfreeVolume, - ETrue ); - settings.SetVolume( - volSetting.iHandsetVolume, - volSetting.iHandsfreeVolume, - EFalse ); - - // Update volume. - iPendingVolumeOp = &aOperation; - AssignPendingOp( aOperation ); - UpdateVolume(); - - if ( IsPending( ESetAudioVolume ) == KErrNotFound ) - { - // No volume operation ongoing. Need to complete operation by itself. - AsyncCompleteOp(); - } - } - break; - - case KVtEngIncreaseAudioVolume: - { - CVtEngAudioHandler& audioHandler( - static_cast< CVtEngAudioHandler& >( - CVtEngUtility::StateManager()->Handlers().Audio() ) ); - if ( audioHandler.IncreaseVolume() ) - { - UpdateVolume(); - } - } - break; - - case KVtEngDecreaseAudioVolume: - { - CVtEngAudioHandler& audioHandler( - static_cast< CVtEngAudioHandler& >( - CVtEngUtility::StateManager()->Handlers().Audio() ) ); - if ( audioHandler.DecreaseVolume() ) - { - UpdateVolume(); - } - } - break; - - case KVtEngMuteOutgoingAudio: - { - // No Local video if not on target -#if !defined( __WINS__ ) - AddOperation( EMuteAudio, - iSessionCommand->PauseAudioL( *iLocalVideo->AudioSource()) ); -#endif // !WINS - AssignPendingOp( aOperation ); - } - break; - case KVtEngUnmuteOutgoingAudio: - { - // No Local video if not on target -#if !defined( __WINS__ ) - AddOperation ( EUnmuteAudio, - iSessionCommand->ResumeAudioL( *iLocalVideo->AudioSource() ) ); -#endif // !WINS - AssignPendingOp( aOperation ); - } - break; - case KVtEngPrepareViewFinder: - { - const TPckgC& pckg = - static_cast< const TPckgC& > - ( *aOperation.Parameters() ); - const TVtEngRenderingOptions& options = pckg(); - iLocalVideo->SetViewFinderParameters( options ); - } - break; - case KVtEngPrepareRemoteRenderNGA: - { - const TPckgC& pckg = - static_cast< const TPckgC& > - ( *aOperation.Parameters() ); - const TVtEngRenderingOptionsNGA& options = pckg(); - iRemoteVideo->SetRenderingParametersL( options ); - } - break; - case KVtEngPrepareViewFinderDSA: - case KVtEngPrepareRemoteRenderDSA: - { - const TPckgC& pckg = - static_cast< const TPckgC& > - ( *aOperation.Parameters() ); - const TVtEngRenderingOptionsDSA& options = pckg(); - if ( id == KVtEngPrepareViewFinderDSA ) - { - iLocalVideo->SetViewFinderParameters( options ); - } - else if ( iRemoteVideo ) - { - iRemoteVideo->SetRenderingParametersL( options ); - } - } - break; - - case KVtEngPrepareViewFinderDP: - case KVtEngPrepareRemoteRenderDP: - { - const TPckgC& pckg = - static_cast< const TPckgC& > - ( *aOperation.Parameters() ); - const TVtEngRenderingOptionsDP& options = pckg(); - if ( id == KVtEngPrepareViewFinderDP ) - { - iLocalVideo->SetViewFinderParameters( options ); - } - else if ( iRemoteVideo ) - { - iRemoteVideo->SetRenderingParametersL( options ); - } - } - break; - - case KVtEngHandleLayoutChange: - iLocalVideo->HandleLayoutChangeL(); - AssignPendingOp( aOperation ); - break; - - case KVtEngSetSource: - { - __VTPRINT( DEBUG_MEDIA, "MH.set source" ) - MVtEngMedia::TMediaSource source; - TVtEngOpParamUtil::Set( source, - aOperation ); - - iLocalVideo->InitializeOnly( EFalse ); - TOperation startedOp( ENone ); - switch ( source ) - { - case EMediaCamera: - __VTPRINT( DEBUG_MEDIA, "EMediaCamera" ) - iTempProviderInfo = - ( iSelectedCameraId == ESecondaryCamera ) ? - CVtEngLocalVideo::KVtEngProviderCam2 : - CVtEngLocalVideo::KVtEngProviderCam1; - - SetFlag( EProtoContVideoBlankProv ); - startedOp = EnableVideoL( ETrue ); - if ( startedOp == ENone ) - { - // Did nothing - ClearFlag( EProtoContVideoBlankProv ); - } - iLocalVideo->ResumeVideoSending(); - break; - case EMediaCameraPri: - __VTPRINT( DEBUG_MEDIA, "EMediaCameraPri" ) - iTempProviderInfo = CVtEngLocalVideo::KVtEngProviderCam1; - iSelectedCameraId = EPrimaryCamera; - ClearFlag( EProtoContVideoBlankProv ); - break; - case EMediaCameraSec: - __VTPRINT( DEBUG_MEDIA, "EMediaCameraSec" ) - iTempProviderInfo = CVtEngLocalVideo::KVtEngProviderCam2; - iSelectedCameraId = ESecondaryCamera; - ClearFlag( EProtoContVideoBlankProv ); - break; - case EMediaStillImage: - __VTPRINT( DEBUG_MEDIA, "EMediaStillImage" ) - iTempProviderInfo = CVtEngLocalVideo::KVtEngProviderImage; - SetFlag( EProtoContVideoBlankProv ); - startedOp = EnableVideoL( ETrue ); - if ( startedOp == ENone ) - { - // Did nothing - ClearFlag( EProtoContVideoBlankProv ); - } - break; - case EMediaNone: - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, "EMediaNone" ) - if ( CVtEngUtility::Settings(). - IsDefaultStillImageDefined() ) - { - iTempProviderInfo = - CVtEngLocalVideo::KVtEngProviderDefaultStillImage; - - SetFlag( EProtoContVideoBlankProv ); - startedOp = EnableVideoL( ETrue ); - if ( startedOp == ENone ) - { - // Did nothing - ClearFlag( EProtoContVideoBlankProv ); - } - } - else - { - iTempProviderInfo = - CVtEngLocalVideo::KVtEngProviderNone; - - ClearFlag( EProtoContVideoBlankProv ); - SetFlag( EProtoPauseVideoBlankProv ); - if ( !IsFlag( - EProtoVideoSourceAdded ) && iProtoState != MVtProtocolCommand::EConnected ) - { - // Set as not enabled video when no sources - __VTPRINT( DEBUG_MEDIA, "MH.set blanked - not ready" ) - EnableVideoL( EFalse ); - } - else - { - // we have "done" something - startedOp = EDisableVideo; - iLocalVideo->PauseVideoSending(); - } - } - break; - default: - __VTPRINT( DEBUG_MEDIA, "invalid source" ) - User::Leave( KErrArgument ); - } - TBool selectOngoing( EFalse ); - ClearFlag( ESourceUpdateNeeded ); - TInt err( KErrNone ); - - // Either pausing or switching between still and camera - if ( !IsFlag( EProtoContVideoBlankProv ) ) - { - TRAP( err, selectOngoing = - iLocalVideo->SelectSourceL( iTempProviderInfo ) ); - __VTPRINT3( DEBUG_MEDIA, " ongoing=%d, op=%d",selectOngoing, - startedOp ) - } - - if ( ( selectOngoing || IsFlag( EProtoContVideoBlankProv ) || - IsFlag( EProtoContVideoBlankInit ) ) && - startedOp != ENone && err == KErrNone ) - { - // Enabling/disabling video started. Set flag that operation - // should be completed only when both callback from Protocol and - // local video (switch done) are complete. - __VTPRINT( DEBUG_MEDIA, "MH.set source 2stage" ) - SetFlag( ETwoStageOperation ); - } - else - { - User::LeaveIfError( err ); - } - AssignPendingOp( aOperation ); - } - break; - case KVtEngPrepareCamera: - { - __VTPRINT( DEBUG_MEDIA, "MH.prepare cam" ) - MVtEngMedia::TPrepareCameraParams params; - if ( aOperation.Parameters() ) - { - TVtEngOpParamUtil< MVtEngMedia::TPrepareCameraParams > - ::Set( params, aOperation ); - } - else - { - params.iMediaSource = EMediaCamera; - params.iInitialize = ETrue; - } - CVtEngLocalVideo::TVtEngProviderType - type( CVtEngLocalVideo::KVtEngProviderCam1 ); - switch ( params.iMediaSource ) - { - case EMediaCamera: - type = ( iSelectedCameraId == ESecondaryCamera ) ? - CVtEngLocalVideo::KVtEngProviderCam2 : - CVtEngLocalVideo::KVtEngProviderCam1; - break; - case EMediaCameraPri: - iSelectedCameraId = EPrimaryCamera; - type = CVtEngLocalVideo::KVtEngProviderCam1; - break; - case EMediaCameraSec: - iSelectedCameraId = ESecondaryCamera; - type = CVtEngLocalVideo::KVtEngProviderCam2; - break; - default: - User::Leave( KErrArgument ); - break; - } - iLocalVideo->SetIsPrepareCameraCalled( ETrue ); - AssignPendingOp( aOperation ); - if ( params.iInitialize ) - { - __VTPRINT( DEBUG_MEDIA, "MH.prepare cam iInitialize TRUE" ) - iLocalVideo->InitializeOnly(); - ClearFlag( ESourceUpdateNeeded ); - iLocalVideo->SelectSourceL( type ); - } - else - { - __VTPRINT( DEBUG_MEDIA, - "MH.prepare cam iInitialize FALSE, complete with KErrNone" ) - AsyncCompleteOp( KErrNone ); - } - } - break; - - case KVtEngSetZoomStep: - { - TInt zoom( 0 ); - TVtEngOpParamUtil::Set( zoom, aOperation ); - iLocalVideo->SetDigitalZoomFactorL( zoom ); - } - break; - - case KVtEngFreeze: - iLocalVideo->FreezeL(); - break; - - case KVtEngUnfreeze: - iLocalVideo->UnfreezeL(); - AssignPendingOp( aOperation ); - break; - - case KVtEngStartViewFinder: - iLocalVideo->StartViewFinderL( ETrue ); - break; - case KVtEngStopViewFinder: - iLocalVideo->StopViewFinder( ETrue ); - break; - case KVtEngStartRenderRemote: - iRemoteVideo->StartVideoL(); - break; - case KVtEngStopRenderRemote: - iRemoteVideo->StopVideoRendering(); - break; - case KVtEngPauseRenderRemote: - iRemoteVideo->PauseVideoL(); - break; - case KVtEngRequestLastRemoteFrame: - RequestLastRemoteFrame(); - break; - case KVtEngTerminateSession: - AssignPendingOp( aOperation ); - break; - - // Set video quality - case KVtEngSetVideoQuality: - { - TVideoQuality videoQuality( EVideoQualityUndefined ); - TVtEngOpParamUtil< TVideoQuality >::Set( videoQuality, aOperation ); - SetPeerVideoQuality( videoQuality ); - } - break; - - // Initialize share - case KVtEngInitializeShareImage: - { - TShareObjectImageParameters parameters; - TVtEngOpParamUtil< TShareObjectImageParameters >::Set( - parameters, aOperation ); - TBool firstTime = EFalse; - iLocalVideo->InitializeShareImageL( parameters, firstTime ); - AssignPendingOp( aOperation ); - if ( firstTime ) - { - iVideoAction = IsFlag( EProtoVideoTrackPaused ) ? - EVideoActionEnable : EVideoActionNone; - } - } - break; - - // Start share - case KVtEngStartShareImage: - iLocalVideo->StartShareImageL(); - AssignPendingOp( aOperation ); - break; - - // Stop Image sharing - case KVtEngStopShareImage: - { - // If video sending needs to be paused when sharing is stopped - // then do it before doing the actual provider switch. It is - // done before hand to prevent dummy frame sending to receiving - // end (ie. black frame). - const TBool needsPause( iLocalVideo->ShareStoredSource() == - CVtEngLocalVideo::KVtEngProviderNone ); - if ( needsPause ) - { - // With this flag we prevent premature operation - // complete after the pause command has been executed. - iPauseNoCompleteOp = ETrue; - EnableVideoL( EFalse ); - } - // reset the action flag. - iVideoAction = EVideoActionNone; - iLocalVideo->StopShareImageL(); - AssignPendingOp( aOperation ); - } - break; - - default: - User::Leave( KErrNotSupported ); - break; - } - __VTPRINTEXIT( "MH.HandleL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleSessionCommandEventL -// Handles command completion in protocol engine. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleSessionCommandEventL( - const TVtCommandResponse& aResponse ) - { - __VTPRINTENTER( "MH.HandleSessionCommandEventL" ) - const TVtCommandType type( aResponse.iCmdType ); - if ( type == EVtCommandGetSDKInfo ) - { - // ignore completely - __VTPRINTEXIT( "MH.HandleSessionCommandEventL" ) - return; - } - const TInt protoCmdId( aResponse.iCmdId ); - const TInt protoResponse( aResponse.iCmdStatus ); - TInt event( KVtEngEventNone ); - __VTPRINT2( DEBUG_MEDIA, "MH.protoComC type=%d", type ) - __VTPRINT3( DEBUG_MEDIA, "MH.protoComC cmdId=%d,response=%d", protoCmdId, protoResponse ) - - CVtEngStateManager* states = CVtEngUtility::StateManager(); - switch ( type ) - { - case EVtCommandGetProtocolState: - break; - case EVtCommandInit://PVT_COMMAND_INIT -> ESetup - { - CVtEngUtility* utils = CVtEngUtility::EngineUtils(); - iSessionCommand = utils->Initializer().GetSessionCommand(); - iRemoteVideo = CVtEngRemoteVideo::NewL( *iSessionCommand, *states ); - iInitialized = ETrue; - iProtoState = MVtProtocolCommand::ESetup; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: ESetup" ) - states->Update(); - - // Get interfaces towards H324 and video encoder - QueryProtoInterfacesL(); - } - break; - case EVtCommandGetProtocolInterface: - { - __VTPRINT2( DEBUG_MEDIA, "MH.protoComC:IF response=%d", protoCmdId ) - if ( protoResponse == KErrNone && - ( iProtoState == MVtProtocolCommand::ESetup || - iProtoState == MVtProtocolCommand::EInitializing || // Allowed to query when initializing also - iProtoState == MVtProtocolCommand::EConnecting || - iProtoState == MVtProtocolCommand::EConnected ) ) - { - __ASSERT_DEBUG( - IsPending( EGet324CtrlInterface ) != KErrNotFound - || IsPending( EGetH263EncInterface ) != KErrNotFound, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - - //Check which interface. - if ( MatchResponseToPendingOps( - protoCmdId, EGet324CtrlInterface ) && iH324Config ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoComC:324 IF" ) - iH324Config->SetObserverL ( this ); - - // Create DTMF handler with H324 interface. - CVtEngUtility* utils = CVtEngUtility::EngineUtils(); - TRAP_IGNORE( utils->Initializer().CreateDtmfHandlerL( iH324Config ) ); - - // Set version to protocol -- cannot cause problem -#ifdef VTDEBUG - TRAPD( err, SetVersionInfoL() ); - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA, - "MH.protoComC:324 IF VersionInfo failed=%d", err ) - } -#else - TRAP_IGNORE( SetVersionInfoL() ); -#endif - // Set resolutions to Proto. - SetSupportedResolutions(); - - // Set Fast options - SetFastCsupOptions(); - - SetFlag( EProto324IFAcquired ); - RemoveOperation( protoCmdId ); - states->Update(); - } - else if ( MatchResponseToPendingOps( - protoCmdId, EGetH263EncInterface ) ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoComC:IF 263 created" ) - iH263Encoder->SetObserverL( this ); - RemoveOperation( protoCmdId ); - } - else - { - // Not supported interface. - __VTPRINT( DEBUG_MEDIA, "MH.protoComC:NOT requested" ) - } - } - else - { - // failed or not in appropriate state - __VTPRINT( DEBUG_MEDIA, "MH.protoComC:query IF fail/incorrect state" ) - RemoveOperation( protoCmdId ); - } - } - break; - - case EVtCommandResume: - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.protoComC Resume" ) - - __ASSERT_DEBUG( - IsPending( EUnmuteAudio ) != KErrNotFound || - IsPending( EEnableVideo ) != KErrNotFound || - IsPending( EEnableVideoInternal ) != KErrNotFound, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - - // Was command unmute audio? - const TBool audioEnabled( - MatchResponseToPendingOps( protoCmdId, EUnmuteAudio ) ); - - if ( protoResponse == KErrNone ) - { - if ( audioEnabled ) - { - iLocalVideo->UnMute(); - event = KVtEngAudioUnmuted; - } - else - { - iLocalVideo->ResumeVideoSending(); - } - } - - // Was command enable video? - const TBool videoEnabledByUser( - MatchResponseToPendingOps( protoCmdId, EEnableVideo ) ); - - RemoveOperation( protoCmdId ); - - if ( videoEnabledByUser && IsFlag( ETwoStageOperation ) ) - { - // Two-phase operation (resume + switch, resume completed) - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.video Resume 1st stage" ) - ClearFlag( ETwoStageOperation ); - ClearFlag( ESourceUpdateNeeded ); - iLocalVideo->SelectSourceL( iTempProviderInfo ); - iTempProviderInfo = CVtEngLocalVideo::KVtEngProviderNone; - } - else if ( videoEnabledByUser || audioEnabled ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.video Resume " ) - CompleteOp( protoResponse ); - } - - // Do send an intra message - if ( IsFlag( EProtoVideoTrackPaused ) ) - { - ClearFlag( EProtoVideoTrackPaused ); - if ( IsFlag( EProtoSendIntraFrame ) ) - { - RequestFrame(); - } - } - } - break; - case EVtCommandPause: // Audio or video disable - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.protoComC Pause" ) - __ASSERT_DEBUG( iRequestStatus || - // uninit ongoing, still possible - // to receive callback from protocol - ( IsPending( EMuteAudio ) != KErrNotFound || - IsPending( EDisableVideo ) != KErrNotFound ), - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - - TBool videoDisabled( EFalse ); - - // was command disable audio? - if ( MatchResponseToPendingOps( protoCmdId, EMuteAudio ) ) - { - iLocalVideo->Mute(); - event = KVtEngAudioMuted; - } - else - { - // was command disable video? - videoDisabled = MatchResponseToPendingOps( - protoCmdId, EDisableVideo ); - if ( videoDisabled ) - { - SetFlag( EProtoVideoTrackPaused ); - } - } - RemoveOperation( protoCmdId ); - if ( IsFlag( ETwoStageOperation ) && videoDisabled ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.video pause 1st stage" ) - // First event out of two that DisableVideo video - // is complete (waiting for event from local video). - - if ( !IsPending( EEnableVideo ) ) - { - ClearFlag( ETwoStageOperation ); - } - else - { - // Except if pause was not user originated, i.e - // pause done in the beginning because there is no - // still image to be sent in MT call and video is paused - // (user has not yet allowed video sending). - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.video paused, 2stage NOT CLEARED" ) - } - } - else - { - if ( !iPauseNoCompleteOp ) - { - CompleteOp( protoResponse ); - } - else - { - iPauseNoCompleteOp = EFalse; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.video paused due to share stop, clearing flag" ) - } - } - } - break; - case EVtCommandAddDataSink: - { - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSink"); - if ( protoResponse == KErrNone ) - { - __ASSERT_DEBUG( iRequestStatus || - // uninit ongoing, still possible - // to receive callback from pv2way - ( IsPending( EAddVideoSink ) != KErrNotFound || - IsPending( EAddAudioSink ) != KErrNotFound ), - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.data sink added" ) - - if ( MatchResponseToPendingOps( protoCmdId, EAddVideoSink ) - && ( iRemoteMediaState & EMediaVideoPreparing ) ) - { - // Video sink added - SetFlag( EProtoVideoSinkAdded ); - iRemoteMediaState &= ~EMediaVideoPreparing; - iRemoteMediaState |= EMediaVideo; - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSink for VIDEO OK."); - } - else if ( MatchResponseToPendingOps( protoCmdId, EAddAudioSink ) - && ( iRemoteMediaState & EMediaAudioPreparing ) ) - { - // Audio sink added - SetFlag( EProtoAudioSinkAdded ); - iRemoteMediaState &= ~EMediaAudioPreparing; - iRemoteMediaState |= EMediaAudio; - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSink for AUDIO OK."); - // DevSound created in Proto => temporary devSound needed - // for making audio routing work can be released now. - CVtEngStateManager* stateManager = - CVtEngUtility::StateManager(); - CVtEngAudioHandler& audioHandler = - static_cast< CVtEngAudioHandler& >( - stateManager->Handlers().Audio() ); - audioHandler.SetRoutingEnablerL( EFalse ); - RequestAudioControllerL(); - } - else - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.protoComC invalid" ) - Panic( EVtEngPanicMediaHandlerOpStateFailure ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSink FAILED"); - - if ( MatchResponseToPendingOps( protoCmdId, EAddVideoSink ) ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSink FAILED, INCOMING VIDEO"); - - iVideoIncomingLogicalChannel.iSameTypeClosingPending = EFalse; - if( iVideoIncomingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iVideoIncomingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding VIDEO, ADDing SINK" ) - AddVideoSink( iVideoIncomingLogicalChannel.iLogicalChannelId ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSink FAILED, INCOMING AUDIO"); - - iAudioIncomingLogicalChannel.iSameTypeClosingPending = EFalse; - if( iAudioIncomingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iAudioIncomingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding AUDIO, ADDing SINK" ) - AddAudioSink( iAudioIncomingLogicalChannel.iLogicalChannelId ); - } - } - } - RemoveOperation( protoCmdId ); - } - break; - case EVtCommandAddDataSource: - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.data source added" ) - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSource"); - if ( protoResponse == KErrNone && - ( iProtoState == MVtProtocolCommand::EConnected || iProtoState == MVtProtocolCommand::EConnecting || iProtoState == MVtProtocolCommand::ESetup ) ) - { - if ( MatchResponseToPendingOps( protoCmdId, EAddVideoSource ) ) - { - SetFlag( EProtoVideoSourceAdded ); - - // This flag was set if channel closed indication - // EVtIndicationClosingTrack was received from Proto. - ClearFlag( EOutVideoChannelClosed ); - - iLocalVideo->VideoChannelOpenedL(); - - CVtEngEventManager::NotifyEvent( - KVtEngMediaOutgoingVideoChannelStatusChanged ); - - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSource for VIDEO OK."); - - // Adjust to normal value after Connect has completed - // so MONA is over. - if( iProtoState == MVtProtocolCommand::EConnected ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: Adjusting I Frame Interval in " ) - __VTPRINT( DEBUG_MEDIA, "LCN: ADD_DATA_SOURCE for Video, Connect has completed earlier." ) - __VTPRINT( DEBUG_MEDIA, "LCN: Normal I-frame rate." ) - - - // Setting I-Frame interval to normal since MONA connections are over. - AddOperation( ESetIFrameInterval, - // I-Frame every 10 second. - iH263Encoder->SetIntraFrameInterval( 100 ) ); - } - else if( iProtoState == MVtProtocolCommand::EConnecting || iProtoState == MVtProtocolCommand::ESetup ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: Adjusting I Frame Interval in " ) - __VTPRINT( DEBUG_MEDIA, "LCN: ADD_DATA_SOURCE for Video, Proto state Connecting." ) - __VTPRINT( DEBUG_MEDIA, "LCN: High I-frame rate" ) - - // MONA negotiations ongoing, I-Frame invertal must be small - AddOperation( ESetIFrameInterval, - // 10 I-Frames every 1 second. - iH263Encoder->SetIntraFrameInterval( 10000 ) ); - } - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.data setting default videoquality" ) - - // Set default frame rate and send indication to peer - if ( !IsFlag( EVideoQualitySetByPeer ) ) - { - SetVideoQualityL( EVideoQualityNormal, EFalse ); - } - - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.data source added check flag" ) - if ( IsFlag( EProtoPauseVideoRequested ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.data source added pausing video" ) - EnableVideoL( EFalse ); - } - } - else if ( MatchResponseToPendingOps( - protoCmdId, EAddAudioSource ) ) - { - SetFlag( EProtoAudioSourceAdded ); - - // This flag was set if channel closed indication - // EVtIndicationClosingTrack was received from PV. - ClearFlag( EOutAudioChannelClosed ); - - CVtEngEventManager::NotifyEvent( - KVtEngMediaOutgoingAudioChannelStatusChanged ); - - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSource for AUDIO OK."); - } - } - - else - { - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSource FAILED"); - - if ( MatchResponseToPendingOps( protoCmdId, EAddVideoSource ) ) - { - __VTPRINT( DEBUG_MEDIA, "EVtCommandAddDataSource FAILED, OUTGOING VIDEO"); - - iVideoOutgoingLogicalChannel.iSameTypeClosingPending = EFalse; - if( iVideoOutgoingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iVideoOutgoingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding VIDEO, ADDing SOURCE" ) - AddVideoSource( iVideoOutgoingLogicalChannel.iLogicalChannelId ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA, "LCN: EVtCommandAddDataSource FAILED, OUTGOING AUDIO"); - - iAudioOutgoingLogicalChannel.iSameTypeClosingPending = EFalse; - if( iAudioOutgoingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iAudioOutgoingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding AUDIO, ADDing SOURCE" ) - AddAudioSource( iAudioOutgoingLogicalChannel.iLogicalChannelId ); - } - } - } - - if ( !RemoveOperation( protoCmdId ) ) - { - __ASSERT_DEBUG( iRequestStatus != NULL, - // uninit ongoing, still possible to receive - // callback from protocol - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - } - states->Update(); - break; - } - - case EVtCommandConnect: - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.Connect complete" ) - if ( protoResponse == KErrNone ) - { - __ASSERT_DEBUG( IsPending( EConnectProto ) != KErrNotFound, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - RemoveOperation( EConnectProto ); - iProtoState = MVtProtocolCommand::EConnected; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: EConnected" ) - states->Update(); - - // Adjust only if VideoSource adding has compled - if( IsPending( EAddVideoSource ) == KErrNotFound ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: Adjusting I FrameInterval " ) - __VTPRINT( DEBUG_MEDIA, "LCN: after Connect has completed" ) - __VTPRINT( DEBUG_MEDIA, "LCN: Normal I-frame interval." ) - - - // Setting I-Frame interval to normal since MONA connections are over. - AddOperation( ESetIFrameInterval, - // I-Frame every 10 second. - iH263Encoder->SetIntraFrameInterval( 100 ) ); - } - } - else - { - if ( iProtoState == MVtProtocolCommand::EConnecting ) { - // it is possible that we're here because call was hanged up - iProtoState = MVtProtocolCommand::ESetup; - } - RemoveOperation( EConnectProto ); - // connect may have failed due to disconnect request (possible only in debug env?) - if ( iPendingOp && - ( iPendingOp->Command() == KVtEngTerminateSession ) ) - { - __VTPRINT( DEBUG_MEDIA, - "complete KVtEngTerminateSession on connect failure" ) - CompleteOp( KErrNone ); - } - else - { - __VTPRINT( DEBUG_MEDIA, - "request fallback on connect failure" ) - // request fallback from telephony - CVtEngUtility* utils = CVtEngUtility::EngineUtils(); - utils->MediatorCommands().VoiceFallback(); - } - states->Update(); - } - } - break; - case EVtCommandRemoveDataSource: - case EVtCommandRemoveDataSink: - break; - case EVtCommandReset: - { - __ASSERT_DEBUG( IsPending( EDestructProtoPhaseReset ) != KErrNotFound, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - __VTPRINT( DEBUG_MEDIA, "MH.protoComC:RESET complete" ) - RemoveOperation( protoCmdId ); - if ( protoResponse == KErrNone ) - { - iProtoState = MVtProtocolCommand::EIdle; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: EIdle" ) - } - if ( iRequestStatus ) - { - // we're in uninitialization process - // do this even if reset failed! - iLocalVideo->StopViewFinder(); - UninitializeNextStep(); - } - states->Update(); - } - break; - case EVtCommandDeleteProtocolInterface: - { - - // Remove pending operation from list - RemoveOperation( protoCmdId ); - - // Proceed to disconnecting if inetrfaces are free'd - UninitializeNextStep(); - states->Update(); - - break; - } - case EVtCommandDisconnect: - { - __ASSERT_DEBUG( - IsPending( EDestructProtoPhaseDisconnect ) != KErrNotFound || - IsPending( ETerminateSession ) != KErrNotFound, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - __VTPRINT( DEBUG_MEDIA, "MH.protoComC:DISCONNECT complete" ) - if ( protoResponse == KErrNone ) - { - iProtoState = MVtProtocolCommand::ESetup; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: ESetup_disconnect" ) - } - - delete iTimer; - iTimer = NULL; - - RemoveOperation( protoCmdId ); - - // If disconnect was requested while connecting we - // have connect operation added. - RemoveOperation( EConnectProto ); - - if ( iRequestStatus ) - { - // continue uninitialization - UninitializeNextStep(); - } - else - { - // complete plain disconnect request from UI - CompleteOp( protoResponse ); - } - states->Update(); - } - break; - case EVtCommandCancelAllCommands: - { - __ASSERT_DEBUG( - IsPending( EUninitializeCancelAllProto ) != KErrNotFound, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - RemoveOperation( protoCmdId ); - - UninitializeNextStep(); - } - break; - default: - { - __VTPRINT( DEBUG_MEDIA, "MH.protoComC Unknown Proto reply" ) - } - break; - } - if ( event != KVtEngEventNone ) - { - CVtEngEventManager::NotifyEvent( event ); - } - __VTPRINTEXIT( "MH.HandleSessionCommandEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleSessionInformationalEventL -// Handles event from protocol engine. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleSessionInformationalEventL( - const TVtIndicationEvent& aEvent) - { - __VTPRINTENTER( "MH.InfoEvent" ) - const TInt type( aEvent.iEventType ); - __VTPRINT2( DEBUG_MEDIA, "MH.protoHIE type=%d", type ) - - TVtIndicationEvent& event = - const_cast(aEvent); - const TUint8* buffer = event.iLocalBuffer; - - if ( buffer || type == EVtIndicationDisconnect ) - { - TBool video( EFalse ); - TBool audio( EFalse ); - __VTPRINT( DEBUG_MEDIA, "MH.protoHIE inbound") - if ( type != EVtIndicationDisconnect && - type != EVtIndicationUserInputCapability ) - { - switch ( buffer[0] ) - { - case EVtAudio: - audio = ETrue; - break; - case EVtVideo: - video = ETrue; - break; - case EVtControl: - case EVtData: - case EVtMediaNone: - __VTPRINTEXIT( "MH.InfoEvent" ) - return; - - default: - break; - - } - } - - __VTPRINT( DEBUG_MEDIA, "MH.protoHIE acting according" ) - TInt event( KVtEngEventNone ); - switch ( type ) - { - case EVtIndicationIncomingTrack: - { - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE EVtIndicationIncomingTrack" ) - if ( video ) - { - TInt tempID = *((TInt*)(buffer+4)); - __VTPRINT2( DEBUG_MEDIA, "LCN: MH.protoHIE INCOMING VIDEO:%d", tempID ) - - if( !iVideoIncomingLogicalChannel.iSameTypeClosingPending ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE InTrack VIDEO, ADDing SINK" ) - AddVideoSink( tempID ); - } - else - { - // Store old value since ID will change when we get outgoing track indication - iVideoIncomingLogicalChannel.iLogicalChannelIdClosing = iVideoIncomingLogicalChannel.iLogicalChannelId; - iVideoIncomingLogicalChannel.iSameTypeChannelReadyToOpen = ETrue; - } - - // Store new LCN ID. - iVideoIncomingLogicalChannel.iLogicalChannelId = tempID; - } - else if ( audio ) - { - TInt tempID = *((TInt*)(buffer+4)); - __VTPRINT2( DEBUG_MEDIA, "LCN: MH.protoHIE INCOMING AUDIO:%d", tempID ) - - if( !iAudioIncomingLogicalChannel.iSameTypeClosingPending ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE InTrack AUDIO, ADDing SINK" ) - AddAudioSink( tempID ); - } - else - { - // Store old value since ID will change when we get outgoing track indication - iAudioIncomingLogicalChannel.iLogicalChannelIdClosing = iAudioIncomingLogicalChannel.iLogicalChannelId; - iAudioIncomingLogicalChannel.iSameTypeChannelReadyToOpen = ETrue; - } - - // Store new LCN ID. - iAudioIncomingLogicalChannel.iLogicalChannelId = tempID; - } - } - break; - - case EVtIndicationOutgoingTrack: - { - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE EVtIndicationOutgoingTrack" ) - if ( video ) - { - TInt tempID = *((TInt*)(buffer+4)); - __VTPRINT2( DEBUG_MEDIA, "LCN: MH.protoHIE OUTGOING VIDEO ID:%d", tempID ) - - if( !iVideoOutgoingLogicalChannel.iSameTypeClosingPending ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE OutTrack VIDEO, ADDing SOURCE" ) - AddVideoSource( tempID ); - } - else - { - // Store old value since ID will change when we get outgoing track indication - iVideoOutgoingLogicalChannel.iLogicalChannelIdClosing = iVideoOutgoingLogicalChannel.iLogicalChannelId; - iVideoOutgoingLogicalChannel.iSameTypeChannelReadyToOpen = ETrue; - } - - // Store new LCN ID. - iVideoOutgoingLogicalChannel.iLogicalChannelId = tempID; - } - else if ( audio ) - { - - TInt tempID = *((TInt*)(buffer+4)); - __VTPRINT2( DEBUG_MEDIA, "LCN: MH.protoHIE OUTGOING AUDIO:%d", tempID ) - - if( !iAudioOutgoingLogicalChannel.iSameTypeClosingPending ) - { - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE OutTrack AUDIO, ADDing SOURCE" ) - AddAudioSource( tempID ); - } - else - { - // Store old value since ID will change when we get outgoing track indication - iAudioOutgoingLogicalChannel.iLogicalChannelIdClosing = iAudioOutgoingLogicalChannel.iLogicalChannelId; - iAudioOutgoingLogicalChannel.iSameTypeChannelReadyToOpen = ETrue; - } - - // Store new LCN ID. - iAudioOutgoingLogicalChannel.iLogicalChannelId = tempID; - } - } - break; - - case EVtIndicationClosingTrack: - { - - TUint8 direction = buffer[0]; - TInt tempID = *((TInt*)(buffer+4)); - - __VTPRINT3( DEBUG_MEDIA, "LCN: MH.protoHIE PEVtIndicationClosingTrack ID:%d, dir:%d", tempID, direction ) - - if( direction == EVtIncoming ) - { - if( tempID == iVideoIncomingLogicalChannel.iLogicalChannelId ) - { - iVideoIncomingLogicalChannel.iSameTypeClosingPending = ETrue; - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSING INCOMING VIDEO" ) - } - else - { - iAudioIncomingLogicalChannel.iSameTypeClosingPending = ETrue; - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSING INCOMING AUDIO" ) - } - } - else - { - TInt uiEvent; - if( tempID == iVideoOutgoingLogicalChannel.iLogicalChannelId ) - { - SetFlag( EOutVideoChannelClosed ); - iVideoOutgoingLogicalChannel.iSameTypeClosingPending = ETrue; - uiEvent = KVtEngMediaOutgoingVideoChannelStatusChanged; - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSING OUTGOING VIDEO" ) - } - else - { - SetFlag( EOutAudioChannelClosed ); - iAudioOutgoingLogicalChannel.iSameTypeClosingPending = ETrue; - uiEvent = KVtEngMediaOutgoingAudioChannelStatusChanged; - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSING OUTGOING AUDIO" ) - } - CVtEngEventManager::NotifyEvent( uiEvent ); - } - } - break; - - case EVtIndicationCloseTrack: - { - - TInt tempID = *((TInt*)(buffer+4)); - - TUint8 direction = buffer[0]; - - __VTPRINT3( DEBUG_MEDIA, "LCN: MH.protoHIE EVtIndicationCloseTrack ID:%d, dir:%d", tempID, direction ) - - if( direction == EVtIncoming ) - { - if( iVideoIncomingLogicalChannel.iLogicalChannelId == tempID || - ( iVideoIncomingLogicalChannel.iSameTypeClosingPending && - tempID == iVideoIncomingLogicalChannel.iLogicalChannelIdClosing ) - ) - { - iVideoIncomingLogicalChannel.iSameTypeClosingPending = EFalse; - iRemoteMediaState &= ~EMediaVideo; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSE INCOMING VIDEO" ) - - if( iVideoIncomingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iVideoIncomingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding VIDEO, ADDing SINK" ) - AddVideoSink( iVideoIncomingLogicalChannel.iLogicalChannelId ); - } - } - else - { - iAudioIncomingLogicalChannel.iSameTypeClosingPending = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSE INCOMING AUDIO" ) - - if( iAudioIncomingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iAudioIncomingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding AUDIO, ADDing SINK" ) - AddAudioSink( iAudioIncomingLogicalChannel.iLogicalChannelId ); - } - } - } - else - { - if( iVideoOutgoingLogicalChannel.iLogicalChannelId == tempID || - ( iVideoOutgoingLogicalChannel.iSameTypeClosingPending && - tempID == iVideoOutgoingLogicalChannel.iLogicalChannelIdClosing ) - ) - { - iVideoOutgoingLogicalChannel.iSameTypeClosingPending = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSE OUTGOING VIDEO" ) - - if( iVideoOutgoingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iVideoOutgoingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding VIDEO, ADDing SOURCE" ) - AddVideoSource( iVideoOutgoingLogicalChannel.iLogicalChannelId ); - } - } - else - { - iAudioOutgoingLogicalChannel.iSameTypeClosingPending = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE CLOSE OUTGOING AUDIO" ) - - if( iAudioOutgoingLogicalChannel.iSameTypeChannelReadyToOpen ) - { - iAudioOutgoingLogicalChannel.iSameTypeChannelReadyToOpen = EFalse; - - __VTPRINT( DEBUG_MEDIA, "LCN: MH.protoHIE delayed adding AUDIO, ADDing SOURCE" ) - AddAudioSource( iAudioOutgoingLogicalChannel.iLogicalChannelId ); - } - } - } - } - break; - case EVtIndicationResumeTrack: - __VTPRINT2( DEBUG_MEDIA, "MH.protoHIE X is resumed %d", buffer[1] ) - if ( buffer[1] == EVtIncoming ) // Only for remote - { - if ( video ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoHIE video resumed" ) - event = KVtEngRemoteVideoResumed; - ClearFlag( EProtoVideoTrackPaused ); - } - else if ( audio ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoHIE audio resumed" ) - event = KVtEngRemoteAudioResumed; - ClearFlag( EProtoAudioTrackPaused ); - } - } - break; - case EVtIndicationPauseTrack: - __VTPRINT2( DEBUG_MEDIA, "MH.protoHIE X is paused %d", buffer[1] ) - if ( buffer[1] == EVtIncoming ) // Only for remote - { - if ( audio ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoHIE audio paused" ) - SetFlag( EProtoAudioTrackPaused ); - event = KVtEngRemoteAudioPaused; - } - else if ( video ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoHIE video paused" ) - SetFlag( EProtoVideoTrackPaused ); - event = KVtEngRemoteVideoPaused; - } - } - break; - case EVtIndicationDisconnect: - { - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, "MH.protoHIE PID" ) - - // Fix for disconnecting remote (bearer). Engine - // needs to send KVtEngRemoteDisconnect event to UI to notify - // UI that call can not be hangup! - CVtEngEventManager::NotifyEvent( KVtEngRemoteDisconnect ); - - delete iTimer; - iTimer = NULL; - CVtEngStateManager* states = CVtEngUtility::StateManager(); - iProtoState = MVtProtocolCommand::ESetup; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: ESetup_indi_disconnect" ) - states->Update(); - if ( iPendingOp && - ( iPendingOp->Command() == KVtEngTerminateSession || - iPendingOp->Command() == KVtEngResetEngine ) ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.protoHIE PID PO", iPendingOp->Command() ) - // Complete only KVtEngTerminateSession, if KVtEngResetEngine - // is pending complete it after uninitialisation is finalised. - if ( iPendingOp->Command() == KVtEngTerminateSession ) - { - CompleteOp( KErrNone ); - } - } - else - { - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, "MH.protoHIE PID RO") - UninitializeNextStep(); - } - } - break; - default: - break; - } - if ( KVtEngEventNone != event ) - { - CVtEngEventManager::NotifyEvent( event ); - } - } - __VTPRINTEXIT( "MH.InfoEvent" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleSessionErrorEventL -// Handles error event from protocol engine. -// ----------------------------------------------------------------------------- -// -#ifdef VTDEBUG -void CVtEngMediaHandler::HandleSessionErrorEventL( const TVtErrorEvent& aEvent ) -#else -void CVtEngMediaHandler:: - HandleSessionErrorEventL( const TVtErrorEvent& /* aEvent */ ) -#endif // VTDEBUG - { - // Must have an implementation. - __VTPRINT2( DEBUG_MEDIA, "MH.protoHEE,%d", aEvent.iEventType ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleSettingChangedL -// Handles still image setting change. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleSettingChangedL( - CVtEngSettings::TSettingId aId, - const TDesC& /*aValue*/ ) - { - __VTPRINTENTER( "MH.HandleSettingChangedL" ) - if ( aId == CVtEngSettings::ESelectVolume || - aId == CVtEngSettings::EHandsetVolume || - aId == CVtEngSettings::EHandsfreeVolume ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.volChgd %d", aId ) - UpdateVolume(); - - if ( aId == CVtEngSettings::EHandsetVolume || - aId == CVtEngSettings::EHandsfreeVolume ) - { - CVtEngEventManager::NotifyEvent( - KVtEngAudioOutputVolumeChanged ); - } - } - else if ( aId == CVtEngSettings::EStillImage || - aId == CVtEngSettings::EStillImagePath ) - { - __VTPRINT( DEBUG_MEDIA, "MH.stillChgd" ) - - TShareObjectState shareState; - GetObjectSharingState( shareState ); - if ( shareState == EInitializingShareImage || - shareState == ESharingImage ) - { - iLocalVideo->SettingsChanged(); - return; - } - - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = - settings.Config(); - - const CVtEngLocalVideo::TVtEngProviderType - activeProvider( iLocalVideo->ActiveProvider() ); - if ( config.iVideo.iImageIsValid ) - { - __VTPRINT( DEBUG_GEN, "MH.HSC valid" ) - EnableVideoL( ETrue ); - // if still image is not active we should only - // initialize it, not start after initialization. - const TBool initOnly( activeProvider == - CVtEngLocalVideo::KVtEngProviderCam1 || - activeProvider == CVtEngLocalVideo::KVtEngProviderCam2 || - activeProvider == - CVtEngLocalVideo::KVtEngProviderShareImage ); - iLocalVideo->InitializeOnlyEx( initOnly ); - TRAPD( err,iLocalVideo->SetStillImageL( !initOnly ) ); - if ( err == KErrNotReady ) - { - __VTPRINT( DEBUG_GEN, "MH.HSC waiting...") - // Another switch ongoing, wait until it is done. - } - } - else - { - __VTPRINT( DEBUG_GEN, "MH.HSC invalid" ) - __VTPRINT2( DEBUG_MEDIA, "MH.HSC provider=", activeProvider ) - if ( CVtEngUtility::Settings().IsDefaultStillImageDefined() ) - { - __VTPRINT( DEBUG_MEDIA, "MH.SetDefaultStillImageL" ) - if ( activeProvider == CVtEngLocalVideo::KVtEngProviderImage ) - { - iLocalVideo->SetDefaultStillImageL(); - } - } - else - { - if( activeProvider != - CVtEngLocalVideo::KVtEngProviderCam1 && - activeProvider != CVtEngLocalVideo::KVtEngProviderCam2 ) - { - EnableVideoL( EFalse ); - } - __VTPRINT( DEBUG_MEDIA, "MH.tStillImageL" ) - iLocalVideo->SetStillImageL( ETrue ); - } - - } - } - else - { - // Do nothing, but satisfy lint. - __VTPRINT2( DEBUG_MEDIA, "MH.HSC not handled=%d", aId ) - } - __VTPRINTEXIT( "MH.HSC" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::InitializeL -// Initializes settings listeners. -// Sets still image and initializes default provider. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::InitializeL( TRequestStatus& aStatus ) - { - __VTPRINTENTER( "MH.InitializeL" ) - // configure still image - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.NotifyChangeL( CVtEngSettings::EStillImage, *this ); - settings.NotifyChangeL( CVtEngSettings::EStillImagePath, *this ); - settings.NotifyChangeL( CVtEngSettings::ESelectVolume, *this ); - settings.NotifyChangeL( CVtEngSettings::EHandsetVolume, *this ); - settings.NotifyChangeL( CVtEngSettings::EHandsfreeVolume, *this ); - - const CVtEngSettings::TVtEngVideoCallConfig& config = settings.Config(); - TInt err( KErrNotFound ); - if ( config.iVideo.iImageIsValid ) - { - // first step initialize still, when that is complete, initialize blank - TRAP( err, iLocalVideo->SetStillImageL( ETrue ) ); - if ( err == KErrNone ) - { - iVSInitState = EStateInitStillImage; - iRequestStatus = &aStatus; - } - } - if ( err != KErrNone ) - { - // Still provider init failed -> initialize blank - InitializeProviderL( aStatus ); - } - __VTPRINTEXIT( "MH.InitializeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::CancelInitialize -// Sets initialization state as cancelled. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::CancelInitialize() - { - __VTPRINTENTER( "MH.CancelInitialize" ) - iVSInitState = EStateInitCanceled; - __VTPRINTEXIT( "MH.CancelInitialize" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::InitializeProviderL -// Initializes default blank provider. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::InitializeProviderL( TRequestStatus& aStatus ) - { - __VTPRINTENTER( "MH.InitializeProviderL" ) - iLocalVideo->InitializeL(); - iVSInitState = EStateInitProvider; - iRequestStatus = &aStatus; - __VTPRINTEXIT( "MH.InitializeProviderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::Uninitialize -// Frees all resources. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::Uninitialize( TRequestStatus& aStatus ) - { - __VTPRINTENTER( "MH.Uninitialize" ) - ClearFlag( ETwoStageOperation ); - ClearFlag( ESourceUpdateNeeded ); - iRequestStatus = &aStatus; - if ( iProtoState == MVtProtocolCommand::EDisconnecting ) - { - // Protocol is disconnecting if - // 1) bearer was lost (and videoteleng issued disconnect on protocol), or - // 2) protocol issued disconnect due unrecoverable error or disconnect - // request from remote terminal. - // And now UI requested 'reset engine' while performing disconnect. - // When disconnecting is complete check if iRequestStatus - // is not null AND iInitialized is ETrue. - // If so, Uninitialize has been called (UI requested reset). - - StopRendering(); - __VTPRINT( DEBUG_MEDIA, "MH.UnInit wait for disconnect to complete" ) - __VTPRINTEXIT( "MH.Uninitialize" ) - return; - } - iInitialized = EFalse; - UninitializeNextStep(); - __VTPRINTEXIT( "MH.Uninitialize" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::UninitializeNextStep -// Goes to next step in uninitialization -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::UninitializeNextStep( ) - { - __VTPRINTENTER( "MH.UninitializeNextStep" ) - StopRendering(); - - TOperation op( ENone ); - - // CancelAllProtoCommands is no op if nothing to cancel or already pending. - // However, then op is still assigned with EUninitializeCancelAllProto to - // indicate it is pending and we must wait for it to complete. - CancelAllProtoCommands( op ); - - if ( op == ENone ) // Cancellation is not pending - { - __VTPRINT2( DEBUG_MEDIA, "next step protostate=%d", iProtoState ) - switch ( iProtoState ) - { - case MVtProtocolCommand::EConnected: - case MVtProtocolCommand::EConnecting: - op = EDestructProtoPhaseDisconnect; - break; - case MVtProtocolCommand::ESetup: - // In EInitializing state operation is waited to complete. See - // CVtEngInitializer::ContinueOrRetry op==EReset and iStep==EInitProto - - if( iH324Config || iH263Encoder ) - { - // First remove interfaces, after completion perform reset - op = ERemove324CtrlInterface; - break; - } - - // If interfaces are already released or not even reserved, go to Reset. - op = EDestructProtoPhaseReset; - break; - case MVtProtocolCommand::EResetting: - // Reset ongoing, wait for it to complete - __VTPRINT( DEBUG_MEDIA, "MH.UnInit resetting" ) - break; - case MVtProtocolCommand::EIdle: - op = ERemove324CtrlInterface; - __VTPRINT( DEBUG_MEDIA, "MH.UnInit idling" ) - break; - default: - __VTPRINT( DEBUG_MEDIA, "MH.UnInit invalid state" ) - break; - } - if ( op != ENone ) - { - TRAPD( err, ContinueUninitializeL( op ) ); - if ( err != KErrNone ) - { - if ( iRequestStatus ) - { - User::RequestComplete( iRequestStatus, err ); - iRequestStatus = NULL; - } - else - { - // Infinite waiting for end state! - __VTPRINT( DEBUG_MEDIA, "MH. dead end!" ) - Panic( EVtEngPanicDisconnectTimerExpired ); - } - __VTPRINT2( DEBUG_MEDIA, "next step err=%d", err ) - } - } - } - __VTPRINTEXIT( "MH.UninitializeNextStep" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ContinueUninitializeL -// Completes uninitialization: -// does disconnecting, deletes members. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::ContinueUninitializeL( - const TOperation aOp ) - { - __VTPRINTENTER( "MH.ContinueUninitializeL" ) - __VTPRINT2( DEBUG_MEDIA, "MH.ContUn op=%d", aOp) - switch ( aOp ) - { - case EDestructProtoPhaseDisconnect: // causes DisconnectL on protocol - __VTPRINT2( DEBUG_MEDIA, "MH.ContUn EDestructProtoPhaseDisconnect iProtoState=%d", iProtoState ) - - // Disconnecting only allowed in Connecting and Connected state. - if( iProtoState == MVtProtocolCommand::EConnecting || iProtoState == MVtProtocolCommand::EConnected ) - { - DisconnectProtoL(); - if ( iProtoState == MVtProtocolCommand::EDisconnecting ) { - // started succefully disconnecting - break; - } - } - // fall through if state was not proper was disconnect - case EDestructProtoPhaseReset: // causes ResetL on protocol - - ResetProto2WayL(); - if ( iProtoState == MVtProtocolCommand::EResetting ) - { - break; - } - // fall through if state was not proper for reset - case ERemove324CtrlInterface: - { - __VTPRINT( DEBUG_MEDIA, "MH.ContUn ERemove324CtrlInterface" ) - const TBool extCmdPending( ExtensionCommandsPending() ); - if ( !extCmdPending && ( iH324Config || iH263Encoder ) ) - { // no pending extension commands, interfaces can be released - // this is no-op if already released - ReleaseProtoInterfacesL(); - break; - } - if( extCmdPending || - IsPending( ERemove324CtrlInterface ) != KErrNotFound || - IsPending( ERemoveH263EncInterface ) != KErrNotFound ) - { - // Interface releasing has not completed yet, need to wait - // until proceeding ahead. - break; - } - } - // fall through if interfaces are released - case EDestructSwitchBlank: - { - __VTPRINT( DEBUG_MEDIA, "MH.ContUn EDestructSwitchBlank" ) - // provider must be selected to something else that - // is not deleted - const CVtEngLocalVideo::TVtEngProviderType - activeProvider( iLocalVideo->ActiveProvider() ); - if ( activeProvider != CVtEngLocalVideo::KVtEngProviderNone ) - { - iLocalVideo->SelectSourceL( CVtEngLocalVideo::KVtEngProviderNone ); - iVSInitState = EStateWaitingProviderChangeForUninit; - break; - } - // blank provider already active so continue - iVSInitState = EInitStateNone; - } - // fall thru - case EDestructInternals: - __VTPRINT( DEBUG_MEDIA, "MH.ContUn EDestructInternals" ) - iLocalVideo->Reset(); - delete iRemoteVideo; - iRemoteVideo = NULL; - if ( iRequestStatus ) - { - User::RequestComplete( iRequestStatus, KErrNone ); - iRequestStatus = NULL; - } - break; - default: - // Should not happen - Panic( EVtEngPanicUnInitIncorrectOperation ); - break; - } - - __VTPRINTEXIT( "MH.ContinueUninitializeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::StopRendering -// Stops all rendering. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::StopRendering() - { - __VTPRINTENTER( "MH.StopRendering" ) - if ( iLocalVideo ) - { - iLocalVideo->StopViewFinder(); - } - if ( iRemoteVideo ) - { - iRemoteVideo->StopVideoRendering(); - } - __VTPRINTEXIT( "MH.StopRendering" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::UpdateVolume -// Updates volume values. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::UpdateVolume() - { - __VTPRINTENTER( "MH.UpdateVolume" ) - if ( iUpdateVolumeAllowed && IsPending( ESetAudioVolume ) == KErrNotFound ) - { - CVtEngSettings& settings = CVtEngUtility::Settings(); - - TInt volume( 0 ); - TInt err( settings.GetVolume( volume, - settings.CurrentVolume(), ETrue ) ); - if ( err != KErrNone ) - { - volume = settings.MinVolume(); - } - - SetVolume( volume ); - } - else - { - iUpdateVolumeRequired = ETrue; - } - __VTPRINTEXIT( "MH.UpdateVolume" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AutoEnableVideo -// Enables video when primary camera becomes available while blank provider -// is active (i.e. video is disabled). This should not be called in other -// occations. Difference to EnableVideoL is that callback doesn't try to -// complete pending request to UI (that usually is different request than this). -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AutoEnableVideo( TBool aEnable ) - { - __VTPRINTENTER( "MH.AutoEnableVideo" ) - __VTPRINT( DEBUG_MEDIA, "MH.AutoEnableVideo" ) - TOperation op( EDisableVideoInternal ); - if ( aEnable ) - { - op = EEnableVideoInternal; - } - TRAPD( err, EnableVideoL( aEnable, op ) ); - __VTPRINTEXITR( "MH.AutoEnableVideo %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::FinalizeUninitialization -// Deletes protocol. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::FinalizeUninitialization() - { - __VTPRINTENTER( "MH.FinalUninit" ) - if ( iSessionCommand ) - { - iAudioCtrl = NULL; - TInt err( KErrNone ); - - // Delete the config interface - TRAP( err, - { - if ( iSessionCommand ) - { - VTProtocolFactory::DeleteSessionCommand( iSessionCommand ); - iSessionCommand = NULL; - } - - // Trapped to log the possible error - __VTPRINT( DEBUG_MEDIA, "MH.Deleted Terminal" ) - } ); - __VTPRINT2( DEBUG_MEDIA, "MH.Deletion complete=%d", err ) - iSessionCommand = NULL; - iProtoStateFlags = 0; - iProtoState = MVtProtocolCommand::EIdle; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: EIdle uninit" ) - if ( iPendingOp && - iPendingOp->Command() == KVtEngTerminateSession ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.FinalUninit comp TerminateSession=%d", - iPendingOp->Command()) - CompleteOp( KErrNone ); - } - else if ( iPendingOp ) { - __VTPRINT2( DEBUG_MEDIA, "MH.FinalUninit comp =%d", - iPendingOp->Command() ) - delete iPendingOp; - } - iPendingOp = NULL; - } - iPendingOps->Reset(); - __VTPRINTEXIT( "MH.FinalUninit" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ResetProto2WayL -// Resets protocol engine. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::ResetProto2WayL() - { - __VTPRINTENTER( "MH.ResetProto2WayL" ) - __ASSERT_ALWAYS( iProtoState == MVtProtocolCommand::ESetup, - Panic( EVtEngPanicMediaHandlerOpStateFailure ) ); - - __VTPRINT( DEBUG_MEDIA, "MH. Calling ResetL on Proto" ) - iUpdateVolumeAllowed = EFalse; - TInt cmdId = iSessionCommand->ResetProtocolL(); - if ( cmdId > 0 ) - { - // Add the operation if ok - AddOperation( EDestructProtoPhaseReset, cmdId, EFalse ); - iProtoState = MVtProtocolCommand::EResetting; - } - else - { - __VTPRINT( DEBUG_MEDIA, - "MH.ResetProto2WayL waiting for cancel to complete" ) - } - __VTPRINTEXIT( "MH.ResetProto2WayL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetSelectedCameraId -// Called from Local video when camera has been selected. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetSelectedCameraId( - const TCameraId aId, - TBool aUpdateRequired ) - { - __VTPRINTENTER( "MH.SetSelectedCameraId" ) - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "MH.SetSelectedCameraId id=%d", aId ) - iSelectedCameraId = aId; - // Set flag that switch should be done later if - // engine has not reached proper state - // - but only if active provider is a camera. - if ( aUpdateRequired && iLocalVideo ) - // NULL if called inside CVtEngLocalVideo::ConstructL - { - const CVtEngLocalVideo::TVtEngProviderType - activeProvider( iLocalVideo->ActiveProvider() ); - - if ( activeProvider == CVtEngLocalVideo::KVtEngProviderCam1 || - activeProvider == CVtEngLocalVideo::KVtEngProviderCam2 ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH. ESourceUpdateNeeded flag set" ) - SetFlag( ESourceUpdateNeeded ); - } - } - __VTPRINTEXIT( "MH.SetSelectedCameraId" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleLocalVideoOperationCompleteL -// Asynchronous local video operation is completed in here. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleLocalVideoOperationCompleteL( - const TInt aResult ) - { - __VTPRINTENTER( "MH.LocVidOpComp" ) - __VTPRINT3( DEBUG_MEDIA, "MH.LocVidOpComp res=%d,intOps=%d", - aResult, iPendingOps->Count() ) - __VTPRINT2( DEBUG_MEDIA, "MH.LocVidOpComp state flags=%d", iProtoStateFlags ) - - // Check if video should be paused - if ( IsFlag( EProtoPauseVideoBlankProv ) ) - { - __VTPRINT( DEBUG_MEDIA, "MH.LocVidOpComp pause flagged" ) - if ( aResult == KErrNone ) - { - __VTPRINT( DEBUG_MEDIA, "MH.LocVidOpComp pausing" ) - EnableVideoL( EFalse ); - // Not ready yet, clear the two stages and complete in the end - if ( IsFlag( ETwoStageOperation ) && - IsFlag( EProtoContVideoBlankInit ) ) - { - __VTPRINT( DEBUG_MEDIA, "MH.LocVidOpComp 1 stage complete" ) - ClearFlag( ETwoStageOperation ); - ClearFlag( EProtoContVideoBlankInit ); - } - ClearFlag( EProtoPauseVideoBlankProv ); - } - } - - if ( iRequestStatus ) - { - if ( iVSInitState == EStateInitStillImage ) - - { // still image initialized, proceed to initializing blank provider - InitializeProviderL( *iRequestStatus ); - __VTPRINTEXIT( "MH.LocVidOpComp" ) - return; - } - else if ( iVSInitState == EStateInitProvider ) - { - __VTPRINT( DEBUG_MEDIA, "MH.LocVidOpComp reqComplete" ) - // Part of media handler initialization - User::RequestComplete( iRequestStatus, aResult ); - iRequestStatus = NULL; - iVSInitState = EInitStateNone; - __VTPRINTEXIT( "MH.LocVidOpComp" ) - return; - } - else if ( iVSInitState == EStateWaitingProviderChangeForUninit ) - { - iVSInitState = EInitStateNone; - iLocalVideo->StopViewFinder(); // ensure view finder is stopped - ContinueUninitializeL( EDestructInternals ); - __VTPRINTEXIT( "MH.LocVidOpComp" ) - return; - } - else if ( iVSInitState == EStateInitCanceled ) - { - // If the request status has been cancelled - // uninitialize VT - ContinueUninitializeL( EDestructSwitchBlank ); - } - } - - // Either complete the operation or remove 2 stage flag. - // If flag removed, the operation will be completed when - // the second stage finalizes. - if ( IsFlag( ETwoStageOperation ) ) - { - SetFlag( EProtoSendIntraFrame ); - ClearFlag( ETwoStageOperation ); - } - else - { - // Send a sync message, if video enabled. - if ( !IsFlag( EProtoVideoTrackPaused ) && - // and - iInitialized && - iProtoState == MVtProtocolCommand::EConnected && - iPendingOp && - iPendingOp->Command() == KVtEngSetSource ) - { - RequestFrame(); - } - // Complete operation only if it is related. We may have received - // KVtEngTerminateSession while prepare/set source is pending and - // cannot complete it! - if ( iPendingOp ) - { - switch( iPendingOp->Command() ) - { - case KVtEngHandleLayoutChange: - case KVtEngPrepareCamera: - case KVtEngSetSource: - case KVtEngUnfreeze: - CompleteOp( aResult ); - break; - - // Image sharing - case KVtEngInitializeShareImage: - __VTPRINT( DEBUG_MEDIA, - "MH.LocVidOpComp KVtEngInitializeShareImage" ) - if ( aResult != KErrNone ) - { - iLocalVideo->ShareError( aResult ); - } - CompleteOp( aResult ); - break; - - case KVtEngStartShareImage: - __VTPRINT( DEBUG_MEDIA, - "MH.LocVidOpComp KVtEngStartShareImage" ) - if ( aResult != KErrNone ) - { - iLocalVideo->ShareError( aResult ); - } - CompleteOp( aResult ); - if ( iVideoAction == EVideoActionEnable ) - { - if ( aResult == KErrNone ) - { - EnableVideoL( ETrue ); - iVideoAction = EVideoActionDisable; - } - else - { - iVideoAction = EVideoActionNone; - } - } - - break; - - case KVtEngStopShareImage: - __VTPRINT( DEBUG_MEDIA, - "MH.LocVidOpComp KVtEngStopShareImage" ) - if ( aResult != KErrNone ) - { - iLocalVideo->ShareError( aResult ); - } - CompleteOp( aResult ); - break; - - default: - break; - } - } - } - __VTPRINTEXIT( "MH.LocVidOpComp" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::Disconnect -// Starts Protocol disconnecting procedure. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::Disconnect() - { - UninitializeNextStep(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SdkInitInfo -// Returns Protocol sdk initialization information. -// ----------------------------------------------------------------------------- -// -TVtInitInfo& CVtEngMediaHandler::SdkInitInfo() - { - return iSdkInitInfo; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ProtoState -// Returns protocol state, maintained by VTEngine. -// Might be out of sync with actual Proto state. -// ----------------------------------------------------------------------------- -// -MVtProtocolCommand::TVtProtocolState CVtEngMediaHandler::ProtoState() - { - return iProtoState; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::Connect -// Sets up connection with remote end. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::Connect() - { - __VTPRINTENTER( "MH.Connect" ) - __VTPRINT( DEBUG_MEDIA, "MH.Connect" ) - TInt err( KErrNotReady ); - if ( ProtoState() == MVtProtocolCommand::ESetup && IsFlag( EProto324IFAcquired ) ) - { - TInt cmdId( 0 ); - __VTPRINT( DEBUG_MEDIA, "MH. Calling ConnectToProtocolL on Proto" ) - TRAP( err, cmdId = iSessionCommand->ConnectToProtocolL( ( ( CVtEngUtility::EngineUtils() )->Initializer() ).GetVtComms() ) ); - if ( err == KErrNone ) - { - const TInt res( AddOperation( EConnectProto, cmdId) ); - if ( res < KErrNone ) - { - err = res; - } - iProtoState = MVtProtocolCommand::EConnecting; - __VTPRINT( DEBUG_MEDIA, "MH.protoComC: EConnecting Connecting" ) - } - } - __VTPRINTEXITR( "MH.Connect err=%d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AddVideoSource -// Adds video source. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AddVideoSource( TUint aChannelId ) - { - __VTPRINTENTER( "MH.AddVideoSource" ) - - if( !MediaAddingValidity() ) - return KErrCancel; - - TInt cmdId( 0 ); - TRAPD( err, cmdId = iSessionCommand->AddVideoSourceL( - aChannelId, *iLocalVideo->Source() ) ); - if ( err == KErrNone ) - { - const TInt res( AddOperation( EAddVideoSource, cmdId ) ); - if ( res >= KErrNone ) - { - iRemoteMediaState |= EMediaVideoPreparing; - } - else - { - err = res; - } - } - if ( err != KErrNone ) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - __VTPRINTEXITR( "MH.AddVideoSource %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AddAudioSource -// Adds audio source. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AddAudioSource( TUint aChannelId ) - { - __VTPRINTENTER( "MH.AddAudioSource" ) - - if( !MediaAddingValidity() ) - return KErrCancel; - - TInt cmdId( 0 ); - TInt err( KErrNone ); - // Only for target compilations. -#if !defined( __WINS__ ) - err = iLocalVideo->CreateAudioSource(); - if ( err == KErrNone ) - { - TRAP( err, cmdId = iSessionCommand->AddAudioSourceL( - aChannelId, *iLocalVideo->AudioSource() ) ); - } -#endif // !__WINS__ -#if defined (__WINS__) - aChannelId = aChannelId; // Remove compilation warnings with CW. -#endif // __WINS__ - - if ( err == KErrNone ) - { - const TInt res( AddOperation( EAddAudioSource, cmdId ) ); - if ( res < KErrNone ) - { - err = res; - } - } - if ( err != KErrNone ) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - if ( IsFlag( ESourceUpdateNeeded ) ) - { - __VTPRINT( DEBUG_MEDIA, "MH.AddASource updateProvider" ) - ClearFlag( ESourceUpdateNeeded ); - // Generate event - iLocalVideo->vsProvidersChanged( - iSelectedCameraId == MVtEngMedia::EPrimaryCamera ); - } - __VTPRINTEXITR( "MH.AddAudioSource %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AddVideoSinkL -// Adds video sink. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AddVideoSink( TUint aChannelId ) - { - __VTPRINTENTER( "MH.AddVideoSink" ) - - if( !MediaAddingValidity() ) - return KErrCancel; - - TInt cmdId( 0 ); - TRAPD( err, cmdId = iRemoteVideo->AddVideoSinkL( aChannelId ) ); - if ( err == KErrNone ) - { - const TInt res( AddOperation( EAddVideoSink, cmdId ) ); - if ( res >= KErrNone ) - { - iRemoteMediaState |= EMediaVideoPreparing; - } - else - { - err = res; - } - } - if ( err != KErrNone ) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - __VTPRINTEXITR( "MH.AddVideoSink %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AddAudioSink -// Adds audio sink. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AddAudioSink( TUint aChannelId ) - { - __VTPRINTENTER( "MH.AddAudioSink" ) - - if( !MediaAddingValidity() ) - return KErrCancel; - - TInt cmdId( 0 ); - TRAPD( err, cmdId = iRemoteVideo->AddAudioSinkL( aChannelId ) ); - if ( err == KErrNone ) - { - const TInt res( AddOperation( EAddAudioSink, cmdId ) ); - if ( res >= KErrNone ) - { - iRemoteMediaState |= EMediaAudioPreparing; - } - else - { - err = res; - } - } - if ( err != KErrNone ) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - __VTPRINTEXITR( "MH.AddAudioSink %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::RemoveOperation -// Removes an operation from stored operations. -// ----------------------------------------------------------------------------- -// -template -TBool CVtEngMediaHandler::RemoveOperation( const T& aOp ) - { - TBool removed( EFalse ); - const TInt pos( IsPending( aOp ) ); - if ( pos != KErrNotFound ) - { - __VTPRINT3( DEBUG_MEDIA, "MH.RemoveOp removed index=%d TOperation=%d", - pos, ( *iPendingOps )[ pos ].iOp ) - iPendingOps->Delete( pos ); - removed = ETrue; - } - return removed; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AddOperation -// Adds operation to operations pending completion. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AddOperation( - const TOperation aOp, - TInt aCmdId, - const TBool aResetExisting ) - { - if ( aResetExisting ) - { - iPendingOps->Reset(); - } - TCmdOpPair opPair; - opPair.iOp = aOp; - opPair.iProtoCmdId = aCmdId; - // this should never leave because SetReserveL called in ConstructL - TRAPD( err, iPendingOps->AppendL( opPair ) ); - if ( err != KErrNone ) - { - CVtEngEventManager::NotifyEvent( KVtEngResourceMemAllocFailure ); - return err; - } - const TInt count( iPendingOps->Count() ); - __VTPRINT3( DEBUG_MEDIA, " MH.op added. op=%d,cmdId=%d", aOp, aCmdId ) - __VTPRINT2( DEBUG_MEDIA, " count=%d", count ) - return ( count - 1 ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::IsPending -// Checks if a command is set to be completed. -// Checking is done based on operation. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::IsPending( const TOperation aOp ) const - { - const TInt count( iPendingOps->Count() ); - for ( TInt i = 0; i < count ; i++ ) - { - if ( aOp == ( *iPendingOps )[ i ].iOp ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.IsPending VT Op index=%d", i ) - return i; - } - } - __VTPRINT( DEBUG_MEDIA, "MH.IsPending VT Op NOT FOUND" ) - return KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::IsPending -// Checks if a command is set to be completed. -// Checking is done based on command id. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::IsPending( const TInt aCmdId ) const - { - const TInt count( iPendingOps->Count() ); - for ( TInt i = 0; i < count ; i++ ) - { - if ( aCmdId == ( *iPendingOps )[ i ].iProtoCmdId ) - { - __VTPRINT3( DEBUG_MEDIA, "MH.IsPending ProtoCmdId=%d index=%d", - aCmdId, i ) - return i; - } - } - __VTPRINT( DEBUG_MEDIA, "MH.IsPending ProtoCmdId NOT FOUND" ) - return KErrNotFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::CompleteOp -// Asynchronous command completion. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::CompleteOp( const TInt aResult ) - { - CVtEngOperation* opToComplete = iPendingOp; - TInt err( KErrNotFound ); - if ( opToComplete ) - { - iPendingOp = NULL; - opToComplete->HandleOpComplete( aResult ); - err = KErrNone; - } - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AsyncCompleteOp -// Asynchronous command completion. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::AsyncCompleteOp( const TInt aResult ) - { - iAsyncCallback->Cancel(); - iAsyncCompleteOpResult = aResult; - iAsyncCallback->Start( TCallBack( DoCompleteOp, this ) ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::MatchResponseToPendingOps -// Checks if a response matches corresponding operation. -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::MatchResponseToPendingOps( - const TInt aProtoCmdId, - const TOperation aOperation, - TInt* aIndex ) - { - const TInt index( IsPending( aOperation ) ); - TBool entryFound( EFalse ); - if ( index != KErrNotFound ) - { - const TCmdOpPair opPair = ( *iPendingOps )[index]; - if ( opPair.iProtoCmdId == aProtoCmdId ) - { - entryFound = ETrue; - if ( aIndex ) - { - *aIndex = index; - } - } - } - __VTPRINT2( DEBUG_MEDIA, "MH.MatchRespToOp was found=%d", entryFound ) - return entryFound; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::StartDisconnectTimerL -// Starts the disconnect timer. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::StartDisconnectTimerL() - { - __VTPRINT( DEBUG_MEDIA, "MH. start disc.timer" ) - if ( iTimer == NULL ) - { - TCallBack cb( CVtEngMediaHandler::TimerCallback, NULL ); - iTimer = CPeriodic::NewL( 0 ); - iTimer->Start( KVtEngDisconnectionTimer, - KVtEngDisconnectionTimer, - cb ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::NextUninitStepCallbackL -// Proceeds to next uninitializatioin step asynchronously. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::NextUninitStepCallbackL() - { - __VTPRINTENTER( "MH.NextUninitStepCallbackL" ) - if ( !iNextStepCallback ) - { - // perform asap => high priority - TCallBack cb( CVtEngMediaHandler::UninitCallback, this ); - iNextStepCallback = new ( ELeave ) CAsyncCallBack( - cb, CActive::EPriorityHigh ); - iNextStepCallback->CallBack(); - } - __VTPRINTEXIT( "MH.NextUninitStepCallbackL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::UninitCallback -// Asynch callback method for uninitialization. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::UninitCallback( TAny* aAny ) - { - __VTPRINTENTER( "MH.UninitCallback" ) - CVtEngMediaHandler* handler = static_cast( aAny ); - delete handler->iNextStepCallback; - handler->iNextStepCallback = NULL; - handler->UninitializeNextStep(); - __VTPRINTEXIT( "MH.UninitCallback" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AssignPendingOp -// Assigns operation and completes pending if necessary. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::AssignPendingOp( - CVtEngOperation& aOperation, - TInt aReplaceError ) - { - TInt result = KErrNone; - if ( iPendingOp ) - { - if ( aReplaceError != KErrNone && - // if terminating don't allow other commands - iPendingOp->Command() != KVtEngTerminateSession ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.Assign op replace err=", aReplaceError ) - CompleteOp( aReplaceError ); - // indicate previous operation was "cancelled" (even though it is - // not really cancelled, we still get callback!) - result = KErrCancel; - } - else - { - // not allowed to assign new operation - result = KErrGeneral; - } - } - if ( result != KErrGeneral ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.AssignPendingOp=%d", aOperation.Command() ) - iPendingOp = &aOperation; - } - __VTPRINT2( DEBUG_MEDIA, "MH.AssignPendingOp.res=%d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::DoCompleteOp -// Implementation of command completion. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::DoCompleteOp( TAny* aAny ) - { - CVtEngMediaHandler* self = static_cast< CVtEngMediaHandler* >( aAny ); - self->CompleteOp( self->iAsyncCompleteOpResult ); - self->iAsyncCompleteOpResult = KErrNone; - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::GetPendingCommand -// -// ----------------------------------------------------------------------------- -// -TVtEngCommandId CVtEngMediaHandler::GetPendingCommand() - { - if ( iPendingOp ) - { - return iPendingOp->Command(); - } - return KVtEngCommandNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::AssertFlag -// Checks flag's validity. -// ----------------------------------------------------------------------------- -// -#ifdef _DEBUG -void CVtEngMediaHandler::AssertFlag( const TInt aFlag ) const -#else -void CVtEngMediaHandler::AssertFlag( const TInt /* aFlag */ ) const -#endif // _DEBUG - { - __ASSERT_DEBUG( - aFlag == EProtoAudioSourceAdded || - aFlag == EProtoVideoSourceAdded || - aFlag == EProtoAudioSinkAdded || - aFlag == EProtoVideoSinkAdded || - aFlag == EProtoAudioTrackPaused || - aFlag == EProtoVideoTrackPaused || - aFlag == ETwoStageOperation || - aFlag == EProtoPauseVideoRequested || - aFlag == EProtoPauseVideoBlankProv || - aFlag == EProtoContVideoBlankProv || - aFlag == EProtoContVideoBlankInit || - aFlag == ESourceUpdateNeeded || - aFlag == EProtoSendIntraFrame || - aFlag == EProto324IFAcquired || - aFlag == EProtoCancelProtoCmdsOk || - aFlag == EVideoQualitySetByPeer || - aFlag == EOutVideoChannelClosed || - aFlag == EOutAudioChannelClosed, - Panic( EVtEngPanicInvalidFlag ) ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::IsFlag -// Checks if a certain flag is set. -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::IsFlag( const TInt aFlag ) const - { - AssertFlag( aFlag ); - if ( iProtoStateFlags & aFlag ) - { - return ETrue; - } - else - { - return EFalse; - } - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetFlag -// Sets flag on. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetFlag( const TInt aFlag ) - { - AssertFlag( aFlag ); - iProtoStateFlags |= aFlag; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ClearFlag -// Removes a flag. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::ClearFlag( const TInt aFlag ) - { - AssertFlag( aFlag ); - iProtoStateFlags &= ~aFlag; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetVolume -// Sets volume values to Protocol. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::SetVolume( - const TInt aVolume, - CVtEngOperation* aOperation ) - { - __VTPRINTENTER( "MH.SetVolume" ) - TInt res( KErrNotFound ); - __VTPRINT2( DEBUG_MEDIA, " vol=%d", aVolume ) - if ( iAudioCtrl ) - { - TInt id( 0 ); - // Max volume cannot be zero. - TInt vol( ( CVtEngUtility::Settings().ValidVolume( aVolume ) ) * - ( iProtoMaxVolume / CVtEngUtility::Settings().MaxVolume() ) ); - __VTPRINT2( DEBUG_MEDIA, "CVtEngMediaHandler::SetVolumeL, vol=%d", vol ) - TRAP( res, id = iAudioCtrl->SetAudioVolumeL( vol ) ); - if ( res == KErrNone ) - { - AddOperation( ESetAudioVolume, id ); - if( aOperation ) - { - AssignPendingOp( *aOperation ); - } - } - } - __VTPRINTEXITR( "MH.SetVolume %d", res ) - return res; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::RequestAudioControllerL -// Requests controllers for audio output and input -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::RequestAudioControllerL() - { - __VTPRINTENTER( "MH.RequestAudioControllerL" ) - __VTPRINT( DEBUG_MEDIA, "MH.RequestAudioControllerL" ) - __ASSERT_ALWAYS(iSessionCommand, Panic( EVtEngPanicInvalidAudioPointer ) ); - - TInt id( 0 ); - iAudioCtrl = VTProtocolFactory::GetAudioConfigCommandL(iRemoteVideo->AudioSink()); - - if ( !iAudioCtrl ) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - __VTPRINTEXIT( "MH.RequestAudioControllerL Failed" ) - return EFalse; - } - iAudioCtrl->SetObserverL( this ); - - // Get the max value for Protocol volume - TRAPD ( res, id = iAudioCtrl->GetMaxAudioVolumeL( iProtoMaxVolume ) ) ; - __VTPRINT2( DEBUG_MEDIA, "MH.RequestAudioControllerL: err=%d",res ) - if ( res != KErrNone) - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - __VTPRINTEXIT( "MH.RequestAudioControllerL" ) - return EFalse; - } - - res = AddOperation( EGetAudioGetMaxVolume, id ); - if ( res < KErrNone ) // res is index - { - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - __VTPRINT2( DEBUG_MEDIA, "MH.RequestAudioControllerL::res=%d", res ) - } - __VTPRINTEXIT( "MH.RequestAudioControllerL" ) - return ETrue; - } - - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleSpatialTradeoffIndication -// -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleSpatialTradeoffIndication( - const TUint16 aLogicalChannelId, const TUint8 aTradeOff ) - { - __VTPRINTENTER( "MH.HandleSpatialTradeoffIndication" ) - __VTPRINT3( DEBUG_MEDIA, - "MH.HandleSpatialTradeoffIndication id=%d tradeOff=%d", - aLogicalChannelId, aTradeOff ) - ( void ) aLogicalChannelId; - iVideoQuality.UpdateVideoQuality( iVideoQuality.FromTradeOff( aTradeOff ) ); - __VTPRINTEXIT( "MH.HandleSpatialTradeoffIndication" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleSpatialTradeoffCommandL -// -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleSpatialTradeoffCommandL( - const TUint16, const TUint8 aTradeOff ) - { - __VTPRINTENTER( "MH.HandleSpatialTradeoffCommandL" ) - SetVideoQualityL( iVideoQuality.FromTradeOff( aTradeOff ), EFalse ); - __VTPRINTEXIT( "MH.HandleSpatialTradeoffCommandL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::EnableVideoL -// Enables/Disables video sending. -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::TOperation CVtEngMediaHandler::EnableVideoL( - const TBool aEnable, const TOperation aOp ) - { - __VTPRINTENTER( "MH.EnableVideoL" ) - __VTPRINT3( DEBUG_MEDIA | DEBUG_DETAIL, "MH.EnableV en=%d state=%d", - aEnable, iProtoState ) - TInt cmdId( 0 ); - TInt err( KErrNone ); - TOperation op( ENone ); - MVtEngMedia::TMediaSource currentSource; - GetSource( currentSource ); - - // Videosource is added and Protocol is in connected state. - if ( IsFlag( EProtoVideoSourceAdded ) && iSessionCommand ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "MH.EnableV source=%d", - currentSource ) - // Has an actual source been selected. - if ( ( currentSource == EMediaNone ) || ( currentSource == EMediaShare ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.EnaLocVideo blank" ) - if ( aEnable && IsPending( EEnableVideo) == KErrNotFound ) - { - ClearFlag( EProtoPauseVideoRequested ); - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH. Calling ResumeL on Protocol" ) - TRAP( err, cmdId = iSessionCommand->ResumeVideoL( *iLocalVideo->Source() ) ); - if ( err != KErrNone ) - { - // Log the error and leave, UI handles the rest - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.EnaLocVideo PauseL left=%d", err ) - __VTPRINTEXIT( "MH.EnableVideoL" ) - User::Leave( err ); - } - else - { - op = aOp; - AddOperation( aOp, cmdId ); - } - } - // Video to be paused. - else if( !aEnable && IsPending( EDisableVideo ) ) - { - op = DoPauseVideo(); - } - } - else // camera or still image - { - if ( !aEnable && IsPending( EDisableVideo ) ) - { - // Pause video - op = DoPauseVideo(); - } - } - } - else // Not connected and sources not added yet - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.enavideo not conn" ) - // If we are initializing, then this has to be executed - if ( IsFlag( EProtoContVideoBlankProv ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.enavideo blank cont" ) - ClearFlag( EProtoContVideoBlankProv ); - SetFlag( EProtoContVideoBlankInit ); - } - - if ( aEnable ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.EnableV clear pending" ) - // Ensure that video sending is enabled in data source. - iLocalVideo->ResumeVideoSending(); - ClearFlag( EProtoPauseVideoRequested ); - } - else - { - iLocalVideo->PauseVideoSending(); - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, "MH.EnableV set pending" ) - SetFlag( EProtoPauseVideoRequested ); - } - } - - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, "MH.EnableV=%d", err ) - __VTPRINTEXITR( "MH.EnableVideoL %d", op ) - return op; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::DoPauseVideo -// Does video pausing. -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::TOperation CVtEngMediaHandler::DoPauseVideo() - { - __VTPRINTENTER( "MH.DoPauseVideo" ) - TInt cmdId( 0 ); - TOperation op( ENone ); - __VTPRINT( DEBUG_MEDIA, "MH. Calling PauseL on Protocol" ) - TRAPD( err, cmdId = iSessionCommand->PauseVideoL( *iLocalVideo->Source() ) ); - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.DoPauseVideo PauseL left=%d", err ) - // Remove the 2 stage flag, since PauseL failed. - // Command should be completed. - if( IsFlag( ETwoStageOperation ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - " Disable 2 stage clearance" ) - ClearFlag( ETwoStageOperation ); - } - } - else - { - AddOperation( EDisableVideo, cmdId ); - op = EDisableVideo; - __VTPRINT( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.DisaLocVideo PauseL issued" ) - } - ClearFlag( EProtoPauseVideoRequested ); - __VTPRINTEXITR( "MH.DoPauseVideo %d", op ) - return op; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleAudioOutputControlCommandComplete -// Callback function for audio controller commands. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleAudioOutputControlCommandComplete(TInt aId, - TVtAudioOutputControlCommand aCmd, - TAny* /*aContextData*/, - TInt aStatus) - { - __VTPRINTENTER( "MH.HandleAudioOutputControlCommandComplete" ) - __VTPRINT2( DEBUG_MEDIA, "MH.AudioComC CMD=%d", aCmd ) - __VTPRINT2( DEBUG_MEDIA, "MH.AudioComC cmdId=%d", aId ) - __VTPRINT2( DEBUG_MEDIA, "MH.AudioComC stat=%d", aStatus ) - - switch ( aCmd ) - { - case EVtAudioOutputControlGetMaxVolume: - RemoveOperation( aId ); - InitializeVolume(); - break; - case EVtAudioOutputControlSetVolume: - __VTPRINT2( DEBUG_MEDIA, "MH.protoComC SetVolume=%d", - iUpdateVolumeRequired ) - - RemoveOperation( aId ); - - if ( iUpdateVolumeRequired ) - { - iUpdateVolumeRequired = EFalse; - UpdateVolume(); - } - - if ( IsPending( ESetAudioVolume ) == KErrNotFound && - iPendingOp == iPendingVolumeOp ) - { - iPendingVolumeOp = NULL; - CompleteOp( aStatus ); - } - break; - case EVtAudioOutputControlGetBalance: - case EVtAudioOutputControlSetBalance: - case EVtAudioOutputControlGetVolume: - default: - break; - } - __VTPRINTEXIT( "MH.HandleAudioOutputControlCommandComplete" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::InitializeVolume -// Sets the 'beginning' values for volume. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::InitializeVolume() - { - __VTPRINT2( DEBUG_MEDIA, "MH.InitializeVolume: max vol=%d", iProtoMaxVolume ) - iUpdateVolumeAllowed = ETrue; - UpdateVolume(); - if ( iLocalVideo ) - { - iLocalVideo->UnMute(); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::DisconnectProtoL -// Does the disconnecting of Protocol. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::DisconnectProtoL() - { - __VTPRINTENTER( "MH.DisconnectProtoL" ) - __VTPRINT2( DEBUG_MEDIA, "MH.DisconnectProto with Protocol state=%d", - iProtoState ) - TInt cmdId( 0 ); - // The two states that require disconnecting - if ( iProtoState == MVtProtocolCommand::EConnected || - iProtoState == MVtProtocolCommand::EConnecting ) - { - __VTPRINT( DEBUG_MEDIA, "MH. Calling DisconnectFromProtocolL on Protocol" ) - TRAPD( err, cmdId = iSessionCommand->DisconnectFromProtocolL() ); - if ( err == KErrNone ) - { - __VTPRINT( DEBUG_MEDIA, "MH.protoCom: Disconnecting" ) - AddOperation( EDestructProtoPhaseDisconnect, cmdId ); - iProtoState = MVtProtocolCommand::EDisconnecting; - StartDisconnectTimerL(); - } - else - { - // Canceling the disconnect to notify that it has failed - __VTPRINT2( DEBUG_MEDIA, "MH.DisconnectProto erronous=%d", err ) - cmdId = err; - } - } - else { - cmdId = KErrNotSupported; - } - __VTPRINTEXITR( "MH.DisconnectProtoL cmdId=%d", cmdId ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::CancelAllProtoCommands -// Cancels all commands pending for execution in Proto. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::CancelAllProtoCommands( TOperation &aOp ) - { - __VTPRINTENTER( "MH.CancelAllProtoCommands" ) - TInt err( KErrNotReady ); - aOp = ENone; - if ( IsPending( EUninitializeCancelAllProto ) != KErrNotFound ) - { - aOp = EUninitializeCancelAllProto; - // Indicate difference from started cancellation with error code. - err = KErrAlreadyExists; - } - else if ( iSessionCommand && iPendingOps && !IsFlag( EProtoCancelProtoCmdsOk ) ) - { - if ( iPendingOps->Count() ) - { - __VTPRINT( DEBUG_MEDIA, "MH. Calling CancelAllCommandsL on Proto" ) - TInt cmdId( 0 ); - TRAP( err, ( cmdId = iSessionCommand->CancelAllCommandsL() ) ); - __VTPRINT2( DEBUG_MEDIA | DEBUG_DETAIL, - "MH.CancelAllProtoCommands cmdId=%d", cmdId ) - if ( cmdId && err == KErrNone ) - { - aOp = EUninitializeCancelAllProto; - SetFlag( EProtoCancelProtoCmdsOk ); - AddOperation( aOp, cmdId ); - } - // completes in CommandCompletedL - } - else { - // mark there's nothing to cancel - SetFlag( EProtoCancelProtoCmdsOk ); - } - } - __VTPRINTEXITR( "MH.CancelAllProtoCommands err=%d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ProtoInitialized -// Proto init completed. -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::ProtoInitialized() const - { - return iSessionCommand ? ETrue : EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TimerCallback -// Callback method for timer expiration. -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::TimerCallback( TAny* /*aAny*/ ) - { - __VTPRINT( DEBUG_MEDIA, "MH.TimerCallback -> PANIC " ) - Panic( EVtEngPanicDisconnectTimerExpired ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetVersionInfoL -// Sets version information to Proto. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetVersionInfoL( ) - { - __VTPRINTENTER( "MH.SetVersionInfoL" ) - - if ( !iH324Config ) - { - __VTPRINT( DEBUG_MEDIA, "MH.SetVersion not ready" ) - User::Leave( KErrNotReady ); - } - - // Current new line character index - TInt index( 0 ); - - // Version information from SysUtil - HBufC* versionInfo16 = HBufC::NewLC( KVtEngSwVersionTextLength ); - - // Pointer to SysUtil versionInfo descriptor. Temporary pointer to - // handle data. - TPtr versionInfoptr16( versionInfo16->Des() ); - - // SW Version and product information buffers to be send to peer. - HBufC8* version = HBufC8::NewLC( KVtEngSwVersionTextLength ); - HBufC8* product = HBufC8::NewLC( KVtEngSwVersionTextLength ); - TPtr8 versionPtr8( version->Des() ); - TPtr8 productPtr8( product->Des() ); - - // Marker for line ending '\n' - const TChar endLine( KVtEngCharacterEndLine ); - - TInt err = ( SysUtil::GetSWVersion( versionInfoptr16 ) ); - if ( err != KErrNone || !versionInfoptr16.Length() ) - { - __VTPRINT2( DEBUG_MEDIA, "MH.SetVersion SU: %d", err ) - __VTPRINTEXIT( "MH.SetVersionInfoL" ) - return; - } -#ifdef VTDEBUG - RDebug::Print( _L("SysUtil::GetSWVersion: %s"), versionInfoptr16.Ptr() ); -#endif - // Construct similar buffer than for version information and get po - HBufC* productInfo16 = versionInfo16->AllocLC(); - TPtr productInfoptr16( productInfo16->Des() ); - - // We assume that format from file is: - // SW version\ndate\nproduct\nmanufacturer - // \n is new line character - - // Find first new line character - index = versionInfo16->Locate( endLine ); - if ( index >= 0 ) - { - // Replace new line character using space. - versionInfoptr16[ index ] = KVtEngCharacterSpace ; - - // Find second new line character, this ends the version information - index = versionInfo16->Locate( endLine ); - if ( index >= 0 ) - { - // Take version information and ignore product info. - versionInfoptr16 = versionInfo16->Left( index ); - - // Take product information and ignore version information. - productInfoptr16 = productInfo16->Mid( index + 1 ); - - // Find the only remaining new line character. - index = productInfoptr16.Locate( endLine ); - - // Replace new line character using space. - productInfoptr16[ index ] = KVtEngCharacterSpace; - - // Copy 16 bit descriptors to 8 bit descriptors and append - // zero terminators. - versionPtr8.Copy( versionInfoptr16 ); - versionPtr8.ZeroTerminate(); - productPtr8.Copy( productInfoptr16 ); - productPtr8.ZeroTerminate(); - - // Set the info to Protocol -#ifdef VTDEBUG - RDebug::Print(_L("MH.Product: %s" ), productPtr8.Ptr() ); - RDebug::Print(_L("MH.Version: %s" ), versionPtr8.Ptr() ); -#endif //VTDEBUG - - AddOperation( ESetVendorId, - iH324Config->SetVendorId( KVtEngCountryCodeForProto, - KVtEngExtensionForProto, - KVtEngManufacturerForProto, &productPtr8, &versionPtr8 ) ); - } - } - CleanupStack::PopAndDestroy( 4 ); // HBufC's - __VTPRINTEXIT( "MH.SetVersionInfoL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::RequestFrame -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::RequestFrame( ) - { - __VTPRINTENTER( "MH.RequestFrame" ) - if ( !iH263Encoder ) - { - __VTPRINT( DEBUG_MEDIA, "MH.RequestFrame FAILED") - return; - } - AddOperation( ESendIntraframe,iH263Encoder->RequestNextIntraFrame() ); - ClearFlag( EProtoSendIntraFrame ); - - __VTPRINTEXIT( "MH.RequestFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetVideoQualityL -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetVideoQualityL( - const TVideoQuality aVideoQuality, const TBool aSetPeerVideoQuality ) - { - __VTPRINTENTER( "MH.SetVideoQualityL" ) - if ( !iH263Encoder ) - { - __VTPRINT( DEBUG_MEDIA, "MH.SetVideoQualityL FAILED") - return; - } - SetFlag( EVideoQualitySetByPeer ); - TInt protoOperId( iH263Encoder->SetVideoFrameRate( - iVideoQuality.ToFrameRate( aVideoQuality ) ) ); - AddOperation( ESetVideoQuality, protoOperId ); - iVideoQuality.SettingVideoQuality( protoOperId, - aVideoQuality, aSetPeerVideoQuality ); - __VTPRINTEXIT( "MH.SetVideoQualityL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetPeerVideoQuality -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetPeerVideoQuality( const TVideoQuality aVideoQuality ) - { - __VTPRINTENTER( "MH.SetPeerVideoQuality" ) - AddOperation( ESendVTSTO, iH324Config->SendVideoTemporalSpatialTradeoffCommand( - iVideoIncomingLogicalChannel.iLogicalChannelId, - iVideoQuality.ToTradeOff( aVideoQuality ) ) ); - __VTPRINTEXIT( "MH.SetPeerVideoQuality" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleVideoEncoderCommandCompletedL -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleVideoEncoderCommandCompletedL( - const TVtCommandResponse& aResponse ) - { - __VTPRINTENTER( "MH.EncExtCommandCompleted" ) - const TInt type( aResponse.iCmdType ); - const TInt protoCmdId( aResponse.iCmdId ); - const TInt protoResponse( aResponse.iCmdStatus ); - __VTPRINT2( DEBUG_MEDIA, "MH.263 ComC type=%d", type ) - __VTPRINT3( DEBUG_MEDIA, "MH.263 ComC cmdId=%d,response=%d", - protoCmdId, protoResponse ) - - // Find correct entry in iPendingOps based on TOperation because there can - // be several entries with same Protocol cmd id since each Protocol interface has their - // own id allocation and ids may overlap. - TInt index( KErrNotFound ); - TOperation completedOp = ENone; - if ( MatchResponseToPendingOps( protoCmdId, ESendIntraframe, &index ) || - MatchResponseToPendingOps( protoCmdId, ESetIFrameInterval, &index ) || - MatchResponseToPendingOps( protoCmdId, ESetVideoQuality, &index ) ) - { - // TOperation entries in are unique in the array... - const TCmdOpPair pair = (*iPendingOps)[ index ]; - completedOp = pair.iOp; - // ...so remove based on that instead of protoCmdId - RemoveOperation( completedOp ); - } - else - { - __VTPRINT( DEBUG_MEDIA, "MH.EECC ERROR (response to unknown command)" ) - } - if ( completedOp == ESetVideoQuality ) - { - __VTPRINT( DEBUG_MEDIA, "MH.EECC ESetVideoQuality" ) - if( iPendingOp && ( iPendingOp->Command() == KVtEngSetVideoQuality ) ) - { - CompleteOp( protoResponse ); - } - if( protoResponse == KErrNone ) - { - TVtEngVideoQuality::TVQSParams vqp; - - if ( iVideoQuality.SettingSucceeded( protoCmdId, vqp ) ) - { - __VTPRINT( DEBUG_MEDIA, "MH.EECC sending vq indication" ) - AddOperation( ESendVTSTO, - iH324Config->SendVideoTemporalSpatialTradeoffIndication( - iVideoOutgoingLogicalChannel.iLogicalChannelId, - iVideoQuality.ToTradeOff( vqp.iValue ) ) ); - if ( vqp.iSetPeer ) - { - __VTPRINT( DEBUG_MEDIA, "MH.EECC setting peer vq" ) - SetPeerVideoQuality( vqp.iValue ); - } - } - } - else - { - iVideoQuality.SettingFailed( protoCmdId ); - } - } - if ( iProtoState == MVtProtocolCommand::EIdle ) - { // Command was complete during uninitialization. - NextUninitStepCallbackL(); - } - __VTPRINTEXIT( "MH.EncExtCommandCompleted" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleVideoEncoderInformationalEventL -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleVideoEncoderInformationalEventL( - const TVtIndicationEvent& aEvent) - { - const TInt type( aEvent.iEventType ); - __VTPRINT2( DEBUG_MEDIA, "MH.263 infoevent=%d", type ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleH324MConfigCommandCompletedL -// -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleH324MConfigCommandCompletedL( - const TVtCommandResponse& aResponse ) - { - __VTPRINTENTER( "MH.HandleH324MConfigCommandCompletedL" ) - const TInt protoCmdId( aResponse.iCmdId ); - const TInt protoResponse( aResponse.iCmdStatus ); - const TInt type( aResponse.iCmdType ); - - __VTPRINT2( DEBUG_MEDIA, "MH.HandleH324MConfigCommandCompletedL type=%d", type ) - __VTPRINT3( DEBUG_MEDIA, "MH.HandleH324MConfigCommandCompletedL cmdId=%d,response=%d", protoCmdId, protoResponse ) - TInt index( KErrNotFound ); - // Find correct entry in iPendingOps based on TOperation because there can - // be several entries with same Protocol cmd id since each Protocol interface has their - // own id allocation and ids may overlap. - if ( MatchResponseToPendingOps( protoCmdId, ESetVendorId, &index ) || - MatchResponseToPendingOps( protoCmdId, ESendVTSTO, &index ) || - MatchResponseToPendingOps( protoCmdId, ESetSupportedResolutions, &index ) || - MatchResponseToPendingOps( protoCmdId, ESetFastCsupOptions, &index ) ) - { - // TOperation entries in are unique in the array... - const TCmdOpPair pair = (*iPendingOps)[ index ]; - // ...so remove based on that instead of protoCmdId - RemoveOperation( pair.iOp ); - } - switch( iProtoState ) - { - case MVtProtocolCommand::EConnected: - { - CVtEngStateManager* stateManager = CVtEngUtility::StateManager(); - - // Check does the received command ID match to command ID that was received - // from Protocol when DTMF was send. - if( stateManager->Handlers().Dtmf().CheckCommandId( protoCmdId ) ) - { - __VTPRINT( DEBUG_MEDIA, "MH.Complete DTMF" ) - stateManager->Handlers().Dtmf().SendComplete( protoResponse ); - } - } - break; - case MVtProtocolCommand::EIdle: // extension command complete - NextUninitStepCallbackL(); - default: - break; - } - - __VTPRINTEXITR( "MH.HandleH324MConfigCommandCompletedL.CommandID %d", aResponse.iCmdId ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::HandleH324MConfigInformationalEventL -// -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::HandleH324MConfigInformationalEventL( - const TVtIndicationEvent& aEvent ) - { - __VTPRINTENTER( "MH.HandleH324MConfigInformationalEventL" ) - - const TInt type( aEvent.iEventType ); - const TUint8* buffer = (const_cast(aEvent)).iLocalBuffer; - - switch(type) - { - case EVtIndicationVideoSpatialTamporalTradeOffIndication: - case EVtIndicationVideoSpatialTamporalTradeOffCommand: - { - TUint16 logicalChannelId = BigEndian::Get16( buffer ); - TUint8 tradeOffValue = buffer[ 2 ]; - __VTPRINT3( DEBUG_MEDIA, "MH.protoHIE.H324 channelId=%d, tradeOff=%d", - logicalChannelId, tradeOffValue ) - if( type == - EVtIndicationVideoSpatialTamporalTradeOffIndication ) - { - HandleSpatialTradeoffIndication( logicalChannelId, - tradeOffValue ); - } - else - { - HandleSpatialTradeoffCommandL( logicalChannelId, - tradeOffValue ); - } - } - break; - - // When remote terminal sends its UII capabilities in TCS we get - // indication from Protocol. If remote does not send UII capas in TCS - // we are obliged to use alphanumeric UIIs as specified by 245 - // spec. Default is IA5String.We get bit pattern from Protocol but - // they are listed below in preferred order of usage. - // The order can be freely chosen. - case EVtIndicationUserInputCapability: - { -#ifdef VTDEBUG - RDebug::Print(_L("Buffer[0]:%d"), buffer[0] ); -#endif // VTDEBUG - __VTPRINT( DEBUG_MEDIA, - "MH.protoHIE UserInput Capability Indication" ) - - CVtEngStateManager* stateManager = - CVtEngUtility::StateManager(); - - // IA5String preferred, it's the simplest and most used in TCSs. - if ( buffer[0] & CVtEngDtmfHandler::EIA5String ) - { - stateManager->Handlers().Dtmf().SetUIISupport( - CVtEngDtmfHandler::EIA5String ); - CVtEngEventManager::NotifyEvent( - KVtEngRemoteUIIIA5StringSupport ); - __VTPRINT( DEBUG_MEDIA, - "KVtEngRemoteUIIIA5StringSupport Support signalled" ) - } - // Basic string is also simple and easy to use, second position. - else if ( buffer[0] & CVtEngDtmfHandler::EBasicString ) - { - stateManager->Handlers().Dtmf().SetUIISupport( - CVtEngDtmfHandler::EBasicString ); - CVtEngEventManager::NotifyEvent( - KVtEngRemoteUIIBasicStringSupport ); - __VTPRINT( DEBUG_MEDIA, - "KVtEngRemoteUIIBasicStringSupport Support signalled" ) - } - // DTMFs are more limited but more interoperable than - // General string. - else if ( buffer[0] & CVtEngDtmfHandler::EDTMFString ) - { - stateManager->Handlers().Dtmf().SetUIISupport( - CVtEngDtmfHandler::EDTMFString ); - CVtEngEventManager::NotifyEvent( KVtEngRemoteUIIDtmfSupport ); - __VTPRINT( DEBUG_MEDIA, - "KVtEngRemoteUIIDtmfSupport Support signalled" ) - } - // General string is the complicated one, priority is - // lowest because of possible diffuculties in remote - // end decoding of string (various number of letter - // combinations). - else if ( buffer[0] & CVtEngDtmfHandler::EGeneralString ) - { - stateManager->Handlers().Dtmf().SetUIISupport( - CVtEngDtmfHandler::EGeneralString ); - CVtEngEventManager::NotifyEvent( - KVtEngRemoteUIIGeneralStringSupport ); - __VTPRINT( DEBUG_MEDIA, - "KVtEngRemoteUIIGeneralStringSupport Support signalled" ) - } - else - { - __VTPRINT( DEBUG_MEDIA, "MH.HIE invalid DTMF" ) - Panic( EVtEngPanicInvalidDtmfState ); - } - } - break; - } - __VTPRINTEXIT( "MH.HandleH324MConfigInformationalEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetSupportedResolutionsL -// Sets supported resolutions to protocol. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetSupportedResolutions() - { - __VTPRINTENTER( "MH.SetSupportedResolutions" ) - __ASSERT_ALWAYS( iH324Config != NULL, Panic( EVtEngPanicInvalidPointer ) ); - - AddOperation( ESetSupportedResolutions, - iH324Config->SetSupportedResolutions( ) ); - __VTPRINTEXIT( "MH.SetSupportedResolutions " ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::SetFastCsupOptions -// Sets supported resolutions to Protocol. -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::SetFastCsupOptions() - { - __VTPRINTENTER( "MH.SetFastCsupOptions" ) - - AddOperation( - ESetFastCsupOptions, - iH324Config->SetFastCsupOptions( ) ); - __VTPRINTEXIT( "MH.SetFastCsupOptions" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::CreateExtensionsL -// Creates extension according to API Uid. -// ----------------------------------------------------------------------------- -// -CVtEngExtensionBase* CVtEngMediaHandler::CreateExtensionsL( const TUid& aUid ) - { - __VTPRINTENTER( "MH.CreateExtensionsL" ) - - // if UID is supported camera pref - if ( aUid == KVtEngExtensionCameraPreferences ) - { - __VTPRINT2( DEBUG_GEN, "MH.CreateExtensionsL extension UID=%d", - aUid.iUid ) - - CVtEngExtensionBase* base = reinterpret_cast< CVtEngExtensionBase* > - ( iLocalVideo->CreateCameraPreferencesL() ); - __VTPRINTEXITR( "MH.CreateExtensionsL base [%d]", ( TInt )base ) - return base; - } - -#if defined ( RD_VT_RTF ) - - // if UID is supported R2F - else if ( aUid == KVtEngExtensionRecord2File ) - { - CVtEngExtensionBase* base = reinterpret_cast< CVtEngExtensionBase* > - ( CVtEngRecord2File::NewL() ); - __VTPRINTEXITR( "MH.CreateExtensionsL base [%d]", ( TInt )base ) - return base; - } - // not supported UID - -#endif //RD_VT_RTF - - else - { - __VTPRINTEXITR( "MH.CreateExtensionsL error [%d]", KErrNotSupported ) - User::Leave( KErrNotSupported); - return NULL; - } - } - -// Implementation for TVtEngVideoQuality - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::TVtEngVideoQuality -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::TVtEngVideoQuality::TVtEngVideoQuality() - : iCurrent( EVideoQualityNormal ), iParamList( 1 ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::~TVtEngVideoQuality -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::TVtEngVideoQuality::~TVtEngVideoQuality() - { - iParamList.Reset(); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::SettingVideoQuality -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::TVtEngVideoQuality::SettingVideoQuality( - TInt aId, const TVideoQuality aValue, TBool aSetPeer ) - { - __VTPRINTENTER( "MH.VQ.SettingVideoQuality" ) - iParamList.Append( TVQSParams( aId, aValue, aSetPeer ) ); - __VTPRINTEXIT( "MH.VQ.SettingVideoQuality" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::VideoQuality -// ----------------------------------------------------------------------------- -// -MVtEngMedia::TVideoQuality - CVtEngMediaHandler::TVtEngVideoQuality::VideoQuality() const - { - __VTPRINTENTER( "MH.VQ.VideoQuality" ) - __VTPRINTEXITR( "MH.VQ.VideoQuality %d", iCurrent ) - return iCurrent; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::IsSetPeer -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::TVtEngVideoQuality::SettingSucceeded( TInt aId, - TVQSParams& aParams ) - { - __VTPRINTENTER( "MH.VQ.SettingSucceeded" ) - TInt index( FindVQSParam( aId ) ); - TBool foundRecord( index != KErrNotFound ); - if ( foundRecord ) - { - aParams = iParamList[ index ]; - iParamList.Remove( index ); - iParamList.Compress(); - } - __VTPRINTEXITR( "MH.VQ.SettingSucceeded %d", foundRecord ) - return foundRecord; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::IsSetPeer -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::TVtEngVideoQuality::UpdateVideoQuality( - const TVideoQuality aVideoQuality ) - { - __VTPRINTENTER( "MH.VQ.UpdateVideoQuality" ) - iCurrent = aVideoQuality; - __VTPRINTEXIT( "MH.VQ.UpdateVideoQuality" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::SettingFailed -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::TVtEngVideoQuality::SettingFailed( TInt aId ) - { - __VTPRINTENTER( "MH.VQ.SettingFailed" ) - TInt index( FindVQSParam( aId ) ); - if ( index != KErrNotFound ) - { - iParamList.Remove( index ); - iParamList.Compress(); - } - __VTPRINTEXITR( "MH.VQ.SettingFailed %d", index ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::FromTradeOff -// ----------------------------------------------------------------------------- -// -MVtEngMedia::TVideoQuality - CVtEngMediaHandler::TVtEngVideoQuality::FromTradeOff( - const TInt aTradeOff ) const - { - __VTPRINTENTER( "MH.VQ.FromTradeOff" ) - TVideoQuality videoQuality; - - // [0 .. KVtEngTradeOffDetailMax] - if( aTradeOff <= KVtEngTradeOffDetailMax ) - { - videoQuality = EVideoQualityDetail; - } - // ]KVtEngTradeOffDetailMax .. KVtEngTradeOffNormalMax] - else if( aTradeOff <= KVtEngTradeOffNormalMax ) - { - videoQuality = EVideoQualityNormal; - } - // ]KVtEngTradeOffNormalMax .. 31] - else - { - videoQuality = EVideoQualityMotion; - } - __VTPRINTEXITR( "MH.VQ.FromTradeOff %d", videoQuality ) - return videoQuality; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::ToFrameRate -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::TVtEngVideoQuality::ToFrameRate( - const TVideoQuality aVideoQuality ) const - { - __VTPRINTENTER( "MH.VQ.ToFrameRate" ) - TInt frameRate( 0 ); - CVtEngSettings& settings = CVtEngUtility::Settings(); - switch( aVideoQuality ) - { - case EVideoQualityDetail: - frameRate = settings.VideoQualityFrameRateConfig().iDetail; - break; - - case EVideoQualityNormal: - frameRate = settings.VideoQualityFrameRateConfig().iNormal; - break; - - case EVideoQualityMotion: - frameRate = settings.VideoQualityFrameRateConfig().iMotion; - break; - - default: - Panic( EVtEngPanicInvalidVideoQualityValue ); - break; - } - __VTPRINTEXITR( "MH.VQ.ToFrameRate %d", frameRate ) - return frameRate; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::ToTradeOff -// ----------------------------------------------------------------------------- -// -TUint8 CVtEngMediaHandler::TVtEngVideoQuality::ToTradeOff( - const TVideoQuality aVideoQuality ) const - { - __VTPRINTENTER( "MH.VQ.ToTradeOff" ) - TUint8 tradeOff( 0 ); - switch( aVideoQuality ) - { - case EVideoQualityDetail: - tradeOff = KVtEngTradeOffDetailMax; - break; - - case EVideoQualityNormal: - tradeOff = KVtEngTradeOffNormalMax; - break; - - case EVideoQualityMotion: - tradeOff = KVtEngTradeOffMotionMax; - break; - - default: - Panic( EVtEngPanicInvalidVideoQualityValue ); - break; - } - __VTPRINTEXITR( "MH.VQ.ToTradeOff %d", tradeOff ) - return tradeOff; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::FindVQSParam -// ----------------------------------------------------------------------------- -// -TInt CVtEngMediaHandler::TVtEngVideoQuality::FindVQSParam( TInt aId ) const - { - __VTPRINTENTER( "MH.VQ.FindVQSParam" ) - TInt result( KErrNotFound ); - for ( TInt i = iParamList.Count() - 1; i >= 0; i-- ) - { - if ( iParamList[ i ].iId == aId ) - { - result = i; - break; - } - } - __VTPRINTEXITR( "MH.VQ.FindVQSParam %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::TVQSParams::TVQSParams -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::TVtEngVideoQuality::TVQSParams::TVQSParams() - { - Mem::FillZ( this, sizeof( TVQSParams ) ); - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::TVtEngVideoQuality::TVQSParams::TVQSParams -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler::TVtEngVideoQuality::TVQSParams::TVQSParams( - TInt aId, const TVideoQuality aValue, TBool aSetPeer ) - : iId( aId ), iValue( aValue ), iSetPeer( aSetPeer ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::QueryProtoInterfacesL -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::QueryProtoInterfacesL() - { - __VTPRINTENTER( "MH.QueryProtoInterfacesL" ) - // Ensure call is still connected to prevent unnecessary Protocol - // interface acquisition - CVtEngStateManager* states = CVtEngUtility::StateManager(); - const MVtEngSessionInfo::TSessionState sessionState = - states->SessionState(); - if ( sessionState != MVtEngSessionInfo::EIdle && - sessionState != MVtEngSessionInfo::EClearing ) - - { - // Request the 324M Stack interface - if ( !IsFlag( EProto324IFAcquired ) ) - { - /* - AddOperation( EGet324CtrlInterface, - iSessionCommand->GetProtocolInterfaceL( - EVtH324Config, - ( MVtProtocolCommand*& ) iH324Config )); - */ - MVtProtocolCommand *pCommand = NULL; - AddOperation( EGet324CtrlInterface, - iSessionCommand->GetProtocolInterfaceL( - EVtH324Config, - ( MVtProtocolCommand*& ) pCommand )); - iH324Config = static_cast(pCommand); - } - // Get encoder interface. - /* - AddOperation( EGetH263EncInterface, - iSessionCommand->GetProtocolInterfaceL( - EVtVideoEncoderConfig, - ( MVtProtocolCommand*& ) iH263Encoder )); - */ - MVtProtocolCommand *pCommand = NULL; - AddOperation( EGetH263EncInterface, - iSessionCommand->GetProtocolInterfaceL( - EVtVideoEncoderConfig, - ( MVtProtocolCommand*& ) pCommand )); - iH263Encoder = static_cast(pCommand); - } - __VTPRINTEXIT( "MH.QueryProtoInterfacesL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ReleaseProtoInterfacesL -// ----------------------------------------------------------------------------- -// -void CVtEngMediaHandler::ReleaseProtoInterfacesL() - { - __VTPRINTENTER( "MH.ReleaseProtoInterfacesL" ) - - // Release interfaces - __VTPRINT( DEBUG_MEDIA, "LCN: MH.324 started to release interfaces" ) - if( iH324Config ) - { - /* - AddOperation( ERemove324CtrlInterface, - iSessionCommand->DeleteProtocolInterfaceL( EVtH324Config, iH324Config ) );*/ - MVtProtocolCommand *pCommand = NULL; - pCommand = static_cast(iH324Config); - AddOperation( ERemove324CtrlInterface, - iSessionCommand->DeleteProtocolInterfaceL( EVtH324Config, pCommand ) ); - iH324Config = 0; - __VTPRINT( DEBUG_MEDIA, "MH.324 started to release" ) - } - - if ( iH263Encoder ) - { - /* - AddOperation( ERemoveH263EncInterface, - iSessionCommand->DeleteProtocolInterfaceL( EVtVideoEncoderConfig, iH263Encoder ) );*/ - MVtProtocolCommand *pCommand = NULL; - pCommand = static_cast(iH263Encoder); - AddOperation( ERemoveH263EncInterface, - iSessionCommand->DeleteProtocolInterfaceL( EVtVideoEncoderConfig, pCommand ) ); - iH263Encoder = 0; - iH263Encoder = 0; - __VTPRINT( DEBUG_MEDIA, "MH.263 started to release" ) - } - __VTPRINTEXIT( "MH.ReleaseProtoInterfacesL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::ExtensionCommandsPending -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::ExtensionCommandsPending() const - { - __VTPRINTENTER( "MH.ExtensionCommandsPending" ) - TBool isPending = EFalse; - TInt count( iPendingOps->Count() ); - while ( count-- ) - { - const TOperation op = ( *iPendingOps )[ count ].iOp; - switch ( op ) - { - // extension commands - case ESendIntraframe: - case ESetSupportedResolutions: - case ESetVideoQuality: - case ESendVTSTO: - case ESetFastCsupOptions: - case ESetVendorId: - case ESetIFrameInterval: - isPending = ETrue; -#ifdef _DEBUG - RDebug::Print( _L(" (ext) op=%d,protoCmdId=%d"), - op, ( *iPendingOps )[ count ].iProtoCmdId ); -#else -// in debug mode allow printing all pending ops to log - count = 0; // break loop -#endif - break; - default: - break; - } - } - __VTPRINTEXITR( "MH.ExtensionCommandsPending %d", isPending ) - return isPending; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::MediaAddingValidity -// ----------------------------------------------------------------------------- -// -TBool CVtEngMediaHandler::MediaAddingValidity() const - { - __VTPRINTENTER( "MH.MediaAddingValidity" ) - - TBool addingOK( ETrue ); - CVtEngStateManager* states = CVtEngUtility::StateManager(); - MVtEngSessionInfo::TSessionState sessionState ( states->SessionState() ); - if( sessionState == MVtEngSessionInfo::EClearing || - sessionState == MVtEngSessionInfo::EIdle ) - { - __VTPRINT( DEBUG_MEDIA, "MH.MediaAddingValidity NOT ALLOWED" ) - // State is wrong, adding not allowed. - addingOK = EFalse; - } - - __VTPRINTEXITR( "MH.MediaAddingValidity %d", addingOK ) - - return addingOK; - } - -// ----------------------------------------------------------------------------- -// CVtEngMediaHandler::CancelInitializeShareImage -// ----------------------------------------------------------------------------- -void CVtEngMediaHandler::CancelInitializeShareImage() - { - __VTPRINTENTER( "CVtEngMediaHandler.CancelInitializeShareImage"); - if(iLocalVideo) - { - iLocalVideo->CancelInitializeShareImage(); - } - __VTPRINTEXIT( "CVtEngMediaHandler.CancelInitializeShareImage"); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Media/CVtEngRemoteVideo.cpp --- a/vtengines/videoteleng/Src/Media/CVtEngRemoteVideo.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,737 +0,0 @@ -/* -* Copyright (c) 2004-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: Remote video handler. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngRemoteVideo.h" -#include "CVtEngStateManager.h" -#include "MVtEngFrameObserver.h" -#include -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "CVtEngEventManager.h" -#include "VtEngConstants.h" -#include "VtEngPanic.h" -#include "TVtEngRenderingDSA.h" -#include "TVtEngRenderingDP.h" -#include "TVtEngRenderingNGA.h" -#include "TVtEngRenderConfigDSA.h" -#include "TVtEngRenderConfigDP.h" -#include "TVtEngRenderConfigNGA.h" -#include "CVtEngDrawDP.h" -#include "CVtEngDrawDSA.h" -#include "CVtEngDrawNGA.h" -#include -#include -#include -#include -#include - -// LOCAL CONSTANTS AND MACROS -// This active object priority. -const TInt KVtEngRemoteDrawPriority = CActive::EPriorityStandard; - -// Timer priority when not frame watching. -const TInt KVtEngStoppedRenderPriority = CActive::EPriorityLow; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngRemoteVideo -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngRemoteVideo::CVtEngRemoteVideo( - MVtSessionCommand& aSessionCommand, - CVtEngStateManager& aStateManager ) : - iSessionCommand( aSessionCommand), - iStateManager( aStateManager ), - iEnableNGA(ETrue) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::ConstructL() - { - __VTPRINTENTER( "RV.ConstructL" ) - //We are in the Proto ESetup state - iDrawer = - static_cast< CVtEngDraw* >( VtEngDrawFactory::CreateDrawerL( this , iEnableNGA) ); - //Add protocol Data Sink; - iDisplaySink = iDrawer->DisplaySink(); - iAudioSink = VTProtocolFactory::CreateAudioSink(); - __VTPRINTEXIT( "RV.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngRemoteVideo* CVtEngRemoteVideo::NewL( - MVtSessionCommand& aSessionCommand, - CVtEngStateManager& aStateManager ) - { - CVtEngRemoteVideo* self = new( ELeave ) - CVtEngRemoteVideo( aSessionCommand, aStateManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngRemoteVideo -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngRemoteVideo::~CVtEngRemoteVideo() - { - __VTPRINTENTER( "RV.~" ) - VTProtocolFactory::DeleteAudioSink( iAudioSink ); - delete iDrawer; - __VTPRINTEXIT( "RV.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::SetRenderingParametersL -// Sets parameters for rendering the remote video. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::SetRenderingParametersL( - const TVtEngRenderingOptionsNGA& aParams ) - { - __VTPRINTENTER( "RV.SetRenderingParametersL NGA" ) - - // If rendering is ongoing, stop it - StopVideoRendering(); - // Set new values - TVtEngRenderConfigNGA config( aParams ); - iDrawer->BaseSetConfigL( config ); - __VTPRINTEXIT( "RV.SetRenderingParametersL NGA" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::SetRenderingParametersL -// Sets parameters for rendering the remote video. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::SetRenderingParametersL( - const TVtEngRenderingOptionsDSA& aParams ) - { - __VTPRINTENTER( "RV.SetRenderingParametersL DSA" ) - - __VTPRINT( DEBUG_MEDIA , "================== RV.Params ==================" ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iTl.iX %d", aParams.iRect.iTl.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iTl.iY %d", aParams.iRect.iTl.iY ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iBr.iX %d", aParams.iRect.iBr.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iBr.iY %d", aParams.iRect.iBr.iY ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iTl.iX %d", - aParams.iClipRect.iTl.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iTl.iY %d", - aParams.iClipRect.iTl.iY ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iBr.iX %d", - aParams.iClipRect.iBr.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iBr.iY %d", - aParams.iClipRect.iBr.iY ) - __VTPRINT( DEBUG_MEDIA , "================== RV.Params ==================" ) - // If rendering is ongoing, stop it - StopVideoRendering(); - // Set new values - TVtEngRenderConfigDSA config( aParams ); - iDrawer->BaseSetConfigL( config ); - __VTPRINTEXIT( "RV.SetRenderingParametersL DSA" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::SetRenderingParametersL -// Sets parameters for rendering the remote video. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::SetRenderingParametersL( - const TVtEngRenderingOptionsDP& aParams ) - { - __VTPRINTENTER( "RV.SetRenderingParametersL DP" ) - - __VTPRINT( DEBUG_MEDIA , "================== RV.Params ==================" ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iTl.iX %d", aParams.iRect.iTl.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iTl.iY %d", aParams.iRect.iTl.iY ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iBr.iX %d", aParams.iRect.iBr.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iRect.iBr.iY %d", aParams.iRect.iBr.iY ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iTl.iX %d", - aParams.iClipRect.iTl.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iTl.iY %d", - aParams.iClipRect.iTl.iY ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iBr.iX %d", - aParams.iClipRect.iBr.iX ) - __VTPRINT2( DEBUG_MEDIA , " aParams.iClipRect.iBr.iY %d", - aParams.iClipRect.iBr.iY ) - __VTPRINT( DEBUG_MEDIA , "================== RV.Params ==================" ) - // If rendering is ongoing, stop it - StopVideoRendering(); - // Set new values - TVtEngRenderConfigDP config( aParams ); - iDrawer->BaseSetConfigL( config ); - __VTPRINTEXIT( "RV.SetRenderingParametersL DP" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::StartVideoL -// -// For incoming, this function starts/resumes playing out the media to the -// appropriate sink based on the current settings. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::StartVideoL() - { - __VTPRINTENTER( "RV.StartVideoL" ) - if ( iDisplaySink && iDrawer && - ( iDrawer->IsFlag( CVtEngDraw::EFlagInitialized ) || - iDrawer->IsFlag( CVtEngDraw::EBaseConstructCalled ) ) ) - { - iDrawer->BaseStartDrawL(); - } - else - { - User::Leave( KErrNotReady ); - } - __VTPRINTEXIT( "RV.StartVideoL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::StopVideoRendering -// Stops rendering of remote video. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::StopVideoRendering() - { - __VTPRINTENTER( "RV.StopVideoRendering" ) - // Stop only if active - if( iDrawer->GetDsaState() ) - { - __VTPRINT( DEBUG_MEDIA, "RV.Stopping" ) - iDrawer->BaseStopDraw(); - } - __VTPRINTEXIT( "RV.StopVideoRendering" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::AddVideoSinkL -// Adds a sink for video to proto. -// ----------------------------------------------------------------------------- -// -TInt CVtEngRemoteVideo::AddVideoSinkL( TInt aChannelId ) - { - __VTPRINTENTER( "RV.AddVideoSinkL" ) - if ( iDisplaySink == NULL ) - { - User::Leave( KErrNotReady ); - } - TInt id = iSessionCommand.AddVideoSinkL( - aChannelId, *iDisplaySink ); - iDrawer->VideoSinkAdded(); - __VTPRINTEXITR( "RV.AddVideoSinkL id=%d", id ) - return id; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::AddAudioSinkL -// Adds a sink for audio to proto. -// ----------------------------------------------------------------------------- -// -TInt CVtEngRemoteVideo::AddAudioSinkL( TInt aChannelId ) - { - __VTPRINTENTER( "RV.AddAudioSinkL" ) - if ( iAudioSink == NULL ) - { - User::Leave( KErrNotReady ); - } - TInt id = iSessionCommand.AddAudioSinkL( aChannelId, *iAudioSink ); - __VTPRINTEXITR( "RV.AddAudioSinkL id=%d", id ) - return id; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::GetDsaState -// Returns state of Direct Screen Access. -// ----------------------------------------------------------------------------- -// -TBool CVtEngRemoteVideo::GetDsaState() const - { - return iDrawer->GetDsaState(); - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::PauseVideoL -// -// For an incoming track this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CVtEngRemoteVideo::PauseVideoL() - { - __VTPRINTENTER( "RV.PauseVideoL" ) - if ( iDisplaySink == NULL ) - { - User::Leave( KErrNotReady ); - } - TInt cmdId = iSessionCommand.PauseVideoL( *iDisplaySink ); - __VTPRINTEXITR( "RV.PauseVideoL id=%d", cmdId ) - return cmdId; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::AudioSink -// Returns audio sink. -// ----------------------------------------------------------------------------- -// -MVTAudioSink* CVtEngRemoteVideo::AudioSink() - { - return iAudioSink; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::SetUIForegroundL -// Sets UI foreground state. -// ----------------------------------------------------------------------------- -void CVtEngRemoteVideo::SetUIForegroundL( TBool aForeground ) - { - __VTPRINTENTER( "RV.SetUIForegroundL" ) - if( !iDisplaySink ) - { - User::Leave( KErrNotReady ); - } - if( aForeground ) - { - __VTPRINT( DEBUG_MEDIA, " RV.Resuming" ) - iDisplaySink->Resume(); - } - else - { - __VTPRINT( DEBUG_MEDIA, " RV.Pausing" ) - iDisplaySink->Pause(); - } - iDrawer->BaseSetUIForegroundL( aForeground ); - __VTPRINTEXIT( "RV.SetUIForegroundL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::RequestLastFrame -// Request update last remote video frame through MVtEngFrameObserver::vtSetFrame -// ----------------------------------------------------------------------------- -void CVtEngRemoteVideo::RequestLastFrame() - { - __VTPRINTENTER( "RV.RequestLastFrame" ) - if(iDrawer) - iDrawer->BaseRequestLastFrame(); -__VTPRINTEXIT( "RV.RequestLastFrame" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::~CVtEngDraw -// Destructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngRemoteVideo::CVtEngDraw::~CVtEngDraw() - { - __VTPRINTENTER( "RVD.~" ) - Cancel(); - delete iWatcher; - delete iDSA; - if ( iDisplaySink ) - { - iDisplaySink->Destroy(); - } - __VTPRINTEXIT( "RVD.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::CVtEngDraw -// C++ constructor. Cannot leave. -// ----------------------------------------------------------------------------- -// -CVtEngRemoteVideo::CVtEngDraw::CVtEngDraw( MDisplaySinkObserver* aObserver ) : - CActive( KVtEngRemoteDrawPriority ), iCheckpoint( KVtEngWatcherThreshold ), - iObserver( aObserver ), iCallback( WatcherExpired, this ), - iDSUpdated( ETrue ) - { - iSourceSize = TSize( KVtEngRemoteVideoDefaultWidth, - KVtEngRemoteVideoDefaultHeight ); - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::ConstructL( ) - { - __VTPRINTENTER( "RVD.ConstructL" ) - BaseConstructL(); - // Create sink - iDisplaySink = CreateSinkL(); - iWatcher = CPeriodic::NewL( KVtEngStoppedRenderPriority ); - __VTPRINTEXIT( "RVD.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::AbortNow -// Aborts DSA when requested by Window Server. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::AbortNow( - RDirectScreenAccess::TTerminationReasons /*aReason*/ ) - { - __VTPRINTENTER( "RVD.AbortNow" ) - ClearFlag( EReadyForeground | EStarted ); - BaseAbortNow(); - __VTPRINTEXIT( "RVD.AbortNow" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::Restart -// Restarts DSA. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::Restart( - RDirectScreenAccess::TTerminationReasons /*aReason*/ ) - { - __VTPRINTENTER( "RVD.Restart" ) - TRAPD( err, - { - if ( !IsFlag( EStarted ) ) - { - if ( !iDSA->IsActive() ) - { - iDSA->StartL(); - } - SetFlag( EStarted ); - } - if ( !Config().iClipRect.IsEmpty() ) - { - __VTPRINT3( DEBUG_MEDIA, "RVD.Restart iClipRect.iTl (%d, %d)", - Config().iClipRect.iTl.iX, Config().iClipRect.iTl.iY ); - __VTPRINT3( DEBUG_MEDIA, "RVD.Restart iClipRect.iBr (%d, %d)", - Config().iClipRect.iBr.iX, Config().iClipRect.iBr.iY ); - iDSA->Gc()->SetClippingRect( Config().iClipRect ); - } - BaseRestartL(); - } ); - if ( err != KErrNone ) - { - ClearFlag( EReadyForeground ); - } - else - { - SetFlag( EReadyForeground ); - } - - __VTPRINT2( DEBUG_MEDIA, "RVD.Restart flags %d", iFlags ) - if ( iCheckpoint == KVtEngWatcherThreshold ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, "RVD.Restart RFs" ) - TRAP( err, BaseRefreshL() ); - } - __VTPRINTEXITR( "RVD.Restart %d", err ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::GetDsaState -// Returns the state of DSA: is drawing ongoing. -// ----------------------------------------------------------------------------- -// -TBool CVtEngRemoteVideo::CVtEngDraw::GetDsaState() const - { - __VTPRINTENTER( "RVD.GetDsaState" ) - TBool active( EFalse ); - active = IsFlag( ERemoteVideoDrawing ); - __VTPRINTEXITR( "RVD.GetDsaState is active=%d", active ) - return active; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::WatcherExpired -// Checks if frame watcher has expired, ie. no frames are received. -// ----------------------------------------------------------------------------- -// -TInt CVtEngRemoteVideo::CVtEngDraw::WatcherExpired( TAny* aAny ) - { - CVtEngRemoteVideo::CVtEngDraw* drawer = - reinterpret_cast( aAny ); - drawer->HandleWatcherExpired(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::HandleWatcherExpired -// Does the checking for frame reception. -// If not receiving, notify using client (VT UI). -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::HandleWatcherExpired() - { - __VTPRINTENTER( "RVD.WatcherExpired" ) - if ( IsFlag( EStarted ) ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_RETURN, "RVD.WatcherExpired RF:%d", - iCheckpoint ) - if ( iCheckpoint != KVtEngWatcherThreshold && - IsFlag( EFirstFrameReceived ) ) - { - __VTPRINT( DEBUG_MEDIA | DEBUG_RETURN, "RVD.WatcherExpired RF" ) - TRAP_IGNORE( BaseRefreshL() ); - } - iCheckpoint--; - // Not under zero though. - if ( iCheckpoint < 0 ) - { - iCheckpoint = 0; - } - } - __VTPRINTEXIT( "RVD.WatcherExpired" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::SetFlag -// Sets flags. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::SetFlag( TUint aFlags ) - { - iFlags |= aFlags; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::ClearFlag -// Clears (unsets) flags. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::ClearFlag( TUint aFlags ) - { - iFlags &= ~aFlags; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::IsFlag -// Tests a flag. -// ----------------------------------------------------------------------------- -// -TBool CVtEngRemoteVideo::CVtEngDraw::IsFlag( TUint aFlag ) const - { - return ( iFlags & aFlag ) != 0 ; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::VideoSinkAdded -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::VideoSinkAdded() - { - // By clearing this flag every time when sink is added, we assure that - // blind icon is correctly faded in UI. - ClearFlag( EFirstFrameReceived ); - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::Activate -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::Activate() - { - __VTPRINTENTER( "RVD.Activate" ) - if ( !IsActive() ) - { - __VTPRINT( DEBUG_MEDIA, "RVD.Activate setting active" ) - iStatus = KRequestPending; - SetActive(); - } - __VTPRINTEXIT( "RVD.Activate" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::ConfigUpdatedL -// Set drawing configuration. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::ConfigUpdatedL() - { - __VTPRINTENTER( "RVD.ConfigUpdatedL" ) - ClearFlag( EFlagInitialized ); - TRAPD( err, { - BaseVerifyConfigL(); - - if ( IsFlag( EReadyInternal ) ) - { - __VTPRINT( DEBUG_MEDIA, "RVD.SetC started" ) - SetFlag( EStarted ); - __VTPRINT( DEBUG_MEDIA, "RVD.SetC notify rvd start" ) - } - BaseRefreshBitmapsL(); - } ); - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA | DEBUG_RETURN, "RVD.SetC FAILED %d", err ) - CVtEngEventManager::NotifyEvent( KVtEngMediaInitFailure ); - } - User::LeaveIfError( err ); - SetFlag( EFlagInitialized ); - __VTPRINTEXIT( "RVD.ConfigUpdatedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::DisplaySink -// Returns used display sink. -// ----------------------------------------------------------------------------- -// -MDisplaySink* CVtEngRemoteVideo::CVtEngDraw::DisplaySink() - { - return iDisplaySink; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::DoCancel() - { - __VTPRINTENTER( "RVD.DoCancel" ) - BaseDoCancel(); - iDisplaySink->Release(); - ClearFlag( EStarted | EFrameWatcherExpired ); - __VTPRINTEXIT( "RVD.DoCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::RunError -// ----------------------------------------------------------------------------- -// -#ifdef VTDEBUG -TInt CVtEngRemoteVideo::CVtEngDraw::RunError( TInt aError ) -#else -TInt CVtEngRemoteVideo::CVtEngDraw::RunError( TInt /* aError */ ) -#endif // VTDEBUG - { - __VTPRINTENTER( "RVD.RunError" ) - ClearFlag( EStarted ); - BaseStopDraw(); - CVtEngEventManager::NotifyEvent( KVtEngRemoteVideoStopped ); - __VTPRINTEXITR( "RVD.RunError %d", aError ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::CVtEngDraw::CreateAndStartDSAL -// Create DSA instance. -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo::CVtEngDraw::CreateAndStartDSAL() - { - __VTPRINTENTER( "RVD.CreateAndStartDSAL" ) - delete iDSA; - iDSA = NULL; - iDSA = CDirectScreenAccess::NewL( - *Config().iWsSession, - *Config().iWsSreenDevice, - *Config().iWindow, - *this ); - iDSA->StartL(); - if ( !Config().iClipRect.IsEmpty() ) - { - __VTPRINT( DEBUG_MEDIA, "RVD.CreateAndStartDSAL setting cliprect" ) - iDSA->Gc()->SetClippingRect( Config().iClipRect ); - } - __VTPRINTEXIT( "RVD.CreateAndStartDSAL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngRemoteVideo::VideoFrameSizeChanged -// Callback from DisplaySink to inform the size change -// ----------------------------------------------------------------------------- -// -void CVtEngRemoteVideo:: - VideoFrameSizeChangedL( const TSize& /* aFrom */, const TSize& aTo ) - { - __VTPRINTENTER( "RVD.VideoFrameSizeChangedL" ) - __VTPRINT( DEBUG_MEDIA , " ======= RV.RVD.VideoFrameSizeChangedL ========" ) - __VTPRINT2( DEBUG_MEDIA , " aTo.iWidth: %d", aTo.iWidth) - __VTPRINT2( DEBUG_MEDIA , " aTo.iHeight: %d", aTo.iHeight ) - __VTPRINT( DEBUG_MEDIA , " ======= RV.RVD.VideoFrameSizeChangedL ========" ) - - // Notification of changed layout. - if ( aTo.iHeight == KVtEngResolutionQCIFHeight && - aTo.iWidth == KVtEngResolutionQCIFWidth ) - { - // Store the new size. - iDrawer->iSourceSize = aTo; - CVtEngEventManager::NotifyEvent( KVtEngResolutionToQCIF ); - } - else if ( aTo.iHeight == KVtEngResolutionSQCIFHeight && - aTo.iWidth == KVtEngResolutionSQCIFWidth ) - { - // Store the new size. - iDrawer->iSourceSize = aTo; - CVtEngEventManager::NotifyEvent( KVtEngResolutionToSQCIF ); - } - else - { - // Unlisted resolution. - __VTPRINTEXITR( "RVD.VideoFrameSizeChangedL %d", 0 ) - return; - } - - iDrawer->BaseVideoFrameSizeChangedL( aTo ); - - __VTPRINTEXITR( "RVD.VideoFrameSizeChangedL %d", 1 ) - } - -// VtEngDrawFactory - -// ----------------------------------------------------------------------------- -// VtEngDrawFactory::CreateDrawerL -// ----------------------------------------------------------------------------- -// -MVtEngDraw* VtEngDrawFactory::CreateDrawerL( MDisplaySinkObserver* aObserver, TBool aSupportNGA ) - { - __VTPRINTENTER( "VtEngDrawFactory.CreateDrawerL" ) - MVtEngDraw* drawer = NULL; - if(aSupportNGA) - { - drawer = CVtEngDrawNGA::NewL( aObserver ); - } - else - { - if ( FeatureManager::FeatureSupported( KFeatureIdDisplayPost ) ) - { - drawer = CVtEngDrawDP::NewL( aObserver ); - } - else - { - drawer = CVtEngDrawDSA::NewL( aObserver ); - } - } - __VTPRINTEXIT( "VtEngDrawFactory.CreateDrawerL" ) - return drawer; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/Session/CVtEngSessionHandler.cpp --- a/vtengines/videoteleng/Src/Session/CVtEngSessionHandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,323 +0,0 @@ -/* -* 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: Session handler. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngSessionHandler.h" -#include "CVtEngOperation.h" -#include "CVtEngStateManager.h" -#include "cvtengincomingcallmonitor.h" -#include "vtengcommands.h" -#include "CVtEngOperation.h" -#include "CVtCtlFactory.h" -#include "MVtCtlCallControl.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "VtCtlTypes.h" // for TVtCtlCSSessionInfoV1 -#include "cvtlogger.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::CVtEngSessionHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngSessionHandler::CVtEngSessionHandler() - : CActive( CActive::EPriorityStandard ), iIncomingCallMonitor(NULL) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::ConstructL() - { - SetActive(); - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - StartIncomingCallMonitorL(); - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngSessionHandler* CVtEngSessionHandler::NewL( ) - { - CVtEngSessionHandler* self = new( ELeave ) - CVtEngSessionHandler( ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::~CVtEngSessionHandler -// Destructor -// -// ----------------------------------------------------------------------------- -// -CVtEngSessionHandler::~CVtEngSessionHandler() - { - __VTPRINTENTER( "SH.~" ) - Cancel(); - Uninitialize(); - delete iIncomingCallMonitor; - __VTPRINTEXIT( "SH.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::HandleL -// Performs session request. -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::HandleL( - CVtEngOperation& /*aOperation*/ ) - { - __VTPRINT( DEBUG_SESSION, "SH.HandleL leave not supported" ) - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::State -// Returns session state -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngSessionHandler::State( - TBool aForcedRefresh ) const - { - CVtEngStateManager* states = CVtEngUtility::StateManager(); - if ( aForcedRefresh ) - { - states->Update(); - } - return states->SessionState(); - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::GetDirection -// Returns direction. -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngSessionHandler::GetDirection( - TDirection& aDirection ) const - { - __VTPRINTENTER( "SH.GetDirection" ) - if ( !iSessionControl ) - { - __VTPRINTEXITR( "SH.GetDirection err=%d", KErrNotFound ) - return KErrNotFound; - } - - TVtCtlCSSessionInfoV1 info; - TPckg pckg( info ); - TRAPD( err, iSessionControl->GetSessionInfoL( KActiveSessionId, pckg ) ); - if ( err == KErrNone ) - { - switch ( info.iDirection ) - { - case MVtCtlCallControl::EDirectionMobileOriginated: - aDirection = EDirectionMO; - break; - case MVtCtlCallControl::DirectionMobileTerminated: - aDirection = EDirectionMT; - break; - default: - aDirection = EDirectionNone; - break; - } - } - __VTPRINT2( DEBUG_SESSION, "SH.direction dir=%d", aDirection ) - __VTPRINTEXITR( "SH.GetDirection err=%d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::GetDuration -// Returns session duration. -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngSessionHandler::GetDuration( - TDuration& aDuration, - TBool& aEnabled ) const - { - if ( !iSessionControl ) - { - return KErrNotFound; - } - - TVtCtlDuration duration; - TInt err ( iSessionControl->GetDuration( KActiveSessionId, duration ) ); - if ( err == KErrNone ) - { - aDuration = duration; - const CVtEngSettings& settings = CVtEngUtility::Settings(); - aEnabled = settings.Config().iCallTimerOn; - } - return err; - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::GetCLI -// -// -// ----------------------------------------------------------------------------- -// -TInt CVtEngSessionHandler::GetCLI( TCLI& aCLI ) const - { - const CVtEngSettings& settings = CVtEngUtility::Settings(); - const TBool isValid = settings.GetCLI( aCLI); - TInt res = KErrNone; - if ( !isValid ) - { - res = KErrNotReady; - } - return res; - } - - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::HandleVtSessionEventL -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::HandleVtSessionEventL( - TVtCtlEvent aEvent, - TAny* /*aParams*/ ) - { - if ( aEvent == KVtCtlEventSessionStatusChanged ) - { - CVtEngStateManager* states = CVtEngUtility::StateManager(); - states->Update( ); - } - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::InitializeL -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::InitializeL() - { - __VTPRINTENTER( "SH.Initilialize" ) - if ( iSessionControl ) - { - // already initialized - __VTPRINTEXIT( "SH.Initilialize" ) - return; - } - TInt err = iLib.Load( KVtCtlLibraryName() ); - CleanupClosePushL( iLib ); - if ( err == KErrNone ) - { - TLibraryFunction func = iLib.Lookup( 1 ); - iFactory = reinterpret_cast( func() ); - iSessionControl = iFactory->CreateCallControlL( *this ); - - // Update state - CVtEngStateManager* states = CVtEngUtility::StateManager(); - states->Update(); - } - CleanupStack::Pop(); // lib - __VTPRINTEXIT( "SH.Initilialize" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::Uninitialize -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::Uninitialize() - { - if ( iFactory ) - { - iFactory->Delete( iSessionControl ); - delete iFactory; - iFactory = NULL; - iSessionControl = NULL; - } - iLib.Close(); - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::RealState -// -// -// ----------------------------------------------------------------------------- -// -MVtCtlCallControl::TVtCtlState CVtEngSessionHandler::RealState() const - { - MVtCtlCallControl::TVtCtlState state( MVtCtlCallControl::EUnknown ); - if ( iSessionControl ) - { - state = iSessionControl->GetSessionState( KActiveSessionId ); - __VTPRINT2( DEBUG_SESSION, "SH.realState=%d", state ) - } - return state; - } -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::RunL -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::RunL() - { - InitializeL(); - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::DoCancel -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::DoCancel() - { - // nothing here - } - -// ----------------------------------------------------------------------------- -// CVtEngSessionHandler::StartIncomingCallMonitorL -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngSessionHandler::StartIncomingCallMonitorL() - { - iIncomingCallMonitor = CVtEngIncomingCallMonitor::NewL(); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngDtmfBuffered.cpp --- a/vtengines/videoteleng/Src/State/CVtEngDtmfBuffered.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* 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: Buffered state of DTMF sending. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngDtmfState.h" -#include "VtEngPanic.h" -#include - -// CONSTANTS -const TInt KVtEngDtmfToneBufferSize = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngDtmfBuffered::NewL -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfState* CVtEngDtmfBuffered::NewL( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) - { - CVtEngDtmfBuffered* self = new ( ELeave ) - CVtEngDtmfBuffered( aDtmfHandler, aH324Config ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfBuffered::~CVtEngDtmfBuffered -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfBuffered::~CVtEngDtmfBuffered() - { - delete iTones; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfBuffered::SendDtmfL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfBuffered::SendDtmfL( const TVtEngDtmfTone& aTone ) - { - // just add to buffer and wait for completion of pending send operation. - iTones->AppendL( aTone ); - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfBuffered::DtmfSendCompleteL -// -// PSEUDO CODE: -// deallocate Protocol dtmf instance -// if ( previous_sending_OK ) -// if ( tones_in_buffer > 1 ) -// next_state = buffered -// else -// next_state = sending -// endif -// send tone from buffer and change state -// endif -// if ( previous_sending_FAIL or new_sending_FAIL ) -// reset buffer -// next_state = idle -// endif -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfBuffered::DtmfSendCompleteL( TInt aError ) - { - __VTPRINTENTER( "DtmfStateBuffered.DtmfSendCompleteL" ) - CVtEngDtmfState::DtmfSendCompleteL( aError ); - const TInt count( iTones->Count() ); - __VTPRINT2( DEBUG_MEDIA , "DtmfStateBuffered.Send bufSize=%d", count ) - - TInt index( KErrNone ); - if ( count && aError == KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA , "DtmfStateBuffered cnt=%d", count ) - const TVtEngDtmfTone& tone = iTones->At( index ); - MVtEngDtmfHandler::TVtEngDtmfState nextState = ( count > 1 ) ? - MVtEngDtmfHandler::EVtDtmfStateBuffered : - MVtEngDtmfHandler::EVtDtmfStateSending; - TRAP( aError, DoSendAndActivateStateL( tone, nextState ) ); - iTones->Delete( index ); - } - - if ( aError != KErrNone ) - { - __VTPRINT2( DEBUG_MEDIA , "DtmfStateBuffered.failed=%d", aError ) - // if failed clear DTMF buffer and go to dtmf idle state - iTones->Reset(); - iDtmfHandler.ActivateState( MVtEngDtmfHandler::EVtDtmfStateIdle ); - } - __VTPRINTEXIT( "DtmfStateBuffered.DtmfSendCompleteL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngDtmfBuffered::CVtEngDtmfBuffered -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfBuffered::CVtEngDtmfBuffered( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) - : CVtEngDtmfState( aDtmfHandler, aH324Config) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfBuffered::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfBuffered::ConstructL() - { - iTones = new ( ELeave ) - CArrayFixFlat( KVtEngDtmfToneBufferSize ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngDtmfIdle.cpp --- a/vtengines/videoteleng/Src/State/CVtEngDtmfIdle.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* 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: Idle state of DTMF sending. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngDtmfState.h" -#include "VtEngPanic.h" -#include "MVtEngDtmfHandler.h" -#include -#include - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CVtEngDtmfIdle::NewL -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfState* CVtEngDtmfIdle::NewL( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) - { - CVtEngDtmfIdle* self = new ( ELeave ) - CVtEngDtmfIdle( aDtmfHandler, aH324Config ); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfIdle::~CVtEngDtmfIdle -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfIdle::~CVtEngDtmfIdle() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfIdle::SendDtmfL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfIdle::SendDtmfL( const TVtEngDtmfTone& aTone ) - { - __VTPRINTENTER( "DtmfStateIdle.Send" ) - DoSendAndActivateStateL( aTone, MVtEngDtmfHandler::EVtDtmfStateSending ); - __VTPRINTEXIT( "DtmfStateIdle.Send" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfIdle::DtmfSendCompleteL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfIdle::DtmfSendCompleteL( TInt /*aError*/ ) - { - __VTPRINT( DEBUG_MEDIA , "DtmfStateIdle.SendComplete" ) - // Do nothing (should be never called since state is always - // "sending" or "buffered" when sending is completed). - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfIdle::CVtEngDtmfIdle -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfIdle::CVtEngDtmfIdle( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) - : CVtEngDtmfState( aDtmfHandler, aH324Config ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngDtmfSending.cpp --- a/vtengines/videoteleng/Src/State/CVtEngDtmfSending.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* -* 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: Sending state of DTMF sending. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngDtmfState.h" -#include "VtEngPanic.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CVtEngDtmfSending::NewL -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfState* CVtEngDtmfSending::NewL( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) - { - CVtEngDtmfState* self = new ( ELeave ) - CVtEngDtmfSending( aDtmfHandler, aH324Config ); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfSending::~CVtEngDtmfSending -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfSending::~CVtEngDtmfSending() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfSending::SendDtmfL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfSending::SendDtmfL( const TVtEngDtmfTone& aTone ) - { - __VTPRINTENTER( "DtmfStateSending.Send" ) - CVtEngDtmfState& state = iDtmfHandler.ActivateState( - MVtEngDtmfHandler::EVtDtmfStateBuffered ); - // let buffered state handle this - state.SendDtmfL( aTone ); - __VTPRINTEXIT( "DtmfStateSending.Send" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfSending::DtmfSendCompleteL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfSending::DtmfSendCompleteL( TInt aError ) - { - __VTPRINTENTER( "DtmfStateSending.SendComplete" ) - CVtEngDtmfState::DtmfSendCompleteL( aError ); - // sending complete, change state - iDtmfHandler.ActivateState( MVtEngDtmfHandler::EVtDtmfStateIdle ); - __VTPRINTEXIT( "DtmfStateSending.SendComplete" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfSending::CVtEngDtmfSending -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfSending::CVtEngDtmfSending( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) - : CVtEngDtmfState( aDtmfHandler, aH324Config ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngDtmfState.cpp --- a/vtengines/videoteleng/Src/State/CVtEngDtmfState.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* 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: Base state class of DTMF sending. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngDtmfState.h" -#include "MVtEngDtmfHandler.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngDtmfState::CVtEngDtmfState -// -// ----------------------------------------------------------------------------- -// -CVtEngDtmfState::CVtEngDtmfState( - MVtEngDtmfHandler& aDtmfHandler, - MVtH324ConfigCommand& aH324Config ) : - iDtmfHandler( aDtmfHandler ), - iH324Config( aH324Config ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfState::DtmfSendCompleteL -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfState::DtmfSendCompleteL( TInt /*aError*/ ) - { - __VTPRINTENTER( "DtmfState.DtmfSendCompleteL" ) - iDtmfHandler.ReleaseProtoDtmf(); - __VTPRINTEXIT( "DtmfState.DtmfSendCompleteL" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngDtmfState::DoSendAndActivateStateL -// -// Requests new Protocol dtmf tone instance from the DTMF handler, sends it and -// changes state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngDtmfState::DoSendAndActivateStateL( - const TVtEngDtmfTone& aDtmf, - MVtEngDtmfHandler::TVtEngDtmfState aNewState ) - { - __VTPRINTENTER( "DtmfState.DoSendAndActivateStateL" ) - MVTUserInput& protoDtmf = iDtmfHandler.ReserveProtoDtmfL( aDtmf ); - iDtmfHandler.StoreCommandId( iH324Config.SendUserInputMessageL( protoDtmf )); - iDtmfHandler.ActivateState( aNewState ); - __VTPRINTEXIT( "DtmfState.DoSendAndActivateStateL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateAlerting.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateAlerting.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2004-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: Base class for states -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateAlerting.h" -#include -#include "CVtEngOperation.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "CVtEngAudioHandler.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateAlerting::CVtEngStateAlerting -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateAlerting::CVtEngStateAlerting( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateAlerting::~CVtEngStateAlerting() - { - __VTPRINT( DEBUG_DESTRUCT, "~StateAlrt") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateAlerting::UpdateL -// Updates state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateAlerting::UpdateL() - { - __VTPRINTENTER( "StateAlert.Update" ) - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - CVtEngStateBase* newState = NULL; - if ( bearerstate == MVtCtlCallControl::EIdle || - bearerstate == MVtCtlCallControl::EDisconnecting ) - { - newState = NewStateL( MVtEngSessionInfo::EIdle ); - } - else - { - newState = NegotiatingOrConnectedStateL(); // or null - } - if ( newState ) - { - newState->OpenL( this ); - } - __VTPRINTEXIT( "StateAlert.Update") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateAlerting::OpenL -// State transition to alerting state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateAlerting::DoOpenL() - { - __VTPRINTENTER( "StateAlert.Open" ) - NotifyStateChange( MVtEngSessionInfo::ERemoteAlerting ); - - // Instantiate temporary devsound for audio routing - AudioHandler().SetRoutingEnablerL( ETrue ); - __VTPRINTEXIT( "StateAlert.Open" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateAlerting::ValidateCommand -// Returns if a command is valid in idle state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateAlerting::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL |DEBUG_GEN, "StateAlert.Validate" ) - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngInitializeEngine: - case KVtEngInitializeEngineDiag: - case KVtEngInitializeEngineTest: - case KVtEngSetSource: - case KVtEngPrepareViewFinder: - case KVtEngPrepareViewFinderDSA: - case KVtEngPrepareViewFinderDP: - case KVtEngStartViewFinder: - case KVtEngPauseViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - okToPerform = ETrue; - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateAlerting::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateAlerting::State() const - { - return MVtEngSessionInfo::ERemoteAlerting; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateAlerting::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateAlerting::HandleL( - CVtEngOperation& aOp ) - { - TBool handled( CVtEngStateBase::HandleL( aOp )); - return handled; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateBase.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateBase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,395 +0,0 @@ -/* -* Copyright (c) 2004-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: Base class for states -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateBase.h" -#include "CVtEngOperation.h" -#include "CVtEngHandlerContainer.h" -#include "TVtEngOperationUtils.h" -#include "CVtEngStateInitializing.h" -#include "CVtEngStateAlerting.h" -#include "CVtEngStateRinging.h" -#include "CVtEngStateConnected.h" -#include "CVtEngStateClearing.h" -#include "CVtEngStateOpen.h" -#include "CVtEngStateNegotiating.h" -#include "CVtEngStateIdle.h" -#include "CVtEngSettings.h" -#include "MVtEngSessionInfo.h" -#include "VtEngUtils.h" -#include "VtEngPanic.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::CVtEngStateBase -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateBase::CVtEngStateBase( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : iStateManager( aStateManager ), - iEventManager( aEventManager ) - { - } - -// Destructor -CVtEngStateBase::~CVtEngStateBase() - { - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::OpenL -// Changes state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateBase::OpenL( CVtEngStateBase* aOldState ) - { - __VTPRINTENTER( "StateBase.Open" ) - __VTPRINT( DEBUG_GEN, "StateBase. **** State Change ****" ) - iStateManager.SetState( *this ); - if ( aOldState ) - { - aOldState->Close(); - } - // call derived class open. - DoOpenL(); - __VTPRINTEXIT( "StateBase.Open" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::Close -// Closes state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateBase::Close() - { - delete this; - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::SaveToSettingsL -// -// Saves configuration to settings. -// ----------------------------------------------------------------------------- -// -void CVtEngStateBase::SaveToSettingsL( CVtEngOperation& aOp ) - { - const TVtEngCommandId command( aOp.Command() ); - - if ( command == KVtEngSetAudioVolume ) - { - MVtEngAudio::TVtEngOutputVolume volume; - TVtEngOpParamUtil::Set( volume, aOp ); - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.SetVolume( volume.iHandsetVolume, volume.iHandsfreeVolume, ETrue ); - settings.SetVolume( volume.iHandsetVolume, volume.iHandsfreeVolume, EFalse ); - } - } -// ----------------------------------------------------------------------------- -// CVtEngStateBase::NotifyStateChangeL -// Notifies state change to event manager. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateBase::NotifyStateChange( - MVtEngSessionInfo::TSessionState /*aNewState*/ ) - { - iEventManager.SessionStateChanged( ); - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::SetVideoEnabled -// -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateBase::SetVideoEnabled( TBool aEnabled ) - { - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.SetVideoEnabled( aEnabled ); - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateBase::HandleL( CVtEngOperation& aOp ) - { - __VTPRINTENTER( "StateBase.Handle" ) - __VTPRINT2( DEBUG_GEN, "StateBase.Handle cmd=%d", aOp.Command() ) - TBool handled( EFalse ); - switch ( aOp.Command() ) - { - case KVtEngSetAudioRouting: - // Change audio routing - AudioHandler().HandleL( aOp ); - break; - - case KVtEngSetAudioVolume: - case KVtEngIncreaseAudioVolume: - case KVtEngDecreaseAudioVolume: - // Change audio volume - MediaHandler().HandleL( aOp ); - break; - case KVtEngTerminateSession: - default: - break; - } - __VTPRINTEXITR( "StateBase.Handle handled=%d", handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::SessionHandler -// Returns session handler. -// -// ----------------------------------------------------------------------------- -// -CVtEngSessionHandler& CVtEngStateBase::SessionHandler() - { - MVtEngSessionInfo& msession = iStateManager.Handlers().Session(); - CVtEngSessionHandler& handler = - static_cast( msession ); - return handler; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::MediaHandler -// Returns media handler. -// -// ----------------------------------------------------------------------------- -// -CVtEngMediaHandler& CVtEngStateBase::MediaHandler() - { - MVtEngMedia& msession = iStateManager.Handlers().Media(); - CVtEngMediaHandler& handler = - static_cast( msession ); - return handler; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::AudioHandler -// Returns audio handler. -// -// ----------------------------------------------------------------------------- -// -CVtEngAudioHandler& CVtEngStateBase::AudioHandler() - { - MVtEngAudio& maudio = iStateManager.Handlers().Audio(); - CVtEngAudioHandler& handler = - static_cast( maudio ); - return handler; - } -// ----------------------------------------------------------------------------- -// CVtEngStateBase::SessionHandler -// Returns session handler. -// -// ----------------------------------------------------------------------------- -// -CVtEngStateBase* CVtEngStateBase::NewStateL( - const MVtEngSessionInfo::TSessionState aState ) - { - CVtEngStateBase* newState = NULL; - switch ( aState ) - { - case MVtEngSessionInfo::EIdle: - newState = new ( ELeave ) - CVtEngStateIdle( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::EInitializing: - newState = new ( ELeave ) - CVtEngStateInitializing( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::ERemoteAlerting: - newState = new ( ELeave ) - CVtEngStateAlerting( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::EReceiving: - newState = new ( ELeave ) - CVtEngStateRinging( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::EConnected: - newState = new ( ELeave ) - CVtEngStateConnected( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::ENegotiating: - newState = new ( ELeave ) - CVtEngStateNegotiating( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::EOpen: - newState = new ( ELeave ) - CVtEngStateOpen( iStateManager, iEventManager ); - break; - case MVtEngSessionInfo::EClearing: - newState = new ( ELeave ) - CVtEngStateClearing( iStateManager, iEventManager ); - break; - default: - Panic( EVtEngPanicInvalidSessionState ); - break; - } - return newState; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::NegotiatingOrConnectedStateL -// -// ----------------------------------------------------------------------------- -// -CVtEngStateBase* CVtEngStateBase::NegotiatingOrConnectedStateL( - TBool aAcceptOnlyNegotiating ) - { - __VTPRINTENTER( "StateBase.NegOrCon" ) - __VTPRINT2( DEBUG_GEN, "StateBase.NegOrCon %d", aAcceptOnlyNegotiating) - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - CVtEngStateBase* newState = NULL; - if ( bearerstate == MVtCtlCallControl::EConnected ) - { - const MVtProtocolCommand::TVtProtocolState state( MediaHandler().ProtoState() ); - const CVtEngSettings& settings = CVtEngUtility::Settings(); - const TBool readyForConnect = settings.Config().iReadyForConnect; - - __VTPRINT3( DEBUG_GEN, "StateBase.NegOrCon readyForConnect:%d, state:%d", readyForConnect, state) - __VTPRINT2( DEBUG_GEN, "StateBase.NegOrCon iIsDataportLoaned:%d", settings.Config().iIsDataportLoaned) - - if ( readyForConnect && state == MVtProtocolCommand::ESetup && settings.Config().iIsDataportLoaned ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "StateBase.NegOrCon ready & ESetup") - const TInt res( MediaHandler().Connect() ); - if ( res == KErrNotReady ) - { - // Cannot be done yet, need to wait for an operation - // to complete. - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "StateBase.NegOrCon not ready" ) - } - else if ( res != KErrNone ) - { - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "StateBase.NegOrCon fail") - iEventManager.NotifyEvent( KVtEngNegotiationProblem ); - } - else - { - // change to negotiating state - newState = NewStateL( MVtEngSessionInfo::ENegotiating ); - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "StateBase.NegOrCon-->negotiating") - } - } - else if ( !aAcceptOnlyNegotiating ) - { - newState = NewStateL( MVtEngSessionInfo::EConnected ); - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, - "StateBase.NegOrCon-->connected") - } - } - __VTPRINTEXIT( "StateBase.NegOrCon" ) - return newState; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::TerminateSessionL -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateBase::TerminateSessionL( CVtEngOperation& aOp ) - { - // State transition to "clearing state" initiates disconnect on protocol. - CVtEngStateBase* newState = NewStateL( MVtEngSessionInfo::EClearing ); - // just store aOp for callback to UI - CVtEngMediaHandler& mHandler = MediaHandler(); - CleanupStack::PushL( newState ); - newState->OpenL( this ); - CleanupStack::Pop(); // newState - mHandler.HandleL( aOp ); - } - -// ----------------------------------------------------------------------------- -// CVtEngStateBase::ValidateCommand -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateBase::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL | DEBUG_GEN, "StateBase.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - // Flow through, ok to execute ==> check the state possibilities - case KVtEngInitializeEngine: - case KVtEngInitializeEngineDiag: - case KVtEngInitializeEngineTest: - case KVtEngResetEngine: - case KVtEngStartRenderRemote: - case KVtEngStopRenderRemote: - case KVtEngPrepareRemoteRender: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngPrepareViewFinder: - // Media - case KVtEngSetUIForeground: - okToPerform = ETrue; - break; - case KVtEngPrepareCamera: - case KVtEngSetSource: - case KVtEngSetZoomStep: - case KVtEngStartViewFinder: - case KVtEngFreeze: - case KVtEngUnfreeze: - case KVtEngSetVideoQuality: - case KVtEngHandleLayoutChange: - - // Media object sharing - case KVtEngInitializeShareImage: - case KVtEngStartShareImage: - case KVtEngStopShareImage: - - case KVtEngMuteOutgoingAudio: - case KVtEngUnmuteOutgoingAudio: - case KVtEngSetAudioRouting: - case KVtEngSetAudioVolume: - case KVtEngIncreaseAudioVolume: - case KVtEngDecreaseAudioVolume: - case KVtEngRequestLastRemoteFrame: - - okToPerform = - ( MediaHandler().ValidateCommand( aCommandId ) == KErrNone ); - break; - default: - case KVtEngTerminateSession: // valid only in open state - break; - } - return okToPerform; - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateClearing.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateClearing.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* -* 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: Base class for states -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateClearing.h" -#include -#include "CVtEngOperation.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateClearing::CVtEngStateClearing -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateClearing::CVtEngStateClearing( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateClearing::~CVtEngStateClearing() - { - __VTPRINT( DEBUG_DESTRUCT, "~StateClr") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateClearing::UpdateL -// Updates state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateClearing::UpdateL() - { - __VTPRINTENTER( "StateClr.Update" ) - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - const MVtProtocolCommand::TVtProtocolState protostate( MediaHandler().ProtoState() ); - - __VTPRINT2( DEBUG_GEN, "StateClr.bearerState=%d", bearerstate ) - __VTPRINT2( DEBUG_GEN, "StateClr.protoState=%d", protostate ) - - if ( bearerstate == MVtCtlCallControl::EIdle || - bearerstate == MVtCtlCallControl::EDisconnecting || - bearerstate == MVtCtlCallControl::EUnknown || - protostate == MVtProtocolCommand::EIdle || - protostate == MVtProtocolCommand::ESetup ) - { - CVtEngStateBase* idleState = NewStateL( MVtEngSessionInfo::EIdle ); - idleState->OpenL( this ); - } - __VTPRINTEXIT( "StateClr.Update" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateClearing::OpenL -// State transition to clearing state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateClearing::DoOpenL() - { - __VTPRINTENTER( "StateClr.Open") - - // Do disconnect on Protocol, it is possible that disconnect is already - // ongoing and we get error and that's fine. - TInt err( MediaHandler().Disconnect() ); - if ( err != KErrNone && err != KErrAlreadyExists ) - { - __VTPRINT2( DEBUG_GEN, "StateClr.OpenL disconnect fail=%d", err) - } - // Reset settings - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.ResetAll(); - NotifyStateChange( MVtEngSessionInfo::EClearing ); - __VTPRINTEXIT( "StateClr.Open") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateClearing::ValidateCommand -// Returns if a command is valid in idle state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateClearing::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngTerminateSession: - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateClearing::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateClearing::State() const - { - return MVtEngSessionInfo::EClearing; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateClearing::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateClearing::HandleL( CVtEngOperation& aOp ) - { - TBool handled( CVtEngStateBase::HandleL( aOp )); - return handled; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateConnected.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateConnected.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2004-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: Base class for states -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateConnected.h" -#include -#include "CVtEngOperation.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateConnected::CVtEngStateConnected -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateConnected::CVtEngStateConnected( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateConnected::~CVtEngStateConnected() - { - __VTPRINT( DEBUG_DESTRUCT, "~StateConnected") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateConnected::UpdateL -// Updates state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateConnected::UpdateL() - { - __VTPRINTENTER( "StateConnected.Update") - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - MVtProtocolCommand::TVtProtocolState state( MediaHandler().ProtoState() ); - - - CVtEngStateBase* newState = NULL; - if ( bearerstate != MVtCtlCallControl::EConnected ) - { - // we've lost bearer connection, go to idle - newState = NewStateL( MVtEngSessionInfo::EIdle ); - } - else if ( state == MVtProtocolCommand::EConnected ) - { - // protocol is open (should always go through neg.state but just in case) - // change to open state - newState = NewStateL( MVtEngSessionInfo::EOpen ); - } - else if ( state == MVtProtocolCommand::EDisconnecting || - state == MVtProtocolCommand::EResetting ) - { - // change to clearing state - newState = NewStateL( MVtEngSessionInfo::EClearing ); - } - else - { - // protocol is set up so connect now if ready - newState = NegotiatingOrConnectedStateL( ETrue ); - } - if ( newState ) - { - newState->OpenL( this ); - } - __VTPRINTEXIT( "StateConnected.Update") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateConnected::DoOpenL -// State transition to connected state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateConnected::DoOpenL() - { - __VTPRINTENTER( "StateConnected.Open") - NotifyStateChange( MVtEngSessionInfo::EConnected ); - //start monitor incoming call - __VTPRINTEXIT( "StateConnected.Open") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateConnected::ValidateCommand -// Returns if a command is valid in idle state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateConnected::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL |DEBUG_GEN, "StateConnected.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngSetSource: - case KVtEngPrepareViewFinder: - case KVtEngStartViewFinder: - case KVtEngPauseViewFinder: - case KVtEngStopViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - okToPerform = ETrue; - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateConnected::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateConnected::State() const - { - return MVtEngSessionInfo::EConnected; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateConnected::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateConnected::HandleL( CVtEngOperation& aOp ) - { - TBool handled( CVtEngStateBase::HandleL( aOp )); - return handled; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateIdle.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateIdle.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* Copyright (c) 2004-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: Idle state -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateIdle.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateIdle::CVtEngStateIdle -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateIdle::CVtEngStateIdle( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateIdle::~CVtEngStateIdle() - { - __VTPRINT( DEBUG_DESTRUCT, "~Stateidl") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateIdle::UpdateL -// Updates state -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateIdle::UpdateL() - { - __VTPRINTENTER( "StateIdle.Update") - - const MVtCtlCallControl::TVtCtlState state = SessionHandler().RealState(); - CVtEngStateBase* newState = NULL; - - if( iStateManager.PreviousSessionState() == MVtEngSessionInfo::EUnknown ) - { - switch ( state ) - { - case MVtCtlCallControl::EInitializing: - newState = NewStateL( MVtEngSessionInfo::EInitializing ); - break; - case MVtCtlCallControl::EAlerting: - newState = NewStateL( MVtEngSessionInfo::ERemoteAlerting ); - break; - case MVtCtlCallControl::ERinging: - newState = NewStateL( MVtEngSessionInfo::EReceiving ); - break; - case MVtCtlCallControl::EConnected: - newState = NegotiatingOrConnectedStateL(); - break; - default: - break; - } - if ( newState ) - { - CVtEngUtility* utils = CVtEngUtility::EngineUtils(); - - // Notify UI about initial autolock state. UI must have this - // information early enough to deduce if it is allowed to - // go to foreground. - utils->NotifyLockState(); - utils->StartSATListenL(); - newState->OpenL( this ); - } - } - else - { - __VTPRINT( DEBUG_GEN, "StateIdle.Update wrong previous state, ignoring") - } - __VTPRINTEXIT( "StateIdle.Update") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateIdle::OpenL -// State transition to idle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateIdle::DoOpenL() - { - __VTPRINTENTER( "StateIdle.Open") - // Reset settings - CVtEngSettings& settings = CVtEngUtility::Settings(); - settings.ResetAll(); - - NotifyStateChange( MVtEngSessionInfo::EIdle ); - __VTPRINTEXIT( "StateIdle.Open") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateIdle::ValidateCommand -// Returns if a command is valid in idle state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateIdle::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL | DEBUG_GEN, "StateIdle.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngPrepareViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRender: - case KVtEngPrepareRemoteRenderNGA: - okToPerform = ETrue; - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateIdle::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateIdle::State() const - { - return MVtEngSessionInfo::EIdle; - } - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateInitializing.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateInitializing.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* Copyright (c) 2006 - 2008 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: Initializing state -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateInitializing.h" -#include "CVtEngOperation.h" -#include "CVtEngSettings.h" -#include "VtEngUtils.h" -#include "CVtEngAudioHandler.h" -#include "CVtEngInitializer.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateInitializing::CVtEngStateInitializing -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateInitializing::CVtEngStateInitializing( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateInitializing::~CVtEngStateInitializing() - { - __VTPRINT( DEBUG_DESTRUCT, "~Stateini") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateInitializing::UpdateL -// Updates state -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateInitializing::UpdateL() - { - __VTPRINTENTER( "StateInit.Update") - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - - CVtEngStateBase* newState = NULL; - if ( bearerstate == MVtCtlCallControl::EIdle || - bearerstate == MVtCtlCallControl::EDisconnecting ) - { - newState = NewStateL( MVtEngSessionInfo::EClearing ); - // Initializer may be waiting for dataport. In that case MediaHandler - // has already signaled reqStatus of CVtEngInitializer which must - // complete KVtEngInitializeEngine command in order uninitialisation to - // finish properly. This scenario may happen in 1st call since phone - // boot, i.e. when dataport name is not already published. - CVtEngUtility::EngineUtils()->Initializer().CancelInit(); - } - else if ( bearerstate == MVtCtlCallControl::EAlerting ) - { - newState = NewStateL( MVtEngSessionInfo::ERemoteAlerting ); - } - else - { - newState = NegotiatingOrConnectedStateL(); // or null - } - if ( newState ) - { - newState->OpenL( this ); - } - __VTPRINTEXIT( "StateInit.Update") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateInitializing::OpenL -// State transition to initializing. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateInitializing::DoOpenL() - { - __VTPRINTENTER( "StateInit.Open" ) - NotifyStateChange( MVtEngSessionInfo::EInitializing ); - - // Instantiate temporary devsound for audio routing - AudioHandler().SetRoutingEnablerL( ETrue ); - __VTPRINTEXIT( "StateInit.Open" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateInitializing::ValidateCommand -// Returns if a command is valid in initializing state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateInitializing::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL | DEBUG_GEN, "StateInit.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngPrepareViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngSetSource: - case KVtEngStartViewFinder: - okToPerform = ETrue; - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateInitializing::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateInitializing::State() const - { - return MVtEngSessionInfo::EInitializing; - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateInitializing::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateInitializing::HandleL( CVtEngOperation& aOp ) - { - TBool handled( CVtEngStateBase::HandleL( aOp )); - if ( !handled ) - { - switch ( aOp.Command() ) - { - case KVtEngStartRenderRemote: - SetVideoEnabled( ETrue ); - handled = ETrue; - break; - } - } - return handled; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateManager.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateManager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -/* -* 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: Implementation of state manager for session and audio routing states. -* -*/ - - - -// INCLUDE FILES -#include "CVtEngStateManager.h" -#include "CVtEngHandlerContainer.h" -#include "CVtEngStateBase.h" -#include "CVtEngStateIdle.h" -#include "CVtEngStateOpen.h" -#include "CVtEngEventManager.h" -#include "CVtEngStateConnected.h" -#include "CVtEngOperation.h" -#include "cvtlogger.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::CVtEngStateManager -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateManager::CVtEngStateManager( - CVtEngHandlerContainer& aHandlers, - CVtEngEventManager& aEventManager ) : - iPreviousSessionState( MVtEngSessionInfo::EUnknown ), - iHandlers( aHandlers ), - iEventManager( aEventManager ) - { - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtEngStateManager::ConstructL() - { - iSessionState = new ( ELeave ) - CVtEngStateIdle( *this, iEventManager ); - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtEngStateManager* CVtEngStateManager::NewL( - CVtEngHandlerContainer& aHandlers, - CVtEngEventManager& aEventManager ) - { - __VTPRINT( DEBUG_GEN , "CVtEngStateManager::NewL" ) - CVtEngStateManager* self = new ( ELeave ) - CVtEngStateManager( aHandlers, aEventManager ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CVtEngStateManager::~CVtEngStateManager() - { - __VTPRINT( DEBUG_GEN , "CVtEngStateManager::~" ) - delete iSessionState; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::UpdateL -// Updates current state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateManager::Update( ) - { - if ( iSessionState ) - { - TRAPD(err,iSessionState->UpdateL()); - if ( err != KErrNone ) - { - __VTPRINT2( DEBUG_GEN, "SM.update fail=%d", err ) - iEventManager.NotifyEvent( err ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::IsCommandPossible -// Checks if a command is possible in current state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateManager::IsCommandPossible( - const TVtEngCommandId aCommandId ) const - { - if ( iSessionState ) - { - return iSessionState->ValidateCommand( aCommandId ); - } - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::SetState -// Sets new session state. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateManager::SetState( CVtEngStateBase& aNewState ) - { - if( iSessionState ) - { - iPreviousSessionState = iSessionState->State(); - } - iSessionState = &aNewState; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::HandleOperationL -// -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateManager::HandleOperationL( CVtEngOperation& aOp ) - { - __VTPRINT2( DEBUG_GEN, "StateMgr.HandleOp=%d", aOp.Command() ) - TInt handled( EFalse ); - if ( iSessionState ) - { - handled = iSessionState->HandleL( aOp ); - } - __VTPRINT2( DEBUG_GEN | DEBUG_RETURN, "StateMgr.HandleOp handled=%d", - handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::SessionState -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateManager::SessionState() const - { - if ( iSessionState ) - { - return iSessionState->State(); - } - return MVtEngSessionInfo::EUnknown; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateManager::PreviousSessionState -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateManager::PreviousSessionState() const - { - return iPreviousSessionState; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateNegotiating.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateNegotiating.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* Copyright (c) 2004-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: Negotiating state -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateNegotiating.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateNegotiating::CVtEngStateNegotiating -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateNegotiating::CVtEngStateNegotiating( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateNegotiating::~CVtEngStateNegotiating() - { - __VTPRINT( DEBUG_DESTRUCT, "~Stateneg") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateNegotiating::UpdateL -// Updates state -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateNegotiating::UpdateL() - { - __VTPRINTENTER( "StateNegotiate.Update" ) - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - const MVtProtocolCommand::TVtProtocolState state( MediaHandler().ProtoState() ); - CVtEngStateBase* newState = NULL; - - if ( bearerstate != MVtCtlCallControl::EConnected || - state == MVtProtocolCommand::ESetup ) // <- connect failed - { - newState = NewStateL( MVtEngSessionInfo::EClearing ); - } - else if ( state == MVtProtocolCommand::EConnected ) - { - // change to open state - newState = NewStateL( MVtEngSessionInfo::EOpen ); - } - else if ( state == MVtProtocolCommand::ESetup ) - { - // should not usually happen unless connect fails - newState = NewStateL( MVtEngSessionInfo::EConnected ); - } - if ( newState ) - { - newState->OpenL( this ); - } - __VTPRINTEXIT( "StateNegotiate.Update" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateNegotiating::OpenL -// State transition to negotiating. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateNegotiating::DoOpenL( ) - { - __VTPRINTENTER( "StateNegotiate.Open" ) - NotifyStateChange( MVtEngSessionInfo::ENegotiating); - __VTPRINTEXIT( "StateNegotiate.Open" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateNegotiating::ValidateCommand -// Returns if a command is valid in negotiating state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateNegotiating::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL | DEBUG_GEN, "StateNegotiate.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngPrepareViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRender: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngStartRenderRemote: // cached to settings - case KVtEngSetSource: - case KVtEngPrepareCamera: - case KVtEngSetZoomStep: - case KVtEngStartViewFinder: - case KVtEngStopViewFinder: - case KVtEngTerminateSession: - okToPerform = ETrue; - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateNegotiating::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateNegotiating::State() const - { - return MVtEngSessionInfo::ENegotiating; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateNegotiating::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateNegotiating::HandleL( CVtEngOperation& aOp ) - { - __VTPRINTENTER( "StateNegotiate.HandleL" ) - TBool handled( CVtEngStateBase::HandleL( aOp ) ); - if ( !handled ) - { - switch ( aOp.Command() ) - { - case KVtEngStartRenderRemote: - SetVideoEnabled( ETrue ); - handled = ETrue; - break; - case KVtEngTerminateSession: - TerminateSessionL( aOp ); - break; - } - } - __VTPRINTEXITR( "StateNegotiate.HandleL %d", handled ) - return handled; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateOpen.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateOpen.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,288 +0,0 @@ -/* -* Copyright (c) 2006 - 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: Open state handle interfaces implementation -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateOpen.h" -#include "CVtEngOperation.h" -#include "CVtEngAudioHandler.h" -#include - -#include "CVtEngExtensions.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::CVtEngStateOpen -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateOpen::CVtEngStateOpen( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateOpen::~CVtEngStateOpen() - { - __VTPRINT( DEBUG_DESTRUCT, "~StateOpen") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::UpdateL -// Updates state -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateOpen::UpdateL() - { - __VTPRINTENTER( "StateOpen.Update" ) - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - - const MVtProtocolCommand::TVtProtocolState protoState( MediaHandler().ProtoState() ); - const TBool bearerIdle = ( bearerstate == MVtCtlCallControl::EIdle || - bearerstate == MVtCtlCallControl::EUnknown ); - const TBool bearerDisconnecting = - ( bearerstate == MVtCtlCallControl::EDisconnecting ); - - CVtEngStateBase* newState = NULL; - - if ( protoState == MVtProtocolCommand::ESetup || - protoState == MVtProtocolCommand::EIdle || - bearerIdle ) - { - newState = NewStateL( MVtEngSessionInfo::EIdle ); - } - else if ( bearerDisconnecting || protoState == MVtProtocolCommand::EDisconnecting ) - { - newState = NewStateL( MVtEngSessionInfo::EClearing ); - } - if ( newState ) - { - newState->OpenL( this ); - } - __VTPRINTEXIT( "StateOpen.Update" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::OpenL -// State transition to open. -// ----------------------------------------------------------------------------- -// -void CVtEngStateOpen::DoOpenL() - { - __VTPRINTENTER( "StateOpen.Open" ) - - // set audio routing (and ouput volume) - RouteAudioL( NULL ); - - NotifyStateChange( MVtEngSessionInfo::EOpen ); - __VTPRINTEXIT( "StateOpen.Open" ) - } - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::ValidateCommand -// Returns if a command is valid in open state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateOpen::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL | DEBUG_GEN, "StateOpen.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngInitializeEngine: // temporary - case KVtEngPrepareCamera: - case KVtEngSetZoomStep: - case KVtEngStartViewFinder: - case KVtEngPauseViewFinder: - case KVtEngStopViewFinder: - case KVtEngStartRenderRemote: - case KVtEngStopRenderRemote: - case KVtEngPauseRenderRemote: - case KVtEngTerminateSession: - case KVtEngStartDtmfTone: - case KVtEngStopDtmfTone: - // Handling of different UIIs, support is there - case KVtEngSetUIIDtmfSupport: - case KVtEngSetUIIBasicStringSupport: - case KVtEngSetUIIIA5StringSupport: - case KVtEngSetUIIGeneralStringSupport: - case KVtEngSwitchToVoice: - okToPerform = ETrue; - break; - - // Extension commands - case KVtEngSetContrast: - case KVtEngSetBrightness: - case KVtEngSetWhiteBalance: - case KVtEngSetColorTone: -#if defined ( RD_VT_RTF ) - case KVtEngStartRecord: - case KVtEngStopRecord: -#endif // RD_VT_RTF - { - // Get extension handle from Utils - __VTPRINT(DEBUG_GEN, "StateOpen extension->ValidateCommand") - okToPerform = CVtEngUtility::Extensions()->ValidateCommand( - aCommandId ); - break; - } - - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateOpen::State() const - { - return MVtEngSessionInfo::EOpen; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::HandleL -// Handles an operation when behavior is state dependent. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateOpen::HandleL( CVtEngOperation& aOp ) - { - __VTPRINTENTER( "StateOpen.HandleL" ) - TBool handled( CVtEngStateBase::HandleL( aOp ) ); - switch ( aOp.Command() ) - { - case KVtEngTerminateSession: - TerminateSessionL( aOp ); - handled = ETrue; - break; - - case KVtEngSwitchToVoice: - { - CVtEngStateBase* newState = - NewStateL( MVtEngSessionInfo::EClearing ); - CleanupStack::PushL( newState ); - newState->OpenL( this ); - CleanupStack::Pop(); - // aOp is not passed to media handler because mediator command - // sender signals completion, see - // CVtEngMdtrCommandSender::HandleVtEventL - } - break; - - // Extension commands - case KVtEngSetContrast: - case KVtEngSetBrightness: - case KVtEngSetWhiteBalance: - case KVtEngSetColorTone: -#if defined ( RD_VT_RTF ) - case KVtEngStartRecord: - case KVtEngStopRecord: -#endif // RD_VT_RTF - CallExtensionL( &aOp); - break; - default: - break; - } - __VTPRINTEXITR( "StateOpen.HandleL %d", handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::RouteAudioL -// Handles audio routing operation. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateOpen::RouteAudioL( - CVtEngOperation* aOp ) - { - __VTPRINTENTER( "StateOpen.RouteAudioL" ) - CVtEngSettings& settings = CVtEngUtility::Settings(); - const CVtEngSettings::TVtEngVideoCallConfig& config = settings.Config(); - - CVtEngAudioHandler& audioHandler = AudioHandler(); - MVtEngAudio::TAudioRoutingState routingState( MVtEngAudio::EAudioWiredHeadset ); - audioHandler.GetRoutingState( routingState ); - - TBool routeAudio( ETrue ); - TInt volume( config.iAudio.iVolume.iHandsfreeVolume ); - switch ( routingState ) - { - case MVtEngAudio::EAudioWiredHeadset: - routeAudio = EFalse; - // fall thru - case MVtEngAudio::EAudioHandset: - case MVtEngAudio::EAudioBT: - volume = config.iAudio.iVolume.iHandsetVolume; - break; - // use default values - case MVtEngAudio::EAudioLoudspeaker: - default: - break; - } - __VTPRINT3( DEBUG_GEN | DEBUG_DETAIL, - "StateOpen.RouteAudioL route=%d,vol=%d", routeAudio,volume ) - if ( aOp == NULL || ( aOp && routeAudio ) ) - { - // set volume if state was changed (called from DoOpenL) or - // audio routing will be changed - __VTPRINT( DEBUG_GEN | DEBUG_DETAIL, "StateOpen.RouteAudioL SetVol" ) - MediaHandler().SetVolume( volume ); - } - - // *** AUDIO && ( aOp != NULL ) *** - if ( routeAudio && ( aOp != NULL ) ) - { - if ( aOp ) - { - audioHandler.HandleL( *aOp ); - } - } - __VTPRINTEXIT( "StateOpen.RouteAudioL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateOpen::CallExtensionL -// Handles extension operations. -// -// ----------------------------------------------------------------------------- -// -void CVtEngStateOpen::CallExtensionL( - CVtEngOperation* aOp) - { - __VTPRINTENTER( "StateOpen.CallExtensionL" ) - CVtEngUtility::Extensions()->OfferOperationL( aOp ); - __VTPRINTEXIT( "StateOpen.CallExtensionL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/Src/State/CVtEngStateRinging.cpp --- a/vtengines/videoteleng/Src/State/CVtEngStateRinging.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -/* -* Copyright (c) 2004-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: Ringing state handle interfaces implementation -* -*/ - - -// INCLUDE FILES -#include "CVtEngStateRinging.h" -#include "CVtEngInitializer.h" -#include "VtEngUtils.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtEngStateRinging::CVtEngStateRinging -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtEngStateRinging::CVtEngStateRinging( - CVtEngStateManager& aStateManager, - CVtEngEventManager& aEventManager ) - : CVtEngStateBase( aStateManager, aEventManager ) - { - } - -// Destructor -CVtEngStateRinging::~CVtEngStateRinging() - { - __VTPRINT( DEBUG_DESTRUCT, "~StateRing") - } - - -// ----------------------------------------------------------------------------- -// CVtEngStateRinging::UpdateL -// Updates state -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateRinging::UpdateL() - { - __VTPRINTENTER( "StateRing.Update" ) - const MVtCtlCallControl::TVtCtlState bearerstate = - SessionHandler().RealState(); - CVtEngStateBase* newState = NULL; - switch ( bearerstate ) - { - case MVtCtlCallControl::EConnected: - newState = NegotiatingOrConnectedStateL(); - break; - case MVtCtlCallControl::EDisconnecting: - case MVtCtlCallControl::EIdle: - newState = NewStateL( MVtEngSessionInfo::EIdle ); - // Initializer may be waiting for dataport. In that case MediaHandler - // has already signaled reqStatus of CVtEngInitializer which must - // complete KVtEngInitializeEngine command in order uninitialisation to - // finish properly. This scenario may happen in 1st call since phone - // boot, i.e. when dataport name is not already published. - CVtEngUtility::EngineUtils()->Initializer().CancelInit(); - break; - default: - break; - } - if ( newState ) - { - newState->OpenL( this ); - } - __VTPRINTEXIT( "StateRing.Update") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateRinging::OpenL -// State transition to Ring. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtEngStateRinging::DoOpenL() - { - __VTPRINTENTER( "StateRing.Open") - NotifyStateChange( MVtEngSessionInfo::EReceiving ); - __VTPRINTEXIT( "StateRing.Open") - } - -// ----------------------------------------------------------------------------- -// CVtEngStateRinging::ValidateCommand -// Returns if a command is valid in ringing state. -// -// ----------------------------------------------------------------------------- -// -TBool CVtEngStateRinging::ValidateCommand( - const TVtEngCommandId aCommandId ) - { - __VTPRINT( DEBUG_DETAIL | DEBUG_GEN, "Statering.Validate") - TBool okToPerform( EFalse ); - switch ( aCommandId ) - { - case KVtEngSetSource: - case KVtEngPrepareViewFinder: - case KVtEngStartViewFinder: - case KVtEngPauseViewFinder: - case KVtEngPrepareRemoteRenderDSA: - case KVtEngPrepareRemoteRenderDP: - case KVtEngPrepareRemoteRender: - case KVtEngPrepareRemoteRenderNGA: - case KVtEngStartRenderRemote: - okToPerform = ETrue; - break; - default: - okToPerform = CVtEngStateBase::ValidateCommand( aCommandId ); - break; - } - return okToPerform; - } - -// ----------------------------------------------------------------------------- -// CVtEngStateRinging::State -// Returns session state. -// -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState CVtEngStateRinging::State() const - { - return MVtEngSessionInfo::EReceiving; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/bwins/VIDEOTELENGU.DEF --- a/vtengines/videoteleng/bwins/VIDEOTELENGU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -EXPORTS - ??1CVtEngModel@@UAE@XZ @ 1 NONAME ; CVtEngModel::~CVtEngModel(void) - ?Audio@CVtEngModel@@QBEAAVMVtEngAudio@@XZ @ 2 NONAME ; class MVtEngAudio & CVtEngModel::Audio(void) const - ?CommandHandler@CVtEngModel@@QBEAAVMVtEngCommandHandler@@XZ @ 3 NONAME ; class MVtEngCommandHandler & CVtEngModel::CommandHandler(void) const - ?Extension@CVtEngModel@@QAEPAXABVTUid@@@Z @ 4 NONAME ; void * CVtEngModel::Extension(class TUid const &) - ?Media@CVtEngModel@@QBEAAVMVtEngMedia@@XZ @ 5 NONAME ; class MVtEngMedia & CVtEngModel::Media(void) const - ?NewL@CVtEngModel@@SAPAV1@AAVMVtEngEventObserver@@AAVMVtEngCommandObserver@@@Z @ 6 NONAME ; class CVtEngModel * CVtEngModel::NewL(class MVtEngEventObserver &, class MVtEngCommandObserver &) - ?Session@CVtEngModel@@QBEAAVMVtEngSessionInfo@@XZ @ 7 NONAME ; class MVtEngSessionInfo & CVtEngModel::Session(void) const - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/data/videoteleng_stub.SIS Binary file vtengines/videoteleng/data/videoteleng_stub.SIS has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/videoteleng/data/videoteleng_stub.pkg --- a/vtengines/videoteleng/data/videoteleng_stub.pkg Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -; -; Copyright (c) 2009 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: -; -; Languages -&EN - -; Header -#{"videoteleng"}, (0x101F867F), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\videoteleng.dll" -""-"z:\sys\bin\cscallctrl.dll" -""-"z:\sys\bin\vtlogger.dll" diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/data/vtmediatorplugin.pkg --- a/vtengines/vtmediatorplugin/data/vtmediatorplugin.pkg Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -; -; Copyright (c) 2009 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: -; - -; vtmediatorplugin.pkg -; -; Languages -&EN - -;Header -#{"vtmediatorplugin patch"},(0x2001599F),10,1,0,TYPE=PU - -; localized vendor name -%{"Nokia"} - -; unique vendor name -:"Nokia" - -"\epoc32\release\armv5\udeb\vtmediatorplugin.dll"-"!:\sys\bin\vtmediatorplugin.dll" -"\epoc32\data\z\resource\plugins\vtmediatorplugin.rsc"-"!:\sys\bin\vtmediatorplugin.rsc" - - -; End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/data/vtmediatorplugin.rss --- a/vtengines/vtmediatorplugin/data/vtmediatorplugin.rss Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2008 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: Resource file for VT Mediator plugin. -* -*/ - - -// RESOURCE IDENTIFIER -// n/a - -// INCLUDES -#include -#include - - -// ----------------------------------------------------------------------------- -// theInfo -// ECom interface definition for the VT Mediator plugin. -// ----------------------------------------------------------------------------- -RESOURCE REGISTRY_INFO theInfo - { - resource_format_version = RESOURCE_FORMAT_VERSION_2; - dll_uid = 0x2001599F; - interfaces = - { - INTERFACE_INFO - { - interface_uid = KMediatorPluginInterfaceUid; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x200159A0; - version_no = 1; - display_name = "VT Mediator Plugin"; - default_data = "Mediator"; - opaque_data = ""; - rom_only = 1; - } - }; - } - }; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/data/vtmediatorplugin.sis Binary file vtengines/vtmediatorplugin/data/vtmediatorplugin.sis has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/data/vtmediatorplugin_stub.pkg --- a/vtengines/vtmediatorplugin/data/vtmediatorplugin_stub.pkg Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -; -; Copyright (c) 2009 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: -; -; Languages -&EN - -; Header -#{"vtmediatorplugin"}, (0x2001599F), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\vtmediatorplugin.dll" -""-"z:\resource\plugins\vtmediatorplugin.r*" diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/data/vtmediatorplugin_stub.sis Binary file vtengines/vtmediatorplugin/data/vtmediatorplugin_stub.sis has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/group/bld.inf --- a/vtengines/vtmediatorplugin/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Telephony Mediator Plugin -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../inc/vtinternalmediatorapi.h |../../../inc/vtinternalmediatorapi.h - -../data/vtmediatorplugin_stub.sis /epoc32/data/z/system/install/vtmediatorplugin_stub.sis - -// Export IBY file -../rom/vtmediatorplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(vtmediatorplugin.iby) - -PRJ_MMPFILES -vtmediatorplugin.mmp diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/group/vtmediatorplugin.mmp --- a/vtengines/vtmediatorplugin/group/vtmediatorplugin.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2008 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: Video telephony mediator plugin -* -*/ - - -#include -#include // for APP_LAYER_SYSTEMINCLUDE macro - -// Build target - -CAPABILITY CAP_ECOM_PLUGIN -TARGET vtmediatorplugin.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x2001599F -VENDORID VID_DEFAULT - -SOURCEPATH ../data -START RESOURCE vtmediatorplugin.rss -TARGET vtmediatorplugin.rsc -END - -SOURCEPATH ../src -SOURCE cvtmediatorplugin.cpp -SOURCE vtmediatorpluginproxy.cpp - -USERINCLUDE ../inc -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE /epoc32/include/ecom -APP_LAYER_SYSTEMINCLUDE - -LIBRARY apparc.lib -LIBRARY apgrfx.lib -LIBRARY euser.lib -LIBRARY ws32.lib -LIBRARY ecom.lib -LIBRARY mediatorclient.lib -LIBRARY mediatorpluginbase.lib - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/inc/cvtmediatorplugin.h --- a/vtengines/vtmediatorplugin/inc/cvtmediatorplugin.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,349 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Telephony mediator plugin header -* -*/ - - -#ifndef C_VTMEDIATORPLUGIN_H -#define C_VTMEDIATORPLUGIN_H - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -using namespace TelephonyMediator; -using namespace MediatorService; - -class TelephonyMediator::TTelephonyCallDataParam; -class CMediatorCommandInitiator; -/** -* Mediator plugin for CS video telephony. Fullfills responsibilities: -* - launches Video Telephone application -* - caches CLI and Dataport information for VT app for time between -* the data is broadcasted to time VT is ready to receive it. -* @since S60 5.0 -*/ - -class CVtMediatorPlugin : public CMediatorPluginBase, - public MMediatorNotifications, - public MMediatorEventObserver, - public MMediatorCommandObserver, - public MMediatorCommandResponseObserver - { -public: - - static CMediatorPluginBase* NewL(); - - /** - * Destructor. - */ - ~CVtMediatorPlugin(); - -public: // From Base class - - virtual void StartL(); - -public: // From MMediatorNotifications - - /** - * Raises VT specific CLI/dataport event when event is registered by VT app, - * or when the information is available - * - * @since Series 60 3.1 - * @param aDomain The identifier of the domain. - * @param aCategory The identifier of the category. - * @param aEvents The list of events that have been registered. - * @return None. - */ - virtual void MediatorEventsAddedL( TUid aDomain, - TUid aCategory, - const REventList& aEvents ); - - /** - * New commands have been registered. The commands can now be subscribed. - * The list can contain 1-n new commands into the category. - * - * @since Series 60 3.1 - * @param aDomain The identifier of the domain. - * @param aCategory The identifier of the category. - * @param aCommands List of commands that have been registered. - * @return None. - */ - virtual void MediatorCommandsAddedL( TUid aDomain, - TUid aCategory, - const RCommandList& aCommands ); - - /** - * A category has been removed. All subscriptions are cancelled. - * - * @since Series 60 3.1 - * @param aDomain The identifier of the domain. - * @param aCategory The identifier of the category. - * @return None. - */ - virtual void MediatorCategoryRemovedL( TUid aDomain, TUid aCategory ); - - /** - * List of events has been removed. All subscriptions are cancelled. - * List can contain 1-n events from the specified category. - * - * @since Series 60 3.1 - * @param aDomain The identifier of the domain. - * @param aCategory The identifier of the category. - * @param aEvents The list of events removed. - * @return None. - */ - virtual void MediatorEventsRemovedL( TUid aDomain, - TUid aCategory, - const REventList& aEvents ); - - /** - * List of commands have been removed. All subscriptions are cancelled. - * List can contain 1-n commands from the specified category. - * - * @since Series 60 3.1 - * @param aDomain The identifier of the domain. - * @param aCategory The identifier of the category. - * @param aCommands The list of commands removed - * @return None. - */ - virtual void MediatorCommandsRemovedL( TUid aDomain, - TUid aCategory, - const MediatorService::RCommandList& aCommands ); - -public: // from MMediatorCommandObserver - - /** - * @see MMediatorCommandObserver::MediatorCommandL - */ - virtual void MediatorCommandL( TUid aDomain, - TUid aCategory, - TInt aCommandId, - TVersion aVersion, - const TDesC8& aData ); - - /** - * @see MMediatorCommandObserver::CancelMediatorCommand - */ - virtual void CancelMediatorCommand( TUid aDomain, - TUid aCategory, - TInt aCommandId ); - -public:// from MMediatorCommandResponseObserver - /** - * @see MMediatorCommandResponseObserver::CommandResponseL - */ - virtual void CommandResponseL( TUid aDomain, - TUid aCategory, - TInt aCommandId, - TInt aStatus, - const TDesC8& aData ); - -public: // from MMediatorEventObserver - - /** - * A Mediator Service event. - * - * @since Series 60 3.1 - * @param aDomain The identifier of the domain. - * @param aCategory The identifier of the category. - * @param aEventId The identifier of the event. - * @param aData The parameters of the event. - * @return None. - */ - virtual void MediatorEventL( TUid aDomain, - TUid aCategory, - TInt aEventId, - const TDesC8& aData ); - -public: // new - static TInt EventRaiserCallback( TAny* aAny ); - -private: // constructors - - CVtMediatorPlugin(); void ConstructL(); - - enum TInternalState { - /** - * Waiting for video call state to reach value that is suitable - * for launching Video Telephone application. In this state - * video call is not ongoing. - */ - EWaitingAppLaunch, - - /** - * Waiting for VT application's readiness to receive video call info - * events. In this state video call is ongoing and VT application - * is starting up. - */ - EWaitingEventRegistration, - - /** - * VT application is ready to receive video call info events. - */ - EReady - }; - -private: // new functions - void ChangeCallDataEventSubscriptionL( - const REventList& aEvents, - const TBool aEventRegistered ); - - void HandleVtCommandUnregistrationL(); - - void HandleVtCommandRegistrationL(); - - void LaunchVtAppL(); - - void SaveCallData( const TelephonyMediator::TTelephonyCallDataParam& aData, TVtVideoTelephonyCallInformation& iVtCallInfo); - - void HandleDataportCommandL( const TDesC8& aData ); - - void ClearData(TVtVideoTelephonyCallInformation& aVtCallInfo, TCallState& aCallState); - - void RegisterVtInternalEventL(); - //test - void RegisterVtInternalEvent_2L(); - - void RegisterDataportCommandL(); - - void RaiseVtEventL(); - - /** - * Starts VT application if video call state transition is suitable. - */ - void HandleCallStateChangeL( const TelephonyMediator::TTelephonyCallDataParam& aData ); - - TBool IsEnoughMemory(); - - void FreeRam(); - - void StopDeathActiveL(); - -private: - // for detecting subscription to video call information from VT app. - CMediatorNotifications* iMediatorNotifications; - - // for sending video call information events - CMediatorEventProvider* iEventProvider; - - // for receiving CLI from Telephony - CMediatorEventConsumer* iEventConsumer; - - // for responding to dataport/releasedataport command from Telephony - CMediatorCommandResponder* iCommandResponder; - - // for issue command to vt app - CMediatorCommandInitiator* iCommandInitiator; - - // supported mediator commands - MediatorService::RCommandList iCommandList; - - // plugin's internal state - TInternalState iState; - - // cached active video call state (from last call data event from Telephony) - TCallState iActiveVideoCallState; - - TVtVideoTelephonyCallInformation iActiveVideoCallInfo; - - // cached waiting video call state (from last call data event from Telephony) - TCallState iWaitingVideoCallState; - - TVtVideoTelephonyCallInformation iWaitingVideoCallInfo; - - // for raising event to VT asynchronously when it starts up - CAsyncCallBack* iCallBack; - - class CAppDeathActive; - // Owned application death waiter. - CAppDeathActive* iAppDeathActive; - - // Owned application thread. - RThread iAppThread; - - // Application thread id. - TThreadId iAppThreadId; - - // Owned window server session. - RWsSession iWsSession; - /** - * Active object for waiting thread death. - * - * @since 2.6 - * @lib videotelcomms.lib - */ - NONSHARABLE_CLASS( CAppDeathActive ) : public CActive - { - public: // Constructors - - /** - * Constructor. - */ - CAppDeathActive( CVtMediatorPlugin& aMediatorPlugin, - RThread& aAppThread ); - - /** - * Destructor. - */ - ~CAppDeathActive(); - - public: // New functions - - /** - * Starts active object. - */ - void Start(); - - public: // From base classes - - /** - * @see CActive::RunL. - */ - virtual void RunL(); - - /** - * @see CActive::DoCancel. - */ - virtual void DoCancel(); - - /** - * @see CActive::RunError. - */ - virtual TInt RunError( TInt aError ); - - private: - - // Reference to starter. - CVtMediatorPlugin& iMediatorPlugin; - - // Reference to thread. - RThread& iAppThread; - - }; - - }; - -#endif // C_VTMEDIATORPLUGIN_H - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/inc/vtinternalmediatorapi.h --- a/vtengines/vtmediatorplugin/inc/vtinternalmediatorapi.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* -* Copyright (c) 2008 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: Message Interface between VT mediator plugin and VT application -* -*/ - - -#ifndef VTINTERNALMEDIATORAPI_H -#define VTINTERNALMEDIATORAPI_H - -// INCLUDES -#include - -/** The category UID for the messages in this header file. - * UID for category is not real UID, it just need to unique in Domain - */ -const TUid KCatVideotelInternalEvents = { 0x101F8690 }; -const TUid KCatVideotelInternalCommands = { 0x101F8691 }; - -/** Version number of this API */ -const TInt KVideotelMdtrEventVersionMajor( 1 ); -const TInt KVideotelMdtrEventVersionMinor( 0 ); -const TInt KVideotelMdtrEventVersionBuild( 0 ); - -/** Version number of this API */ -const TInt KVideotelMdtrCommandsVersionMajor( 1 ); -const TInt KVideotelMdtrCommandsVersionMinor( 0 ); -const TInt KVideotelMdtrCommandsVersionBuild( 0 ); - -struct TVtVideoTelephonyCallInformation -{ - /** Max length of display text */ - enum { TDisplayTextMaxLength = 100 }; - - /** Display text type definition */ - typedef TBuf TDisplayText; - - /** Remote end CLI identifier (name/number/call id) */ - TDisplayText iDisplayText; - - /** Call id of the video call */ - TInt iCallId; - - /** Indicates voice call creation possibility to remote end (number is - * available) - */ - TBool iVoiceCallPossible; - - /** Dataport name or empty buffer if not specified in the event */ - TName iDataport; - - /** - * Defines which parts of the event date is valid - */ - enum TMessageDataValidity { - EDisplayTextValid = 0x01, - EDataportValid = 0x02 - }; - - /** Event data validity */ - TUint iEventDataValidity; - -}; - -typedef TPckgBuf TVtMediatorInfoPackage; - -/** Events bwtween Video Telephony Mediator plugin and VT application. */ -enum TVideotelMdtrEvents - { - /** - * Event with TVtVideoTelephonyCallInformation as content - * Consuming event requires capability ECapabilityReadDeviceData - */ - EVtMediatorEventVideoCallInformation = 0 - }; - -enum TVideotelMdtrCommands - { - EVtMediatorReleaseDataport = 0 - }; - -#endif // VTINTERNALMEDIATORAPI_H diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/rom/vtmediatorplugin.iby --- a/vtengines/vtmediatorplugin/rom/vtmediatorplugin.iby Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2008 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: IBY file - * -*/ - -#ifndef __VTMEDIATORPLUGIN_IBY__ -#define __VTMEDIATORPLUGIN_IBY__ - -#ifdef __CS_VIDEO_TELEPHONY -ECOM_PLUGIN( vtmediatorplugin.dll, vtmediatorplugin.rsc) -#endif -#endif - diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/src/cvtmediatorplugin.cpp --- a/vtengines/vtmediatorplugin/src/cvtmediatorplugin.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1024 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Telephony mediator plugin header -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "cvtmediatorplugin.h" - - -// CONSTANTS -#ifdef _DEBUG -#define TRACE(x) RDebug::Print( _L(x) ); -#define TRACE2(x,y) RDebug::Print( _L(x),y ); -#else -#define TRACE(x) -#define TRACE2(x,y) -#endif - -// This array's values are used in algorithm defining if video telephone -// application should be started. Previous state value is substracted from new -// state value and if result is greater than zero, app is started. -// This tackles transitions where a state is for some reason skipped, -// e.g. idle -> connected (dialling/ringing/answering states were not detected). -// Negative value indicates call clearing. -static const TInt KVtCallStateActionArray[] = { - 0, //ECallStateUnknown - 0, //ECallStateIdle - 1, // ECallStateDialling - 0, // ECallStateEmergencyDialling (not valid video call state) - 1, // ECallStateRinging - 1, // ECallStateConnecting - 1, // ECallStateConnected - 0, // ECallStateHangingUp - 0, // ECallStateHeld (not valid video call state) - 1, // ECallStateAnswering - 0, // ECallStateRejecting - 0 // ECallStateDisconnecting - }; - -static const TInt KVtAppNotReady = 5000; - -static const TInt KVtEngMdtrCmdTimeout = 500000; - -static const TInt KVtInitCallId = -1000; - -// array granularity is 2 (use dataport, release dataport commands) -static const TInt KVtMdtrCmdArrayGranularity = 2; - -const TUid KVtCmVideoTelUiUid = { 0x101F8681 }; - -static const TInt KRamNeededForVideoCalls = 4000000; - -// VT application path -_LIT( KVtCmVideoTelUiPath, "\\sys\\bin\\videotelui.exe" ); - - -// ----------------------------------------------------------------------------- -// CMediatorTestPlugin::CMediatorTestPlugin -// First phase construction. -// ----------------------------------------------------------------------------- -CVtMediatorPlugin::CVtMediatorPlugin() : CMediatorPluginBase(), - iCommandList( KVtMdtrCmdArrayGranularity ), - iState( EWaitingAppLaunch ), - iActiveVideoCallState( ECallStateUnknown ), - iWaitingVideoCallState( ECallStateUnknown ) - - { - ClearData(iActiveVideoCallInfo, iActiveVideoCallState); - ClearData(iWaitingVideoCallInfo, iWaitingVideoCallState); - } - -CMediatorPluginBase* CVtMediatorPlugin::NewL() - { - TRACE("CVtMediatorPlugin::NewL<") - CVtMediatorPlugin* self = new (ELeave) CVtMediatorPlugin; - TRACE("CVtMediatorPlugin::NewL>") - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -CVtMediatorPlugin::~CVtMediatorPlugin() - { - TRACE("CVtMediatorPlugin::~CVtMediatorPlugin<") - - if ( iMediatorNotifications ) - { - iMediatorNotifications->UnregisterNotificationObserver(); - delete iMediatorNotifications; - } - - // ignore error - if ( iEventConsumer ) - { - iEventConsumer->UnsubscribeEvent( - KMediatorTelephonyDomain, - KCatEventsFromTelephony, - EPhoneEventCallData ); - delete iEventConsumer; - } - - // ignore error - if ( iEventProvider ) - { - iEventProvider->UnregisterEvent( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalEvents, - EVtMediatorEventVideoCallInformation ); - delete iEventProvider; - } - - // ignore error - if ( iCommandResponder ) - { - iCommandResponder->UnregisterCommand( - KMediatorVideoTelephonyDomain, - KCatPhoneToVideotelCommands, - iCommandList ); - iCommandList.Close(); - delete iCommandResponder; - } - - delete iCommandInitiator; - - - if( iAppDeathActive ) - { - delete iAppDeathActive; - iAppThread.Close(); - iWsSession.Close(); - - } - - TRACE("CVtMediatorPlugin::~CVtMediatorPlugin>") - } - -// ----------------------------------------------------------------------------- -// StartL. -// ----------------------------------------------------------------------------- -void CVtMediatorPlugin::StartL() - { - TRACE("CVtMediatorPlugin.StartL<") - - // for monitoring VT app starting - iMediatorNotifications = CMediatorNotifications::NewL(); - iMediatorNotifications->RegisterNotificationObserver( this ); - - // consumer for call data events - iEventConsumer = CMediatorEventConsumer::NewL( this ); - - iCommandInitiator = CMediatorCommandInitiator::NewL( this ); - - - RegisterVtInternalEventL(); - - RegisterDataportCommandL(); - - TRACE("CVtMediatorPlugin.StartL>") - } - -// ----------------------------------------------------------------------------- -// MediatorEventL. -// ----------------------------------------------------------------------------- -void CVtMediatorPlugin::MediatorEventL( TUid /*aDomain*/, - TUid aCategory, - TInt aEventId, - const TDesC8& aData ) - { - TRACE("CVtMediatorPlugin.MediatorEventL<") - if ( aCategory == KCatEventsFromTelephony && - aEventId == EPhoneEventCallData ) - { - TTelephonyCallDataParamPackage pckg; - pckg.Copy( aData ); - const TTelephonyCallDataParam telCallData = pckg(); - HandleCallStateChangeL( telCallData ); - } - TRACE("CVtMediatorPlugin.MediatorEventL>") - } -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::MediatorEventsAddedL -// -// subscribes to CLI event when it is registered -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::MediatorEventsAddedL( TUid aDomain/*aDomain*/, - TUid aCategory, - const REventList& aEvents ) - { - TRACE("CVtMediatorPlugin.MediatorEventsAddedL<") - - if ( aCategory == KCatEventsFromTelephony ) - { - ChangeCallDataEventSubscriptionL( aEvents, ETrue ); - } - TRACE("CVtMediatorPlugin.MediatorEventsAddedL>") - } - -// ----------------------------------------------------------------------------- -// ?classname::?member_function -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::MediatorCommandsAddedL( TUid /*aDomain*/, - TUid aCategory, - const RCommandList& /*aCommands*/ ) - { - TRACE("CVtMediatorPlugin.MediatorCommandsAddedL<") - if ( aCategory == KCatPhoneToVideotelCommands ) - { - HandleVtCommandRegistrationL(); - } - TRACE("CVtMediatorPlugin.MediatorCommandsAddedL>") - } - -// ----------------------------------------------------------------------------- -// ?classname::?member_function -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::MediatorCategoryRemovedL( TUid /*aDomain*/, - TUid /*aCategory*/ ) - { - } - -// ----------------------------------------------------------------------------- -// ?classname::?member_function -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::MediatorEventsRemovedL( TUid /*aDomain*/, - TUid aCategory, - const REventList& aEvents ) - { - TRACE("CVtMediatorPlugin.MediatorEventsRemovedL<") - if ( aCategory == KCatEventsFromTelephony ) - { - ChangeCallDataEventSubscriptionL( aEvents, EFalse ); - } - TRACE("CVtMediatorPlugin.MediatorEventsRemovedL>") - } - -// ----------------------------------------------------------------------------- -// ?classname::?member_function -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::MediatorCommandsRemovedL( TUid /*aDomain*/, - TUid aCategory, - const RCommandList& /*aCommands*/ ) - { - TRACE("CVtMediatorPlugin.MediatorCommandsRemovedL<") - if ( aCategory == KCatPhoneToVideotelCommands ) - { - // VT has unregistered commands, meaning it is shutting down - HandleVtCommandUnregistrationL(); - } - TRACE("CVtMediatorPlugin.MediatorCommandsRemovedL>") - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::MediatorCommandL -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::MediatorCommandL( TUid aDomain, - TUid aCategory, - TInt aCommandId, - TVersion /*aVersion*/, - const TDesC8& aData ) - { - TRACE("CVtMediatorPlugin.MediatorCommandL<") - if ( aCategory == KCatPhoneToVideotelCommands ) - { - if ( aCommandId == EVtCmdUseDataport ) - { -#ifdef _DEBUG - // error in responding is ignored but printed on debug build - const TInt err = -#endif - iCommandResponder->IssueResponse( - aDomain, aCategory, aCommandId, KErrNone, KNullDesC8() ); - TRACE2("CVtMediatorPlugin.MediatorCommandL EVtCmdUseDataport err=%d", err ) - HandleDataportCommandL( aData ); - } - else if ( aCommandId == EVtCmdReleaseDataport ) - { - if ( EReady == iState ) - { - const TVersion version( - KVideotelMdtrCommandsVersionMajor, - KVideotelMdtrCommandsVersionMinor, - KVideotelMdtrCommandsVersionBuild ); - -#ifdef _DEBUG - // error in responding is ignored but printed on debug build - const TInt err = -#endif - iCommandInitiator->IssueCommand( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalCommands, - EVtMediatorReleaseDataport, - version, - KNullDesC8() ); - TRACE2("CVtMediatorPlugin.MediatorCommandL EVtCmdReleaseDataport, send to VT err=%d", err ) - - } - else - { -#ifdef _DEBUG - // error in responding is ignored but printed on debug build - const TInt err = -#endif - iCommandResponder->IssueResponse( - aDomain, - aCategory, - aCommandId, - KErrNone, - KNullDesC8() ); - TRACE2("CVtMediatorPlugin.MediatorCommandL EVtCmdReleaseDataport, just Resp err=%d", err ) - } - - } - } - TRACE("CVtMediatorPlugin.MediatorCommandL>") - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CommandResponseL -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::CommandResponseL( TUid aDomain, TUid aCategory, - TInt aCommandId, TInt /*aStatus*/, const TDesC8& /*aData*/ ) - { - TRACE("CVtMediatorPlugin.CommandResponseL<") - if( ( aDomain == KMediatorVideoTelephonyDomain ) && - ( aCategory == KCatVideotelInternalCommands ) ) - { - TInt res = - iCommandResponder->IssueResponse( - KMediatorVideoTelephonyDomain, - KCatPhoneToVideotelCommands, - EVtCmdReleaseDataport, - KErrNone, - KNullDesC8() ); - TRACE2("CVtMediatorPlugin.CommandResponseL, IssueResponse res: %d", res ) - User::LeaveIfError( res ); - } - TRACE("CVtMediatorPlugin.CommandResponseL>") - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CancelMediatorCommand -// -// no-op -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::CancelMediatorCommand( TUid /*aDomain*/, - TUid /*aCategory*/, - TInt /*aCommandId*/ ) - { - } -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::ChangeCallDataEventSubscriptionL -// -// Takes care of 'call data' event subscription. -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::ChangeCallDataEventSubscriptionL( - const REventList& aEvents, - const TBool aEventRegistered ) - { - TRACE("CVtMediatorPlugin.ChangeCLIEventSubscription<") - - TInt res( KErrNone ); - TInt eventCount = aEvents.Count(); - while ( eventCount-- ) - { - const TEvent& aEvent = aEvents[ eventCount ]; - if ( aEvent.iEventId == EPhoneEventCallData ) - { - if ( aEventRegistered ) - { - // Phone has registered Call data event => subscribe it - const TVersion version( - KTelephonyEventsVersionMajor, - KTelephonyEventsVersionMinor, - KTelephonyEventsVersionBuild ); - res = iEventConsumer->SubscribeEvent( - KMediatorTelephonyDomain, - KCatEventsFromTelephony, - EPhoneEventCallData, version ); - } - else - { - // Phone has unregistered Call data event => unsubscribe it - res = iEventConsumer->UnsubscribeEvent( - KMediatorTelephonyDomain, - KCatEventsFromTelephony, - EPhoneEventCallData ); - } - TRACE2(" (un)subscribe result=%d", res ) - eventCount = 0; // break loop - } - } - - TRACE2("CVtMediatorPlugin.ChangeCLIEventSubscription result=%d>", res ) - User::LeaveIfError( res ); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::HandleVtCommandRegistrationL -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::HandleVtCommandRegistrationL() - { - TRACE("CVtMediatorPlugin.HandleVtCommandRegistrationL<" ) - if ( iState == EWaitingEventRegistration ) - { - // VT app registered commands => it can also receive events - // NOTE: it is expected that VT application first subscribes - // to internal events and only after that registers commands to - // avoid timing problems. - iState = EReady; - delete iCallBack; - iCallBack = NULL; - TCallBack cb( &EventRaiserCallback, this ); - iCallBack = new ( ELeave ) CAsyncCallBack( cb, - CActive::EPriorityStandard ); - TRACE("CVtMediatorPlugin enque async callback" ) - iCallBack->CallBack(); - } - TRACE("CVtMediatorPlugin.HandleVtCommandRegistrationL>" ) - } - -TInt CVtMediatorPlugin::EventRaiserCallback( TAny* aAny ) - { - TRACE("CVtMediatorPlugin.EventRaiserCallback<" ) - CVtMediatorPlugin* plugin = reinterpret_cast( aAny ); - delete plugin->iCallBack; - plugin->iCallBack = NULL; - TRAP_IGNORE( plugin->RaiseVtEventL() ); - TRACE("CVtMediatorPlugin.EventRaiserCallback>" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin:: -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::HandleVtCommandUnregistrationL() - { - // unregistration means that VT app is shutting down. - TRACE("CVtMediatorPlugin.HandleVtCommandUnregistrationL<" ) - ClearData(iActiveVideoCallInfo, iActiveVideoCallState); - //ClearData(iWaitingVideoCallInfo); - TRACE("CVtMediatorPlugin.HandleVtCommandUnregistrationL>" ) - } - - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin:: -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::LaunchVtAppL() - { - - TRACE("CVtMediatorPlugin.LaunchVtAppL<" ) - - if ( !IsEnoughMemory() ) - { - const TVersion KTelephonyCmdVersion( - KTelephonyCommandsVersionMajor, - KTelephonyCommandsVersionMinor, - KTelephonyCommandsVersionBuild ); - const TInt res = - iCommandInitiator->IssueCommand( - KMediatorTelephonyDomain, - KCatVideoTelToPhoneCommands, - EVtCmdLowMemory, - KTelephonyCmdVersion, - KNullDesC8() ); - ClearData(iActiveVideoCallInfo, iActiveVideoCallState); - ClearData(iWaitingVideoCallInfo, iWaitingVideoCallState); - TRACE("CVtMediatorPlugin.LaunchVtAppL, Insufficient Memory" ) - return; - } - - iAppDeathActive = new ( ELeave ) CAppDeathActive( *this, iAppThread ); - - User::LeaveIfError( iWsSession.Connect() ); - - TInt wgId = 0; - TBool found = EFalse; - - // Check if there is already application running. Then we do not - // start new one - rather we just monitor the existing one. - while ( ( wgId != KErrNotFound ) && !found ) - { - CApaWindowGroupName::FindByAppUid( - KVtCmVideoTelUiUid, - iWsSession, - wgId ); - - TApaTask task( iWsSession ); - task.SetWgId( wgId ); - if ( task.Exists() ) - { - if ( iAppThread.Open( task.ThreadId() ) == KErrNone ) - { - TExitType exitType = iAppThread.ExitType(); - found = ( exitType == EExitPending ); - - if ( found ) - { - iAppThreadId = task.ThreadId(); - } - } - } - - if ( !found ) - { - iAppThread.Close(); - } - } - - // If application was not found, then launch new application. - if ( !found ) - { - TThreadId threadId; -#ifndef SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1 - CApaCommandLine* cmd = CApaCommandLine::NewLC(); - cmd->SetExecutableNameL( KVtCmVideoTelUiPath ); -#else // !SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1 - CApaCommandLine* cmd = CApaCommandLine::NewLC( KVtCmVideoTelUiPath ); -#endif // SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1 - cmd->SetCommandL( EApaCommandBackground ); - - RApaLsSession session; - User::LeaveIfError( session.Connect() ); - CleanupClosePushL( session ); - - TInt err = session.StartApp( *cmd, threadId ); - if ( err > KErrNone ) - { - err = KErrGeneral; - } - User::LeaveIfError( err ); - CleanupStack::PopAndDestroy( 2, cmd ); // CleanupClosePushL, cmd - User::LeaveIfError( iAppThread.Open( threadId ) ); - iAppThreadId = threadId; - } - - // Start active objects. - iState = EWaitingEventRegistration; - iAppDeathActive->Start(); - TRACE("CVtMediatorPlugin.LaunchVtAppL>" ) - } - - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin:: -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::SaveCallData( const TTelephonyCallDataParam& aData, TVtVideoTelephonyCallInformation& iVtCallInfo ) - { - TRACE("CVtMediatorPlugin.SaveCallData<" ) - iVtCallInfo.iDisplayText = aData.iCLIText.Left( - TVtVideoTelephonyCallInformation::TDisplayTextMaxLength ); - - TRACE2("CVtMediatorPlugin.SaveCallData iDisplayText=%S", - &iVtCallInfo.iDisplayText ); - - iVtCallInfo.iCallId = aData.iCallId; - - if ( KNullDesC() != aData.iRemotePhoneNumber ) - { - iVtCallInfo.iVoiceCallPossible = ETrue; - } - iVtCallInfo.iEventDataValidity |= - TVtVideoTelephonyCallInformation::EDisplayTextValid; - TRACE2("CVtMediatorPlugin.SaveCallData data saved=%d>", - aData.iCallType == ECallTypeVideo ) - } - - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin:: -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::HandleDataportCommandL( const TDesC8& aData ) - { - TRACE("CVtMediatorPlugin.HandleDataportCommandL<" ) - TDataPortPackage pckg; - pckg.Copy( aData ); - iActiveVideoCallInfo.iDataport = pckg(); - iActiveVideoCallInfo.iEventDataValidity |= - TVtVideoTelephonyCallInformation::EDataportValid; - RaiseVtEventL(); - TRACE("CVtMediatorPlugin.HandleDataportCommandL>" ) - } - - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::ClearData -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::ClearData(TVtVideoTelephonyCallInformation& aVtCallInfo, TCallState& aCallState) - { - TRACE("CVtMediatorPlugin.ClearData<" ) - if ( aVtCallInfo.iCallId == iActiveVideoCallInfo.iCallId ) - { - iState = EWaitingAppLaunch; - } - aVtCallInfo.iEventDataValidity = 0; - aVtCallInfo.iDataport.Zero(); - aVtCallInfo.iVoiceCallPossible = EFalse; - //for video call, it should be 9/10 - //for other call, it will be from -1 to 8 - aVtCallInfo.iCallId = KVtInitCallId; - aVtCallInfo.iDisplayText.Zero(); - aCallState = ECallStateIdle; - TRACE("CVtMediatorPlugin.ClearData>" ) - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::RegisterVtInternalEventL -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::RegisterVtInternalEventL() - { - TRACE("CVtMediatorPlugin.RegisterVtInternalEventL<" ) - iEventProvider = CMediatorEventProvider::NewL(); - - TVersion version( - KVideotelMdtrEventVersionMajor, - KVideotelMdtrEventVersionMinor, - KVideotelMdtrEventVersionBuild ); - - TCapabilitySet capSet; - capSet.SetEmpty(); - capSet.AddCapability( ECapabilityReadDeviceData ); - - const TInt err = iEventProvider->RegisterEvent( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalEvents, - EVtMediatorEventVideoCallInformation, - version, - capSet ); - - - TRACE2("CVtMediatorPlugin.RegisterVtInternalEventL err=%d>", err ) - User::LeaveIfError( err ); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::RegisterDataportCommandL -// -// -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::RegisterDataportCommandL() - { - TRACE("CVtMediatorPlugin.RegisterDataportCommandL<" ) - iCommandResponder = CMediatorCommandResponder::NewL( this ); - - TCapabilitySet capSet; - capSet.SetEmpty(); - capSet.AddCapability( ECapabilityWriteDeviceData ); - MediatorService::TCommand command; - - command.iCaps = capSet; - command.iVersion = TVersion( - KPhoneToVideotelCmdVersionMajor, - KPhoneToVideotelCmdVersionMinor, - KPhoneToVideotelCmdVersionBuild ); - command.iTimeout = KVtEngMdtrCmdTimeout; - - // enable microphone command - command.iCommandId = EVtCmdUseDataport; - iCommandList.Append( command ); - - // Releasedataport command - capSet.SetEmpty(); - capSet.AddCapability( ECapabilityPowerMgmt ); - command.iCommandId = EVtCmdReleaseDataport; - iCommandList.Append( command ); - - const TInt err = iCommandResponder->RegisterCommand( - KMediatorVideoTelephonyDomain, - KCatPhoneToVideotelCommands, - iCommandList ); - - TRACE2("CVtMediatorPlugin.RegisterDataportCommandL err=%d>", err ) - User::LeaveIfError( err ); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::RaiseVtEventL -// -// Raises VT call info event if in suitable state, i.e. VT app has subscribed -// the event. -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::RaiseVtEventL() - { - TRACE("CVtMediatorPlugin.RaiseVtEventL<" ) - TInt result = KVtAppNotReady; // does not cause leave - TRACE2("CVtMediatorPlugin.RaiseVtEventL iState=%d>", - iState ) - TRACE2("CVtMediatorPlugin.RaiseVtEventL iActiveVideoCallState=%d>", - iActiveVideoCallState ) - if ( iState == EReady && // application subscribed to the event - - // don't send event if video call is not starting/ongoing - ( iActiveVideoCallState >= ECallStateDialling && - iActiveVideoCallState <= ECallStateConnected ) ) - { - const TVersion version( - KVideotelMdtrEventVersionMajor, - KVideotelMdtrEventVersionMinor, - KVideotelMdtrEventVersionBuild ); - - const TVtMediatorInfoPackage pckg( iActiveVideoCallInfo ); - result = iEventProvider->RaiseEvent( - KMediatorVideoTelephonyDomain, - KCatVideotelInternalEvents, - EVtMediatorEventVideoCallInformation, - version, - pckg - ); - } - TRACE2("CVtMediatorPlugin.RaiseVtEventL result=%d>", result ) - User::LeaveIfError( result ); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::HandleCallStateChangeL -// -// Compares previous and new video call states and resolves based on result -// if Video telephone applicaton should be launched. -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::HandleCallStateChangeL( - const TTelephonyCallDataParam& aData ) - { - TRACE("CVtMediatorPlugin.HandleCallStateChangeL<" ) - - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL calltype=%d>", - aData.iCallType ) - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL saved Activecallid=%d>", - iActiveVideoCallInfo.iCallId ) - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL saved Waitingcallid=%d>", - iWaitingVideoCallInfo.iCallId ) - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL callid=%d>", - aData.iCallId ) - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL ActiveCallOldState=%d>", - iActiveVideoCallState ) - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL WaitingCallOldState=%d>", - iWaitingVideoCallState ) - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL NewState=%d>", - aData.iCallState ) - - //if the call is waitingcall, just save/clear - if ( aData.iCallType == ECallTypeVideo || - // check also call id because in call clearing states call type may - // be unspecified but call id is saved in call setup and we can - // compare to it. - iActiveVideoCallInfo.iCallId == aData.iCallId || - iWaitingVideoCallInfo.iCallId == aData.iCallId ) - { - TBool isWaitingCall = ETrue; - - /** - * firstly we should check the callid to identify if it is a waitingcal/activecall - * imagine the usecase that long press endkey to shutdown both calls. - * after that checking iState - */ - if ( iWaitingVideoCallInfo.iCallId == aData.iCallId ) - { - isWaitingCall = ETrue; - } - else if ( iActiveVideoCallInfo.iCallId == aData.iCallId ) - { - isWaitingCall = EFalse; - } - //no vt app launched, this happens while vt first launching or end key to shutdown both calls - else if ( iState == EWaitingAppLaunch ) - { - isWaitingCall = EFalse; - } - - TRACE2("CVtMediatorPlugin.HandleCallStateChangeL isWaitingCall=%d>", - isWaitingCall) - - TCallState& callState = isWaitingCall?iWaitingVideoCallState:iActiveVideoCallState; - TVtVideoTelephonyCallInformation& vtCallInfo = isWaitingCall?iWaitingVideoCallInfo:iActiveVideoCallInfo; - - TBool launchNeeded = KVtCallStateActionArray[ aData.iCallState ] - - KVtCallStateActionArray[callState] > 0; - if ( isWaitingCall ) - { - launchNeeded = EFalse; - } - callState = aData.iCallState; - - switch ( callState ) - { - case ECallStateDialling: - case ECallStateRinging: - case ECallStateConnecting: - case ECallStateConnected: - SaveCallData( aData, vtCallInfo); - break; - default: - // data becomes invalid in other states (=call clearing/idle) - ClearData(vtCallInfo, callState); - break; - } - if ( launchNeeded ) - { - LaunchVtAppL(); - } - if ( !isWaitingCall ) - { - RaiseVtEventL(); - } - } - - TRACE("CVtMediatorPlugin.HandleCallStateChangeL>" ) - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::IsEnoughMemory -// -// Check if there is enough memory to launch -// ----------------------------------------------------------------------------- -// -TBool CVtMediatorPlugin::IsEnoughMemory() - { - TRACE("CVtMediatorPlugin::IsEnoughMemory<" ) - // Fetch amount of free memory. - TMemoryInfoV1Buf memory; - UserHal::MemoryInfo( memory ); - TInt freeRam = (TInt)( memory().iFreeRamInBytes ); - TRACE2("CVtMediatorPlugin::IsEnoughMemory: freeRam = %d", freeRam ) - - TBool enoughRam = ETrue; - - if ( freeRam < KRamNeededForVideoCalls ) - { - FreeRam(); - freeRam = (TInt)( memory().iFreeRamInBytes ); - TRACE2("CVtMediatorPlugin::IsEnoughMemory: after free, freeRam = %d", freeRam ) - if ( freeRam < KRamNeededForVideoCalls ) - { - enoughRam = EFalse; - TRACE ("CVtMediatorPlugin::IsEnoughMemory : Not enough RAM") - - } - } - TRACE("CVtMediatorPlugin::IsEnoughMemory>" ) - return enoughRam; - } -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::FreeRam -// Try to free memory to match the memory usage of VT -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::FreeRam() - { - TRACE("CVtMediatorPlugin.FreeRam()<") - User::CompressAllHeaps(); - TRACE("CVtMediatorPlugin.FreeRam()>") - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::StopDeathActiveL -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::StopDeathActiveL() - { - TRACE("CVtMediatorPlugin.StopDeathActive<") - delete iAppDeathActive; - iAppThread.Close(); - iWsSession.Close(); - //if there is a waiting call, check if we need to launch it - TRACE2("CVtMediatorPlugin.StopDeathActive WaitintCallID=%d>", - iWaitingVideoCallInfo.iCallId) - if ( iWaitingVideoCallInfo.iCallId != KVtInitCallId ) - { - iActiveVideoCallInfo = iWaitingVideoCallInfo; - iActiveVideoCallState = iWaitingVideoCallState; - ClearData(iWaitingVideoCallInfo, iWaitingVideoCallState); - - if ( iActiveVideoCallState == ECallStateDialling || - iActiveVideoCallState == ECallStateRinging || - iActiveVideoCallState == ECallStateConnecting || - iActiveVideoCallState == ECallStateConnected || - iActiveVideoCallState == ECallStateAnswering ) - { - LaunchVtAppL(); - RaiseVtEventL(); - } - } - TRACE("CVtMediatorPlugin.StopDeathActive>") - } -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CAppDeathActive::CAppDeathActive -// ----------------------------------------------------------------------------- -// -CVtMediatorPlugin::CAppDeathActive::CAppDeathActive( - CVtMediatorPlugin& aMediatorPlugin, - RThread& aAppThread - ) - : CActive( CActive::EPriorityStandard ), - iMediatorPlugin( aMediatorPlugin ), - iAppThread( aAppThread ) - - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CAppDeathActive::~CAppDeathActive -// ----------------------------------------------------------------------------- -// -CVtMediatorPlugin::CAppDeathActive::~CAppDeathActive() - { - TRACE("CVtMediatorPlugin.~CAppDeathActive") - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CAppDeathActive::Start -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::CAppDeathActive::Start() - { - TRACE("CVtMediatorPlugin.Start<") - Cancel(); - iAppThread.Logon( iStatus ); - SetActive(); - TRACE("CVtMediatorPlugin.Start>") - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CAppDeathActive::RunL -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::CAppDeathActive::RunL() - { - //do something here - TRACE("CVtMediatorPlugin.RunL<") - iMediatorPlugin.StopDeathActiveL(); - TRACE("CVtMediatorPlugin.RunL>") - - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CAppDeathActive::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtMediatorPlugin::CAppDeathActive::DoCancel() - { - iAppThread.LogonCancel( iStatus ); - } - -// ----------------------------------------------------------------------------- -// CVtMediatorPlugin::CAppDeathActive::RunError -// ----------------------------------------------------------------------------- -// -TInt CVtMediatorPlugin::CAppDeathActive::RunError( TInt /*aError*/ ) - { - return KErrNone; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtengines/vtmediatorplugin/src/vtmediatorpluginproxy.cpp --- a/vtengines/vtmediatorplugin/src/vtmediatorpluginproxy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2008 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: Source file for MediatorTest Plugin Proxy -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include "cvtmediatorplugin.h" - - -// Provides a key value pair table, this is used to identify -// the correct construction function for the requested interface. -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( 0x200159A0, CVtMediatorPlugin::NewL ) - }; - -// Function used to return an instance of the proxy table. -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/EABI/DisplaySinkU.DEF --- a/vtprotocolplugins/DisplaySink/EABI/DisplaySinkU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -EXPORTS - _Z11CreateSinkLR18TDisplaySinkParamsRK6TDesC8 @ 1 NONAME - _ZN18TDisplaySinkParamsC1Ev @ 2 NONAME - _ZN18TDisplaySinkParamsC2Ev @ 3 NONAME - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/EABI/VtImageConverterU.DEF --- a/vtprotocolplugins/DisplaySink/EABI/VtImageConverterU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -EXPORTS - _ZN24CVTYUVFbsBitmapConverter15SetDestinationLERK10CFbsBitmap @ 1 NONAME - _ZN24CVTYUVFbsBitmapConverter15SetDestinationLEi @ 2 NONAME - _ZN24CVTYUVFbsBitmapConverter8ProcessLEv @ 3 NONAME - _ZN24CVTYUVFbsBitmapConverterD0Ev @ 4 NONAME - _ZN24CVTYUVFbsBitmapConverterD1Ev @ 5 NONAME - _ZN24CVTYUVFbsBitmapConverterD2Ev @ 6 NONAME - _ZN25CVSFbsBitmapIYUVConverter10SetSourceLERK10CFbsBitmap @ 7 NONAME - _ZN25CVSFbsBitmapIYUVConverter4NewLERK10CFbsBitmap @ 8 NONAME - _ZN25CVSFbsBitmapIYUVConverter8ProcessLEv @ 9 NONAME - _ZN25CVSFbsBitmapIYUVConverterD0Ev @ 10 NONAME - _ZN25CVSFbsBitmapIYUVConverterD1Ev @ 11 NONAME - _ZN25CVSFbsBitmapIYUVConverterD2Ev @ 12 NONAME - _ZN25CVTIYUVFbsBitmapConverter4NewLERK5TSizeRK10CFbsBitmap @ 13 NONAME - _ZN25CVTIYUVFbsBitmapConverter4NewLERK5TSizei @ 14 NONAME - _ZN25CVTYV12FbsBitmapConverter4NewLERK5TSizeRK10CFbsBitmap @ 15 NONAME - _ZN25CVTYV12FbsBitmapConverter4NewLERK5TSizei @ 16 NONAME - _ZN30CVTYUVPlanarFbsBitmapConverter10SetSourceLERK5TSizeRK6TDesC8 @ 17 NONAME - _ZN30CVTYUVPlanarFbsBitmapConverter10SetSourceLERK6TDesC8 @ 18 NONAME - _ZN30CVTYUVPlanarFbsBitmapConverter14SetSourceSizeLERK5TSize @ 19 NONAME - _ZNK25CVSFbsBitmapIYUVConverter7YUVDataEv @ 20 NONAME - _ZTI24CVTYUVFbsBitmapConverter @ 21 NONAME ; ## - _ZTI25CVSFbsBitmapIYUVConverter @ 22 NONAME ; ## - _ZTI25CVTIYUVFbsBitmapConverter @ 23 NONAME ; ## - _ZTI25CVTYV12FbsBitmapConverter @ 24 NONAME ; ## - _ZTI30CVTYUVPlanarFbsBitmapConverter @ 25 NONAME ; ## - _ZTV24CVTYUVFbsBitmapConverter @ 26 NONAME ; ## - _ZTV25CVSFbsBitmapIYUVConverter @ 27 NONAME ; ## - _ZTV25CVTIYUVFbsBitmapConverter @ 28 NONAME ; ## - _ZTV25CVTYV12FbsBitmapConverter @ 29 NONAME ; ## - _ZTV30CVTYUVPlanarFbsBitmapConverter @ 30 NONAME ; ## - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/EABI/VtImageTransformsU.DEF --- a/vtprotocolplugins/DisplaySink/EABI/VtImageTransformsU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -EXPORTS - _ZN12CVtImageIYUV4NewLERK5TSize @ 1 NONAME - _ZN12CVtImageIYUV4NewLERK5TSizeR5TPtr8 @ 2 NONAME - _ZN12CVtImageIYUV4NewLERK5TSizeRK6TDesC8 @ 3 NONAME - _ZN12CVtImageIYUV9SetImageLER5TPtr8 @ 4 NONAME - _ZN12CVtImageIYUV9SetImageLERK6TDesC8 @ 5 NONAME - _ZN12CVtImageIYUVD0Ev @ 6 NONAME - _ZN12CVtImageIYUVD1Ev @ 7 NONAME - _ZN12CVtImageIYUVD2Ev @ 8 NONAME - _ZN14CVtImageBitmap10SetBitmapLEi @ 9 NONAME - _ZN14CVtImageBitmap4NewLERK5TSize12TDisplayMode @ 10 NONAME - _ZN14CVtImageBitmap4NewLEi @ 11 NONAME - _ZN14CVtImageBitmap7ResizeLERK5TSize @ 12 NONAME - _ZN14CVtImageBitmapD0Ev @ 13 NONAME - _ZN14CVtImageBitmapD1Ev @ 14 NONAME - _ZN14CVtImageBitmapD2Ev @ 15 NONAME - _ZN14CVtImageScaler11SetQualityLENS_8TQualityE @ 16 NONAME - _ZN14CVtImageScaler4NewLER22MVtImageScalerObserverNS_8TQualityEN7CActive9TPriorityE @ 17 NONAME - _ZN14CVtImageScaler6ScaleLERK8CVtImageRS0_ @ 18 NONAME - _ZN14CVtImageScalerD0Ev @ 19 NONAME - _ZN14CVtImageScalerD1Ev @ 20 NONAME - _ZN14CVtImageScalerD2Ev @ 21 NONAME - _ZN15CVtImageRotator4NewLER23MVtImageRotatorObserverN7CActive9TPriorityE @ 22 NONAME - _ZN15CVtImageRotator7RotateLERK8CVtImageRS0_RKNS_14TRotationAngleE @ 23 NONAME - _ZN15CVtImageRotatorD0Ev @ 24 NONAME - _ZN15CVtImageRotatorD1Ev @ 25 NONAME - _ZN15CVtImageRotatorD2Ev @ 26 NONAME - _ZNK12CVtImageIYUV12UVPlaneWidthEv @ 27 NONAME - _ZNK12CVtImageIYUV13UVPlaneHeightEv @ 28 NONAME - _ZNK12CVtImageIYUV1UEv @ 29 NONAME - _ZNK12CVtImageIYUV1VEv @ 30 NONAME - _ZNK12CVtImageIYUV1YEv @ 31 NONAME - _ZNK12CVtImageIYUV5ImageEv @ 32 NONAME - _ZNK14CVtImageBitmap6BitmapEv @ 33 NONAME - _ZNK8CVtImage4TypeEv @ 34 NONAME - _ZTI12CVtImageIYUV @ 35 NONAME ; ## - _ZTI14CVtImageBitmap @ 36 NONAME ; ## - _ZTI14CVtImageScaler @ 37 NONAME ; ## - _ZTI15CVtImageRotator @ 38 NONAME ; ## - _ZTI25CVtImageScalerImplNearest @ 39 NONAME ; ## - _ZTI26CVtImageScalerImplBilinear @ 40 NONAME ; ## - _ZTI28CVtImageRotatorImplClockwise @ 41 NONAME ; ## - _ZTI29CVtImageRotatorImplMirrorFlip @ 42 NONAME ; ## - _ZTI33CVtImageScalerImplWeightedAverage @ 43 NONAME ; ## - _ZTV12CVtImageIYUV @ 44 NONAME ; ## - _ZTV14CVtImageBitmap @ 45 NONAME ; ## - _ZTV14CVtImageScaler @ 46 NONAME ; ## - _ZTV15CVtImageRotator @ 47 NONAME ; ## - _ZTV25CVtImageScalerImplNearest @ 48 NONAME ; ## - _ZTV26CVtImageScalerImplBilinear @ 49 NONAME ; ## - _ZTV28CVtImageRotatorImplClockwise @ 50 NONAME ; ## - _ZTV29CVtImageRotatorImplMirrorFlip @ 51 NONAME ; ## - _ZTV33CVtImageScalerImplWeightedAverage @ 52 NONAME ; ## - _ZN14CVtImageScaler5ScaleERK8CVtImageRS0_ @ 53 NONAME - _ZN15CVtImageRotator6RotateERK8CVtImageRS0_RKNS_14TRotationAngleE @ 54 NONAME - _ZN14CVtImageScaler9ScaleNowLERK8CVtImageRS0_ @ 55 NONAME - _ZTI18CVtImageScalerImpl @ 56 NONAME ; ## - _ZTV18CVtImageScalerImpl @ 57 NONAME ; ## - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/bmarm/DISPLAYSINKU.DEF --- a/vtprotocolplugins/DisplaySink/bmarm/DISPLAYSINKU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -EXPORTS - SetBitmapAvailable__12CDisplaySinkQ212CDisplaySink9TBitmapNo @ 1 NONAME R3UNUSED ; CDisplaySink::SetBitmapAvailable(CDisplaySink::TBitmapNo) - Release__12CDisplaySink @ 2 NONAME R3UNUSED ; CDisplaySink::Release(void) - ResumeSink__12CDisplaySink @ 3 NONAME R3UNUSED ; CDisplaySink::ResumeSink(void) - NewSinkL__12CDisplaySinkG18TDisplaySinkParamsRC6TDesC8 @ 4 NONAME ; CDisplaySink::NewSinkL(TDisplaySinkParams, TDesC8 const &) - UpdateSinkParamsL__12CDisplaySinkRC18TDisplaySinkParamsRi @ 5 NONAME R3UNUSED ; CDisplaySink::UpdateSinkParamsL(TDisplaySinkParams const &, int &) - "_._12CDisplaySink" @ 6 NONAME R3UNUSED ; CDisplaySink::~CDisplaySink(void) - __18TDisplaySinkParams @ 7 NONAME R3UNUSED ; TDisplaySinkParams::TDisplaySinkParams(void) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/bmarm/VTIMAGECONVERTERU.DEF --- a/vtprotocolplugins/DisplaySink/bmarm/VTIMAGECONVERTERU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -EXPORTS - "_._25CVSFbsBitmapIYUVConverter" @ 1 NONAME R3UNUSED ; CVSFbsBitmapIYUVConverter::~CVSFbsBitmapIYUVConverter(void) - NewL__25CVTIYUVFbsBitmapConverterRC5TSizeRC10CFbsBitmap @ 2 NONAME R3UNUSED ; CVTIYUVFbsBitmapConverter::NewL(TSize const &, CFbsBitmap const &) - NewL__25CVTIYUVFbsBitmapConverterRC5TSizei @ 3 NONAME R3UNUSED ; CVTIYUVFbsBitmapConverter::NewL(TSize const &, int) - NewL__25CVTYV12FbsBitmapConverterRC5TSizeRC10CFbsBitmap @ 4 NONAME R3UNUSED ; CVTYV12FbsBitmapConverter::NewL(TSize const &, CFbsBitmap const &) - NewL__25CVTYV12FbsBitmapConverterRC5TSizei @ 5 NONAME R3UNUSED ; CVTYV12FbsBitmapConverter::NewL(TSize const &, int) - ProcessL__24CVTYUVFbsBitmapConverter @ 6 NONAME R3UNUSED ; CVTYUVFbsBitmapConverter::ProcessL(void) - ProcessL__25CVSFbsBitmapIYUVConverter @ 7 NONAME R3UNUSED ; CVSFbsBitmapIYUVConverter::ProcessL(void) - SetDestinationL__24CVTYUVFbsBitmapConverterRC10CFbsBitmap @ 8 NONAME R3UNUSED ; CVTYUVFbsBitmapConverter::SetDestinationL(CFbsBitmap const &) - SetDestinationL__24CVTYUVFbsBitmapConverteri @ 9 NONAME R3UNUSED ; CVTYUVFbsBitmapConverter::SetDestinationL(int) - SetSourceL__25CVSFbsBitmapIYUVConverterRC10CFbsBitmap @ 10 NONAME R3UNUSED ; CVSFbsBitmapIYUVConverter::SetSourceL(CFbsBitmap const &) - SetSourceL__30CVTYUVPlanarFbsBitmapConverterRC5TSizeRC6TDesC8 @ 11 NONAME R3UNUSED ; CVTYUVPlanarFbsBitmapConverter::SetSourceL(TSize const &, TDesC8 const &) - SetSourceL__30CVTYUVPlanarFbsBitmapConverterRC6TDesC8 @ 12 NONAME R3UNUSED ; CVTYUVPlanarFbsBitmapConverter::SetSourceL(TDesC8 const &) - SetSourceSizeL__30CVTYUVPlanarFbsBitmapConverterRC5TSize @ 13 NONAME R3UNUSED ; CVTYUVPlanarFbsBitmapConverter::SetSourceSizeL(TSize const &) - YUVData__C25CVSFbsBitmapIYUVConverter @ 14 NONAME R3UNUSED ; CVSFbsBitmapIYUVConverter::YUVData(void) const - "_._24CVTYUVFbsBitmapConverter" @ 15 NONAME R3UNUSED ; CVTYUVFbsBitmapConverter::~CVTYUVFbsBitmapConverter(void) - NewL__25CVSFbsBitmapIYUVConverterRC10CFbsBitmap @ 16 NONAME R3UNUSED ; CVSFbsBitmapIYUVConverter::NewL(CFbsBitmap const &) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/bmarm/VTIMAGETRANSFORMSU.DEF --- a/vtprotocolplugins/DisplaySink/bmarm/VTIMAGETRANSFORMSU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -EXPORTS - "_._15CVtImageRotator" @ 1 NONAME R3UNUSED ; CVtImageRotator::~CVtImageRotator(void) - Image__C12CVtImageIYUV @ 2 NONAME R3UNUSED ; CVtImageIYUV::Image(void) const - NewL__12CVtImageIYUVRC5TSize @ 3 NONAME R3UNUSED ; CVtImageIYUV::NewL(TSize const &) - NewL__12CVtImageIYUVRC5TSizeR5TPtr8 @ 4 NONAME R3UNUSED ; CVtImageIYUV::NewL(TSize const &, TPtr8 &) - NewL__12CVtImageIYUVRC5TSizeRC6TDesC8 @ 5 NONAME R3UNUSED ; CVtImageIYUV::NewL(TSize const &, TDesC8 const &) - NewL__14CVtImageBitmapRC5TSize12TDisplayMode @ 6 NONAME R3UNUSED ; CVtImageBitmap::NewL(TSize const &, TDisplayMode) - NewL__14CVtImageBitmapi @ 7 NONAME R3UNUSED ; CVtImageBitmap::NewL(int) - NewL__14CVtImageScalerR22MVtImageScalerObserverQ214CVtImageScaler8TQualityQ27CActive9TPriority @ 8 NONAME R3UNUSED ; CVtImageScaler::NewL(MVtImageScalerObserver &, CVtImageScaler::TQuality, CActive::TPriority) - NewL__15CVtImageRotatorR23MVtImageRotatorObserverQ27CActive9TPriority @ 9 NONAME R3UNUSED ; CVtImageRotator::NewL(MVtImageRotatorObserver &, CActive::TPriority) - ResizeL__14CVtImageBitmapRC5TSize @ 10 NONAME R3UNUSED ; CVtImageBitmap::ResizeL(TSize const &) - RotateL__15CVtImageRotatorRC8CVtImageR8CVtImageRCQ215CVtImageRotator14TRotationAngle @ 11 NONAME ; CVtImageRotator::RotateL(CVtImage const &, CVtImage &, CVtImageRotator::TRotationAngle const &) - ScaleL__14CVtImageScalerRC8CVtImageR8CVtImage @ 12 NONAME R3UNUSED ; CVtImageScaler::ScaleL(CVtImage const &, CVtImage &) - SetBitmapL__14CVtImageBitmapi @ 13 NONAME R3UNUSED ; CVtImageBitmap::SetBitmapL(int) - SetImageL__12CVtImageIYUVR5TPtr8 @ 14 NONAME R3UNUSED ; CVtImageIYUV::SetImageL(TPtr8 &) - SetImageL__12CVtImageIYUVRC6TDesC8 @ 15 NONAME R3UNUSED ; CVtImageIYUV::SetImageL(TDesC8 const &) - SetQualityL__14CVtImageScalerQ214CVtImageScaler8TQuality @ 16 NONAME R3UNUSED ; CVtImageScaler::SetQualityL(CVtImageScaler::TQuality) - Type__C8CVtImage @ 17 NONAME R3UNUSED ; CVtImage::Type(void) const - UVPlaneHeight__C12CVtImageIYUV @ 18 NONAME R3UNUSED ; CVtImageIYUV::UVPlaneHeight(void) const - UVPlaneWidth__C12CVtImageIYUV @ 19 NONAME R3UNUSED ; CVtImageIYUV::UVPlaneWidth(void) const - U__C12CVtImageIYUV @ 20 NONAME R3UNUSED ; CVtImageIYUV::U(void) const - V__C12CVtImageIYUV @ 21 NONAME R3UNUSED ; CVtImageIYUV::V(void) const - Y__C12CVtImageIYUV @ 22 NONAME R3UNUSED ; CVtImageIYUV::Y(void) const - "_._12CVtImageIYUV" @ 23 NONAME R3UNUSED ; CVtImageIYUV::~CVtImageIYUV(void) - "_._14CVtImageBitmap" @ 24 NONAME R3UNUSED ; CVtImageBitmap::~CVtImageBitmap(void) - "_._14CVtImageScaler" @ 25 NONAME R3UNUSED ; CVtImageScaler::~CVtImageScaler(void) - Bitmap__C14CVtImageBitmap @ 26 NONAME R3UNUSED ; CVtImageBitmap::Bitmap(void) const - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/bwins/DISPLAYSINKU.DEF --- a/vtprotocolplugins/DisplaySink/bwins/DISPLAYSINKU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - ??0TDisplaySinkParams@@QAE@XZ @ 1 NONAME ; TDisplaySinkParams::TDisplaySinkParams(void) - ?CreateSinkL@@YAPAVMDisplaySink@@AAVTDisplaySinkParams@@ABVTDesC8@@@Z @ 2 NONAME ; class MDisplaySink * CreateSinkL(class TDisplaySinkParams &, class TDesC8 const &) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/bwins/VTIMAGECONVERTERU.DEF --- a/vtprotocolplugins/DisplaySink/bwins/VTIMAGECONVERTERU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -EXPORTS - ??1CVSFbsBitmapIYUVConverter@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CVSFbsBitmapIYUVConverter::~CVSFbsBitmapIYUVConverter(void) - ??1CVTYUVFbsBitmapConverter@@UAE@XZ @ 2 NONAME ; public: virtual __thiscall CVTYUVFbsBitmapConverter::~CVTYUVFbsBitmapConverter(void) - ?NewL@CVSFbsBitmapIYUVConverter@@SAPAV1@ABVCFbsBitmap@@@Z @ 3 NONAME ; public: static class CVSFbsBitmapIYUVConverter * __cdecl CVSFbsBitmapIYUVConverter::NewL(class CFbsBitmap const &) - ?NewL@CVTIYUVFbsBitmapConverter@@SAPAV1@ABVTSize@@ABVCFbsBitmap@@@Z @ 4 NONAME ; public: static class CVTIYUVFbsBitmapConverter * __cdecl CVTIYUVFbsBitmapConverter::NewL(class TSize const &,class CFbsBitmap const &) - ?NewL@CVTIYUVFbsBitmapConverter@@SAPAV1@ABVTSize@@H@Z @ 5 NONAME ; public: static class CVTIYUVFbsBitmapConverter * __cdecl CVTIYUVFbsBitmapConverter::NewL(class TSize const &,int) - ?NewL@CVTYV12FbsBitmapConverter@@SAPAV1@ABVTSize@@ABVCFbsBitmap@@@Z @ 6 NONAME ; public: static class CVTYV12FbsBitmapConverter * __cdecl CVTYV12FbsBitmapConverter::NewL(class TSize const &,class CFbsBitmap const &) - ?NewL@CVTYV12FbsBitmapConverter@@SAPAV1@ABVTSize@@H@Z @ 7 NONAME ; public: static class CVTYV12FbsBitmapConverter * __cdecl CVTYV12FbsBitmapConverter::NewL(class TSize const &,int) - ?ProcessL@CVSFbsBitmapIYUVConverter@@QAEXXZ @ 8 NONAME ; public: void __thiscall CVSFbsBitmapIYUVConverter::ProcessL(void) - ?ProcessL@CVTYUVFbsBitmapConverter@@UAEXXZ @ 9 NONAME ; public: virtual void __thiscall CVTYUVFbsBitmapConverter::ProcessL(void) - ?SetDestinationL@CVTYUVFbsBitmapConverter@@UAEXABVCFbsBitmap@@@Z @ 10 NONAME ; public: virtual void __thiscall CVTYUVFbsBitmapConverter::SetDestinationL(class CFbsBitmap const &) - ?SetDestinationL@CVTYUVFbsBitmapConverter@@UAEXH@Z @ 11 NONAME ; public: virtual void __thiscall CVTYUVFbsBitmapConverter::SetDestinationL(int) - ?SetSourceL@CVSFbsBitmapIYUVConverter@@QAEXABVCFbsBitmap@@@Z @ 12 NONAME ; public: void __thiscall CVSFbsBitmapIYUVConverter::SetSourceL(class CFbsBitmap const &) - ?SetSourceL@CVTYUVPlanarFbsBitmapConverter@@UAEXABVTDesC8@@@Z @ 13 NONAME ; public: virtual void __thiscall CVTYUVPlanarFbsBitmapConverter::SetSourceL(class TDesC8 const &) - ?SetSourceL@CVTYUVPlanarFbsBitmapConverter@@UAEXABVTSize@@ABVTDesC8@@@Z @ 14 NONAME ; public: virtual void __thiscall CVTYUVPlanarFbsBitmapConverter::SetSourceL(class TSize const &,class TDesC8 const &) - ?SetSourceSizeL@CVTYUVPlanarFbsBitmapConverter@@UAEXABVTSize@@@Z @ 15 NONAME ; public: virtual void __thiscall CVTYUVPlanarFbsBitmapConverter::SetSourceSizeL(class TSize const &) - ?YUVData@CVSFbsBitmapIYUVConverter@@QBE?AVTPtrC8@@XZ @ 16 NONAME ; public: class TPtrC8 __thiscall CVSFbsBitmapIYUVConverter::YUVData(void)const - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/bwins/VTIMAGETRANSFORMSU.DEF --- a/vtprotocolplugins/DisplaySink/bwins/VTIMAGETRANSFORMSU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -EXPORTS - ??1CVtImageBitmap@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CVtImageBitmap::~CVtImageBitmap(void) - ??1CVtImageIYUV@@UAE@XZ @ 2 NONAME ; public: virtual __thiscall CVtImageIYUV::~CVtImageIYUV(void) - ??1CVtImageRotator@@UAE@XZ @ 3 NONAME ; public: virtual __thiscall CVtImageRotator::~CVtImageRotator(void) - ??1CVtImageScaler@@UAE@XZ @ 4 NONAME ; public: virtual __thiscall CVtImageScaler::~CVtImageScaler(void) - ?Bitmap@CVtImageBitmap@@QBEAAVCFbsBitmap@@XZ @ 5 NONAME ; public: class CFbsBitmap & __thiscall CVtImageBitmap::Bitmap(void)const - ?Image@CVtImageIYUV@@QBE?AVTPtrC8@@XZ @ 6 NONAME ; public: class TPtrC8 __thiscall CVtImageIYUV::Image(void)const - ?NewL@CVtImageBitmap@@SAPAV1@ABVTSize@@W4TDisplayMode@@@Z @ 7 NONAME ; public: static class CVtImageBitmap * __cdecl CVtImageBitmap::NewL(class TSize const &,enum TDisplayMode) - ?NewL@CVtImageBitmap@@SAPAV1@H@Z @ 8 NONAME ; public: static class CVtImageBitmap * __cdecl CVtImageBitmap::NewL(int) - ?NewL@CVtImageIYUV@@SAPAV1@ABVTSize@@@Z @ 9 NONAME ; public: static class CVtImageIYUV * __cdecl CVtImageIYUV::NewL(class TSize const &) - ?NewL@CVtImageIYUV@@SAPAV1@ABVTSize@@AAVTPtr8@@@Z @ 10 NONAME ; public: static class CVtImageIYUV * __cdecl CVtImageIYUV::NewL(class TSize const &,class TPtr8 &) - ?NewL@CVtImageIYUV@@SAPAV1@ABVTSize@@ABVTDesC8@@@Z @ 11 NONAME ; public: static class CVtImageIYUV * __cdecl CVtImageIYUV::NewL(class TSize const &,class TDesC8 const &) - ?NewL@CVtImageRotator@@SAPAV1@AAVMVtImageRotatorObserver@@W4TPriority@CActive@@@Z @ 12 NONAME ; public: static class CVtImageRotator * __cdecl CVtImageRotator::NewL(class MVtImageRotatorObserver &,enum CActive::TPriority) - ?NewL@CVtImageScaler@@SAPAV1@AAVMVtImageScalerObserver@@W4TQuality@1@W4TPriority@CActive@@@Z @ 13 NONAME ; public: static class CVtImageScaler * __cdecl CVtImageScaler::NewL(class MVtImageScalerObserver &,enum CVtImageScaler::TQuality,enum CActive::TPriority) - ?ResizeL@CVtImageBitmap@@QAEXABVTSize@@@Z @ 14 NONAME ; public: void __thiscall CVtImageBitmap::ResizeL(class TSize const &) - ?RotateL@CVtImageRotator@@QAEXABVCVtImage@@AAV2@ABW4TRotationAngle@1@@Z @ 15 NONAME ; public: void __thiscall CVtImageRotator::RotateL(class CVtImage const &,class CVtImage &,enum CVtImageRotator::TRotationAngle const &) - ?ScaleL@CVtImageScaler@@QAEXABVCVtImage@@AAV2@@Z @ 16 NONAME ; public: void __thiscall CVtImageScaler::ScaleL(class CVtImage const &,class CVtImage &) - ?SetBitmapL@CVtImageBitmap@@QAEXH@Z @ 17 NONAME ; public: void __thiscall CVtImageBitmap::SetBitmapL(int) - ?SetImageL@CVtImageIYUV@@QAEXAAVTPtr8@@@Z @ 18 NONAME ; public: void __thiscall CVtImageIYUV::SetImageL(class TPtr8 &) - ?SetImageL@CVtImageIYUV@@QAEXABVTDesC8@@@Z @ 19 NONAME ; public: void __thiscall CVtImageIYUV::SetImageL(class TDesC8 const &) - ?SetQualityL@CVtImageScaler@@QAEXW4TQuality@1@@Z @ 20 NONAME ; public: void __thiscall CVtImageScaler::SetQualityL(enum CVtImageScaler::TQuality) - ?Type@CVtImage@@QBE?AW4TVtImageType@1@XZ @ 21 NONAME ; public: enum CVtImage::TVtImageType __thiscall CVtImage::Type(void)const - ?U@CVtImageIYUV@@QBEPAEXZ @ 22 NONAME ; public: unsigned char * __thiscall CVtImageIYUV::U(void)const - ?UVPlaneHeight@CVtImageIYUV@@QBEHXZ @ 23 NONAME ; public: int __thiscall CVtImageIYUV::UVPlaneHeight(void)const - ?UVPlaneWidth@CVtImageIYUV@@QBEHXZ @ 24 NONAME ; public: int __thiscall CVtImageIYUV::UVPlaneWidth(void)const - ?V@CVtImageIYUV@@QBEPAEXZ @ 25 NONAME ; public: unsigned char * __thiscall CVtImageIYUV::V(void)const - ?Y@CVtImageIYUV@@QBEPAEXZ @ 26 NONAME ; public: unsigned char * __thiscall CVtImageIYUV::Y(void)const - ?Scale@CVtImageScaler@@QAEXABVCVtImage@@AAV2@@Z @ 27 NONAME ; void CVtImageScaler::Scale(class CVtImage const &, class CVtImage &) - ?Rotate@CVtImageRotator@@QAEXABVCVtImage@@AAV2@ABW4TRotationAngle@1@@Z @ 28 NONAME ; void CVtImageRotator::Rotate(class CVtImage const &, class CVtImage &, enum CVtImageRotator::TRotationAngle const &) - ?ScaleNowL@CVtImageScaler@@QAEXABVCVtImage@@AAV2@@Z @ 29 NONAME ; void CVtImageScaler::ScaleNowL(class CVtImage const &, class CVtImage &) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/data/displaysink_stub.SIS Binary file vtprotocolplugins/DisplaySink/data/displaysink_stub.SIS has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/data/displaysink_stub.pkg --- a/vtprotocolplugins/DisplaySink/data/displaysink_stub.pkg Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -; -; Copyright (c) 2009 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: -; - -; Languages -&EN -; Header -#{"displaysink"}, (0x101F8693), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\displaysink.dll" -""-"z:\sys\bin\VtImageConverter.dll" -""-"z:\sys\bin\VtImageTransforms.dll" diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/group/DisplaySink.mmp --- a/vtprotocolplugins/DisplaySink/group/DisplaySink.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Project definition file for Display Sink subsystem -* -*/ - - -#include -#include "../inc/DisplaySinkUids.hrh" - -TARGET displaysink.dll -TARGETTYPE dll -VENDORID VID_DEFAULT - -UID KSharedLibraryUidDefine KUidDisplaySinkLibrary - -SOURCEPATH ../src -SOURCE CDisplaySink.cpp - -SOURCE CDisplaySinkNGA.cpp -SOURCE CDisplaySinkDP.cpp -SOURCE vtyuvconverter.cpp -SOURCE CDisplaySinkDSA.cpp - - -USERINCLUDE ../inc -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE /epoc32/include/mmf/common -SYSTEMINCLUDE /epoc32/include/mmf/server - -LIBRARY featmgr.lib -LIBRARY euser.lib -LIBRARY mmfcontrollerframework.lib -LIBRARY fbscli.lib -LIBRARY vtimageconverter.lib -LIBRARY vtimagetransforms.lib - -CAPABILITY CAP_GENERAL_DLL - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/group/VtImageConverter.mmp --- a/vtprotocolplugins/DisplaySink/group/VtImageConverter.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Project definition file for Display Sink subsystem -* -*/ - - - -#include -#include "../inc/VtImageConverterUids.hrh" - -TARGET vtimageconverter.dll -TARGETTYPE dll -VENDORID VID_DEFAULT - -UID KSharedLibraryUidDefine KUidVtImageConverterLibrary - -USERINCLUDE ../inc -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/libc - -SOURCEPATH ../src -SOURCE CVtImageConverter.cpp - -LIBRARY gdi.lib -LIBRARY euser.lib -LIBRARY fbscli.lib - -CAPABILITY CAP_GENERAL_DLL - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/group/VtImageTransforms.mmp --- a/vtprotocolplugins/DisplaySink/group/VtImageTransforms.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Project definition file for Video Source image transforms -* -*/ - - -#include -#include "../inc/CVtImageTransformsUids.hrh" - -TARGET vtimagetransforms.dll -TARGETTYPE dll -VENDORID VID_DEFAULT - -UID KSharedLibraryUidDefine KUidVtImageTransformsLibrary - -SOURCEPATH ../src -SOURCE CVtImage.cpp -SOURCE CVtImageBitmap.cpp -SOURCE CVtImageIYUV.cpp -SOURCE CVtImageScaler.cpp -SOURCE CVtImageScalerImpl.cpp -SOURCE CVtImageScalerImplNearest.cpp -SOURCE CVtImageScalerImplWeightedAverage.cpp -SOURCE CVtImageScalerImplBilinear.cpp -SOURCE CVtImageRotator.cpp -SOURCE CVtImageRotatorImpl.cpp -SOURCE CVtImageRotatorImplMirrorFlip.cpp -SOURCE CVtImageRotatorImplClockwise.cpp - -USERINCLUDE ../inc -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/mmf/server -SYSTEMINCLUDE /epoc32/include/mmf/common - -LIBRARY euser.lib -LIBRARY fbscli.lib -LIBRARY bitmaptransforms.lib - -CAPABILITY CAP_GENERAL_DLL - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/group/bld.inf --- a/vtprotocolplugins/DisplaySink/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Component definition file for Display Sink subsystem. -* -*/ - - - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/CVtImageConverter.h |../../../inc/cvtimageconverter.h -../inc/cvtimageconverter.inl |../../../inc/cvtimageconverter.inl -../inc/mdisplaysink.h |../../../inc/mdisplaysink.h -../inc/TDisplaySinkParamsDSA.h |../../../inc/tdisplaysinkparamsdsa.h -../inc/tdisplaysinkparamsdsa.inl |../../../inc/tdisplaysinkparamsdsa.inl -../inc/TDisplaySinkParamsDP.h |../../../inc/tdisplaysinkparamsdp.h -../inc/TDisplaySinkParamsNGA.h |../../../inc/tdisplaysinkparamsnga.h -../inc/cvtimage.h |../../../inc/cvtimage.h -../inc/CVtImageBitmap.h |../../../inc/cvtimagebitmap.h -../inc/CVtImageIYUV.h |../../../inc/cvtimageiyuv.h -../inc/CVtImageScaler.h |../../../inc/cvtimagescaler.h -../inc/cvtimagerotator.h |../../../inc/cvtimagerotator.h - -// Export SIS stub file -../data/displaysink_stub.SIS /epoc32/data/z/system/install/displaysink_stub.sis - -// Export IBY file -../rom/DisplaySink.iby CORE_APP_LAYER_IBY_EXPORT_PATH(displaysink.iby) - -PRJ_MMPFILES -VtImageTransforms.mmp -VtImageConverter.mmp -DisplaySink.mmp - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CDisplaySink.h --- a/vtprotocolplugins/DisplaySink/inc/CDisplaySink.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,671 +0,0 @@ -/* -* Copyright (c) 2004 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: DisplaySink subsystem. -* -*/ - - - - -#ifndef CDISPLAYSINK_H -#define CDISPLAYSINK_H - -// INCLUDE FILES - -#include -#include -#include -#include -#include -#include -#include - -#include "mdisplaysink.h" - -// CONSTANTS - -// QCIF size -#define QCIF TSize( 176, 144 ) - -// Number of bitmap sets (big/small) in array -const TInt KBitmapTableCount = 2; - -// FORWARD DECLARATIONS - -class CDisplaySink; -class CVTYUVFbsBitmapConverter; -class CVtCallback; -class CVtImageIYUV; -class CMMFDataBuffer; -class CVtFrameQueue; - -// CLASS DECLARATION - -/** -* CVtFrameQueue -* -* Storage class for DisplaySink. Used in situations where EmptyBufferL() is -* called and there's no available bitmaps (or buffers). This class will -* hold one buffer until next SetBitmapAvailable() is called. Instance operates -* in protocol thread's active scheduler. -* -* @lib DisplaySink.lib -*/ -NONSHARABLE_CLASS( CVtFrameQueue ) : public CActive - { - -public: // new methods - /** - * C++ constructor. - */ - CVtFrameQueue(); - - /** - * Adds this to protocol thread's active scheduler. - */ - TInt ThreadLogon(); - - /** - * Releases stored buffer, when sink is stopped. - */ - void SinkStoppedL(); - - /** - * Deques from protocol thread's active scheduler. - */ - void ThreadLogoff(); - - /** - * Stores buffer & supplier. - */ - void Store( MVTVideoSource& aSupplier, CMMFDataBuffer* aBuffer, TSize aFrameSize, TPtr8& aPtr ); - - /** - * Returns ETrue if buffer is being stored, EFalse otherwise. - */ - TBool IsStored() const; - - /** - * Returns stored buffer. - */ - TVtMMFDataBuffer Buffer(); - - /** - * Releases stored buffer. Supplier's BufferEmptiedL() is called. Call - * is executed in protocol thread's context. - */ - void Release(); - -private: - - /** - * Calls BufferEmptiedL() for supplier. This call always happens in protocol - * thread context. - * @param aBuffer Pointer reference to a buffer to be released. - */ - void DoReleaseBufferL( CMMFDataBuffer*& aBuffer ); - -private: // from CActive - /** - * @see CActive::RunL - */ - void RunL(); - - /** - * @see CActive::DoCancel - */ - void DoCancel(); - -private: - // Stored supplier - MVTVideoSource* iSupplier; - // Stored buffer - CMMFDataBuffer* iBuffer; - - TSize iFrameSize; - TPtr8* iPtr; - // Pre-opened thread object that is used for signalling the delayed - // BufferEmptiedL() call - RThread iThread; - // Buffer to be released on next RunL() - CMMFDataBuffer* iReleaseBuffer; - }; - -/** -* CVtCallback -* -* -* @lib DisplaySink.lib -*/ -NONSHARABLE_CLASS( CVtCallback ) : public CActive - { - -private: - - /** - * Callback type. Currently only size changes are supported. If new callback - * types are needed, add them here. - */ - enum TCallBackType - { - EVideoFrameSizeChanged - }; - -public: - - /** - * C++ constructor. - */ - CVtCallback( MDisplaySinkObserver& aObserver ); - - /** - * C++ destructor. - */ - ~CVtCallback(); - - /** - * Video frame size has been changed. Old and new size are given as - * parameter. - */ - void VideoFrameSizeChangedL( const TSize& aFrom, const TSize& aTo ); - - /** - * Returns callback result. - */ - TInt Result() const; - - /** - * Boolean variable that tells wether or not call back has been served. - */ - TBool Completed() const; - -private: - - /** - * Issues callback. Because callback receiver can be in same or different - * thread this is made as own function that checks whether or not other - * thread needs to be signalled. - */ - void IssueCallbackL(); - -private: // from CActive - - /** - * See CActive documentation. - */ - void RunL(); - - /** - * See CActive documentation. - */ - void DoCancel(); - - /** - * See CActive documentation. - */ - TInt RunError( TInt aError ); - -private: - - // Owner thread's id - TThreadId iOwnThreadId; - - // Pointer to observer - MDisplaySinkObserver* iObserver; - - // Callback type - TCallBackType iCallBackType; - - // Old size - TSize iFrom; - - // New size - TSize iTo; - - // Callback result - TInt iResult; - - // Has callback been completed? - TBool iCompleted; - }; - - -/** -* MVTVideoSink interface implementation -* -* @lib DisplaySink.lib -*/ -NONSHARABLE_CLASS( CDisplaySink ) : public CBase, public MDisplaySink, - public MVTVideoSink -{ -protected: // inner classes - - // Structure containing bitmap related data - class TBitmapEntry - { - public: // data - - // ETrue if this bitmap entry is free - TBool iIsFree; - }; - -private: // from MDisplaySink - - /** - * @see MDisplaySink::Destroy - */ - void Destroy(); - - /** - * @see MDisplaySink::SetBitmapAvailable - */ - void SetBitmapAvailable( TBitmapNo aBitmapNo ); - - /** - * @see MDisplaySink::Release - */ - void Release(); - - /** - * @see MDisplaySink::UpdateSinkParamsL - */ - void UpdateSinkParamsL( const TDisplaySinkParams& aParams, TBool& aUpdated ); - - /** - * @see MDisplaySink::Pause - */ - void Pause(); - - /** - * @see MDisplaySink::Resume - */ - void Resume(); - - /** - * @see MDisplaySink::operator MVTVideoSink& - */ - operator MVTVideoSink&(); - - /** - * @see MDisplaySink::NextFrame - */ - void NextFrame(); - -private: // from MVTVideoSink - /** - * From MVTVideoOutput. See MVTVideoOutput for description. - */ - virtual void SetFormatL( const TDesC8& aFormat ); - - /** - * From MVTVideoOutput. See MVTVideoOutput for description. - */ - virtual void SetVideoFrameSizeL( const TSize& aSize ); - - /** - * From MVTVideoOutput. See MVTVideoOutput for description. - */ - virtual void GetVideoFrameSizeL( TSize& aSize ) const; - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual void EmptyBufferL( - TVtMMFDataBuffer aDataBuffer, - MVTVideoSource* aSupplier, - TMediaId aMediaId ); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual void BufferFilledL( CMMFBuffer* aBuffer ); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual TBool CanCreateSinkBuffer(); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual CMMFBuffer* CreateSinkBufferL( - TMediaId aMediaId, - TBool &aReference ); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual TInt SinkThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual void SinkThreadLogoff(); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual TInt SinkPrimeL(); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual TInt SinkPlayL(); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual TInt SinkPauseL(); - - /** - * From MVTVideoSink. See MVTVideoSink for description. - */ - virtual TInt SinkStopL(); - -private: - const RArray& GetMultimediaTypesL() const; - - -protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - CDisplaySink(); - - /** - * Destructor. - */ - ~CDisplaySink(); - -protected: // New functions - - /** - * By default Symbian 2nd phase constructor is private. - * @param "aParams" Initialization parameters. - * @param "aInitData" Initialization parameters. Not used. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL( TDisplaySinkParams& aParams, const TDesC8& aInitData ); - - /** - * Thread logon that may leave. This will be trapped and possible - * error code is returned to the caller of SinkThreadLogon(). - * @exception Can leave with one of the system wide error codes. - */ - void SinkThreadLogonL(); - - /** - * Sets limit for displaysink frame rate. - */ - void SetFrameRateLimit( - TDisplaySinkParams::TFrameRateLimit aFrameRateLimit ); - - /** - * Resets frame rate limitter. - */ - void ResetFrameRateLimitter(); - - /** - * Does frame rate limitter validation and also checks if sink is paused. - */ - TBool IsOkToSendFrame(); - - /** - * Opens fbs session and sets flag, if open succeeds. - */ - void FbsConnectL(); - - /** - * Opens VT engine thread. - */ - void ThreadOpenL(); - - /** - * Closes fbs session (if open succeeded earlier). - */ - void FbsDisconnect(); - - /** - * Closes VT thread (if open succeeded earlier). - */ - void ThreadClose(); - - /** - * Cleanup operation for SinkThradLogon. - */ - static void SinkThreadLogonCleanup( TAny* aPtr ); - -private: // new methods implemented in derived classes - - /** - * Called from ConstructL() to allow inherited classes to do their own - * construction. - */ - virtual void BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ) = 0; - - /** - * Converts image. Calls DoConvertL() to do the task. - * @return KErrNone or one of the system wide error codes. - */ - virtual TBool BaseConvert( const TVtMMFDataBuffer& aBuffer ) = 0; - - /** - * Called from SinkThreadLogonL(). - */ - virtual void BaseSinkThreadLogonL() = 0; - - /** - * Called from SinkThreadLogogg(). - */ - virtual void BaseSinkThreadLogoff() = 0; - - /** - * Called from UpdateSinkParamsL(). - */ - virtual void BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ) = 0; - - /** - * Updates sink params. - * @exception May leave with one of the system wide error codes (e.g. in - * out of memory situaton). - */ - virtual void BaseDoUpdateParamsL() = 0; - - /** - * Called when video frame size is set. - * @exception May leave with one of the system wide error codes (e.g. in - * out of memory situaton). - */ - virtual void BaseSetVideoFrameSizeL( const TSize& aSize ) = 0; - - /** - * Returns ETrue if given frame size matches with expected frame size. - * Implemented in derived classes because in some cases (e.g. when rotation - * is enabled), size calculation is more complicated. - */ - virtual TBool BaseSizesMatch( const TSize& aSize ) = 0; - - /** - * Returns reference to TBitmapEntry. - */ - virtual TBitmapEntry& BitmapEntry( TInt aIndex ) = 0; - - /** - * EmptyBuffer handling. - */ - virtual void BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ) = 0; - - /** - * Bitmap availability handling. - */ - virtual void BaseSetBitmapAvailable( TBitmapNo aBitmapNo ) = 0; - - /** - * Called when source frame size changes. - */ - virtual void BaseVideoFrameSizeChangedL( const TSize& aNewSize ) = 0; - -protected: // Data - - // Video source that provides buffer filled with video frame(s) - MVTVideoSource* iSupplier; - - // Event handler to notify events - MAsyncEventHandler* iEventHandler; - - // Buffer containing video frame(s) and to be converted - CMMFBuffer* iBuffer; - - // Sink data type code as fourCC code - TFourCC iSinkFourCC; - - // Sink state enumeration - enum TState - { - EStopped, - EPrimed, - EPlaying - }; - - // Sink state - TState iState; - - // Array of MIME types supported by sink - RArray iVTMimeTypes; - - // Video frame size - TSize iFrameSize; - - // Thread ID of thread to notify after video frame is converted - TThreadId iThreadId; - - // Handle to thread to notify after video frame is converted - RThread iThread; - - // Pointer to iStatus member of the Active Object to notify - // after video frame is converted - TRequestStatus* iRequestStatusPtr; - - // Critical section to serialize access to iBitmapTable - RCriticalSection iBitmapCS; - - // Semaphore to force thread context switch after video frame - // is converted - RSemaphore iSync; - - - // This is set to ETrue when new params are set, this pointer - // is also used as flag when parameter update is requested. - TBool* iParamsUpdated; - - // This flag variable will be set to ETrue when sink parameters - // need to be updated (e.g. when frame size changes from QCIF - // to Sub QCIF or vice versa) - TBool iWaitingForUpdate; - - // Contains expected frame size (this is taken from given bitmaps). - TSize iExpectedFrameSize; - - // Active object that will call callbacks to VT engine in VT - // engine's thread context. - CVtCallback* iVTSignaller; - - // If ETrue, sink does not convert data that is given to it - TBool iReleased; - - // Output MIME type holder - TBuf8< 128 > iYuv420PlanarDesc; - - // Frame rate interval in milliseconds - TInt iFrameRateInterval; - - // Time since last frame was sent (in milliseconds) - TInt iMilliSecondsSinceLastFrame; - - // Time stamp for last frame sent - TTime iLastFrameTime; - - // When paused remote video will no be sent to VT engine - TBool iPaused; - - // DisplaySink params flags - TUint32 iDSFlags; - - // Is set to ETrue when SinkThreadLogon() is called. - TUint32 iInitFlags; - - // Initialization flags - enum TInitFlags - { - // This flag is set, when SinkThreadLogon() is called - ESinkThreadLogonCalled = ( 1 << 0 ), - - // This flag is set, when FbsSession has been connected - EFbsSessionConnected = ( 1 << 1 ), - - // This flag is set, when handle to Sink Thread has been opened - EThreadOpened = ( 1 << 2 ) - }; - - // Frame queue for holding for holding frames until target conversion - // buffer is ready. - CVtFrameQueue* iVideoFrameQueue; - - // friend classes - - - }; - -/** -* Safe cleanup for synchronization primitives. -* -* @lib DisplaySink.lib -*/ -template < class T > -class CleanupSignal - { -public: - static void PushL( T& aPtr ); -private: - static void Signal( TAny *aPtr ); - }; - -template < class T > -void CleanupSignal< T >::PushL( T& aRef ) - { - CleanupStack::PushL( TCleanupItem( &Signal, &aRef ) ); - } - -template < class T > -void CleanupSignal< T >::Signal( TAny *aPtr ) - { - static_cast< T* >( aPtr )->Signal(); - } - -/** -* Pushes signalable object into cleanup stack. -*/ -template < class T > -void CleanupSignalPushL( T& aRef ) - { - CleanupSignal< T >::PushL( aRef ); - } - -#endif // CDISPLAYSINK_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CDisplaySinkDP.h --- a/vtprotocolplugins/DisplaySink/inc/CDisplaySinkDP.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2004 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: DisplaySink subsystem. -* -*/ - - - - -#ifndef CDISPLAYSINKDP_H -#define CDISPLAYSINKDP_H - -// INCLUDE FILES - -#include "CDisplaySink.h" -#include "TDisplaySinkParamsDP.h" - -// CLASS DECLARATION - -/** -* Displaysink implementation for Display Posting. -* -* @lib displaysink.lib -* @since Series 60 3.1 -*/ -NONSHARABLE_CLASS( CDisplaySinkDP ) : public CDisplaySink - { -public: // static constructor - - /** - * Static constructor that may leave. - */ - static CDisplaySinkDP* NewL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - -private: // constructors and destructor - - /** - * C++ default constructor. - */ - CDisplaySinkDP(); - - /** - * destructor - */ - ~CDisplaySinkDP(); - -private: // from CDisplaySink - - /** - * @see CDisplaySink::BaseConstructL - */ - void BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - - /** - * @see CDisplaySink::BaseConvert - */ - TBool BaseConvert( const TVtMMFDataBuffer& aBuffer ); - - /** - * @see CDisplaySink::BaseSinkThreadLogonL - */ - void BaseSinkThreadLogonL(); - - /** - * @see CDisplaySink::BaseSinkThreadLogoff - */ - void BaseSinkThreadLogoff(); - - /** - * @see CDisplaySink::BaseUpdateSinkParamsL - */ - void BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ); - - /** - * @see CDisplaySink::BaseDoUpdateParamsL - */ - void BaseDoUpdateParamsL(); - - /** - * @see CDisplaySink::BaseDoUpdateParamsL - */ - void BaseSetVideoFrameSizeL( const TSize& aSize ); - - /** - * @see CDisplaySink::BaseSizesMatch - */ - TBool BaseSizesMatch( const TSize& aSize ); - - /** - * @see CDisplaySink::BitmapEntry - */ - TBitmapEntry& BitmapEntry( TInt aIndex ); - - /** - * @see CDisplaySink::BaseEmptyBufferL - */ - void BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ); - - /** - * @see CDisplaySink::BaseSetBitmapAvailable - */ - void BaseSetBitmapAvailable( TBitmapNo aBitmapNo ); - - /** - * @see CDisplaySink::BaseVideoFrameSizeChangedL - */ - void BaseVideoFrameSizeChangedL( const TSize& aNewSize ); - -private: // MDisplaySink - - /** - * @see MDisplaySink::NextFrame - */ - void NextFrame(); - -private: // new methods - - /** - * Updates expected frame size. - * @exception May leave with KErrNotSupported, if bitmap sizes do not match. - */ - void UpdateExpectedFrameSizeL(); - -private: // new classes - - // Class posting buffer related data - class TBitmapEntryDP : public TBitmapEntry - { - public: // data - - // Pointer to Posting Buffer pointer - CPostingSurface::TPostingBuff** iBuffer; - }; - -private: // data - - // Array of bitmap related structures - TBitmapEntryDP iBitmapTable[ KBitmapTableCount ]; - - // Store for saving new parameters in UpdateSinkParamsL() call - TDisplaySinkParamsDP iNewParams; - }; - -#endif // CDISPLAYSINKDP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CDisplaySinkDSA.h --- a/vtprotocolplugins/DisplaySink/inc/CDisplaySinkDSA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/* -* Copyright (c) 2004 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: DisplaySink subsystem. -* -*/ - - - - -#ifndef CDISPLAYSINKDSA_H -#define CDISPLAYSINKDSA_H - -// INCLUDE FILES - -#include "CDisplaySink.h" -#include "TDisplaySinkParamsDSA.h" - -// CLASS DECLARATION - -/** -* Displaysink implementation for Direct Screen access. -* -* @lib displaysink.lib -* @since Series 60 3.1 -*/ -NONSHARABLE_CLASS( CDisplaySinkDSA ) : public CDisplaySink, - public MVtImageRotatorObserver - { -public: // static constructor - - /** - * Static constructor that may leave. - */ - static CDisplaySinkDSA* NewL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - -private: // constructors and destructor - - /** - * C++ default constructor. - */ - CDisplaySinkDSA(); - - /** - * destructor - */ - ~CDisplaySinkDSA(); - -private: // from CDisplaySink - - /** - * @see CDisplaySink::BaseConstructL - */ - void BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - - /** - * @see CDisplaySink::BaseConvert - */ - TBool BaseConvert( const TVtMMFDataBuffer& aBuffer ); - - /** - * @see CDisplaySink::BaseSinkThreadLogonL - */ - void BaseSinkThreadLogonL(); - - /** - * @see CDisplaySink::BaseSinkThreadLogoff - */ - void BaseSinkThreadLogoff(); - - /** - * @see CDisplaySink::BaseUpdateSinkParamsL - */ - void BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ); - - /** - * @see CDisplaySink::BaseDoUpdateParamsL - */ - void BaseDoUpdateParamsL(); - - /** - * @see CDisplaySink::BaseDoUpdateParamsL - */ - void BaseSetVideoFrameSizeL( const TSize& aSize ); - - /** - * @see CDisplaySink::BaseSizesMatch - */ - TBool BaseSizesMatch( const TSize& aSize ); - - /** - * @see CDisplaySink::BitmapEntry - */ - TBitmapEntry& BitmapEntry( TInt aIndex ); - - /** - * @see CDisplaySink::BaseEmptyBufferL - */ - void BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ); - - /** - * @see CDisplaySink::BaseSetBitmapAvailable - */ - void BaseSetBitmapAvailable( TBitmapNo aBitmapNo ); - - /** - * @see CDisplaySink::BaseVideoFrameSizeChangedL - */ - void BaseVideoFrameSizeChangedL( const TSize& aNewSize ); - -private: // from MVtImageRotatorObserver - - /** - * @see MVtImageRotatorObserver::RotationFinished - */ - void RotationFinished( TInt aError ); - -private: // new methods - - /** - * Updates expected frame size. - * @exception May leave with KErrNotSupported, if bitmap sizes do not match. - */ - void UpdateExpectedFrameSizeL(); - - /** - * Converts image. Calls DoConvertL() to do the task. - * @param "aBitmapNo" CFbsBitmap number to use for converted image. - * @param "aConverted" Reference to boolean that will be ETrue if buffer - * was converted, EFalse otherwise. - * @return KErrNone or one of the system wide error codes. - */ - void ConvertL( const TPtrC8& aBuffer, TBool& aConverted ); - - /** - * Convert YUV420Planar image to a CFbsBitmap. - * @param "aBitmapNo" CFbsBitmap number to use for converted image. - * @return KErrNone or one of the system wide error codes. - */ - void DoConvertL( const TPtrC8& aBuffer, TBitmapNo aBitmapNo ); - -private: // new classes - - // Class containing bitmap related data - class TBitmapEntryDSA : public TBitmapEntry - { - public: // data - - // Handle to target bitmap - TInt iHandle; // QCIF - }; - -private: // data - - // Array of bitmap related structures - TBitmapEntryDSA iBitmapTable[ KBitmapTableCount ]; - - // Converter for bitmap 1, created into Protocol thread's heap - CVTYUVFbsBitmapConverter* iYUVBitmapConverter1; // owned - - // Converter for bitmap 2, created into Protocol thread's heap - CVTYUVFbsBitmapConverter* iYUVBitmapConverter2; // owned - - // Converter for bitmap, created into VT thread's heap - CVTYUVFbsBitmapConverter* iYUVBitmapConverterVT; - - // Pointer to image rotator instance. - CVtImageRotator* iRotator; // owned - - // Source YUV image for image transforms - CVtImageIYUV* iSourceImg; - - // Target YUV image for image transforms - CVtImageIYUV* iTargetImg; - - // Rotation angle - CVtImageRotator::TRotationAngle iRotationAngle; - - // Store for saving new parameters in UpdateSinkParamsL() call - TDisplaySinkParamsDSA iNewParams; - }; - -#endif // CDISPLAYSINKDSA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CDisplaySinkNGA.h --- a/vtprotocolplugins/DisplaySink/inc/CDisplaySinkNGA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2004-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: Displaysink implementation for NGA. -* -*/ - -#ifndef CDISPLAYSINKNGA_H -#define CDISPLAYSINKNGA_H - -// INCLUDE FILES -#include "CDisplaySink.h" -#include "TDisplaySinkParamsNGA.h" - -// CLASS DECLARATION - -/** -* Displaysink implementation for NGA. -* -* @lib displaysink.lib -* @since Series 60 3.1 -*/ -NONSHARABLE_CLASS( CDisplaySinkNGA ) : public CDisplaySink - { -public: // static constructor - - /** - * Static constructor that may leave. - */ - static CDisplaySinkNGA* NewL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - -private: // constructors and destructor - - /** - * C++ default constructor. - */ - CDisplaySinkNGA(); - - /** - * destructor - */ - ~CDisplaySinkNGA(); - -private: // from CDisplaySink - - - /** - * @see CDisplaySink::BaseConstructL - */ - void BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - - /** - * @see CDisplaySink::BaseConvert - */ - TBool BaseConvert( const TVtMMFDataBuffer& aBuffer ); - - /** - * @see CDisplaySink::BaseSinkThreadLogonL - */ - void BaseSinkThreadLogonL(); - - /** - * @see CDisplaySink::BaseSinkThreadLogoff - */ - void BaseSinkThreadLogoff(); - - /** - * @see CDisplaySink::BaseUpdateSinkParamsL - */ - void BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ); - - /** - * @see CDisplaySink::BaseDoUpdateParamsL - */ - void BaseDoUpdateParamsL(); - - /** - * @see CDisplaySink::BaseDoUpdateParamsL - */ - void BaseSetVideoFrameSizeL( const TSize& aSize ); - - /** - * @see CDisplaySink::BaseSizesMatch - */ - TBool BaseSizesMatch( const TSize& aSize ); - - /** - * @see CDisplaySink::BitmapEntry - */ - TBitmapEntry& BitmapEntry( TInt aIndex ); - - /** - * @see CDisplaySink::BaseEmptyBufferL - */ - void BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ); - - /** - * @see CDisplaySink::BaseSetBitmapAvailable - */ - void BaseSetBitmapAvailable( TBitmapNo aBitmapNo ); - - /** - * @see CDisplaySink::BaseVideoFrameSizeChangedL - */ - void BaseVideoFrameSizeChangedL( const TSize& aNewSize ); - -private: // MDisplaySink - - /** - * @see MDisplaySink::NextFrame - */ - void NextFrame(); - -private: // new methods - - /** - * Updates expected frame size. - * @exception May leave with KErrNotSupported, if bitmap sizes do not match. - */ - void UpdateExpectedFrameSizeL(); - -private: // new classes - - // Class submit buffer related data - class TBitmapEntryNGA : public TBitmapEntry - { - public: // data - - // Pointer to Surface Buffer pointer - //TVideoFrameBuffer** iBuffer; - TUint8** iBuffer; - }; - -private: // data - - // Array of bitmap related structures - TBitmapEntryNGA iBitmapTable[ KBitmapTableCount ]; - - // Store for saving new parameters in UpdateSinkParamsL() call - TDisplaySinkParamsNGA iNewParams; - }; - -#endif // CDISPLAYSINKNGA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageBitmap.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageBitmap.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - - -#ifndef CVTIMAGEBITMAP_H -#define CVTIMAGEBITMAP_H - -// INCLUDE FILES - -#include "cvtimage.h" - -// FORWARD DECLARATIONS - -class CFbsBitmap; - -// CLASS DECLARATIONS - -/** -* CFbsBitmap image implementation. -* -* @lib videosource.lib -*/ -class CVtImageBitmap : public CVtImage - { - public: - - /** - * Creates new instance of CVtImageBitmap. - * @param "aBitmapHandle" Handle of bitmap to "bind" this instance to. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageBitmap* NewL( TInt aBitmapHandle ); - - /** - * Creates new instance of CVtImageBitmap. - * @param "aSize" Size of the image in pixels. - * @param "aDisplayMode" Display mode of the image. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageBitmap* NewL( - const TSize& aSize, - TDisplayMode aDisplayMode ); - - /** - * C++ destructor. - */ - IMPORT_C ~CVtImageBitmap(); - - /** - * Resizes the image to new dimension. - * @exception In error situation leaves with one of the system wide - * error codes. - * @param "aSize" New size of the image in pixels. - */ - IMPORT_C void ResizeL( const TSize& aSize ); - - /** - * Sets new bitmap this image references to. - * @param "aBitmapHandle" Handle of the bitmap this image will be - * referencing to. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - IMPORT_C void SetBitmapL( TInt aBitmapHandle ); - - /** - * Returns constant reference to CFbsBitmap owned by this instance. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Constant reference to CFbsBitmap. - */ - IMPORT_C CFbsBitmap& Bitmap() const; - - public: // from CVtImage - - /** - * From CVtImage. See CVtImage for description. - */ - TBool NeedHeapLock() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TVtDisplayMode DisplayMode() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TSize Size() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TInt BytesPerRow() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TUint32* DataAddress() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TUint32* LineAddress( TInt aLine ) const; - - private: - - /** - * C++ constructor. - */ - CVtImageBitmap(); - - /** - * Second phase constructor. - * @param "aSize" Size of the image in pixels. - * @param "aDisplayMode" Display mode of the image. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void ConstructL( const TSize& aSize, TDisplayMode aDisplayMode ); - - /** - * Second phase constructor. - * @param "aBitmapHandle" Handle of bitmap to "bind" this instance to. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void ConstructL( TInt aBitmapHandle ); - - private: - - // CFbsImage this image instance references to - CFbsBitmap* iBitmap; // owned - }; - - -#endif // CVTIMAGEBITMAP_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageConverter.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageConverter.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,638 +0,0 @@ -/* -* Copyright (c) 2004 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: Image conversion library for VideoTelephony. -* -*/ - - - - - -#ifndef CVTIMAGECONVERTER_H -#define CVTIMAGECONVERTER_H - -// INCLUDE FILES - -#include -#include - -// CLASS FORWARDS - -class CFbsBitmap; -class CVTYUVFbsBitmapConverter; -class CVSFbsBitmapIYUVConverter; - -// DATA TYPES - -typedef TRgb ( *TVSColorReadFunc ) ( TAny*& ); - -// CLASS DECLARATIONS - -/** -* Base class for all YUV to CFbsBitmap converters. -* -* @lib VTImageConverter.lib -*/ -class CVTYUVFbsBitmapConverter : public CBase - { - public: // Constructors and destructor - - /** - * C++ destructor. - */ - IMPORT_C ~CVTYUVFbsBitmapConverter(); - - public: // New functions - - /** - * Starts image conversion from YUV to CFbsBitmap. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C virtual void ProcessL(); - - /** - * Sets size of the source YUV image in pixels. This must be implemented - * in derived classes. - * @param "aSize" Size of source YUV image in pixels. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SetSourceSizeL( const TSize& aSize ) = 0; - - /** - * Sets source YUV image data. This method must be implemented in derived - * classes. - * @param "aSourceData" 8-bit descriptor containing the YUV data. As - * data is referenced and not copied, given reference must be still - * valid when ProcessL() is called. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SetSourceL( const TDesC8& aSourceData ) = 0; - - /** - * Sets size of the source YUV image in pixels and image data. - * This method must be implemented in derived classes. - * @param "aSize" Size of source YUV image in pixels. - * @param "aSourceData" 8-bit descriptor containing the YUV data. - * As data is referenced and not copied, given reference must be still - * valid when ProcessL() is called. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SetSourceL( - const TSize& aSize, - const TDesC8& aSourceData ) = 0; - - /** - * Sets destination bitmap into which conversion will be made. - * @param "aDestinationBitmap" Reference to destination bitmap. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C virtual void SetDestinationL( - const CFbsBitmap& aDestinationBitmap ); - - /** - * Sets destination bitmap into which conversion will be made. - * Bitmap is given as handle to existing bitmap. - * @param "aHandle" Handle to existing bitmap. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C virtual void SetDestinationL( TInt aHandle ); - - public: // Functions from base classes - - protected: // New functions - - /** - * Updates iY, iU and iV member variables. Must be implemented in - * derived classes. - * @param "aSourceData" 8-bit descriptor to source YUV data. - */ - virtual void SetYUVPtrs( const TDesC8& aSourceData ) = 0; - - /** - * Second phase constructor. - * @param "aBitmapHandle" Handle to destination bitmap. - * @exception Can leave with one of the system wide error codes. - */ - virtual void ConstructL( TInt aBitmapHandle ); - - /** - * Second phase constructor that will be called when destination is - * changed. - * @param "aBitmapHandle" Handle to destination bitmap. - * @exception Can leave with one of the system wide error codes. - */ - virtual void ReConstructL( TInt aBitmapHandle ); - - /** - * Updates internal variables. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SizeUpdateL(); - - /** - * C++ constructor. - * @param "aSourceSize" Source size in pixels. - */ - CVTYUVFbsBitmapConverter( const TSize& aSourceSize ); - - /** - * Returns source size in pixels. - * @return Source size in pixels, as constant reference. - */ - inline const TSize& SourceSize() const; - - /** - * Returns source size in pixels. - * @return Source size in pixels, as reference. - */ - inline TSize& SourceSize(); - - /** - * Returns destination size in pixels. - * @return Destination size in pixels, as constant reference. - */ - inline const TSize& DestinationSize() const; - - /** - * Returns destination size in pixels. - * @return Destination size in pixels, as reference. - */ - inline TSize& DestinationSize(); - - /** - * Main process loop for Color4K mode. This must be implemented in - * derived classes. - * @param "aWriteFunction" Pointer to function that writes one pixel to - * destination. - */ - virtual void DoProcess4K() = 0; - - /** - * Main process loop for Color64K mode. This must be implemented in - * derived classes. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - virtual void DoProcess64K() = 0; - - /** - * Main process loop for Color16M mode. This must be implemented in - * derived classes. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - virtual void DoProcess16M() = 0; - - /** - * Main process loop for Color16MU mode. This must be implemented in - * derived classes. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - virtual void DoProcess16MU16MA() = 0; - - protected: // Functions from base classes - - private: // New functions - - /** - * C++ default constructor. - */ - CVTYUVFbsBitmapConverter(); - - private: // Functions from base classes - - public: // Data - - protected: // Data - - // Table of coefficients for EColor4K - static const TUint8 COFF_TBL_4K[ 80 ]; - - // Table of coefficients for EColor64K - static const TUint8 COFF_TBL_64K[ 220 ]; - - // Table of coefficients for EColor16M - static const TUint8 COFF_TBL_16M[ 528 ]; - - // Source size in pixels. - TSize iSourceSize; - - // Target size in pixels. - TSize iDestinationSize; - - // Pointer to destination bitmap. - CFbsBitmap* iDestination; // owned, duplicate - - // Pointer descriptor that points to Y data of the YUV image. - const TUint8* iY; - - // Pointer descriptor that points to Cr (U) data of the YUV image. - const TUint8* iU; - - // Pointer descriptor that points to Cb (V) data of the YUV image. - const TUint8* iV; - - // Horizontal skip real value. After every pixel this valus is added - // to X index in conversion loop. - TReal32 iVSkipReal; - - // Vertical skip real value. After every pixel this valus is added - // to Y index in conversion loop. - TReal32 iHSkipReal; - - private: // Data - }; - -/** -* Base class for YUV 4:2:0 planar image to CFbsBitmap converters. -* -* @lib VTImageConverter.lib -*/ -class CVTYUVPlanarFbsBitmapConverter : public CVTYUVFbsBitmapConverter - { - public: // New functions - - public: // Functions from base classes - - /** - * Sets size of the source YUV image in pixels. - * @param "aSize" Size of source YUV image in pixels. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C void SetSourceSizeL( const TSize& aSize ); - - /** - * Sets source YUV image data. - * @param "aSourceData" 8-bit descriptor containing the YUV data. As - * data is referenced and - * not copied, given reference must be still valid when ProcessL() is - * called. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C void SetSourceL( const TDesC8& aSourceData ); - - /** - * Sets size of the source YUV image in pixels and image data. This - * method must be - * implemented in derived classes. - * @param "aSize" Size of source YUV image in pixels. - * @param "aSourceData" 8-bit descriptor containing the YUV data. As - * data is referenced and - * not copied, given reference must be still valid when ProcessL() is - * called. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C void SetSourceL( - const TSize& aSize, - const TDesC8& aSourceData ); - - protected: // Constructors and destructor - - /** - * C++ constructor. - * @param "aSourceSize" Source size in pixels. - */ - CVTYUVPlanarFbsBitmapConverter( const TSize& aSourceSize ); - - protected: // New functions - - protected: // Functions from base classes - - /** - * Main process loop for Color4K mode. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess4K(); - - /** - * Main process loop for Color4K mode when scaling is not required. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess4KNoScale(); - - /** - * Main process loop for Color64K mode. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess64K(); - - /** - * Main process loop for Color64K mode when scaling is not required. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess64KNoScale(); - - /** - * Main process loop for Color16M mode. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess16M(); - - /** - * Main process loop for Color16M mode when scaling is not required. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess16MNoScale(); - - /** - * Main process loop for Color16MU and Color16MA modes. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess16MU16MA(); - - /** - * Main process loop for Color16MU and Color16MA modes when scaling is - * not required. - * @param "aWriteFunction" Pointer to function that writes one pixel - * to destination. - */ - void DoProcess16MU16MANoScale(); - - private: // New functions - - /** - * C++ default constructor. - */ - CVTYUVPlanarFbsBitmapConverter(); - - private: // Functions from base classes - }; - -/** -* FourCC IYUV image to CFbsBitmap converter (see IYUV description below). -* -* All Y samples are found first in memory as an array of unsigned char -* (possibly with a larger stride for memory alignment), followed immediately -* by all Cr (U) samples (with half the stride of the Y lines, and half the -* number of lines), then followed immediately by all Cb (V) samples in a -* similar fashion. -* -* @lib VTImageConverter.lib -*/ -class CVTIYUVFbsBitmapConverter : public CVTYUVPlanarFbsBitmapConverter - { - public: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @param "aSourceSize" Size of source image in pixels. - * @param "aDestination" Reference to destination bitmap. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVTIYUVFbsBitmapConverter* NewL( - const TSize& aSourceSize, - const CFbsBitmap& aDestination ); - - /** - * Static factory function to create instance of this class. - * @param "aSourceSize" Size of source image in pixels. - * @param "aBitmapHandle" Handle to destination bitmap. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVTIYUVFbsBitmapConverter* NewL( - const TSize& aSourceSize, - TInt aBitmapHandle ); - - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - private: // Functions from base classes - - /** - * Updates iY, iU and iV member variables. - * @param "aSourceData" 8-bit descriptor to source YUV data. - */ - void SetYUVPtrs( const TDesC8& aSourceData ); - - private: // Constructors and destructor - - /** - * C++ destructor. - * @param "aSourceSize" Source size in pixels. - */ - CVTIYUVFbsBitmapConverter( const TSize& aSourceSize ); - - /** - * C++ default constructor. - */ - CVTIYUVFbsBitmapConverter(); - }; - -/** -* FourCC YV12 image to CFbsBitmap converter (see YV12 description below). -* -* All Y samples are found first in memory as an array of unsigned char -* (possibly with a larger stride for memory alignment), followed immediately -* by all Cb (V) samples (with half the stride of the Y lines, and half the -* number of lines), then followed immediately by all Cr (U) samples in a -* similar fashion. -* -* @lib VTImageConverter.lib -*/ -class CVTYV12FbsBitmapConverter : public CVTYUVPlanarFbsBitmapConverter - { - public: // Constructors and destructor - /** - * Static factory function to create instance of this class. - * @param "aSourceSize" Size of source image in pixels. - * @param "aDestination" Reference to destination bitmap. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVTYV12FbsBitmapConverter* NewL( - const TSize& aSourceSize, - const CFbsBitmap& aDestination ); - - /** - * Static factory function to create instance of this class. - * @param "aSourceSize" Size of source image in pixels. - * @param "aBitmapHandle" Handle to destination bitmap. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVTYV12FbsBitmapConverter* NewL( - const TSize& aSourceSize, - TInt aBitmapHandle ); - - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - private: // Functions from base classes - - /** - * Updates iY, iU and iV member variables. - * @param "aSourceData" 8-bit descriptor to source YUV data. - */ - void SetYUVPtrs( const TDesC8& aSourceData ); - - private: // Constructors and destructor - - /** - * C++ destructor. - * @param "aSourceSize" Source size in pixels. - */ - CVTYV12FbsBitmapConverter( const TSize& aSourceSize ); - - /** - * C++ default constructor. - */ - CVTYV12FbsBitmapConverter(); - }; - -/** -* CFbsBitmap to FourCC IYUV image converter (see IYUV description below). -* -* All Y samples are found first in memory as an array of unsigned char -* (possibly with a larger stride for memory alignment), followed immediately -* by all Cr (U) samples (with half the stride of the Y lines, and half the -* number of lines), then followed immediately by all Cb (V) samples in a -* similar fashion. -* -* @lib VTImageConverter.lib -*/ -class CVSFbsBitmapIYUVConverter : public CBase - { - public: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @param "aBitmap" Reference to source bitmap. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVSFbsBitmapIYUVConverter* NewL( - const CFbsBitmap& aBitmap ); - - /** - * C++ destructor. - */ - IMPORT_C ~CVSFbsBitmapIYUVConverter(); - - public: // New functions - - /** - * Sets new source bitmap. - * @param "aBitmap" Reference to new source bitmap. - */ - IMPORT_C void SetSourceL( const CFbsBitmap& aBitmap ); - - /** - * Starts image conversion from CFbsBitmap to YUV. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C void ProcessL(); - - /** - * After successfull ProcessL() call converted YUV image data can be - * fetched using this method. - * @return 8-bit pointer descriptor (constant) to YUV image data. - */ - IMPORT_C TPtrC8 YUVData() const; - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // Constructors and destructor - - /** - * C++ default constructor. - */ - CVSFbsBitmapIYUVConverter(); - - /** - * Second phase constructor. - * @param "aBitmap" Reference to source bitmap. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL( const CFbsBitmap& aBitmap ); - - private: // New functions - - /** - * Second phase constructor that is called when source is changed. - * @param "aBitmap" Reference to source bitmap. - * @exception Can leave with one of the system wide error codes. - */ - void ReConstructL( const CFbsBitmap& aBitmap ); - - /** - * Main process loop. - * @param "aReadFunction" Pointer to function that reads one pixel from - * source. - */ - void DoProcess( TVSColorReadFunc aReadFunction ); - - private: // Functions from base classes - - public: // Data - - protected: // Data - - private: // Data - - // Destination size in pixels. - TSize iSize; - - // Pointer to source bitmap. - CFbsBitmap* iSource; // owned, duplicate - - // Heap descriptor that contains converted YUV data. - HBufC8* iYUVData; // owned - - // Pointer descriptor that points to Y data of the YUV image. - TPtrC8 iY; - - // Pointer descriptor that points to Cr (U) data of the YUV image. - TPtrC8 iU; - - // Pointer descriptor that points to Cb (V) data of the YUV image. - TPtrC8 iV; - }; - -// INLINE METHODS -#include "cvtimageconverter.inl" - - -#endif // CVTIMAGECONVERTER_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageIYUV.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageIYUV.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,231 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - - -#ifndef CVTIMAGEIYUV_H -#define CVTIMAGEIYUV_H - -// INCLUDE FILES - -#include "cvtimage.h" - -// CLASS DECLARATIONS - -/** -* CFbsBitmap image implementation. -* -* @lib videosource.lib -*/ -class CVtImageIYUV : public CVtImage - { - public: - - /** - * Creates new instance of CVtImageIYUV. - * @param "aSize" Size of the image in pixels. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageIYUV* NewL( const TSize& aSize ); - - /** - * Creates new instance of CVtImageIYUV. - * @param "aSize" Size of the image in pixels. - * @param "aImage" Image data as 8-bit descriptor. Image data is copied into - * this instance. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageIYUV* NewL( const TSize& aSize, const TDesC8& aImage ); - - /** - * Creates new instance of CVtImageIYUV. - * @param "aSize" Size of the image in pixels. - * @param "aImage" Image data as 8-bit descriptor. This image will be referenced - * and thus changes to this instance will be visible in the caller descriptor - * as well. Also descriptor must remain accessible lifetime of the current - * instance or until new non-referenced image is set. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageIYUV* NewL( const TSize& aSize, TPtr8& aImage ); - - /** - * C++ destructor. - */ - IMPORT_C ~CVtImageIYUV(); - - /** - * Updates image with given data. - * @param "aImage" New image. - * @param "aImage" Image data as 8-bit descriptor. Image data is copied into - * this instance. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - IMPORT_C void SetImageL( const TDesC8& aImage ); - - /** - * Updates image with given data. - * @param "aImage" Image data as 8-bit descriptor. This image will be referenced - * and thus changes to this instance will be visible in the caller descriptor - * as well. Also descriptor must remain accessible lifetime of the current - * instance or until new non-referenced image is set. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - IMPORT_C void SetImageL( TPtr8& aImage ); - - /** - * Returns image as descriptor. - * @return Image as 8-bit descriptor. - */ - IMPORT_C TPtrC8 Image() const; - - /** - * Returns pointer to Y plane of this image. - * @return Pointer to Y plane of this image. - */ - IMPORT_C TUint8* Y() const; - - /** - * Returns pointer to U plane of this image. - * @return Pointer to U plane of this image. - */ - IMPORT_C TUint8* U() const; - - /** - * Returns pointer to V plane of this image. - * @return Pointer to V plane of this image. - */ - IMPORT_C TUint8* V() const; - - /** - * Returns width of the U and V plane in bytes. - * @return Width of the U and V plane in bytes. - */ - IMPORT_C TInt UVPlaneWidth() const; - - /** - * Returns height of the U and V plane in bytes. - * @return Height of the U and V plane in bytes. - */ - IMPORT_C TInt UVPlaneHeight() const; - - public: // from CVtImage - - /** - * From CVtImage. See CVtImage for description. - */ - TBool NeedHeapLock() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TVtDisplayMode DisplayMode() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TSize Size() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TInt BytesPerRow() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TUint32* DataAddress() const; - - /** - * From CVtImage. See CVtImage for description. - */ - TUint32* LineAddress( TInt aLine ) const; - - - private: - - /** - * Returns size of the image in bytes (all planes - * included). - * @return Size of the image in bytes. - */ - TInt ImageSize() const; - - /** - * C++ constructor. - */ - CVtImageIYUV( const TSize& aSize ); - - /** - * Second phase constructor. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void ConstructL( const TDesC8* aImage ); - - /** - * Validates given size. - * @exception If the size is not correct leaves with KErrArgument. - */ - void ValidateSizeL( const TSize& aSize ); - - /** - * Checks the size of the given descriptor against required size. - * @exception If the size is not correct leaves with KErrArgument. - */ - void CheckDescriptorSizeL( const TDesC8& aImage ); - - /** - * Sets Y, U and V plane pointers. - */ - void SetYUVPointers(); - private: - - // Size of the image - TSize iSize; - - // Image data - HBufC8* iImage; // owned - - // Image data ptr descriptor - TPtr8 iPtrImage; - - // Ptr to Y plane - TUint8* iY; - - // Ptr to U plane - TUint8* iU; - - // Ptr to V plane - TUint8* iV; - }; - - -#endif // CVTIMAGEIYUV_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageRotatorImpl.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageRotatorImpl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGEROTATORIMPL_H -#define CVTIMAGEROTATORIMPL_H - -// INCLUDE FILES - -#include "cvtimagerotator.h" - -// FORWARD DECLARATIONS - -class CVtImage; - -// CLASS DECLARATIONS - -/** -* Image scaler implementation. -* -* @lib videosource.lib -*/ -class CVtImageRotatorImpl : public CBase - { - public: - - /** - * Sets scaler params. - * @param "aParams" Scaling params, including source and target images. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void SetSourceTargetL( const CVtImage& aSource, CVtImage& aTarget ); - - /** - * Method to check whether bitmap heap locking is needed or not during - * scaling process. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return ETrue if bitmap heap lock is needed, EFalse otherwise. - */ - TBool NeedHeapLock() const; - - /** - * Pure virtual rotation method. - * @param "aContinue" When method returns, this parameter will contain - * ETrue if new call is needed (i.e. scaling is not yet finished) or - * EFalse if scaling is complete. - * @return KErrNone or one of the system wide error codes. - */ - virtual TInt Rotate( TBool& aContinue ) = 0; - - /** - * Pure virtual method for checking specific rotation angle support. - * @param "aAngle" Rotation type that will be needed. - * @return ETrue if aAngle is one of the supported rotation types - * EFalse otherwise. - */ - virtual TBool SupportsRotationAngle( const CVtImageRotator::TRotationAngle& aAngle ) = 0; - - /** - * Sets rotation angle to be used. - * @param "aAngle" Rotation type that will be needed. - */ - void SetAngle( const CVtImageRotator::TRotationAngle& aAngle ); - - protected: - - /** - * C++ constructor. - * @param "aAngle" Rotation type that will be needed. - */ - CVtImageRotatorImpl( const CVtImageRotator::TRotationAngle& aAngle ); - - private: - - /** - * Pure virtual source and target image validation method. - * @param "aSource" Constant reference to source image. - * @param "aTarget" Constant reference to target image. - * @exception If source or target is not valid, this method leaves - * with KErrNotSupported. - */ - virtual void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) = 0; - - protected: - - // Source for scaling - const CVtImage* iSource; // not owned - - // Target image (will hold scaled source) - CVtImage* iTarget; // not owned - - // Selected rotation angle - CVtImageRotator::TRotationAngle iAngle; - }; - -#endif // CVTIMAGEROTATORIMPL_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageRotatorImplClockwise.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageRotatorImplClockwise.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGEROTATORIMPLCLOCKWISE_H -#define CVTIMAGEROTATORIMPLCLOCKWISE_H - -// INCLUDE FILES - -#include "CVtImageRotatorImpl.h" - -// FORWARD DECLARATIONS - -class CVtImage; - -// CLASS DECLARATIONS - -/** -* Image scaler implementation. -* -* @lib videosource.lib -*/ -class CVtImageRotatorImplClockwise : public CVtImageRotatorImpl - { - public: - /** - * C++ constructor - * @param "aAngle" Selected rotation angle. - */ - CVtImageRotatorImplClockwise( const CVtImageRotator::TRotationAngle& aAngle ); - - /** - * Rotates the image. - * @param "aContinue" When method returns, this parameter will contain - * ETrue if new call is needed (i.e. scaling is not yet finished) or - * EFalse if scaling is complete. - * @return KErrNone or one of the system wide error codes. - */ - TInt Rotate( TBool& aContinue ); - - /** - * Source and target image validation method. - * @param "aSource" Constant reference to source image. - * @param "aTarget" Constant reference to target image. - * @exception If source or target is not valid, this method leaves - * with KErrNotSupported. - */ - void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ); - - /** - * Method for checking specific rotation angle support. - * @param "aAngle" Rotation type that will be needed. - * @return ETrue if aAngle is one of the supported rotation types - * EFalse otherwise. - */ - TBool SupportsRotationAngle( const CVtImageRotator::TRotationAngle& aAngle ); - - private: - - /** - * The rotation implementation. - */ - void DoRotate(); - - /** - * The rotation implementation for YUV planes. - * @param "aSource" Constant pointer to source plane. - * @param "aTarget" Pointer to target plane. - * @param "aWidth" Width of the plane in pixels. - * @param "aHeight" Height of the plane in pixels. - * @param "aBytesPerRow" Bytes per row in plane. - */ - void RotatePlane( - const TUint8* aSource, - TUint8* aTarget, - TInt aSourceWidth, - TInt aSourceHeight, - TInt aSourceBytesPerRow, - TInt aTargetHeight, - TInt aTargetBytesPerRow ); - }; - -#endif // CVTIMAGEROTATORIMPLCLOCKWISE_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageRotatorImplMirrorFlip.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageRotatorImplMirrorFlip.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGEROTATORIMPLMIRRORFLIP_H -#define CVTIMAGEROTATORIMPLMIRRORFLIP_H - -// INCLUDE FILES - -#include "CVtImageRotatorImpl.h" - -// FORWARD DECLARATIONS - -class CVtImage; -class CVtImageIYUV; - -// CLASS DECLARATIONS - -/** -* Image scaler implementation. -* -* @lib videosource.lib -*/ -class CVtImageRotatorImplMirrorFlip : public CVtImageRotatorImpl - { - public: - /** - * C++ constructor - * @param "aAngle" Selected rotation angle. - */ - CVtImageRotatorImplMirrorFlip( const CVtImageRotator::TRotationAngle& aAngle ); - - /** - * Rotates the image. - * @param "aContinue" When method returns, this parameter will contain - * ETrue if new call is needed (i.e. scaling is not yet finished) or - * EFalse if scaling is complete. - * @return KErrNone or one of the system wide error codes. - */ - TInt Rotate( TBool& aContinue ); - - /** - * Source and target image validation method. - * @param "aSource" Constant reference to source image. - * @param "aTarget" Constant reference to target image. - * @exception If source or target is not valid, this method leaves - * with KErrNotSupported. - */ - void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ); - - /** - * Method for checking specific rotation angle support. - * @param "aAngle" Rotation type that will be needed. - * @return ETrue if aAngle is one of the supported rotation types - * EFalse otherwise. - */ - TBool SupportsRotationAngle( const CVtImageRotator::TRotationAngle& aAngle ); - - private: - - /** - * Mirrors image horizontally from iSource to iTarget. - */ - void Mirror(); - - /** - * Mirrors image horizontally from aTarget to aTarget. - */ - void Mirror( CVtImage& aTarget ); - - /** - * Mirrors IYUV image from iSource to iTarget. - */ - void MirrorIYUV - ( - const CVtImageIYUV& aSource, - CVtImageIYUV& aTarget - ); - - /** - * Mirrors one plane of IYUV image from iSource to iTarget. - */ - void MirrorPlane - ( - TUint8* aSource, - TUint8* aTarget, - TInt aWidth, - TInt aHeight, - TInt aBytesPerRow - ); - - /** - * Flips image vertically from iSource to iTarget. - */ - void Flip(); - - /** - * Flips image vertically from aTarget to aTarget. - */ - void Flip( CVtImage& aTarget ); - - /** - * Flips IYUV image vertically from iSource to iTarget. - */ - void FlipIYUV - ( - const CVtImageIYUV& aSource, - CVtImageIYUV& aTarget - ); - - /** - * Flips one plane of IYUV. - */ - void FlipPlane - ( - TUint8* aSource, - TUint8* aTarget, - TInt aHeight, - TInt aBytesPerRow - ); - }; - -#endif // CVTIMAGEROTATORIMPLMIRRORFLIP_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageScaler.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageScaler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - - -#ifndef CVTIMAGESCALER_H -#define CVTIMAGESCALER_H - -// INCLUDE FILES - -#include - -// FORWARD DECLARATIONS - -class CVtImageScalerImpl; -class CVtImage; -class CFbsBitmap; - -// CLASS DECLARATIONS - -/** -* Image scaler observer interface. -* -* @lib videosource.lib -*/ -class MVtImageScalerObserver - { - public: - /** - * Callback method that is called by CVtImageScaler when scaling has - * finished. - * @param "aError" KErrNone if the scaling was done successfully, one - * of the system wide error codes otherwise. - * @return Pointer to newly created instance. - */ - virtual void ScalingFinished( TInt aError ) = 0; - }; - -/** -* Image scaler. -* -* @lib videosource.lib -*/ -class CVtImageScaler : public CActive - { - public: - - /** - * An enumeration within the CVtImageScaler namespace. - * It provides a set of panic codes that may happen during - * scaling process. - */ - enum TPanics - { - /** - * RotateL() is called while previous rotation process - * has not yet been finished. - */ - EBusy = 1 - }; - - /** - * An enumeration within the CVtImageScaler namespace. - * It provides a set of supported scaling quality settings. - */ - enum TQuality - { - /** - * Nearest neigbour algorithm. Fast but poor image quality - * when scale factor exceeds 2x. - */ - ENearest, - - /** - * Weighted average algorithm. Slower than Nearest Neighbour - * but also better image quality when scaling at factor 2x or - * higher. - */ - EWeightedAverage, - - /** - * Bilinear scaling algorithm. Slower than Weighted Average - * but also better image quality. - */ - EBilinear - }; - - public: - - /** - * Creates new instance of CVtImageScaler. - * @param "aObserver" Reference to instance observer. - * @param "aQuality" Scaling quality. If this is omitted, then default - * value of EWeightedAverage is used. - * @param "aPriority" Active object priority. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageScaler* NewL( - MVtImageScalerObserver& aObserver, - TQuality aQuality = EWeightedAverage, - TPriority aPriority = EPriorityStandard ); - - /** - * C++ destructor. - */ - IMPORT_C ~CVtImageScaler(); - - /** - * Sets scaling quality. - * @param "aQuality" Scaling quality. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - IMPORT_C void SetQualityL( TQuality aQuality ); - - /** - * Scales image to new size. - * @param "aSource" Source image that will be scaled. - * @param "aTarget" Target image that will hold the scaled image. New - * image's dimensions - * will be taken from the size of target image. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - IMPORT_C void ScaleL( const CVtImage& aSource, CVtImage& aTarget ); - - /** - * Scales image to new size. Possible error during initialization is - * returned via MVtImageScalerObserver. - * @param "aSource" Source image that will be scaled. - * @param "aTarget" Target image that will hold the scaled image. New - * image's dimensions will be taken from the size of target image. - */ - IMPORT_C void Scale( const CVtImage& aSource, CVtImage& aTarget ); - - /** - * Scales image to new size. This scale method is synchronous and - * aTarget will contain scaled image of aSource on return. This method - * may leave if aSource and/or aTarget are not suitable for scaling. - * MVtImageScalerObserver::ScalingFinished is not called when this - * method is used. - * @param "aSource" Source image that will be scaled. - * @param "aTarget" Target image that will hold the scaled image. New - * image's dimensions will be taken from the size of target image. - */ - IMPORT_C void ScaleNowL( const CVtImage& aSource, CVtImage& aTarget ); - - private: // internal - - /** - * C++ default constructor. - */ - CVtImageScaler(); - - /** - * C++ constructor. - * @param "aObserver" Reference to observer. - * @param "aPriority" Active object priority. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - CVtImageScaler( MVtImageScalerObserver& aObserver, TPriority aPriority ); - - /** - * Second phase constructor. - * @param "aQuality" Quality of the scaling. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void ConstructL( TQuality aQuality ); - - /** - * Sets iStatus to KRequestPending and calls CActive::SetActive(). - */ - void Activate(); - - /** - * Signals this instance AO with given error code. - * @param "aError" Signalling error code. - */ - void Signal( TInt aError ); - - private: // from CActive - - /** - * This is defined in CActive. Check CActive for description. - */ - void RunL(); - - /** - * This is defined in CActive. Check CActive for description. - */ - void DoCancel(); - - /** - * Scale method called by the CAsyncCallBack. - */ - static TInt StaticScale( TAny* aPtr ); - - /** - * Scale method called by the StaticScale. - */ - void DoScale(); - - private: - - // Scaling observer - MVtImageScalerObserver& iObserver; - - // Active quality implementation - CVtImageScalerImpl* iScalerImpl; // owned - - // Bitmap that will be used for locking global bitmap heap - CFbsBitmap* iHeapLock; // owned - - // Asynccallback instance - CAsyncCallBack* iAsyncCallBack; // owned - - // This is set to ETrue in DoCancel() method, and when CAsyncCallBack - // gets executed, iCancelled is checked whether scaling should be done - // or not. - TBool iCancelled; - }; - -#endif // CVTIMAGESCALER_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageScalerImpl.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageScalerImpl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGESCALERIMPL_H -#define CVTIMAGESCALERIMPL_H - -// INCLUDE FILES - -#include -#include - -// FORWARD DECLARATIONS - -class CVtImage; - -// CLASS DECLARATIONS - -/** -* Image scaler implementation. -* -* @lib videosource.lib -*/ -class CVtImageScalerImpl : public CActive - { - protected: - - /** - * Constructor. - */ - CVtImageScalerImpl(); - - public: - - /** - * Destructor. - */ - ~CVtImageScalerImpl(); - - /** - * Sets scaler params. - * @param "aParams" Scaling params, including source and target images. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void SetSourceTargetL( const CVtImage& aSource, CVtImage& aTarget ); - - /** - * Method to check whether bitmap heap locking is needed or not during - * scaling process. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return ETrue if bitmap heap lock is needed, EFalse otherwise. - */ - TBool NeedHeapLock() const; - - /** - * Pure virtual scaling method. - * @param "aContinue" When method returns, this parameter will contain - * ETrue if new call is needed (i.e. scaling is not yet finished) or - * EFalse if scaling is complete. - * @return KErrNone or one of the system wide error codes. - */ - virtual TInt Scale( TBool& aContinue ) = 0; - - protected: - - /** - * Scales using CBitmapScaler, which is slow but works with any - * Symbian color mode. - * @param aQuality Scaling quality @see CBitmapScaler::TQualityAlgorithm - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void ScaleWithBitmapScalerL( - const CBitmapScaler::TQualityAlgorithm aQuality ); - - private: - - /** - * Pure virtual source and target image validation method. - * @param "aSource" Constant reference to source image. - * @param "aTarget" Constant reference to target image. - * @exception If source or target is not valid, this method leaves - * with KErrNotSupported. - */ - virtual void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) = 0; - - /** - * Method for validating image size. - * @param "aSize" Size to be validated. - * @param "aMinSize" Minimum allowed size. If this is not given a default - * size of TSize( 1, 1 ) is used. - * @exception If size is not valid within given parameters, this - * method leaves with KErrNotSupported. - */ - void LeaveIfNotValidSizeL( - const TSize& aSize, - const TSize aMinSize = TSize( 1, 1 ) ); - - private: // from CActive - - /** - * @see CActive::RunL - */ - void RunL(); - - /** - * @see CActive::DoCancel - */ - void DoCancel(); - - protected: - - // Source for scaling - const CVtImage* iSource; // not owned - - // Target image (will hold scaled source) - CVtImage* iTarget; // not owned - - // Bitmap scaler instance - CBitmapScaler* iScaler; - - // Active scheduler waiter object - CActiveSchedulerWait iActiveSchedulerWait; - - }; - -#endif // CVTIMAGESCALERIMPL_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageScalerImplBilinear.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageScalerImplBilinear.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - - -#ifndef CVTIMAGESCALERIMPLBILINEAR_H -#define CVTIMAGESCALERIMPLBILINEAR_H - -// INCLUDE FILES - -#include "CVtImageScalerImpl.h" - -// CLASS DECLARATIONS - -/** -* Bilinear image scaler implementation. -* -* @lib videosource.lib -*/ -class CVtImageScalerImplBilinear : public CVtImageScalerImpl - { - private: // from CVtImageScalerImpl - - /** - * From CVtImageScalerImpl. Check CVtImageScalerImpl for description. - */ - TInt Scale( TBool& aContinue ); - - private: - - /** - * Validate given parameters. - */ - void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ); - - /** - * Initializes internal variables for scaling. - */ - void Initialize(); - - /** - * Scales images in displaymode EColor4K. - */ - void Scale4K(); - - /** - * Scales images in displaymode EColor64K. - */ - void Scale64K(); - - /** - * Scales images in displaymode EColor16M. - */ - void Scale16M(); - - /** - * Scales images in displaymode EColor16MU. - */ - void Scale16MU(); - - /** - * Scales images in displaymode EColor16MA. - */ - void Scale16MA(); - - /** - * Fast scaling when target is double the source size for - * 4K and 64K display modes. - */ - void Scale2x4K64K( TUint32 aMask ); - - /** - * Fast scaling when target is double the source size for - * 16M display mode. - */ - void Scale2x16M(); - - /** - * Fast scaling when target is double the source size for - * 16MU and 16MA display modes. - */ - void Scale2x16MU16MA(); - - private: - - // Target width ratio to source width - TUint32 iU; - - // Target height ratio to source height - TUint32 iV; - }; - -#endif // CVTIMAGESCALERIMPLBILINEAR_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageScalerImplNearest.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageScalerImplNearest.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGESCALERIMPLNEAREST_H -#define CVTIMAGESCALERIMPLNEAREST_H - -// INCLUDE FILES - -#include "CVtImageScalerImpl.h" - -// CLASS DECLARATIONS - -/** -* Nearest neigbour image scaling implementation. -* -* @lib videosource.lib -*/ -class CVtImageScalerImplNearest : public CVtImageScalerImpl - { - private: // from CVtImageScalerImpl - - /** - * From CVtImageScalerImpl. Check CVtImageScalerImpl for description. - */ - TInt Scale( TBool& aContinue ); - - private: - - /** - * Validate given parameters. - */ - void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ); - - /** - * Initializes internal variables for scaling. - */ - void Initialize(); - - /** - * Scales images in displaymode EColor4K. - */ - void Scale4K( - const TUint16* aSrcPtr, - TUint32 aSrcPitch, - TUint16* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aDx, - TUint32 aDy ); - - /** - * Scales images in displaymode EColor64K. - */ - void Scale64K( - const TUint16* aSrcPtr, - TUint32 aSrcPitch, - TUint16* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aDx, - TUint32 aDy ); - - /** - * Scales images in displaymode EColor16M. - */ - void Scale16M( - const TUint8* aSrcPtr, - TUint32 aSrcPitch, - TUint8* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aTrgPitch, - TUint32 aDx, - TUint32 aDy ); - - /** - * Scales images in displaymodes EColor16MU and EColor16MA. - */ - void Scale16MU16MA( - const TUint32* aSrcPtr, - TUint32 aSrcPitch, - TUint32* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aDx, - TUint32 aDy ); - - /** - * Fast scaling when target is double the source size for - * 4K and 64K display modes. - */ - void Scale2x4K64K(); - - /** - * Fast scaling when target is double the source size for 16M - * display mode. - */ - void Scale2x16M(); - - /** - * Fast scaling when target is double the source size for 16MU and 16MA - * display modes. - */ - void Scale2x16MU16MA(); - - private: - - // Target width ratio to source width - TUint32 iU; - - // Target height ratio to source height - TUint32 iV; - }; - -#endif // CVTIMAGESCALERIMPLNEAREST_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageScalerImplWeightedAverage.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageScalerImplWeightedAverage.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGESCALERIMPLWEIGHTEDAVERAGE_H -#define CVTIMAGESCALERIMPLWEIGHTEDAVERAGE_H - -// INCLUDE FILES - -#include "CVtImageScalerImpl.h" - -// CLASS DECLARATIONS - -/** -* Weighted average scaler implementation. -* -* @lib videosource.lib -*/ -class CVtImageScalerImplWeightedAverage : public CVtImageScalerImpl - { - private: // from CVtImageScalerImpl - - /** - * From CVtImageScalerImpl. Check CVtImageScalerImpl for description. - */ - TInt Scale( TBool& aContinue ); - - private: // methods - - /** - * Validate given parameters. - */ - void ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ); - - /** - * Initializes internal variables for scaling. - */ - void Initialize(); - - /** - * Scales images in displaymode EColor4K. - */ - void Scale4K(); - - /** - * Scales images in displaymode EColor64K. - */ - void Scale64K(); - - /** - * Scales images in displaymode EColor16M. - */ - void Scale16M(); - - /** - * Scales images in displaymode EColor16MU. - */ - void Scale16MU(); - - /** - * Scales images in displaymode EColor16MA. - */ - void Scale16MA(); - - /** - * Fast scaling when target is double the source size for - * 4K and 64K display modes. - */ - void Scale2x4K64K( TUint32 aMask ); - - /** - * Fast scaling when target is double the source size for - * 16M display mode. - */ - void Scale2x16M(); - - /** - * Fast scaling when target is double the source size for - * 16MU and 16MA display modes. - */ - void Scale2x16MU16MA(); - - private: // data - - // Target width ratio to source width - TUint32 iU; - - // Target height ratio to source height - TUint32 iV; - - }; - -#endif // CVTIMAGESCALERIMPLWEIGHTEDAVERAGE_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageScalerMacros.h --- a/vtprotocolplugins/DisplaySink/inc/CVtImageScalerMacros.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGESCALERMACROS_H -#define CVTIMAGESCALERMACROS_H - -// MACROS - -#define UNPACK_4K_RED( c ) ( 0xf & ( c >> 8 ) ) -#define UNPACK_4K_GREEN( c ) ( 0xf & ( c >> 4 ) ) -#define UNPACK_4K_BLUE( c ) ( 0xf & c ) -#define PACK_4K_BGR( b, g, r ) \ - TUint16( ( b ) | ( ( ( g ) | ( ( r ) << 4 ) ) << 4 ) ) - -#define UNPACK_64K_RED( c ) ( c >> 11 ) -#define UNPACK_64K_GREEN( c ) ( 0x3f & ( c >> 5 ) ) -#define UNPACK_64K_BLUE( c ) ( 0x1f & c ) -#define PACK_64K_BGR( b, g, r ) \ - TUint16( ( b ) | ( ( ( g ) | ( ( r ) << 6 ) ) << 5 ) ) - -#define UNPACK_16MU_RED( c ) ( 0xff & ( c >> 16 ) ) -#define UNPACK_16MU_GREEN( c ) ( 0xff & ( c >> 8 ) ) -#define UNPACK_16MU_BLUE( c ) ( c & 0xff ) -#define PACK_16MU_BGR( b, g, r ) \ - TUint32( ( ( ( ( ( 0xff << 8 ) | ( r ) ) << 8 ) | ( g ) ) << 8 ) | ( b ) ) - -#define UNPACK_16MA_ALPHA( c ) ( 0xff & ( c >> 24 ) ) -#define UNPACK_16MA_RED( c ) ( 0xff & ( c >> 16 ) ) -#define UNPACK_16MA_GREEN( c ) ( 0xff & ( c >> 8 ) ) -#define UNPACK_16MA_BLUE( c ) ( c & 0xff ) -#define PACK_16MA_ABGR( a, b, g, r ) \ - TUint32( ( ( ( ( ( ( a ) << 8 ) | ( r ) ) << 8 ) | ( g ) ) << 8 ) | ( b ) ) - -#endif // CVTIMAGESCALERMACROS_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/CVtImageTransformsUids.hrh --- a/vtprotocolplugins/DisplaySink/inc/CVtImageTransformsUids.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2004 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: Uid definition file for Display Sink subsystem -* -*/ - - - -#ifndef __CVTIMAGETRANSFORMS_HRH__ -#define __CVTIMAGETRANSFORMS_HRH__ - -#define KUidVtImageTransformsLibrary 0x101F8834 -#define KSharedLibraryUidDefine 0x1000008D - -#endif // __CVTIMAGETRANSFORMS_HRH__ \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/DisplaySinkUids.hrh --- a/vtprotocolplugins/DisplaySink/inc/DisplaySinkUids.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2004 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: Uid definition file for Display Sink subsystem -* -*/ - - - -#ifndef __DISPLAYSINKUIDS_HRH__ -#define __DISPLAYSINKUIDS_HRH__ - -#define KUidDisplaySinkLibrary 0x101F8693 -#define KSharedLibraryUidDefine 0x1000008D - -#endif \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/TDisplaySinkParamsDP.h --- a/vtprotocolplugins/DisplaySink/inc/TDisplaySinkParamsDP.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2004 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: DisplaySink subsystem. -* -*/ - - -#ifndef TDISPLAYSINKPARAMSDP_H -#define TDISPLAYSINKPARAMSDP_H - -// INCLUDE FILES - -#include "mdisplaysink.h" -#include - -// CLASS DECLARATION - -/** -* Displaysink initialization parameters for DisplaySink's Display Posting -* implementation. -* -* @lib displaysink.lib -* @since Series 60 3.1 -*/ -NONSHARABLE_CLASS( TDisplaySinkParamsDP ) : public TDisplaySinkParams - { -public: - // Pointer's pointer to first posting buffer that is filled by the - // sink. - CPostingSurface::TPostingBuff** iPostingBuffer1; - - // Pointer's pointer to second posting buffer that is filled by the - // sink. - CPostingSurface::TPostingBuff** iPostingBuffer2; - - // Posting format to be used - CPostingSurface::TPostingFormat iPostingFormat; - - // Frame size in pixels - TSize iFrameSize; - }; - -#endif // TDISPLAYSINKPARAMSDP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/TDisplaySinkParamsDSA.h --- a/vtprotocolplugins/DisplaySink/inc/TDisplaySinkParamsDSA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* 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: DisplaySink subsystem. -* -*/ - - -#ifndef TDISPLAYSINKPARAMSDSA_H -#define TDISPLAYSINKPARAMSDSA_H - -// INCLUDE FILES - -#include "cvtimagerotator.h" -#include "mdisplaysink.h" - -// CLASS DECLARATION - -/** -* Displaysink initialization parameters for DisplaySink's Direct Screen Access -* implementation. -* -* @lib displaysink.lib -* @since Series 60 3.1 -*/ -NONSHARABLE_CLASS( TDisplaySinkParamsDSA ) : public TDisplaySinkParams - { -public: - - /** - * C++ constructor - */ - TDisplaySinkParamsDSA(); - -public: - // Handle to first bitmap that is filled by the sink. 176x144 bitmap (QCIF) - TInt iBitmap1Handle; - - // Handle to second bitmap that is filled by the sink. 176x144 bitmap (QCIF) - TInt iBitmap2Handle; - - // Angle to which YUV image must be rotated BEFORE it is converted into bitmap. - // If CVtImageRotator::ERotationNone is given, image will be converted as it - // is received. Also make sure that iBitmap1Handle and iBitmap2Handle contains - // correct dimensions AFTER rotation. - CVtImageRotator::TRotationAngle iRotationAngle; - }; - -#include "tdisplaysinkparamsdsa.inl" - -#endif // TDISPLAYSINKPARAMSDSA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/TDisplaySinkParamsNGA.h --- a/vtprotocolplugins/DisplaySink/inc/TDisplaySinkParamsNGA.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2004-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: Displaysink initialization parameters for DisplaySink's NGA implementation. -* -*/ - -#ifndef TDISPLAYSINKPARAMSNGA_H -#define TDISPLAYSINKPARAMSNGA_H - -// INCLUDE FILES - -#include "mdisplaysink.h" -#include -//#include -#include - -// CLASS DECLARATION - -/** -* Displaysink initialization parameters for DisplaySink's NGA -* implementation. -* -* @lib displaysink.lib -* @since Series 60 7.0 -*/ -NONSHARABLE_CLASS( TDisplaySinkParamsNGA ) : public TDisplaySinkParams - { -public: - // Pointer's pointer to first posting buffer that is filled by the - // sink. - TUint8** iSurfaceBuffer1; - //TVideoFrameBuffer** iSurfaceBuffer1; - - // Pointer's pointer to second posting buffer that is filled by the - // sink. - //TVideoFrameBuffer** iSurfaceBuffer2; - TUint8** iSurfaceBuffer2; - - // Posting format to be used - TUidPixelFormat iSurfaceFormat; - - // Frame size in pixels - TSize iFrameSize; - }; - -#endif // TDISPLAYSINKPARAMSNGA_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/VtImageConverterUids.hrh --- a/vtprotocolplugins/DisplaySink/inc/VtImageConverterUids.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2004 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: Uid definition file for Display Sink subsystem -* -*/ - - - -#ifndef __VTIMAGECONVERTERUIDS_HRH__ -#define __VTIMAGECONVERTERUIDS_HRH__ - -#define KUidVtImageConverterLibrary 0x101F86B5 -#define KSharedLibraryUidDefine 0x1000008D - -#endif // __VTIMAGECONVERTERUIDS_HRH__ \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/cvtimage.h --- a/vtprotocolplugins/DisplaySink/inc/cvtimage.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - -#ifndef CVTIMAGE_H -#define CVTIMAGE_H - -// INCLUDE FILES - -#include -#include - -// CLASS DECLARATIONS - -/** -* Abstract base class for VS images. -* -* @lib videosource.lib -*/ -class CVtImage : public CBase - { - public: - /** - * Enumeration for supported image types. - */ - enum TVtImageType - { - /** - * CFbsBitmap image. - */ - EVtImageBitmap, - - /** - * YUV 420 planar image where all Y samples are found first in memory as an - * array of unsigned char (possibly with a larger stride for memory alignment), - * followed immediately by all Cr (U) samples (with half the stride of the Y - * lines, and half the number of lines), then followed immediately by all Cb - * (V) samples in a similar fashion. - */ - EVtImageIYUV - }; - - /** - * Vt display modes. Used for identifying image's data format. - */ - enum TVtDisplayMode - { - /** - * Unsupported display mode. - */ - EVtColorNone, - - /** - * 4096 colour display mode (12 bpp). - */ - EVtColor4K, - - /** - * 2^16 colour display mode (16 bpp). - */ - EVtColor64K, - - /** - * True colour display mode (24 bpp). - */ - EVtColor16M, - - /** - * True colour display mode (32 bpp). - */ - EVtColor16MU, - - /** - * True colour display mode with alpha (32 bpp). - */ - EVtColor16MA, - - /** - * YUV 420 planar display mode. - */ - EVtColorIYUV - }; - - /** - * Pure virtual function to check whether bitmap heap needs to be locked - * for this image type. - * @return Returns ETrue if bitmap heap lock is required, EFalse - * otherwise. - */ - virtual TBool NeedHeapLock() const = 0; - - /** - * Pure virtual function to get displaymode from image. - * @return Returns image's displaymode. - */ - virtual TVtDisplayMode DisplayMode() const = 0; - - /** - * Pure virtual function to get size of the image in pixels - * @return Returns size of the image in pixels. - */ - virtual TSize Size() const = 0; - - /** - * Pure virtual function to get how many bytes this image has per - * scaline. - * @return Returns number of bytes per scanline. - */ - virtual TInt BytesPerRow() const = 0; - - /** - * Pure virtual function to get pointer to image data. - * @return Returns pointer to image data. - */ - virtual TUint32* DataAddress() const = 0; - - /** - * Pure virtual function to get pointer to image data at defined line. - * If aLine is lower than zero then line zero is returned, also if aLine - * is greater than height of the image minus 1 ( height - 1 ) then line - * number ( height - 1 ) is returned. - * @param "aLine" Number of vertical line for which pointer is wanted. - * @return Returns pointer to the beginning of the requested scanline. - */ - virtual TUint32* LineAddress( TInt aLine ) const = 0; - - /** - * Method for getting image type. - * @return Returns type of the image. - */ - IMPORT_C TVtImageType Type() const; - - public: // static methods - - /** - * Converts given TDisplayMode to corresponding TVtDisplayMode. - * @param "aMode" Display mode as TDisplayMode. - * @return Returns mode as TVtDisplayMode. - */ - static TVtDisplayMode DisplayModeToVtDisplayMode( TDisplayMode aMode ); - - protected: - - /** - * C++ constructor. - */ - CVtImage( TVtImageType aType ); - - private: - - // Type of the image. - TVtImageType iType; - }; - -#endif // CVTIMAGE_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/cvtimageconverter.inl --- a/vtprotocolplugins/DisplaySink/inc/cvtimageconverter.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2004 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: Image conversion library for VideoTelephony. -* -*/ - - - - -#ifndef CVTIMAGECONVERTER_INL -#define CVTIMAGECONVERTER_INL - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::SourceSize() const -// Returns source size in pixels. -// ----------------------------------------------------------------------------- -// -inline const TSize& CVTYUVFbsBitmapConverter::SourceSize() const - { - return iSourceSize; - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::SourceSize() -// Returns source size in pixels. -// ----------------------------------------------------------------------------- -// -inline TSize& CVTYUVFbsBitmapConverter::SourceSize() - { - return iSourceSize; - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::DestinationSize() const -// Returns destination size in pixels. -// ----------------------------------------------------------------------------- -// -inline const TSize& CVTYUVFbsBitmapConverter::DestinationSize() const - { - return iDestinationSize; - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::DestinationSize() -// Returns destination size in pixels. -// ----------------------------------------------------------------------------- -// -inline TSize& CVTYUVFbsBitmapConverter::DestinationSize() - { - return iDestinationSize; - } - -#endif CVTIMAGECONVERTER_INL - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/cvtimagerotator.h --- a/vtprotocolplugins/DisplaySink/inc/cvtimagerotator.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,245 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - - - - -#ifndef CVTIMAGEROTATOR_H -#define CVTIMAGEROTATOR_H - -// INCLUDE FILES - -#include - -// FORWARD DECLARATIONS - -class CVtImage; -class CFbsBitmap; -class CVtImageRotatorImpl; - -// CLASS DECLARATIONS - -/** -* Image rotator observer interface. -* -* @lib videosource.lib -*/ -class MVtImageRotatorObserver - { - public: - /** - * Callback method that is called by CVtImageRotator when rotation - * process has been finished. - * @param "aError" KErrNone if the rotation was done successfully, one - * of the system wide error codes otherwise. - * @return Pointer to newly created instance. - */ - virtual void RotationFinished( TInt aError ) = 0; - }; - -/** -* Image rotator. -* -* @lib videosource.lib -*/ -class CVtImageRotator : public CActive - { - public: - /** - * An enumeration within the CVtImageRotator namespace. - * It provides a set of panic codes that may happen during - * rotation process. - */ - enum TPanics - { - /** - * RotateL() is called while previous rotation process - * has not yet been finished. - */ - EBusy = 1 - }; - - /** - * An enumeration within the CVtImageRotator namespace. - * It provides a set of supported rotation and mirror angles. - */ - enum TRotationAngle - { - /** - * Uninitialized place holder. Giving this rotation angle - * to RotateL() will make RotateL() leave with error code - * KErrNotSupported. - */ - ERotationNone = -1, - - /** - * Rotates image 90 degrees in a clockwise direction. - */ - E90DegreesClockwise, - - /** - * Rotates image 180 degrees in a clockwise direction. - * (flip & mirror) - */ - E180DegreesClockwise, - - /** - * Rotates image 270 degrees in a clockwise direction. - */ - E270DegreesClockwise, - - /** - * Mirrors the bitmap around the horizontal axis. - */ - EMirrorHorizontalAxis, - - /** - * Flips the image around the vertical axis. - */ - EFlipVerticalAxis, - }; - - public: - - /** - * Creates new instance of CVtImageRotator. - * @param "aObserver" Reference to instance observer. - * @param "aPriority" Active object priority. - * @exception In error situation leaves with one of the system wide - * error codes. - * @return Pointer to newly created instance. - */ - IMPORT_C static CVtImageRotator* NewL( - MVtImageRotatorObserver& aObserver, - TPriority aPriority = EPriorityLow ); - - /** - * C++ destructor. - */ - IMPORT_C ~CVtImageRotator(); - - /** - * Rotates image to given angle. - * @param "aSource" Source image that will be rotated. - * @param "aTarget" Target image that will hold the rotated image. - * @param "aAngle" Rotation angle. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - IMPORT_C void RotateL( const CVtImage& aSource, CVtImage& aTarget, - const TRotationAngle& aAngle ); - - /** - * Rotates image to given angle. Possible error during initialization is - * returned via MVtImageRotatorObserver. - * @param "aSource" Source image that will be rotated. - * @param "aTarget" Target image that will hold the rotated image. - * @param "aAngle" Rotation angle. - */ - IMPORT_C void Rotate( const CVtImage& aSource, CVtImage& aTarget, - const TRotationAngle& aAngle ); - - private: // internal - - /** - * C++ default constructor. - */ - CVtImageRotator(); - - /** - * C++ constructor. - * @param "aObserver" Reference to observer. - * @param "aPriority" Active object priority. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - CVtImageRotator( MVtImageRotatorObserver& aObserver, TPriority aPriority ); - - /** - * Second phase constructor. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void ConstructL(); - - /** - * Creates new instance of rotator implementation if needed. - * @param "aAngle" Used rotation angle. - * @exception In error situation leaves with one of the system wide - * error codes. - */ - void CreateRotatorL( const TRotationAngle& aAngle ); - - /** - * Sets iStatus to KRequestPending and calls CActive::SetActive(). - */ - void Activate(); - - /** - * Signals this instance AO with given error code. - * @param "aError" Signalling error code. - */ - void Signal( TInt aError ); - - private: // from CActive - - /** - * This is defined in CActive. Check CActive for description. - */ - void RunL(); - - /** - * This is defined in CActive. Check CActive for description. - */ - void DoCancel(); - - /** - * Rotate method called by the CAsyncCallBack. - */ - static TInt StaticRotate( TAny* aPtr ); - - /** - * Rotate method called by the StaticScale. - */ - void DoRotate(); - - private: - - // Scaling observer - MVtImageRotatorObserver& iObserver; - - // Bitmap that will be used for locking global bitmap heap - CFbsBitmap* iHeapLock; // owned - - // Rotator implementation - CVtImageRotatorImpl* iRotatorImpl; // owned - - // Asynccallback instance - CAsyncCallBack* iAsyncCallBack; // owned - - // This is set to ETrue in DoCancel() method, and when CAsyncCallBack - // gets executed, iCancelled is checked whether scaling should be done - // or not. - TBool iCancelled; - }; - -#endif // CVTIMAGEROTATOR_H - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/mdisplaysink.h --- a/vtprotocolplugins/DisplaySink/inc/mdisplaysink.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,199 +0,0 @@ -/* -* Copyright (c) 2004 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: DisplaySink subsystem. -* -*/ - - -#ifndef MDISPLAYSINK_H -#define MDISPLAYSINK_H - -// INCLUDE FILES - -#include - -// FORWARD DECLARATIONS - -class MVTVideoSink; - -/** -* MDisplaySinkObserver -* -* Sink observer API. Currently only frame size changes are reported using -* this IF. -* -* @lib DisplaySink.lib -*/ -class MDisplaySinkObserver - { -public: - /** - * When incoming video frame size changes, this callback will be called. - * @param "aFrom" Current frame size. - * @param "aTo" New frame size. - * @return KErrNone if successful, one of the system wide error codes - * @exception May leave with one of the system wide error codes. - * otherwise. - */ - virtual void VideoFrameSizeChangedL( - const TSize& aFrom, - const TSize& aTo ) = 0; - }; - -/** -* Input parameters for Display Sink -* -* @lib DisplaySink.lib -*/ -class TDisplaySinkParams - { -public: - - /** - * Enumeration for limiting frame rate. - */ - enum TFrameRateLimit - { - /** Don't limit frame rate (default) */ - EFrameRateLimitNone = 0, - /** Limit frame rate to 1.0 frames per second */ - EFrameRateLimit1_0 = 1000, - /** Limit frame rate to 2.5 frames per second */ - EFrameRateLimit2_5 = 400, - /** Limit frame rate to 5.0 frames per second */ - EFrameRateLimit5_0 = 200, - /** Limit frame rate to 7.5 frames per second */ - EFrameRateLimit7_5 = 133, - /** Limit frame rate to 10.0 frames per second */ - EFrameRateLimit10_0 = 100, - /** Limit frame rate to 12.5 frames per second */ - EFrameRateLimit12_5 = 80, - /** Limit frame rate to 15.0 frames per second */ - EFrameRateLimit15_0 = 67, - }; - - /** - * Flags for selecting correct type sink. - */ - enum TFlags - { - /** Create instance of DSA version of sink */ - EDisplaySinkDSA = ( 1 << 0 ), - /** Create instance of DP version of sink */ - EDisplaySinkDP = ( 1 << 1 ), - /** Create instance of NGA version of sink */ - EDisplaySinkNGA = ( 1 << 2 ) - }; - -public: // Data - - /** - * C++ constructor for initializing some of the variables. - */ - IMPORT_C TDisplaySinkParams(); - - // Thread id that gets notified by sink - TThreadId iThreadId; - - // Pointer to iStatus member of the Active Object to notify after video - // frame is converted - TRequestStatus* iRequestStatusPtr; - - // Pointer to Display Sink observer interface - MDisplaySinkObserver* iObserver; - - // Frame rate limitation - TFrameRateLimit iFrameRateLimit; - - // Sink flags - TUint32 iFlags; - }; - -/** -* MDisplaySink -* -* @lib DisplaySink.lib -*/ -class MDisplaySink - { -public: // data - - // Enumeration for the bitmaps. - enum TBitmapNo - { - EFirstBitmap = 0, - ESecondBitmap - }; - -public: // new methods - - /** - * Deletes instance and frees all memory. - */ - virtual void Destroy() = 0; - - /** - * Mark the bitmap available for use. - * @param "aBitmapNo" One of the enumerated TBitmapNo values. - */ - virtual void SetBitmapAvailable( TBitmapNo aBitmapNo ) = 0; - - /** - * Cancels sink so that it does not convert bitmaps even it receives data. - */ - virtual void Release() = 0; - - /** - * Updates display sink parameters, e.g. when display mode changes. - * @param "aParams" Structure that contains new bitmap handles. - * @param "aUpdated" Reference to boolean variable that will be set to - * ETrue when display sink parameter update has been completed. - * @exception May leave with one of the system wide error codes (e.g. in - * out of memory situaton). - */ - virtual void UpdateSinkParamsL( const TDisplaySinkParams& aParams, - TBool& aUpdated ) = 0; - - /** - * Pauses sending of remote video to VT engine. - */ - virtual void Pause() = 0; - - /** - * Resumes sending of remote video to VT engine. - */ - virtual void Resume() = 0; - - /** - * Operator returns this instance . - */ - virtual operator MVTVideoSink&() = 0; - - /** - * This method is called by the VT engine when engine has finished handling - * of previous frame and is ready to handle a new one. - */ - virtual void NextFrame() = 0; - - }; - -/** -* Creates instance of displaysink. -*/ -IMPORT_C MDisplaySink* CreateSinkL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ); - -#endif // MDISPLAYSINK_H - -// End of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/tdisplaysinkparamsdsa.inl --- a/vtprotocolplugins/DisplaySink/inc/tdisplaysinkparamsdsa.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* 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: DisplaySink subsystem. -* -*/ - - -#ifndef TDISPLAYSINKPARAMSDSA_INL -#define TDISPLAYSINKPARAMSDSA_INL - -// ====================== TDisplaySinkParamsDSA ========================== - -inline TDisplaySinkParamsDSA::TDisplaySinkParamsDSA() : TDisplaySinkParams() - { - Mem::FillZ( this, sizeof( TDisplaySinkParamsDSA ) ); - iRotationAngle = CVtImageRotator::ERotationNone; - } - -#endif TDISPLAYSINKPARAMSDSA_INL - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/inc/vtyuvconverter.h --- a/vtprotocolplugins/DisplaySink/inc/vtyuvconverter.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2005-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: YUV format transcoder. -* -*/ - - -#ifndef TVTYUVCONVERTER_H -#define TVTYUVCONVERTER_H - -#include - -/** - * Yuv format transcoder. - * - * Implements conversion between different YUV formats. - * - * @lib VTImageConverter.lib - * @since S60 v3.1 - */ -NONSHARABLE_CLASS( VtYuvConverter ) - { -public: - - /** - * Converts from 4:2:0 planar source image to 4:2:2 interleaved image. - * - * @since S60 v3.1 - * @param aSource Constant descriptor containing source image data. - * @param aSize Size of the image in pixels. - * @param aTarget Modifiable descriptor for target image data. - * @param aStide Number of bytes per scanline in target buffer. - * @return KErrNone if conversion was successful, KErrUnderflow if result - * does not fit in target buffer or KErrArgument if source buffer's size - * does not match with the given source size in pixels. - */ - static TInt ConvertFrom420PlanarTo422Interleaved( - const TDesC8& aSource, - const TSize& aSize, - TDes8& aTarget, - TInt aStride ); - -private: - - /** - * Constructor. - */ - VtYuvConverter(); - - /** - * Copy constructor. - */ - VtYuvConverter( const VtYuvConverter& ); - - /** - * Returns image size in bytes for 420 planar image that has given pixel - * size. - */ - static TInt ByteSize420Planar( const TSize& aSizeInPixels ); - - /** - * Returns image size in bytes for 422 interleaved image that has given - * pixel size. - */ - static TInt ByteSize422Interleaved( const TSize& aSizeInPixels ); - }; - -#endif // TVTYUVCONVERTER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/rom/DisplaySink.iby --- a/vtprotocolplugins/DisplaySink/rom/DisplaySink.iby Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2004-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: -* IBY file for DisplaySink -* -* -*/ - - -#ifndef __DISPLAYSINK_IBY__ -#define __DISPLAYSINK_IBY__ - -#ifdef __CS_VIDEO_TELEPHONY - -file=ABI_DIR\BUILD_DIR\VTImageConverter.dll SHARED_LIB_DIR\VTImageConverter.dll -file=ABI_DIR\BUILD_DIR\DisplaySink.dll SHARED_LIB_DIR\DisplaySink.dll -file=ABI_DIR\BUILD_DIR\VtImageTransforms.dll SHARED_LIB_DIR\VtImageTransforms.dll -data=ZSYSTEM\install\displaysink_stub.sis system\install\displaysink_stub.sis - -#endif - -#endif //__DISPLAYSINK_IBY__ diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CDisplaySink.cpp --- a/vtprotocolplugins/DisplaySink/src/CDisplaySink.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1029 +0,0 @@ -/* -* 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: Display Sink subsystem. -* -*/ - - -// INCLUDE FILES - -#include "CDisplaySink.h" -#include "CDisplaySinkDP.h" -#include "CDisplaySinkDSA.h" -#include "CDisplaySinkNGA.h" -#include -#include - -// CONSTANTS - -// MACROS - -#ifdef _DEBUG - #include - #define PRINT RDebug::Print - #define _IFDBG(a) a -#else - #define PRINT - #define _IFDBG(a) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ============================= CVtFrameQueue ================================= - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::CVtFrameQueue -// ----------------------------------------------------------------------------- -// -CVtFrameQueue::CVtFrameQueue() : CActive( EPriorityNormal ) - { - _IFDBG(PRINT( _L( "CVtFrameQueue::CVtFrameQueue<" ) )); - _IFDBG(PRINT( _L( "CVtFrameQueue::CVtFrameQueue>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::ThreadLogon -// ----------------------------------------------------------------------------- -// -TInt CVtFrameQueue::ThreadLogon() - { - _IFDBG(PRINT( _L( "CVtFrameQueue::ThreadLogon<" ) )); - if ( !IsAdded() ) - { - CActiveScheduler::Add( this ); - } - TInt result( iThread.Open( RThread().Id() ) ); - _IFDBG(PRINT( _L( "CVtFrameQueue::ThreadLogon %d >" ), result )); - return result; - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::SinkStoppedL -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::SinkStoppedL() - { - _IFDBG(PRINT( _L( "CVtFrameQueue::SinkStoppedL<" ) )); - DoReleaseBufferL( iBuffer ); - DoReleaseBufferL( iReleaseBuffer ); - _IFDBG(PRINT( _L( "CVtFrameQueue::SinkStoppedL>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::ThreadLogoff -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::ThreadLogoff() - { - _IFDBG(PRINT( _L( "CVtFrameQueue::ThreadLogoff<" ) )); - if ( IsAdded() ) - { - Deque(); - } - _IFDBG(PRINT( _L( "CVtFrameQueue::ThreadLogoff>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::Store -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::Store( MVTVideoSource& aSupplier, - CMMFDataBuffer* aBuffer, - TSize aFrameSize, - TPtr8& aPtr ) - { - _IFDBG(PRINT( _L( "CVtFrameQueue::Store<" ) )); - iSupplier = &aSupplier; - iBuffer = aBuffer; - iFrameSize = aFrameSize; - iPtr = &aPtr; - _IFDBG(PRINT( _L( "CVtFrameQueue::Store>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::IsStored -// ----------------------------------------------------------------------------- -// -TBool CVtFrameQueue::IsStored() const - { - _IFDBG(PRINT( _L( "CVtFrameQueue::IsStored<" ) )); - _IFDBG(PRINT( _L( "CVtFrameQueue::IsStored %d>" ), - ( iBuffer != NULL ) )); - return ( iBuffer != NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::Buffer -// ----------------------------------------------------------------------------- -// -TVtMMFDataBuffer CVtFrameQueue::Buffer() - { - _IFDBG(PRINT( _L( "CVtFrameQueue::Buffer<" ) )); - _IFDBG(PRINT( _L( "CVtFrameQueue::Buffer %d>" ), - reinterpret_cast< TUint >( iBuffer ) )); - return TVtMMFDataBuffer(iBuffer, iFrameSize, *iPtr); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::Release -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::Release() - { - _IFDBG(PRINT( _L( "CVtFrameQueue::Release<" ) )); - if ( !IsActive() && IsStored() ) - { - iReleaseBuffer = iBuffer; - iBuffer = NULL; - iStatus = KRequestPending; - TRequestStatus* pStatus = &iStatus; - SetActive(); - iThread.RequestComplete( pStatus, KErrNone ); - _IFDBG(PRINT( _L( "CVtFrameQueue::Release -done-" ) )); - } - _IFDBG(PRINT( _L( "CVtFrameQueue::Release>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::RunL -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::RunL() - { - _IFDBG(PRINT( _L( "CVtFrameQueue::RunL<" ) )); - DoReleaseBufferL( iReleaseBuffer ); - _IFDBG(PRINT( _L( "CVtFrameQueue::RunL>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::DoReleaseBufferL -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::DoReleaseBufferL( CMMFDataBuffer*& aBuffer ) - { - _IFDBG(PRINT( _L( "CVtFrameQueue::DoReleaseBufferL<" ) )); - if ( aBuffer && iSupplier ) - { - iSupplier->BufferEmptiedL( aBuffer ); - aBuffer = NULL; - } - _IFDBG(PRINT( _L( "CVtFrameQueue::DoReleaseBufferL>" ) )); - } - -// ----------------------------------------------------------------------------- -// CVtFrameQueue::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtFrameQueue::DoCancel() - { - // nothing to do - } - -// ============================ CVtCallback ================================= - -// ----------------------------------------------------------------------------- -// CVtCallback::CVtCallback( MDisplaySinkObserver& aObserver ) -// ----------------------------------------------------------------------------- -// -CVtCallback::CVtCallback( MDisplaySinkObserver& aObserver ) -: CActive( EPriorityStandard ), iObserver( &aObserver ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::CVtCallback()<"), RThread().Id().operator TUint())); - CActiveScheduler::Add( this ); - iOwnThreadId = RThread().Id(); - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::CVtCallback()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVtCallback::~CVtCallback() -// ----------------------------------------------------------------------------- -// -CVtCallback::~CVtCallback() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CVtCallback::VideoFrameSizeChangedL( const TSize& aFrom, const TSize& aTo ) -// ----------------------------------------------------------------------------- -// -void CVtCallback::VideoFrameSizeChangedL( const TSize& aFrom, const TSize& aTo ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::VideoFrameSizeChangedL()<"), RThread().Id().operator TUint())); - iCallBackType = EVideoFrameSizeChanged; - iFrom = aFrom; - iTo = aTo; - IssueCallbackL(); - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::VideoFrameSizeChangedL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVtCallback::Result() const -// ----------------------------------------------------------------------------- -// -TInt CVtCallback::Result() const - { - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::Result()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::Result()>"), RThread().Id().operator TUint())); - return iResult; - } - -// ----------------------------------------------------------------------------- -// CVtCallback::Completed() const -// ----------------------------------------------------------------------------- -// -TBool CVtCallback::Completed() const - { - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::Completed()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::Completed()>"), RThread().Id().operator TUint())); - return iCompleted; - } - -// ----------------------------------------------------------------------------- -// CVtCallback::IssueCallbackL() -// ----------------------------------------------------------------------------- -// -void CVtCallback::IssueCallbackL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::IssueCallbackL()<"), RThread().Id().operator TUint())); - iCompleted = EFalse; - TRequestStatus* pStatus = &iStatus; - RThread thread; - if( thread.Id() == iOwnThreadId ) - { - SetActive(); - User::RequestComplete( pStatus, KErrNone ); - } - else - { - User::LeaveIfError( thread.Open( iOwnThreadId ) ); - SetActive(); - *pStatus = KRequestPending; - thread.RequestComplete( pStatus, KErrNone ); - thread.Close(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::IssueCallbackL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVtCallback::RunL() -// ----------------------------------------------------------------------------- -// -void CVtCallback::RunL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::RunL()<"), RThread().Id().operator TUint())); - - iResult = KErrNone; - - switch( iCallBackType ) - { - case EVideoFrameSizeChanged: - iObserver->VideoFrameSizeChangedL( iFrom, iTo ); - break; - - default: - User::Leave( KErrArgument ); - } - - iCompleted = ETrue; - - _IFDBG(PRINT(_L("VideoSource[%d]: CVtCallback::RunL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVtCallback::DoCancel() -// ----------------------------------------------------------------------------- -// -void CVtCallback::DoCancel() - { - // do nothing! - } - -// ----------------------------------------------------------------------------- -// CVtCallback::RunError( TInt aError ) -// ----------------------------------------------------------------------------- -// -TInt CVtCallback::RunError( TInt aError ) - { - iCompleted = ETrue; - iResult = aError; - return KErrNone; - } - -// ========================== TDisplaySinkParams =============================== - -// ----------------------------------------------------------------------------- -// TDisplaySinkParams::TDisplaySinkParams -// ----------------------------------------------------------------------------- -// -EXPORT_C TDisplaySinkParams::TDisplaySinkParams() : - iFrameRateLimit( EFrameRateLimitNone ) - { - } - - -// ============================ CDisplaySink =================================== - -// ----------------------------------------------------------------------------- -// CDisplaySink::~CDisplaySink -// ----------------------------------------------------------------------------- -// -CDisplaySink::~CDisplaySink() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::~CDisplaySink()<"), RThread().Id().operator TUint())); - delete iVideoFrameQueue; - iBitmapCS.Close(); - delete iVTSignaller; - iVTMimeTypes.Reset(); - iVTMimeTypes.Close(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::~CDisplaySink()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::ConstructL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::ConstructL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ConstructL()<"), RThread().Id().operator TUint())); - iDSFlags = aParams.iFlags; - iYuv420PlanarDesc.Delete( 0, iYuv420PlanarDesc.Length() ); - iYuv420PlanarDesc.Append( KVtVideoMIMETypeYUV420 ); - User::LeaveIfError( iVTMimeTypes.Append( &iYuv420PlanarDesc ) ); - iVideoFrameQueue = new ( ELeave ) CVtFrameQueue(); - iVTSignaller = new ( ELeave ) CVtCallback( *aParams.iObserver ); - BitmapEntry( EFirstBitmap ).iIsFree = EFalse; - BitmapEntry( ESecondBitmap ).iIsFree = EFalse; - iThreadId = aParams.iThreadId; - iRequestStatusPtr = aParams.iRequestStatusPtr; - iFrameSize = QCIF; - SetFrameRateLimit( aParams.iFrameRateLimit ); - User::LeaveIfError( iBitmapCS.CreateLocal() ); - BaseConstructL( aParams, aInitData ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ConstructL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::Destroy -// ----------------------------------------------------------------------------- -// -void CDisplaySink::Destroy() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::Destroy()<"), RThread().Id().operator TUint())); - delete this; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::Destroy()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SetBitmapAvailable( TBitmapNo aBitmapNo ) -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SetBitmapAvailable( TBitmapNo aBitmapNo ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetBitmapAvailable()<"), RThread().Id().operator TUint())); - iBitmapCS.Wait(); - BitmapEntry( aBitmapNo ).iIsFree = ETrue; - BaseSetBitmapAvailable( aBitmapNo ); - iBitmapCS.Signal(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetBitmapAvailable()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::Release -// ----------------------------------------------------------------------------- -// -void CDisplaySink::Release() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::Release()<"), RThread().Id().operator TUint())); - iBitmapCS.Wait(); - if( !iReleased ) - { - iReleased = ETrue; - if( iRequestStatusPtr != NULL && - (*iRequestStatusPtr) == KRequestPending ) - { - RThread thread; - TInt err = thread.Open( iThreadId ); - if( err == KErrNone ) - { - *iRequestStatusPtr = KRequestPending; - TRequestStatus* statusP = iRequestStatusPtr; - thread.RequestComplete( statusP, KErrCancel ); - thread.Close(); - } - } - } - iVideoFrameQueue->Release(); - iBitmapCS.Signal(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::Release()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::UpdateSinkParamsL( const TDisplaySinkParams& aParams, -// TBool& aUpdated ) -// ----------------------------------------------------------------------------- -// -void CDisplaySink::UpdateSinkParamsL( - const TDisplaySinkParams& aParams, TBool& aUpdated ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::UpdateSinkParamsL()<"), RThread().Id().operator TUint())); - // This modification was requested by the VT engine team - iReleased = EFalse; - // This modification was requested by the VT engine team - iBitmapCS.Wait(); - BaseUpdateSinkParamsL( aParams ); - aUpdated = EFalse; - iParamsUpdated = &aUpdated; - iDSFlags = aParams.iFlags; - BitmapEntry( EFirstBitmap ).iIsFree = EFalse; - BitmapEntry( ESecondBitmap ).iIsFree = EFalse; - iVideoFrameQueue->Release(); - iBitmapCS.Signal(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::UpdateSinkParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::Pause() -// ----------------------------------------------------------------------------- -// -void CDisplaySink::Pause() - { - iBitmapCS.Wait(); - iPaused = ETrue; - iVideoFrameQueue->Release(); - iBitmapCS.Signal(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::Resume() -// ----------------------------------------------------------------------------- -// -void CDisplaySink::Resume() - { - iBitmapCS.Wait(); - iPaused = EFalse; - iBitmapCS.Signal(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::operator MVTVideoSink&() -// ----------------------------------------------------------------------------- -// -CDisplaySink::operator MVTVideoSink&() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::operator MVTVideoSink&()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::operator MVTVideoSink&()>"), RThread().Id().operator TUint())); - return *this; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::NextFrame -// ----------------------------------------------------------------------------- -// -void CDisplaySink::NextFrame() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::NextFrame()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::NextFrame()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::GetMultimediaTypesL() const -// ----------------------------------------------------------------------------- -// -const RArray& CDisplaySink::GetMultimediaTypesL() const - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::GetMultimediaTypeL()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::GetMultimediaTypeL()>"), RThread().Id().operator TUint())); - return iVTMimeTypes; - } - - - -// ----------------------------------------------------------------------------- -// CDisplaySink::SetFormatL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SetFormatL( const TDesC8& aFormat ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetFormatL()<"), RThread().Id().operator TUint())); - if ( aFormat != KVtVideoMIMETypeYUV420 ) - { - User::Leave( KErrNotSupported ); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetFormatL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SetVideoFrameSizeL( const TSize& aSize ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetVideoFrameSizeL()<"), RThread().Id().operator TUint())); - if ( iInitFlags & ESinkThreadLogonCalled ) - { - SinkThreadLogonL(); - } - if ( iInitFlags & EFbsSessionConnected ) - { - TSize size( aSize ); - BaseSetVideoFrameSizeL( aSize ); - iFrameSize = aSize; - } - else - { - User::Leave( KErrNotReady ); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetVideoFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::GetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::GetVideoFrameSizeL( TSize& aSize ) const - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::GetVideoFrameSizeL()<"), RThread().Id().operator TUint())); - aSize = iFrameSize; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::GetVideoFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::EmptyBufferL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::EmptyBufferL( - TVtMMFDataBuffer aDataBuffer, - MVTVideoSource* aSupplier, - TMediaId /*aMediaId*/ ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL()<"), RThread().Id().operator TUint())); - if ( aDataBuffer.GetMMFBuffer() == NULL || aSupplier == NULL ) - { - User::Leave( KErrArgument ); - } - if ( iReleased ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL(): sink released, just return buffer"), RThread().Id().operator TUint())); - aSupplier->BufferEmptiedL( aDataBuffer.GetMMFBuffer() ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL()>"), RThread().Id().operator TUint())); - return; - } - else if ( iInitFlags & ESinkThreadLogonCalled ) - { - TRAPD( result, SinkThreadLogonL() ); - if ( result != KErrNone ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL(): SinkThreadLogonL failed %d"), RThread().Id().operator TUint(), result)); - aSupplier->BufferEmptiedL( aDataBuffer.GetMMFBuffer() ); - User::Leave( result ); - } - } - if ( aDataBuffer.GetMMFBuffer()->Type() != KVTUidYUVFrameBuffer ) - { - User::Leave( KErrArgument ); - } - if ( iState != EPlaying ) - { - User::Leave( KErrNotReady ); - } - iBitmapCS.Wait(); - - CleanupSignalPushL( iBitmapCS ); - iBuffer = aDataBuffer.GetMMFBuffer(); - iSupplier = aSupplier; - if ( IsOkToSendFrame() ) - { - // Waiting for frame size update? - if ( iWaitingForUpdate ) - { - // Update completed? - if ( iVTSignaller->Completed() ) - { - // YES: If it failed then Leave - if ( iVTSignaller->Result() != KErrNone ) - { - iSupplier->BufferEmptiedL( iBuffer ); - User::Leave( iVTSignaller->Result() ); - } - } - else - { - // NO: Report buffer emptied and return - iSupplier->BufferEmptiedL( iBuffer ); - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - return; - } - } - - // Is param update pending? - if ( iParamsUpdated ) - { - // YES: set new params - BaseDoUpdateParamsL(); - *iParamsUpdated = ETrue; - iParamsUpdated = 0; - iWaitingForUpdate = EFalse; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL(): params update finished"), RThread().Id().operator TUint())); - } - - // Update YUV data descriptor size based on resolution info. - TSize size( aDataBuffer.GetFrameSize() ); - TInt length( ( size.iWidth * size.iHeight * 12 ) / 8 ); - aDataBuffer.Data().Set( const_cast( aDataBuffer.Data().Ptr() ), length, length ); - // Expected frame size same as received size? - if ( !BaseSizesMatch( size ) ) - { - if ( !iWaitingForUpdate ) - { - iVTSignaller->VideoFrameSizeChangedL( iExpectedFrameSize, - aDataBuffer.GetFrameSize() ); - BaseVideoFrameSizeChangedL( aDataBuffer.GetFrameSize() ); - iWaitingForUpdate = ETrue; - } - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - return; - } - // All validation done, now it is ok to do implementation specific - // empty buffer. - BaseEmptyBufferL( aDataBuffer ); - -// debugging -// debugging -// debugging - - //iFC.PrintStatus(); - -// debugging -// debugging -// debugging - - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL()>"), RThread().Id().operator TUint())); - // No CleanupStack::PopAndDestroy() here, because cleanup is done in - // BaseEmptyBufferL(). Reason behind this decission is that certain - // things have to be handled either before or after cleanup and thus - // single cleanup here is not enough. - return; - } - else - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL(): dropping frame %d < %d"), RThread().Id().operator TUint(), iMilliSecondsSinceLastFrame, iFrameRateInterval )); - iSupplier->BufferEmptiedL( iBuffer ); - } - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal() - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::EmptyBufferL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::BufferFilledL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::BufferFilledL( CMMFBuffer* /*aBuffer*/ ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::BufferFilledL()<"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::BufferFilledL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::CanCreateSinkBuffer -// ----------------------------------------------------------------------------- -// -TBool CDisplaySink::CanCreateSinkBuffer() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::CanCreateSinkBuffer()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::CanCreateSinkBuffer()>"), RThread().Id().operator TUint())); - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::CreateSinkBufferL -// ----------------------------------------------------------------------------- -// -CMMFBuffer* CDisplaySink::CreateSinkBufferL( - TMediaId /*aMediaId*/, - TBool& /*aReference*/ ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::CreateSinkBufferL()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::CreateSinkBufferL()>"), RThread().Id().operator TUint())); - return NULL; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkThreadLogon -// ----------------------------------------------------------------------------- -// -TInt CDisplaySink::SinkThreadLogon( MAsyncEventHandler& /*aEventHandler*/ ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogon()<"), RThread().Id().operator TUint())); - iInitFlags |= ESinkThreadLogonCalled; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogon()>"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkThreadLogonL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SinkThreadLogonL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogonL()<"), RThread().Id().operator TUint())); - TInt result( FbsStartup() ); - if ( result == KErrNone ) - { - CleanupStack::PushL( TCleanupItem( &SinkThreadLogonCleanup, this ) ); - FbsConnectL(); - ThreadOpenL(); - User::LeaveIfError( iVideoFrameQueue->ThreadLogon() ); - BaseSinkThreadLogonL(); - iInitFlags &= ~ESinkThreadLogonCalled; - CleanupStack::Pop(); // TCleanupItem( &SinkThreadLogonCleanup, this ) - } - User::LeaveIfError( result ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogonL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkThreadLogoff -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SinkThreadLogoff() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogoff()<"), RThread().Id().operator TUint())); - BaseSinkThreadLogoff(); - iVideoFrameQueue->ThreadLogoff(); - ThreadClose(); - FbsDisconnect(); - iInitFlags = 0; - iExpectedFrameSize = TSize(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogoff()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkPrimeL -// ----------------------------------------------------------------------------- -// -TInt CDisplaySink::SinkPrimeL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkPrimeL()<"), RThread().Id().operator TUint())); - if ( iState != EStopped ) - { - return KErrNone; - } - iState = EPrimed; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkPrimeL()>"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkPlayL -// ----------------------------------------------------------------------------- -// -TInt CDisplaySink::SinkPlayL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkPlayL()<"), RThread().Id().operator TUint())); - if ( iState != EPrimed ) - { - User::Leave( KErrNotReady ); - } - ResetFrameRateLimitter(); - iState = EPlaying; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkPlayL()>"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkPauseL -// ----------------------------------------------------------------------------- -// -TInt CDisplaySink::SinkPauseL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkPauseL()<"), RThread().Id().operator TUint())); - if ( iState != EPlaying ) - { - return KErrNone; - } - iState = EPrimed; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkPauseL()>"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkStopL -// ----------------------------------------------------------------------------- -// -TInt CDisplaySink::SinkStopL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkStopL()<"), RThread().Id().operator TUint())); - if ( iState == EStopped ) - { - return KErrNone; - } - iBitmapCS.Wait(); - iVideoFrameQueue->SinkStoppedL(); - iBitmapCS.Signal(); - iState = EStopped; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkStopL()>"), RThread().Id().operator TUint())); - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CDisplaySink::CDisplaySink -// ----------------------------------------------------------------------------- -// -CDisplaySink::CDisplaySink() : MVTVideoSink( KNullUid ), - iSinkFourCC( 0 ), iState( EStopped ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::Ctor()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::Ctor()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SetFrameRateLimit( -// TDisplaySinkParams::TFrameRateLimit aFrameRateLimit ) -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SetFrameRateLimit( - TDisplaySinkParams::TFrameRateLimit aFrameRateLimit ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetFrameRateLimit()<"), RThread().Id().operator TUint())); - iFrameRateInterval = TInt( aFrameRateLimit ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SetFrameRateLimit()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::ResetFrameRateLimitter() -// ----------------------------------------------------------------------------- -// -void CDisplaySink::ResetFrameRateLimitter() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ResetFrameRateLimitter()<"), RThread().Id().operator TUint())); - iMilliSecondsSinceLastFrame = 0; - iLastFrameTime = Time::NullTTime(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ResetFrameRateLimitter()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::BufferFilledL -// ----------------------------------------------------------------------------- -// -TBool CDisplaySink::IsOkToSendFrame() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::IsOkToSendFrame()<"), RThread().Id().operator TUint())); - TBool isOkToSendFrame( EFalse ); - if( iPaused ) - { - // nothing to do here because okToSendFrame defaults to EFalse - } - else if( iFrameRateInterval == TDisplaySinkParams::EFrameRateLimitNone ) - { - // If no limitation is set -> send frame - isOkToSendFrame = ETrue; - } - else if( iLastFrameTime == Time::NullTTime() ) - { - // EmptyBufferL() is being called the first time after SinkPlayL() -> - // send frame - iLastFrameTime.HomeTime(); - isOkToSendFrame = ETrue; - } - else - { - // Check if enough time has passed since previous frame sent - TTime now; - now.HomeTime(); - TTimeIntervalMicroSeconds interval( - now.MicroSecondsFrom( iLastFrameTime ) ); - iMilliSecondsSinceLastFrame += I64INT( interval.Int64() ) / 1000; - iLastFrameTime = now; - if( iMilliSecondsSinceLastFrame >= iFrameRateInterval ) - { - // Enough time passed -> send frame - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::IsOkToSendFrame(): sending frame %d >= %d"), RThread().Id().operator TUint(), iMilliSecondsSinceLastFrame, iFrameRateInterval )); - isOkToSendFrame = ETrue; - while( iMilliSecondsSinceLastFrame >= iFrameRateInterval ) - { - iMilliSecondsSinceLastFrame -= iFrameRateInterval; - } - } - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::IsOkToSendFrame() %d>"), RThread().Id().operator TUint(), isOkToSendFrame)); - return isOkToSendFrame; - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::FbsConnectL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::FbsConnectL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::FbsConnectL()<"), RThread().Id().operator TUint())); - if ( !( iInitFlags & EFbsSessionConnected ) ) - { - User::LeaveIfError( RFbsSession::Connect() ); - iInitFlags |= EFbsSessionConnected; - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::FbsConnectL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::ThreadOpenL -// ----------------------------------------------------------------------------- -// -void CDisplaySink::ThreadOpenL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ThreadOpenL()<"), RThread().Id().operator TUint())); - if ( !( iInitFlags & EThreadOpened ) ) - { - User::LeaveIfError( iThread.Open( iThreadId ) ); - iInitFlags |= EThreadOpened; - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ThreadOpenL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::FbsDisconnect -// ----------------------------------------------------------------------------- -// -void CDisplaySink::FbsDisconnect() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::FbsDisconnect()<"), RThread().Id().operator TUint())); - if ( iInitFlags & EFbsSessionConnected ) - { - RFbsSession::Disconnect(); - iInitFlags &= ~EFbsSessionConnected; - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::FbsDisconnect()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::ThreadClose -// ----------------------------------------------------------------------------- -// -void CDisplaySink::ThreadClose() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ThreadClose()<"), RThread().Id().operator TUint())); - if ( iInitFlags & EThreadOpened ) - { - iThread.Close(); - iInitFlags &= ~EThreadOpened; - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::ThreadClose()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySink::SinkThreadLogonCleanup -// ----------------------------------------------------------------------------- -// -void CDisplaySink::SinkThreadLogonCleanup( TAny* aPtr ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogonCleanup()<"), RThread().Id().operator TUint())); - CDisplaySink* self = reinterpret_cast< CDisplaySink* >( aPtr ); - self->iVideoFrameQueue->ThreadLogoff(); - self->ThreadClose(); - self->FbsDisconnect(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySink::SinkThreadLogonCleanup()>"), RThread().Id().operator TUint())); - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// ----------------------------------------------------------------------------- -// CreateSinkL -// ----------------------------------------------------------------------------- -// -EXPORT_C MDisplaySink* CreateSinkL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ) - { - MDisplaySink* sink = NULL; - if (aParams.iFlags & TDisplaySinkParams::EDisplaySinkNGA) - { - sink = CDisplaySinkNGA::NewL( aParams, aInitData ); - } - else if ( FeatureManager::FeatureSupported( KFeatureIdDisplayPost ) && - ( aParams.iFlags & TDisplaySinkParams::EDisplaySinkDP ) ) - { - sink = CDisplaySinkDP::NewL( aParams, aInitData ); - } - else - { - sink = CDisplaySinkDSA::NewL( aParams, aInitData ); - } - return sink; - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CDisplaySinkDP.cpp --- a/vtprotocolplugins/DisplaySink/src/CDisplaySinkDP.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,309 +0,0 @@ -/* -* Copyright (c) 2004 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: Display Sink subsystem for Display Posting. -* -*/ - - -// INCLUDE FILES - -#include "CDisplaySinkDP.h" -#include "vtyuvconverter.h" - -// MACROS - -#ifdef _DEBUG - #include - #define PRINT RDebug::Print - #define _IFDBG(a) a -#else - #define PRINT - #define _IFDBG(a) -#endif - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::NewL -// ----------------------------------------------------------------------------- -// -CDisplaySinkDP* CDisplaySinkDP::NewL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NewL()<"), RThread().Id().operator TUint())); - CDisplaySinkDP* self = new ( ELeave ) CDisplaySinkDP(); - CleanupStack::PushL( self ); - self->ConstructL( aParams, aInitData ); - CleanupStack::Pop(); // self - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NewL()>"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::CDisplaySinkDP -// ----------------------------------------------------------------------------- -// -CDisplaySinkDP::CDisplaySinkDP() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::Ctor<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::Ctor>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::~CDisplaySinkDP -// ----------------------------------------------------------------------------- -// -CDisplaySinkDP::~CDisplaySinkDP() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::~<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::~>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseConstructL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConstructL()<"), RThread().Id().operator TUint())); - iNewParams = static_cast< const TDisplaySinkParamsDP& >( aParams ); - if ( !iNewParams.iPostingBuffer1 || !iNewParams.iPostingBuffer2 ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConstructL() posting buffer is NULL!"))); - User::Leave( KErrArgument ); - } - iBitmapTable[EFirstBitmap].iBuffer = iNewParams.iPostingBuffer1; - iBitmapTable[ESecondBitmap].iBuffer = iNewParams.iPostingBuffer2; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConstructL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseConvert -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkDP::BaseConvert( const TVtMMFDataBuffer& aBuffer ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert()<"), RThread().Id().operator TUint())); - - TBool consumed( ETrue ); - TBitmapNo bitmapNo( iBitmapTable[ EFirstBitmap ].iIsFree ? EFirstBitmap : ESecondBitmap ); - if ( iBitmapTable[ bitmapNo ].iIsFree && - !iReleased && - ( *iRequestStatusPtr == KRequestPending ) ) - { - CPostingSurface::TPostingBuff* postingBuffer = - *iBitmapTable[ bitmapNo ].iBuffer; - - TInt bufferLength( - postingBuffer->GetSize().iHeight * postingBuffer->GetStride() ); - - TPtr8 ptrBuffer( - static_cast< TUint8* >( postingBuffer->GetBuffer() ), - bufferLength, - bufferLength - ); - - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): buffer %d: $%x %d bytes"), RThread().Id().operator TUint(), bitmapNo, postingBuffer->GetBuffer(), bufferLength)); - - // Determine wether to convert or copy (420 will be just copied) - if ( iNewParams.iPostingFormat == - CPostingSurface::EYuv422LeBt601Range0 ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): converting to 422"), RThread().Id().operator TUint())); - VtYuvConverter::ConvertFrom420PlanarTo422Interleaved( - aBuffer.Data(), - aBuffer.GetFrameSize(), - ptrBuffer, - postingBuffer->GetStride() ); - } - else - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): copying as 420"), RThread().Id().operator TUint())); - ptrBuffer = aBuffer.Data(); - } - - iBitmapTable[ bitmapNo ].iIsFree = EFalse; - TRequestStatus* statusP = iRequestStatusPtr; - iThread.RequestComplete( statusP, bitmapNo ); - } - else - { - consumed = EFalse; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): could not find free buffer"), RThread().Id().operator TUint())); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert()>"), RThread().Id().operator TUint())); - return consumed; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseSinkThreadLogonL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseSinkThreadLogonL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogonL()<"), RThread().Id().operator TUint())); - UpdateExpectedFrameSizeL(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogonL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseSinkThreadLogoff -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseSinkThreadLogoff() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogoff()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogoff()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseUpdateSinkParamsL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseUpdateSinkParamsL()<"), RThread().Id().operator TUint())); - iNewParams = static_cast< const TDisplaySinkParamsDP& >( aParams ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseUpdateSinkParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseDoUpdateParamsL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseDoUpdateParamsL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseDoUpdateParamsL()<"), RThread().Id().operator TUint())); - iBitmapTable[ EFirstBitmap ].iBuffer = iNewParams.iPostingBuffer1; - iBitmapTable[ ESecondBitmap ].iBuffer = iNewParams.iPostingBuffer2; - UpdateExpectedFrameSizeL(); - if( iNewParams.iFrameRateLimit != iFrameRateInterval ) - { - SetFrameRateLimit( iNewParams.iFrameRateLimit ); - ResetFrameRateLimitter(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseDoUpdateParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseSetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseSetVideoFrameSizeL( const TSize& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetVideoFrameSizeL()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetVideoFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseSizesMatch -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkDP::BaseSizesMatch( const TSize& aSize ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSizesMatch()<"), RThread().Id().operator TUint())); - TBool sizesMatch( iExpectedFrameSize == aSize ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSizesMatch() %d>"), RThread().Id().operator TUint(), sizesMatch)); - return sizesMatch; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BitmapEntry -// ----------------------------------------------------------------------------- -// -CDisplaySink::TBitmapEntry& CDisplaySinkDP::BitmapEntry( TInt aIndex ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BitmapEntry(%d)<"), RThread().Id().operator TUint(), aIndex)); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BitmapEntry()>"), RThread().Id().operator TUint())); - return iBitmapTable[ aIndex ]; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseEmptyBufferL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseEmptyBufferL()<"), RThread().Id().operator TUint())); - if ( BaseConvert( aVTMMFBuffer ) ) - { - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - } - else - { - if ( iVideoFrameQueue->IsStored() || !IsOkToSendFrame() ) - { - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - } - else - { - iVideoFrameQueue->Store( *iSupplier, static_cast(aVTMMFBuffer.GetMMFBuffer()), aVTMMFBuffer.GetFrameSize(), aVTMMFBuffer.Data() ); - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - } - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseEmptyBufferL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseSetBitmapAvailable( TBitmapNo aBitmapNo ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseSetBitmapAvailable( TBitmapNo ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetBitmapAvailable()<"), RThread().Id().operator TUint())); - NextFrame(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetBitmapAvailable()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::BaseVideoFrameSizeChangedL( const TSize& ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::BaseVideoFrameSizeChangedL( const TSize& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseVideoFrameSizeChangedL()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseVideoFrameSizeChangedL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::NextFrame -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::NextFrame() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NextFrame()<"), RThread().Id().operator TUint())); - if ( iVideoFrameQueue->IsStored() ) - { - if ( IsOkToSendFrame() ) - { - BaseConvert( iVideoFrameQueue->Buffer() ); - } - iVideoFrameQueue->Release(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NextFrame()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::UpdateExpectedFrameSizeL() -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDP::UpdateExpectedFrameSizeL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::UpdateExpectedFrameSizeL()<"), RThread().Id().operator TUint())); - iExpectedFrameSize = iNewParams.iFrameSize; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::UpdateExpectedFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CDisplaySinkDSA.cpp --- a/vtprotocolplugins/DisplaySink/src/CDisplaySinkDSA.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,464 +0,0 @@ -/* -* 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: Display Sink subsystem for Direct Screen Access. -* -*/ - - -// INCLUDES - -#include -#include -#include "CDisplaySinkDSA.h" -#include "TDisplaySinkParamsDSA.h" - -// MACROS - -#ifdef _DEBUG - #include - #define PRINT RDebug::Print - #define _IFDBG(a) a -#else - #define PRINT - #define _IFDBG(a) -#endif - -// ======================== CDisplaySinkDSA ============================== - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::NewL -// ----------------------------------------------------------------------------- -// -CDisplaySinkDSA* CDisplaySinkDSA::NewL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::NewL()<"), RThread().Id().operator TUint())); - CDisplaySinkDSA* self = new ( ELeave ) CDisplaySinkDSA(); - CleanupStack::PushL( self ); - self->ConstructL( aParams, aInitData ); - CleanupStack::Pop(); // self - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::NewL()>"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::CDisplaySinkDSA -// ----------------------------------------------------------------------------- -// -CDisplaySinkDSA::CDisplaySinkDSA() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::Ctor<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::Ctor>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::~CDisplaySinkDSA -// ----------------------------------------------------------------------------- -// -CDisplaySinkDSA::~CDisplaySinkDSA() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::~<"), RThread().Id().operator TUint())); - delete iRotator; - delete iYUVBitmapConverterVT; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::~>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseConstructL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseConstructL()<"), RThread().Id().operator TUint())); - iNewParams = static_cast< TDisplaySinkParamsDSA& > ( aParams ); - if ( !iNewParams.iBitmap1Handle || !iNewParams.iBitmap2Handle ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseConstructL() bitmap handle NULL!") )); - User::Leave( KErrArgument ); - } - iBitmapTable[EFirstBitmap].iHandle = iNewParams.iBitmap1Handle; - iBitmapTable[ESecondBitmap].iHandle = iNewParams.iBitmap2Handle; - iRotator = CVtImageRotator::NewL( *this ); - iRotationAngle = iNewParams.iRotationAngle; - iYUVBitmapConverterVT = CVTIYUVFbsBitmapConverter::NewL( - QCIF, iBitmapTable[EFirstBitmap].iHandle ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseConstructL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseConvert -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkDSA::BaseConvert( const TVtMMFDataBuffer& aBuffer ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseConvert()<"), RThread().Id().operator TUint())); - TBool converted( EFalse ); - TRAPD( err, ConvertL( aBuffer.Data(), converted ) ); - if ( err != KErrNone ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseConvert() err=%d"), RThread().Id().operator TUint(), err)); - converted = EFalse; - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseConvert() %d>"), RThread().Id().operator TUint(), converted)); - return converted; - } -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseSinkThreadLogonL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseSinkThreadLogonL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSinkThreadLogonL()<"), RThread().Id().operator TUint())); - CVTYUVFbsBitmapConverter* converter1 = - CVTIYUVFbsBitmapConverter::NewL( - QCIF, - iBitmapTable[EFirstBitmap].iHandle ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSinkThreadLogonL() 1"), RThread().Id().operator TUint())); - CleanupStack::PushL( converter1 ); - CVTYUVFbsBitmapConverter* converter2 = - CVTIYUVFbsBitmapConverter::NewL( - QCIF, - iBitmapTable[ESecondBitmap].iHandle ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSinkThreadLogonL() 2"), RThread().Id().operator TUint())); - CleanupStack::PushL( converter2 ); - CleanupStack::Pop( 2 ); // converter1, converter2 - iYUVBitmapConverter1 = converter1; - iYUVBitmapConverter2 = converter2; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSinkThreadLogonL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseSinkThreadLogoff -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseSinkThreadLogoff() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSinkThreadLogoff()<"), RThread().Id().operator TUint())); - delete iYUVBitmapConverter1; - delete iYUVBitmapConverter2; - delete iSourceImg; iSourceImg = 0; - delete iTargetImg; iTargetImg = 0; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSinkThreadLogoff()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseUpdateSinkParamsL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseUpdateSinkParamsL()<"), RThread().Id().operator TUint())); - iNewParams = static_cast< const TDisplaySinkParamsDSA& >( aParams ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseUpdateSinkParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseDoUpdateParamsL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseDoUpdateParamsL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseDoUpdateParamsL()<"), RThread().Id().operator TUint())); - iRotationAngle = iNewParams.iRotationAngle; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseDoUpdateParamsL() handle1=%d"), RThread().Id().operator TUint(), iNewParams.iBitmap1Handle)); - iBitmapTable[ EFirstBitmap ].iHandle = iNewParams.iBitmap1Handle; - iBitmapTable[ EFirstBitmap ].iIsFree = ETrue; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseDoUpdateParamsL() handle2=%d"), RThread().Id().operator TUint(), iNewParams.iBitmap2Handle)); - iBitmapTable[ ESecondBitmap ].iHandle = iNewParams.iBitmap2Handle; - iBitmapTable[ ESecondBitmap ].iIsFree = EFalse; - UpdateExpectedFrameSizeL(); - iYUVBitmapConverter1->SetSourceSizeL( iExpectedFrameSize ); - iYUVBitmapConverter1->SetDestinationL( iNewParams.iBitmap1Handle ); - iYUVBitmapConverter2->SetSourceSizeL( iExpectedFrameSize ); - iYUVBitmapConverter2->SetDestinationL( iNewParams.iBitmap2Handle ); - if( iNewParams.iFrameRateLimit != iFrameRateInterval ) - { - SetFrameRateLimit( iNewParams.iFrameRateLimit ); - ResetFrameRateLimitter(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseDoUpdateParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseSetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseSetVideoFrameSizeL( const TSize& aSize ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetVideoFrameSizeL()<"), RThread().Id().operator TUint())); - TSize size( aSize ); - if( ( iRotationAngle == CVtImageRotator::E90DegreesClockwise ) || - ( iRotationAngle == CVtImageRotator::E270DegreesClockwise ) ) - { - size = TSize( aSize.iHeight, aSize.iWidth ); - } - iYUVBitmapConverter1->SetSourceSizeL( size ); - iYUVBitmapConverter2->SetSourceSizeL( size ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetVideoFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseSizesMatch -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkDSA::BaseSizesMatch( const TSize& aSize ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSizesMatch()<"), RThread().Id().operator TUint())); - TBool sizesMatch( iExpectedFrameSize == aSize ); - TBool rotateChangesDimension( - ( iRotationAngle == CVtImageRotator::E90DegreesClockwise ) || - ( iRotationAngle == CVtImageRotator::E270DegreesClockwise ) ); - if( rotateChangesDimension ) - { - sizesMatch = - ( iExpectedFrameSize.iWidth == aSize.iHeight ) && - ( iExpectedFrameSize.iHeight == aSize.iWidth ); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSizesMatch() %d>"), RThread().Id().operator TUint(), sizesMatch)); - return sizesMatch; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BitmapEntry -// ----------------------------------------------------------------------------- -// -CDisplaySink::TBitmapEntry& CDisplaySinkDSA::BitmapEntry( TInt aIndex ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BitmapEntry(%d)<"), RThread().Id().operator TUint(), aIndex)); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BitmapEntry()>"), RThread().Id().operator TUint())); - return iBitmapTable[ aIndex ]; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseEmptyBufferL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseEmptyBufferL()<"), RThread().Id().operator TUint())); - if( iRotationAngle != CVtImageRotator::ERotationNone ) - { - TSize size( aVTMMFBuffer.GetFrameSize() ); - TInt length( ( size.iWidth * size.iHeight * 12 ) / 8 ); - // Modifiable pointer descriptor needed, we don't want a copy of image! - TPtr8 ptrData( const_cast< TUint8* >( - aVTMMFBuffer.Data().Ptr() ), length, length ); - - if( iSourceImg == 0 ) - { - // If source image is not created -> create it - iSourceImg = CVtImageIYUV::NewL( size, ptrData ); - } - else - { - // otherwise just update the data - if( iSourceImg->Size() == size ) - { - iSourceImg->SetImageL( ptrData ); - } - else - { - delete iSourceImg; iSourceImg = 0; - iSourceImg = CVtImageIYUV::NewL( size, ptrData ); - } - } - iRotator->RotateL( *iSourceImg, *iTargetImg, iRotationAngle ); - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - } - else - { - if ( BaseConvert( aVTMMFBuffer ) ) - { - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - } - else - { - if ( iVideoFrameQueue->IsStored() || !IsOkToSendFrame() ) - { - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - } - else - { - iVideoFrameQueue->Store( *iSupplier, static_cast(aVTMMFBuffer.GetMMFBuffer()), aVTMMFBuffer.GetFrameSize(), aVTMMFBuffer.Data()); - CleanupStack::PopAndDestroy(); - } - } - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseEmptyBufferL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseSetBitmapAvailable( TBitmapNo aBitmapNo ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseSetBitmapAvailable( TBitmapNo aBitmapNo ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetBitmapAvailable()<"), RThread().Id().operator TUint())); - if ( iVideoFrameQueue->IsStored() ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetBitmapAvailable() buffer pending"), RThread().Id().operator TUint())); - if ( !iReleased && ( *iRequestStatusPtr == KRequestPending ) && IsOkToSendFrame() ) - { - TRAPD( result, { - iYUVBitmapConverterVT->SetDestinationL( - iBitmapTable[ aBitmapNo ].iHandle ); - iYUVBitmapConverterVT->SetSourceL( - iVideoFrameQueue->Buffer().Data() ); - iYUVBitmapConverterVT->ProcessL(); - } ); - if ( result == KErrNone ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetBitmapAvailable() conversion succeeded!"), RThread().Id().operator TUint())); - iBitmapTable[ aBitmapNo ].iIsFree = EFalse; - TRequestStatus* statusP = iRequestStatusPtr; - iThread.RequestComplete( statusP, aBitmapNo ); - } - else - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetBitmapAvailable() conversion failed!"), RThread().Id().operator TUint())); - // Drop frame - } - } - else - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetBitmapAvailable() dropping frame"), RThread().Id().operator TUint())); - // Drop frame - } - iVideoFrameQueue->Release(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseSetBitmapAvailable()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::BaseVideoFrameSizeChangedL( const TSize& aNewSize ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::BaseVideoFrameSizeChangedL( const TSize& aNewSize ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseVideoFrameSizeChangedL()<"), RThread().Id().operator TUint())); - iYUVBitmapConverterVT->SetSourceSizeL( aNewSize ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::BaseVideoFrameSizeChangedL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::UpdateExpectedFrameSizeL() -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::UpdateExpectedFrameSizeL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::UpdateExpectedFrameSizeL()<"), RThread().Id().operator TUint())); - CFbsBitmap* bm = new ( ELeave ) CFbsBitmap(); - CleanupStack::PushL( bm ); - User::LeaveIfError( bm->Duplicate( iBitmapTable[ EFirstBitmap ].iHandle ) ); - iExpectedFrameSize = bm->SizeInPixels(); - User::LeaveIfError( bm->Duplicate( iBitmapTable[ ESecondBitmap ].iHandle ) ); - if( iExpectedFrameSize != bm->SizeInPixels() ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::UpdateExpectedFrameSizeL(): EFirstBitmap size is different from ESecondBitmap size -> Leave()"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } - CleanupStack::PopAndDestroy(); // bm - delete iTargetImg; iTargetImg = 0; - iTargetImg = CVtImageIYUV::NewL( iExpectedFrameSize ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::UpdateExpectedFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::RotationFinished( TInt aError ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::RotationFinished( TInt aError ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::RotationFinished()<"), RThread().Id().operator TUint())); - // Rotation finished .. do something - if( aError == KErrNone ) - { - iBitmapCS.Wait(); - TBool converted( EFalse ); - TRAP( aError, ConvertL( iTargetImg->Image(), converted ) ); - iBitmapCS.Signal(); - TRAPD( aError2, iSupplier->BufferEmptiedL( iBuffer ) ); - if( ( aError != KErrNone ) || ( aError2 != KErrNone ) ) - { - *iRequestStatusPtr = KRequestPending; - TRequestStatus* statusP = iRequestStatusPtr; - iThread.RequestComplete( statusP, aError ); - } - } - else - { - *iRequestStatusPtr = KRequestPending; - TRequestStatus* statusP = iRequestStatusPtr; - iThread.RequestComplete( statusP, aError ); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::RotationFinished()>"), RThread().Id().operator TUint())); - } - - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::ConvertL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::ConvertL( const TPtrC8& aBuffer, TBool& aConverted ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::ConvertL()<"), RThread().Id().operator TUint())); - TBitmapNo bitmapNo( iBitmapTable[ EFirstBitmap ].iIsFree ? EFirstBitmap : ESecondBitmap ); - if ( iBitmapTable[ bitmapNo ].iIsFree && - !iReleased && - ( *iRequestStatusPtr == KRequestPending ) ) - { - DoConvertL( aBuffer, bitmapNo ); - aConverted = ETrue; - iBitmapTable[ bitmapNo ].iIsFree = EFalse; - TRequestStatus* statusP = iRequestStatusPtr; - iThread.RequestComplete( statusP, bitmapNo ); - } - else - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::ConvertL(): could not find free bitmap"), RThread().Id().operator TUint())); - aConverted = EFalse; - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::ConvertL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDSA::DoConvert -// ----------------------------------------------------------------------------- -// -void CDisplaySinkDSA::DoConvertL( const TPtrC8& aBuffer, TBitmapNo aBitmapNo ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::DoConvertL()<"), RThread().Id().operator TUint())); - CVTYUVFbsBitmapConverter* c = 0; - switch( aBitmapNo ) - { - case EFirstBitmap: - c = iYUVBitmapConverter1; - break; - - case ESecondBitmap: - c = iYUVBitmapConverter2; - break; - - default: - User::Leave( KErrArgument ); - }; - c->SetSourceL( aBuffer ); - c->ProcessL(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDSA::DoConvertL()>"), RThread().Id().operator TUint())); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CDisplaySinkNGA.cpp --- a/vtprotocolplugins/DisplaySink/src/CDisplaySinkNGA.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,818 +0,0 @@ -/* -* Copyright (c) 2004-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: Class for CDisplaySinkNGA. -* -*/ - -// INCLUDE FILES - -#include "CDisplaySinkNGA.h" - -// MACROS - -#ifdef _DEBUG - #include - #define PRINT RDebug::Print - #define _IFDBG(a) a -#else - #define PRINT - #define _IFDBG(a) -#endif - - static const TUint8 NGA_COFF_TBL_64K[ 220 ]= - { - 0xe9,0x66,0x01,0x00, // KRedCrFactor - 0x1a,0x58,0x00,0x00, // KGreenCbFactor - 0xd2,0xb6,0x00,0x00, // KGreenCrFactor - 0xa2,0xc5,0x01,0x00, // KBlueCbFactor - - 0x00,0x00,0x00,0x00, // 5-bit - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x01,0x02,0x03, - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13, - 0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b, - 0x1c,0x1d,0x1e,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - - 0x00,0x00,0x00,0x00, // 6-bit - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x01,0x02,0x03, - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13, - 0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b, - 0x1c,0x1d,0x1e,0x1f, - 0x20,0x21,0x22,0x23, - 0x24,0x25,0x26,0x27, - 0x28,0x29,0x2a,0x2b, - 0x2c,0x2d,0x2e,0x2f, - 0x30,0x31,0x32,0x33, - 0x34,0x35,0x36,0x37, - 0x38,0x39,0x3a,0x3b, - 0x3c,0x3d,0x3e,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f - }; - - - const TUint8 NGA_COFF_TBL_16M[ 528 ] = - { - 0xe9,0x66,0x01,0x00, // KRedCrFactor - 0x1a,0x58,0x00,0x00, // KGreenCbFactor - 0xd2,0xb6,0x00,0x00, // KGreenCrFactor - 0xa2,0xc5,0x01,0x00, // KBlueCbFactor - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x01,0x02,0x03, // 8-bit - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, - - 0x10,0x11,0x12,0x13, - 0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b, - 0x1c,0x1d,0x1e,0x1f, - - 0x20,0x21,0x22,0x23, - 0x24,0x25,0x26,0x27, - 0x28,0x29,0x2a,0x2b, - 0x2c,0x2d,0x2e,0x2f, - - 0x30,0x31,0x32,0x33, - 0x34,0x35,0x36,0x37, - 0x38,0x39,0x3a,0x3b, - 0x3c,0x3d,0x3e,0x3f, - - 0x40,0x41,0x42,0x43, - 0x44,0x45,0x46,0x47, - 0x48,0x49,0x4a,0x4b, - 0x4c,0x4d,0x4e,0x4f, - - 0x50,0x51,0x52,0x53, - 0x54,0x55,0x56,0x57, - 0x58,0x59,0x5a,0x5b, - 0x5c,0x5d,0x5e,0x5f, - - 0x60,0x61,0x62,0x63, - 0x64,0x65,0x66,0x67, - 0x68,0x69,0x6a,0x6b, - 0x6c,0x6d,0x6e,0x6f, - - 0x70,0x71,0x72,0x73, - 0x74,0x75,0x76,0x77, - 0x78,0x79,0x7a,0x7b, - 0x7c,0x7d,0x7e,0x7f, - - 0x80,0x81,0x82,0x83, - 0x84,0x85,0x86,0x87, - 0x88,0x89,0x8a,0x8b, - 0x8c,0x8d,0x8e,0x8f, - - 0x90,0x91,0x92,0x93, - 0x94,0x95,0x96,0x97, - 0x98,0x99,0x9a,0x9b, - 0x9c,0x9d,0x9e,0x9f, - - 0xa0,0xa1,0xa2,0xa3, - 0xa4,0xa5,0xa6,0xa7, - 0xa8,0xa9,0xaa,0xab, - 0xac,0xad,0xae,0xaf, - - 0xb0,0xb1,0xb2,0xb3, - 0xb4,0xb5,0xb6,0xb7, - 0xb8,0xb9,0xba,0xbb, - 0xbc,0xbd,0xbe,0xbf, - - 0xc0,0xc1,0xc2,0xc3, - 0xc4,0xc5,0xc6,0xc7, - 0xc8,0xc9,0xca,0xcb, - 0xcc,0xcd,0xce,0xcf, - - 0xd0,0xd1,0xd2,0xd3, - 0xd4,0xd5,0xd6,0xd7, - 0xd8,0xd9,0xda,0xdb, - 0xdc,0xdd,0xde,0xdf, - - 0xe0,0xe1,0xe2,0xe3, - 0xe4,0xe5,0xe6,0xe7, - 0xe8,0xe9,0xea,0xeb, - 0xec,0xed,0xee,0xef, - - 0xf0,0xf1,0xf2,0xf3, - 0xf4,0xf5,0xf6,0xf7, - 0xf8,0xf9,0xfa,0xfb, - 0xfc,0xfd,0xfe,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff - }; - - - void ConvertFrom420PlanarToRGB_565( - const TDesC8& aSource, - const TSize& aSize, - TDes8& aTarget, - TInt aStride ) - { - TInt height( aSize.iHeight >> 1 ); - TInt width( aSize.iWidth ); - - TInt ySize = aSize.iWidth * aSize.iHeight; - TInt ySizeDiv4 = ( ySize >> 2 ); - - const TUint32* y1 = reinterpret_cast< const TUint32* >( aSource.Mid( 0, ySize ).Ptr() ); - const TUint32* u = reinterpret_cast< const TUint32* >( aSource.Mid( ySize, ySizeDiv4 ).Ptr() ); - const TUint32* v = reinterpret_cast< const TUint32* >( aSource.Mid( ySize + ySizeDiv4, ySizeDiv4 ).Ptr() ); - - TUint32 uintsPerDestRow = aStride >> 2; - - const TUint32* TargetPtr = reinterpret_cast< const TUint32* >( aTarget.Ptr() ); - - TUint32* d1 = const_cast< TUint32* >( TargetPtr ); - - TUint32 ywidth = width >> 2; - - width >>= 3; - - TInt32 cb; - TInt32 cr; - TInt32 greenCbCr; - TInt32 yy; - TInt32 red; - TInt32 green; - TInt32 blue; - TUint32 r1; - const TUint8* clip = NGA_COFF_TBL_64K + 40; - - for( TInt y = 0; y < height; y++ ) - { - for( TInt x = 0; x < width; x++ ) - { - TUint32 u1 = *u++; - TUint32 v1 = *v++; - - for( TInt c2 = 0; c2 < 2; c2++ ) - { - TUint32 yy2 = y1[ ywidth ]; - TUint32 yy1 = *y1++; - - for( TInt c = 0; c < 2; c++ ) - { - cb = TInt32( u1 & 0xff ) - 128; - u1 >>= 8; - cr = TInt32( v1 & 0xff ) - 128; - v1 >>= 8; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - // lower left - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 = green | ( red << 4 ); - r1 = blue | ( r1 << 4 ); - - // lower right - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 |= ( ( green | ( red << 4 ) ) << 4 | blue ) << 16; - - d1[ uintsPerDestRow ] = r1; - - // upper left - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 = green | ( red << 4 ); - r1 = blue | ( r1 << 4 ); - - // upper right - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 |= ( ( green | ( red << 4 ) ) << 4 | blue ) << 16; - - *d1++ = r1; - } - } - } - - y1 += ( width << 1 ); - d1 += uintsPerDestRow; - } - } - - - void ConvertFrom420PlanarToXRGB_8888( - const TDesC8& aSource, - const TSize& aSize, - TDes8& aTarget, - TInt aStride ) - { - - TInt height( aSize.iHeight >> 1 ); - TInt width( aSize.iWidth ); - - TInt ySize = aSize.iWidth * aSize.iHeight; - TInt ySizeDiv4 = ( ySize >> 2 ); - - const TUint32* y1 = reinterpret_cast< const TUint32* >( aSource.Mid( 0, ySize ).Ptr() ); - const TUint32* u = reinterpret_cast< const TUint32* >( aSource.Mid( ySize, ySizeDiv4 ).Ptr() ); - const TUint32* v = reinterpret_cast< const TUint32* >( aSource.Mid( ySize + ySizeDiv4, ySizeDiv4 ).Ptr() ); - - TUint32 uintsPerDestRow = aStride >> 2; - - const TUint32* TargetPtr = reinterpret_cast< const TUint32* >( aTarget.Ptr() ); - - TUint32* d1 = const_cast< TUint32* >( TargetPtr ); - - - TUint32 ywidth = width >> 2; - - width >>= 3; - - TInt32 cb; - TInt32 cr; - TInt32 greenCbCr; - TInt32 yy; - TUint32 p; - const TUint8* clip = NGA_COFF_TBL_16M + 144; - - for( TInt y = 0; y < height; y++ ) - { - for( TInt x = 0; x < width; x++ ) - { - TUint32 u1 = *u++; - TUint32 v1 = *v++; - - for( TInt c2 = 0; c2 < 2; c2++ ) - { - TUint32 yy2 = y1[ ywidth ]; - TUint32 yy1 = *y1++; - - for( TInt c = 0; c < 2; c++ ) - { - cb = TInt32( u1 & 0xff ) - 128; - u1 >>= 8; - cr = TInt32( v1 & 0xff ) - 128; - v1 >>= 8; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 136 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 140 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 144 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 132 ) - ) >> 16; - - // lower left - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - d1[ uintsPerDestRow ] = clip[ yy + cb ] | ( p << 8 ); - - // lower right - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - d1[ uintsPerDestRow + 1 ] = clip[ yy + cb ] | ( p << 8 ); - - // upper left - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - *d1++ = clip[ yy + cb ] | ( p << 8 ); - - // upper right - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - *d1++ = clip[ yy + cb ] | ( p << 8 ); - } - } - } - - y1 += ( width << 1 ); - d1 += uintsPerDestRow; - } - - } - - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::NewL -// ----------------------------------------------------------------------------- -// -CDisplaySinkNGA* CDisplaySinkNGA::NewL( TDisplaySinkParams& aParams, - const TDesC8& aInitData ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::NewL()<"), RThread().Id().operator TUint())); - CDisplaySinkNGA* self = new ( ELeave ) CDisplaySinkNGA(); - CleanupStack::PushL( self ); - self->ConstructL( aParams, aInitData ); - CleanupStack::Pop(); // self - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::NewL()>"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::CDisplaySinkNGA -// ----------------------------------------------------------------------------- -// -CDisplaySinkNGA::CDisplaySinkNGA() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::Ctor<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::Ctor>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::~CDisplaySinkNGA -// ----------------------------------------------------------------------------- -// -CDisplaySinkNGA::~CDisplaySinkNGA() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::~<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::~>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseConstructL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseConstructL( TDisplaySinkParams& aParams, - const TDesC8& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConstructL()<"), RThread().Id().operator TUint())); - iNewParams = static_cast< const TDisplaySinkParamsNGA& >( aParams ); - if ( !iNewParams.iSurfaceBuffer1 || !iNewParams.iSurfaceBuffer2 ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConstructL() surface buffer is NULL!"))); - User::Leave( KErrArgument ); - } - iBitmapTable[EFirstBitmap].iBuffer = iNewParams.iSurfaceBuffer1; - iBitmapTable[ESecondBitmap].iBuffer = iNewParams.iSurfaceBuffer2; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConstructL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseConvert -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkNGA::BaseConvert( const TVtMMFDataBuffer& aBuffer ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConvert()<"), RThread().Id().operator TUint())); - - TBool consumed( ETrue ); - TBitmapNo bitmapNo( iBitmapTable[ EFirstBitmap ].iIsFree ? EFirstBitmap : ESecondBitmap ); - if ( iBitmapTable[ bitmapNo ].iIsFree && - !iReleased && - ( *iRequestStatusPtr == KRequestPending ) ) - { -#if 1 - TInt bufferLength( - //iNewParams.iFrameSize.iHeight * ( iNewParams.iFrameSize.iWidth * 2 ) ); - iNewParams.iFrameSize.iHeight * ( iNewParams.iFrameSize.iWidth * 3/2 ) ); -#else - TInt bufferLength( - iNewParams.iFrameSize.iHeight * ( iNewParams.iFrameSize.iWidth * 4 ) ); -#endif - - TPtr8 ptrBuffer( - *iBitmapTable[ bitmapNo ].iBuffer, - bufferLength, - bufferLength - ); - - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConvert(): buffer %d: $%x %d bytes"), RThread().Id().operator TUint(), bitmapNo, *iBitmapTable[ bitmapNo ].iBuffer, bufferLength)); - - // Determine wether to convert or copy (420 will be just copied) - //if ( iNewParams.iSurfaceFormat == EUidPixelFormatRGB_565 ) - if ( iNewParams.iSurfaceFormat == EUidPixelFormatXRGB_8888 ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConvert(): converting to RGB565"), RThread().Id().operator TUint())); - - /* - ConvertFrom420PlanarToRGB_565( - aBuffer.Data(), - aBuffer.GetFrameSize(), - ptrBuffer, - iNewParams.iFrameSize.iWidth * 2 ); - */ - - ConvertFrom420PlanarToXRGB_8888( - aBuffer.Data(), - aBuffer.GetFrameSize(), - ptrBuffer, - iNewParams.iFrameSize.iWidth * 4 ); - - } - else - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConvert(): copying as 420"), RThread().Id().operator TUint())); - ptrBuffer = aBuffer.Data(); - } - - iBitmapTable[ bitmapNo ].iIsFree = EFalse; - TRequestStatus* statusP = iRequestStatusPtr; - iThread.RequestComplete( statusP, bitmapNo ); - } - else - { - consumed = EFalse; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConvert(): could not find free buffer"), RThread().Id().operator TUint())); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseConvert()>"), RThread().Id().operator TUint())); - return consumed; - - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseSinkThreadLogonL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseSinkThreadLogonL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSinkThreadLogonL()<"), RThread().Id().operator TUint())); - UpdateExpectedFrameSizeL(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSinkThreadLogonL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseSinkThreadLogoff -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseSinkThreadLogoff() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSinkThreadLogoff()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSinkThreadLogoff()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseUpdateSinkParamsL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseUpdateSinkParamsL()<"), RThread().Id().operator TUint())); - iNewParams = static_cast< const TDisplaySinkParamsNGA& >( aParams ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseUpdateSinkParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseDoUpdateParamsL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseDoUpdateParamsL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseDoUpdateParamsL()<"), RThread().Id().operator TUint())); - iBitmapTable[ EFirstBitmap ].iBuffer = iNewParams.iSurfaceBuffer1; - iBitmapTable[ ESecondBitmap ].iBuffer = iNewParams.iSurfaceBuffer2; - UpdateExpectedFrameSizeL(); - if( iNewParams.iFrameRateLimit != iFrameRateInterval ) - { - SetFrameRateLimit( iNewParams.iFrameRateLimit ); - ResetFrameRateLimitter(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseDoUpdateParamsL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseSetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseSetVideoFrameSizeL( const TSize& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSetVideoFrameSizeL()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSetVideoFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseSizesMatch -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkNGA::BaseSizesMatch( const TSize& aSize) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSizesMatch()<"), RThread().Id().operator TUint())); - TBool sizesMatch( iExpectedFrameSize == aSize ); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSizesMatch()>"), RThread().Id().operator TUint())); - return sizesMatch; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BitmapEntry -// ----------------------------------------------------------------------------- -// -CDisplaySink::TBitmapEntry& CDisplaySinkNGA::BitmapEntry( TInt aIndex ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BitmapEntry(%d)<"), RThread().Id().operator TUint(), aIndex)); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BitmapEntry()>"), RThread().Id().operator TUint())); - return iBitmapTable[ aIndex ]; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseEmptyBufferL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseEmptyBufferL()<"), RThread().Id().operator TUint())); - if ( BaseConvert( aVTMMFBuffer ) ) - { - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - } - else - { - if ( iVideoFrameQueue->IsStored() || !IsOkToSendFrame() ) - { - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - iSupplier->BufferEmptiedL( iBuffer ); - } - else - { - iVideoFrameQueue->Store( *iSupplier, static_cast(aVTMMFBuffer.GetMMFBuffer()), aVTMMFBuffer.GetFrameSize(), aVTMMFBuffer.Data()); - CleanupStack::PopAndDestroy(); // iBitmapCS.Signal(); - } - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseEmptyBufferL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseSetBitmapAvailable( TBitmapNo aBitmapNo ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseSetBitmapAvailable( TBitmapNo ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSetBitmapAvailable()<"), RThread().Id().operator TUint())); - if ( iVideoFrameQueue->IsStored() ) - { - if ( IsOkToSendFrame() ) - { - BaseConvert( iVideoFrameQueue->Buffer() ); - } - iVideoFrameQueue->Release(); - } - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseSetBitmapAvailable()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::BaseVideoFrameSizeChangedL( const TSize& ) -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::BaseVideoFrameSizeChangedL( const TSize& ) - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseVideoFrameSizeChangedL()<"), RThread().Id().operator TUint())); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::BaseVideoFrameSizeChangedL()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkNGA::NextFrame -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::NextFrame() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::NextFrame()<"), RThread().Id().operator TUint())); - iBitmapCS.Wait(); - if ( iVideoFrameQueue->IsStored() ) - { - if ( IsOkToSendFrame() ) - { - BaseConvert( iVideoFrameQueue->Buffer() ); - } - iVideoFrameQueue->Release(); - } - iBitmapCS.Signal(); - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::NextFrame()>"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkDP::UpdateExpectedFrameSizeL() -// ----------------------------------------------------------------------------- -// -void CDisplaySinkNGA::UpdateExpectedFrameSizeL() - { - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::UpdateExpectedFrameSizeL()<"), RThread().Id().operator TUint())); - iExpectedFrameSize = iNewParams.iFrameSize; - _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkNGA::UpdateExpectedFrameSizeL()>"), RThread().Id().operator TUint())); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImage.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImage.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include "cvtimage.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtImage::Type() const -// ----------------------------------------------------------------------------- -// -EXPORT_C CVtImage::TVtImageType CVtImage::Type() const - { - return iType; - } - -// ----------------------------------------------------------------------------- -// CVtImage::DisplayModeToVtDisplayMode( TDisplayMode aMode ) -// ----------------------------------------------------------------------------- -// -CVtImage::TVtDisplayMode CVtImage::DisplayModeToVtDisplayMode( - TDisplayMode aMode ) - { - TVtDisplayMode mode; - - switch( aMode ) - { - case EColor4K: - mode = EVtColor4K; - break; - - case EColor64K: - mode = EVtColor64K; - break; - - case EColor16M: - mode = EVtColor16M; - break; - - case EColor16MU: - mode = EVtColor16MU; - break; - - case EColor16MA: - case EColor16MAP: - mode = EVtColor16MA; - break; - - default: - mode = EVtColorNone; - break; - } - - return mode; - } - -// ----------------------------------------------------------------------------- -// CVtImage::CVtImage( TVtImageType aType ) -// ----------------------------------------------------------------------------- -// -CVtImage::CVtImage( TVtImageType aType ) -: iType( aType ) - { - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageBitmap.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageBitmap.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageBitmap.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::NewL( TInt aBitmapHandle ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageBitmap* CVtImageBitmap::NewL( TInt aBitmapHandle ) - { - CVtImageBitmap* self = new ( ELeave ) CVtImageBitmap(); - CleanupStack::PushL( self ); - self->ConstructL( aBitmapHandle ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::NewL( const TSize& aSize, TDisplayMode aDisplayMode ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageBitmap* CVtImageBitmap::NewL( - const TSize& aSize, - TDisplayMode aDisplayMode ) - { - CVtImageBitmap* self = new ( ELeave ) CVtImageBitmap(); - CleanupStack::PushL( self ); - self->ConstructL( aSize, aDisplayMode ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::~CVtImageBitmap() -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageBitmap::~CVtImageBitmap() - { - delete iBitmap; - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::ResizeL( const TSize& aSize ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageBitmap::ResizeL( const TSize& aSize ) - { - User::LeaveIfError( iBitmap->Resize( aSize ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::SetBitmapL( TInt aBitmapHandle ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageBitmap::SetBitmapL( TInt aBitmapHandle ) - { - delete iBitmap; - iBitmap = 0; - ConstructL( aBitmapHandle ); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::Bitmap() const -// ----------------------------------------------------------------------------- -EXPORT_C CFbsBitmap& CVtImageBitmap::Bitmap() const - { - return *iBitmap; - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::NeedHeapLock() const -// ----------------------------------------------------------------------------- -TBool CVtImageBitmap::NeedHeapLock() const - { - return iBitmap->IsLargeBitmap(); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::DisplayMode() const -// ----------------------------------------------------------------------------- -CVtImage::TVtDisplayMode CVtImageBitmap::DisplayMode() const - { - return CVtImage::DisplayModeToVtDisplayMode( iBitmap->DisplayMode() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::Size() const -// ----------------------------------------------------------------------------- -TSize CVtImageBitmap::Size() const - { - return iBitmap->SizeInPixels(); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::BytesPerRow() const -// ----------------------------------------------------------------------------- -TInt CVtImageBitmap::BytesPerRow() const - { - return iBitmap->ScanLineLength( Size().iWidth, iBitmap->DisplayMode() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::DataAddress() const -// ----------------------------------------------------------------------------- -TUint32* CVtImageBitmap::DataAddress() const - { - return iBitmap->DataAddress(); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::LineAddress( TInt aLine ) const -// ----------------------------------------------------------------------------- -TUint32* CVtImageBitmap::LineAddress( TInt aLine ) const - { - if( aLine < 0 ) - { - aLine = 0; - } - else if( aLine > Size().iHeight - 1 ) - { - aLine = Size().iHeight - 1; - } - return reinterpret_cast< TUint32* >( - reinterpret_cast< TUint8* >( DataAddress() ) + BytesPerRow() * aLine ); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::CVtImageBitmap() -// ----------------------------------------------------------------------------- -CVtImageBitmap::CVtImageBitmap() -: CVtImage( CVtImage::EVtImageBitmap ) - { - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::ConstructL( const TSize& aSize, TDisplayMode aDisplayMode ) -// ----------------------------------------------------------------------------- -void CVtImageBitmap::ConstructL( const TSize& aSize, TDisplayMode aDisplayMode ) - { - iBitmap = new ( ELeave ) CFbsBitmap(); - User::LeaveIfError( iBitmap->Create( aSize, aDisplayMode ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageBitmap::ConstructL( TInt aBitmapHandle ) -// ----------------------------------------------------------------------------- -void CVtImageBitmap::ConstructL( TInt aBitmapHandle ) - { - iBitmap = new ( ELeave ) CFbsBitmap(); - User::LeaveIfError( iBitmap->Duplicate( aBitmapHandle ) ); - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageConverter.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageConverter.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1894 +0,0 @@ -/* -* Copyright (c) 2004 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: YUV to bitmap and bitmap to YUV conversion routines for VT -* -*/ - - -// INCLUDE FILES - -#include -#include -#include "CVtImageConverter.h" - -// LOCAL CONSTANTS AND MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// Calculates average for two integer values -#define AVG( a, b ) ( ( a + b ) >> 1 ) - -// MODULE DATA STRUCTURES - -/** -* Holds data for one YUV pixel -* -* @lib VTImageConverter.lib -*/ -struct TVSYCrCb - { - public: - // Y data - TInt iY; - - // Cb (U) data - TInt iCb; - - // Cr (V) data - TInt iCr; - }; - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RGBtoYCbCr( TVSYCrCb* aYuv, const TRgb& aColor ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint8 RGBtoYCbCr( TVSYCrCb* aYuv, const TRgb& aColor ) - { - const TInt YRedFactor = 19595; // 0.299 << 16 - const TInt YGreenFactor = 38470; // 0.587 << 16 - const TInt YBlueFactor = 7471; // 0.114 << 16 - const TInt CbRedFactor = 11056; // 0.1687 << 16 - const TInt CbGreenFactor = 21712; // 0.3313 << 16 - const TInt CrGreenFactor = 27440; // 0.4187 << 16 - const TInt CrBlueFactor = 5328; // 0.0813 << 16 - - TInt red = aColor.Red(); - TInt green = aColor.Green(); - TInt blue = aColor.Blue(); - - aYuv->iY = ( YRedFactor * red ) + - ( YGreenFactor * green ) + - ( YBlueFactor * blue ); - aYuv->iCb = - ( CbRedFactor * red ) - - ( CbGreenFactor * green ) + - ( blue << 15 ); - aYuv->iCr = ( red << 15 ) - - ( CrGreenFactor * green ) - - ( CrBlueFactor * blue ); - - aYuv->iY >>= 16; - aYuv->iCb >>= 16; - aYuv->iCr >>= 16; - - aYuv->iCb += 128; - aYuv->iCr += 128; - - return static_cast< TUint8 >( aYuv->iY ); - } - -// ----------------------------------------------------------------------------- -// VSReadColor4K( TAny*& aSource ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRgb VSReadColor4K( TAny*& aSource ) - { - TUint16* s = static_cast< TUint16* >( aSource ); - TRgb rgb( TRgb::Color4K( *s++ ) ); - aSource = s; - return rgb; - } - -// ----------------------------------------------------------------------------- -// VSReadColor64K( TAny*& aSource ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRgb VSReadColor64K( TAny*& aSource ) - { - TUint16* s = static_cast< TUint16* >( aSource ); - TRgb rgb( TRgb::Color64K( *s++ ) ); - aSource = s; - return rgb; - } - -// ----------------------------------------------------------------------------- -// VSReadColor16M( TAny*& aSource ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRgb VSReadColor16M( TAny*& aSource ) - { - TUint8* s = static_cast< TUint8* >( aSource ); - TRgb rgb( s[ 2 ], s[ 1 ], s[ 0 ] ); - aSource = s + 3; - return rgb; - } - -// ----------------------------------------------------------------------------- -// VSReadColor16MU( TAny*& aSource ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRgb VSReadColor16MU( TAny*& aSource ) - { - TUint32* s = static_cast< TUint32* >( aSource ); - TRgb rgb( TRgb::Color16MU( *s++ ) ); - aSource = s; - return rgb; - } - -// ----------------------------------------------------------------------------- -// VSReadColor16MA( TAny*& aSource ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRgb VSReadColor16MA( TAny*& aSource ) - { - TUint32* s = static_cast< TUint32* >( aSource ); - TRgb rgb( TRgb::Color16MA( *s++ ) ); - aSource = s; - return rgb; - } - -// ----------------------------------------------------------------------------- -// VSReadColor16MAP( TAny*& aSource ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRgb VSReadColor16MAP( TAny*& aSource ) - { - TUint32* s = static_cast< TUint32* >( aSource ); - TRgb rgb( TRgb::Color16MAP( *s++ ) ); - aSource = s; - return rgb; - } - -// ============================ MEMBER FUNCTIONS =============================== - -/** -* -*/ -const TUint8 CVTYUVFbsBitmapConverter::COFF_TBL_4K[ 80 ]= - { - 0xe9,0x66,0x01,0x00, // KRedCrFactor - 0x1a,0x58,0x00,0x00, // KGreenCbFactor - 0xd2,0xb6,0x00,0x00, // KGreenCrFactor - 0xa2,0xc5,0x01,0x00, // KBlueCbFactor - - 0x00,0x00,0x00,0x00, // 4-bit - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, // 5 - 0x00,0x00,0x00,0x00, - 0x00,0x01,0x02,0x03, - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, // 10 - 0x0f,0x0f,0x0f,0x0f, - 0x0f,0x0f,0x0f,0x0f, - 0x0f,0x0f,0x0f,0x0f, - 0x0f,0x0f,0x0f,0x0f, - 0x0f,0x0f,0x0f,0x0f, // 15 - 0x0f,0x0f,0x0f,0x0f - }; - -/** -* -*/ -const TUint8 CVTYUVFbsBitmapConverter::COFF_TBL_64K[ 220 ]= - { - 0xe9,0x66,0x01,0x00, // KRedCrFactor - 0x1a,0x58,0x00,0x00, // KGreenCbFactor - 0xd2,0xb6,0x00,0x00, // KGreenCrFactor - 0xa2,0xc5,0x01,0x00, // KBlueCbFactor - - 0x00,0x00,0x00,0x00, // 5-bit - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x01,0x02,0x03, - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13, - 0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b, - 0x1c,0x1d,0x1e,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - 0x1f,0x1f,0x1f,0x1f, - - 0x00,0x00,0x00,0x00, // 6-bit - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x01,0x02,0x03, - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, - 0x10,0x11,0x12,0x13, - 0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b, - 0x1c,0x1d,0x1e,0x1f, - 0x20,0x21,0x22,0x23, - 0x24,0x25,0x26,0x27, - 0x28,0x29,0x2a,0x2b, - 0x2c,0x2d,0x2e,0x2f, - 0x30,0x31,0x32,0x33, - 0x34,0x35,0x36,0x37, - 0x38,0x39,0x3a,0x3b, - 0x3c,0x3d,0x3e,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f, - 0x3f,0x3f,0x3f,0x3f - }; - -/** -* -*/ -const TUint8 CVTYUVFbsBitmapConverter::COFF_TBL_16M[ 528 ] = - { - 0xe9,0x66,0x01,0x00, // KRedCrFactor - 0x1a,0x58,0x00,0x00, // KGreenCbFactor - 0xd2,0xb6,0x00,0x00, // KGreenCrFactor - 0xa2,0xc5,0x01,0x00, // KBlueCbFactor - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, - - 0x00,0x01,0x02,0x03, // 8-bit - 0x04,0x05,0x06,0x07, - 0x08,0x09,0x0a,0x0b, - 0x0c,0x0d,0x0e,0x0f, - - 0x10,0x11,0x12,0x13, - 0x14,0x15,0x16,0x17, - 0x18,0x19,0x1a,0x1b, - 0x1c,0x1d,0x1e,0x1f, - - 0x20,0x21,0x22,0x23, - 0x24,0x25,0x26,0x27, - 0x28,0x29,0x2a,0x2b, - 0x2c,0x2d,0x2e,0x2f, - - 0x30,0x31,0x32,0x33, - 0x34,0x35,0x36,0x37, - 0x38,0x39,0x3a,0x3b, - 0x3c,0x3d,0x3e,0x3f, - - 0x40,0x41,0x42,0x43, - 0x44,0x45,0x46,0x47, - 0x48,0x49,0x4a,0x4b, - 0x4c,0x4d,0x4e,0x4f, - - 0x50,0x51,0x52,0x53, - 0x54,0x55,0x56,0x57, - 0x58,0x59,0x5a,0x5b, - 0x5c,0x5d,0x5e,0x5f, - - 0x60,0x61,0x62,0x63, - 0x64,0x65,0x66,0x67, - 0x68,0x69,0x6a,0x6b, - 0x6c,0x6d,0x6e,0x6f, - - 0x70,0x71,0x72,0x73, - 0x74,0x75,0x76,0x77, - 0x78,0x79,0x7a,0x7b, - 0x7c,0x7d,0x7e,0x7f, - - 0x80,0x81,0x82,0x83, - 0x84,0x85,0x86,0x87, - 0x88,0x89,0x8a,0x8b, - 0x8c,0x8d,0x8e,0x8f, - - 0x90,0x91,0x92,0x93, - 0x94,0x95,0x96,0x97, - 0x98,0x99,0x9a,0x9b, - 0x9c,0x9d,0x9e,0x9f, - - 0xa0,0xa1,0xa2,0xa3, - 0xa4,0xa5,0xa6,0xa7, - 0xa8,0xa9,0xaa,0xab, - 0xac,0xad,0xae,0xaf, - - 0xb0,0xb1,0xb2,0xb3, - 0xb4,0xb5,0xb6,0xb7, - 0xb8,0xb9,0xba,0xbb, - 0xbc,0xbd,0xbe,0xbf, - - 0xc0,0xc1,0xc2,0xc3, - 0xc4,0xc5,0xc6,0xc7, - 0xc8,0xc9,0xca,0xcb, - 0xcc,0xcd,0xce,0xcf, - - 0xd0,0xd1,0xd2,0xd3, - 0xd4,0xd5,0xd6,0xd7, - 0xd8,0xd9,0xda,0xdb, - 0xdc,0xdd,0xde,0xdf, - - 0xe0,0xe1,0xe2,0xe3, - 0xe4,0xe5,0xe6,0xe7, - 0xe8,0xe9,0xea,0xeb, - 0xec,0xed,0xee,0xef, - - 0xf0,0xf1,0xf2,0xf3, - 0xf4,0xf5,0xf6,0xf7, - 0xf8,0xf9,0xfa,0xfb, - 0xfc,0xfd,0xfe,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff - }; - -// ============================ CVTYUVFbsBitmapConverter ======================= - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::CVTYUVFbsBitmapConverter( -// const TSize& aSourceSize ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CVTYUVFbsBitmapConverter::CVTYUVFbsBitmapConverter( const TSize& aSourceSize ) -: iSourceSize( aSourceSize ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::CVTYUVFbsBitmapConverter() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::CVTYUVFbsBitmapConverter() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::~CVTYUVFbsBitmapConverter() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVTYUVFbsBitmapConverter::~CVTYUVFbsBitmapConverter() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::~CVTYUVFbsBitmapConverter() >>"), RThread().Id().operator TUint())); - delete iDestination; - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::~CVTYUVFbsBitmapConverter() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::ProcessL() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVTYUVFbsBitmapConverter::ProcessL() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::ProcessL() >>"), RThread().Id().operator TUint())); - switch( iDestination->DisplayMode() ) - { - case EColor4K: - DoProcess4K(); - break; - - case EColor64K: - DoProcess64K(); - break; - - case EColor16M: - DoProcess16M(); - break; - - case EColor16MU: - case EColor16MA: // 16MU and 16MA are handled equally - DoProcess16MU16MA(); - break; - - default: - User::Leave( KErrNotSupported ); - break; - }; - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::ProcessL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::SetDestinationL( -// const CFbsBitmap& aDestinationBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVTYUVFbsBitmapConverter::SetDestinationL( - const CFbsBitmap& aDestinationBitmap ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::SetDestinationL() >>"), RThread().Id().operator TUint())); - SetDestinationL( aDestinationBitmap.Handle() ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::SetDestinationL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::SetDestinationL( TInt aHandle ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVTYUVFbsBitmapConverter::SetDestinationL( TInt aHandle ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::SetDestinationL() >>"), RThread().Id().operator TUint())); - ReConstructL( aHandle ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::SetDestinationL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::ConstructL( TInt aBitmapHandle ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVFbsBitmapConverter::ConstructL( TInt aBitmapHandle ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::ConstructL() >>"), RThread().Id().operator TUint())); - iDestination = new (ELeave) CFbsBitmap(); - ReConstructL( aBitmapHandle ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::ReConstructL( TInt aBitmapHandle ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVFbsBitmapConverter::ReConstructL( TInt aBitmapHandle ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::ReConstructL() >>"), RThread().Id().operator TUint())); - User::LeaveIfError( iDestination->Duplicate( aBitmapHandle ) ); - // make sure that destination bitmap's displaymode is supported - if( ( iDestination->DisplayMode() != EColor4K ) && - ( iDestination->DisplayMode() != EColor64K ) && - ( iDestination->DisplayMode() != EColor16M ) && - ( iDestination->DisplayMode() != EColor16MU ) && - ( iDestination->DisplayMode() != EColor16MA ) - ) - { - User::Leave( KErrNotSupported ); - } - iDestinationSize = iDestination->SizeInPixels(); - SizeUpdateL(); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::ReConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVFbsBitmapConverter::SizeUpdateL() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVFbsBitmapConverter::SizeUpdateL() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::SizeUpdate() >>"), RThread().Id().operator TUint())); - if( ( SourceSize().iWidth < 2 ) || ( DestinationSize().iWidth < 2 ) ) - { - User::Leave( KErrNotSupported ); // !!!! - } - - iVSkipReal = TReal32( SourceSize().iHeight ) / - TReal32( DestinationSize().iHeight ); - iHSkipReal = TReal32( SourceSize().iWidth ) / - TReal32( DestinationSize().iWidth ); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVFbsBitmapConverter::SizeUpdate() <<"), RThread().Id().operator TUint())); - } - -// ============================ CVTYUVPlanarFbsBitmapConverter =============================== - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::SetSourceSizeL( const TSize& aSize ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVTYUVPlanarFbsBitmapConverter::SetSourceSizeL( - const TSize& aSize ) - { - iSourceSize = aSize; - SizeUpdateL(); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::SetSourceL( -// const TSize& aSize, const TDesC8& aSourceData ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVTYUVPlanarFbsBitmapConverter::SetSourceL( - const TSize& aSize, - const TDesC8& aSourceData ) - { - iSourceSize = aSize; - SetSourceL( aSourceData ); - SizeUpdateL(); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::CVTYUVPlanarFbsBitmapConverter( -// const TSize& aSourceSize ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CVTYUVPlanarFbsBitmapConverter::CVTYUVPlanarFbsBitmapConverter( - const TSize& aSourceSize ) -: CVTYUVFbsBitmapConverter( aSourceSize ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::CVTYUVPlanarFbsBitmapConverter() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::CVTYUVPlanarFbsBitmapConverter() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess4K() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess4K() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess4K() >>"), RThread().Id().operator TUint())); - - // Vertical scaling needed? - if( ( iVSkipReal == 1 ) && ( iHSkipReal == 1 ) ) - { - // NO: Use really fast conversion - DoProcess4KNoScale(); - } - else - { - - // YES: Use slower conversion method - const TUint8* y = iY; - const TUint8* u = iU; - const TUint8* v = iV; - const TUint8* clip = COFF_TBL_4K + 40; - - TInt height = DestinationSize().iHeight; - TInt width = DestinationSize().iWidth; - - iDestination->LockHeap(); - TUint32* d = iDestination->DataAddress(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess4K(): [%d, %d] for >>"), RThread().Id().operator TUint(), width, height )); - - for( TInt h = 0; h < height; h++ ) - { - TInt sourceY = TInt( TReal32( h ) * iVSkipReal ); - TInt hTimesW = sourceY * SourceSize().iWidth; - TInt uvIdx = ( sourceY >> 1 ) * ( SourceSize().iWidth >> 1 ); - for( TInt w = 0; w < width; w++ ) - { - TInt sourceX = TInt( TReal32( w ) * iHSkipReal ); - TInt uvIdxW( uvIdx + ( sourceX >> 1 ) ); - - TInt ay = y[ hTimesW + sourceX ]; - TInt cb = u[ uvIdxW ] - 128; - TInt cr = v[ uvIdxW ] - 128; - - TInt greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - TInt red = ay + cr; - TInt green = ay - greenCbCr; - TInt blue = ay + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - TUint32 s = green | ( red << 4 ); - s = blue | ( s << 4 ); - - w++; - sourceX = TInt( TReal32( w ) * iHSkipReal ); - uvIdxW = uvIdx + ( sourceX >> 1 ); - - ay = y[ hTimesW + sourceX ]; - cb = u[ uvIdxW ] - 128; - cr = v[ uvIdxW ] - 128; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - red = ay + cr; - green = ay - greenCbCr; - blue = ay + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - s |= ( ( green | ( red << 4 ) ) << 4 | blue ) << 16; - - *d++ = s; - } - } - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess4K(): for <<"), RThread().Id().operator TUint())); - - iDestination->UnlockHeap(); - } - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess4K() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess4KNoScale() -// When vertical and horizontal scaling is not required we can do two vertical -// lines in parallel in that case we need to calculate Cr and Cb values only -// once for four pixels. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess4KNoScale() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess4KNoScale() >>"), RThread().Id().operator TUint())); - - TInt height( SourceSize().iHeight >> 1 ); - TInt width( SourceSize().iWidth ); - - const TUint32* y1 = reinterpret_cast< const TUint32* >( iY ); - const TUint32* u = reinterpret_cast< const TUint32* >( iU ); - const TUint32* v = reinterpret_cast< const TUint32* >( iV ); - - iDestination->LockHeap(); - - TUint32 uintsPerDestRow = CFbsBitmap::ScanLineLength - ( DestinationSize().iWidth, EColor4K ) >> 2; - - TUint32* d1 = iDestination->DataAddress(); - - TUint32 ywidth = width >> 2; - - width >>= 3; - - TInt32 cb; - TInt32 cr; - TInt32 greenCbCr; - TInt32 yy; - TInt32 red; - TInt32 green; - TInt32 blue; - TUint32 r1; - const TUint8* clip = COFF_TBL_4K + 40; - - for( TInt y = 0; y < height; y++ ) - { - for( TInt x = 0; x < width; x++ ) - { - TUint32 u1 = *u++; - TUint32 v1 = *v++; - - for( TInt c2 = 0; c2 < 2; c2++ ) - { - TUint32 yy2 = y1[ ywidth ]; - TUint32 yy1 = *y1++; - - for( TInt c = 0; c < 2; c++ ) - { - cb = TInt32( u1 & 0xff ) - 128; - u1 >>= 8; - cr = TInt32( v1 & 0xff ) - 128; - v1 >>= 8; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - // lower left - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 = green | ( red << 4 ); - r1 = blue | ( r1 << 4 ); - - // lower right - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 |= ( ( green | ( red << 4 ) ) << 4 | blue ) << 16; - - d1[ uintsPerDestRow ] = r1; - - // upper left - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 = green | ( red << 4 ); - r1 = blue | ( r1 << 4 ); - - // upper right - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 4 ]; - green = clip[ green >> 4 ]; - blue = clip[ blue >> 4 ]; - - // RGB_444 - r1 |= ( ( green | ( red << 4 ) ) << 4 | blue ) << 16; - - *d1++ = r1; - } - } - } - - y1 += ( width << 1 ); - d1 += uintsPerDestRow; - } - - iDestination->UnlockHeap(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess4KNoScale() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess64K() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess64K() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess64K() >>"), RThread().Id().operator TUint())); - - // Vertical scaling needed? - if( ( iVSkipReal == 1 ) && ( iHSkipReal == 1 ) ) // !!! - { - // NO: Use really fast conversion - DoProcess64KNoScale(); - return; - } - else - { - // YES: Use slower conversion method - const TUint8* y = iY; - const TUint8* u = iU; - const TUint8* v = iV; - const TUint8* clip = COFF_TBL_64K + 40; - - TInt height = DestinationSize().iHeight; - TInt width = DestinationSize().iWidth; - - iDestination->LockHeap(); - TUint32* d = iDestination->DataAddress(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess64K(): [%d, %d] for >>"), RThread().Id().operator TUint(), width, height )); - - for( TInt h = 0; h < height; h++ ) - { - TInt sourceY = TInt( TReal32( h ) * iVSkipReal ); - TInt hTimesW = sourceY * SourceSize().iWidth; - TInt uvIdx = ( sourceY >> 1 ) * ( SourceSize().iWidth >> 1 ); - for( TInt w = 0; w < width; w++ ) - { - TInt sourceX = TInt( TReal32( w ) * iHSkipReal ); - - TInt uvIdxW( uvIdx + ( sourceX >> 1 ) ); - - TInt ay = y[ hTimesW + sourceX ]; - TInt cb = u[ uvIdxW ] - 128; - TInt cr = v[ uvIdxW ] - 128; - - TInt greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - - 0x1200000 - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - TInt red = ay + cr; - TInt green = ay - greenCbCr; - TInt blue = ay + cb; - - red = clip[ red >> 3 ]; - green = clip[ green >> 2 ]; - blue = clip[ blue >> 3 ]; - - // RGB_565 - TUint32 s = green | ( red << 6 ); - s = blue | ( s << 5 ); - - w++; - sourceX = TInt( TReal32( w ) * iHSkipReal ); - - uvIdxW = uvIdx + ( sourceX >> 1 ); - - ay = y[ hTimesW + sourceX ]; - cb = u[ uvIdxW ] - 128; - cr = v[ uvIdxW ] - 128; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - - 0x1200000 - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - red = ay + cr; - green = ay - greenCbCr; - blue = ay + cb; - - red = clip[ red >> 3 ]; - green = clip[ green >> 2 ]; - blue = clip[ blue >> 3 ]; - - s |= ( ( green | ( red << 6 ) ) << 5 | blue ) << 16; - - *d++ = s; - } - } - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess64K(): for <<"), RThread().Id().operator TUint())); - - iDestination->UnlockHeap(); - } - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess64K() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess64KNoScale() -// Source YUV image must be even divisible by 8. -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess64KNoScale() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess64KNoScale() >>"), RThread().Id().operator TUint())); - - TInt height( SourceSize().iHeight >> 1 ); - TInt width( SourceSize().iWidth ); - - const TUint32* y1 = reinterpret_cast< const TUint32* >( iY ); - const TUint32* u = reinterpret_cast< const TUint32* >( iU ); - const TUint32* v = reinterpret_cast< const TUint32* >( iV ); - - iDestination->LockHeap(); - - TUint32 uintsPerDestRow = CFbsBitmap::ScanLineLength - ( DestinationSize().iWidth, EColor64K ) >> 2; - - TUint32* d1 = iDestination->DataAddress(); - - TUint32 ywidth = width >> 2; - - width >>= 3; - - TInt32 cb; - TInt32 cr; - TInt32 greenCbCr; - TInt32 yy; - TInt32 red; - TInt32 green; - TInt32 blue; - TUint32 r1; - const TUint8* clip = COFF_TBL_64K + 40; - - for( TInt y = 0; y < height; y++ ) - { - for( TInt x = 0; x < width; x++ ) - { - TUint32 u1 = *u++; - TUint32 v1 = *v++; - - for( TInt c2 = 0; c2 < 2; c2++ ) - { - TUint32 yy2 = y1[ ywidth ]; - TUint32 yy1 = *y1++; - - for( TInt c = 0; c < 2; c++ ) - { - cb = TInt32( u1 & 0xff ) - 128; - u1 >>= 8; - cr = TInt32( v1 & 0xff ) - 128; - v1 >>= 8; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 32 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 36 ) - - 0x1200000 - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 40 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 28 ) - ) >> 16; - - // lower left - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 3 ]; - green = clip[ green >> 2 ]; - blue = clip[ blue >> 3 ]; - - // RGB_565 - r1 = green | ( red << 6 ); - r1 = blue | ( r1 << 5 ); - - // lower right - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - // clear lowest 3 bits - red = clip[ red >> 3 ]; - green = clip[ green >> 2 ]; - blue = clip[ blue >> 3 ]; - - // RGB_565 - r1 |= ( ( green | ( red << 6 ) ) << 5 | blue ) << 16; - - d1[ uintsPerDestRow ] = r1; - - // upper left - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 3 ]; - green = clip[ green >> 2 ]; - blue = clip[ blue >> 3 ]; - - // RGB_565 - r1 = green | ( red << 6 ); - r1 = blue | ( r1 << 5 ); - - // upper right - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - red = yy + cr; - green = yy - greenCbCr; - blue = yy + cb; - - red = clip[ red >> 3 ]; - green = clip[ green >> 2 ]; - blue = clip[ blue >> 3 ]; - - // RGB_565 - r1 |= ( ( green | ( red << 6 ) ) << 5 | blue ) << 16; - - *d1++ = r1; - } - } - } - - y1 += ( width << 1 ); - d1 += uintsPerDestRow; - } - - iDestination->UnlockHeap(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess64KNoScale() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess16M() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess16M() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16M() >>"), RThread().Id().operator TUint())); - - // Vertical scaling needed? - if( ( iVSkipReal == 1 ) && ( iHSkipReal == 1 ) ) - { - // NO: Use really fast conversion - DoProcess16MNoScale(); - } - else - { - // YES: Use slower conversion method - - // YES: Use slower conversion method - const TUint8* y = iY; - const TUint8* u = iU; - const TUint8* v = iV; - const TUint8* clip = COFF_TBL_16M + 144; - - TInt height = DestinationSize().iHeight; - TInt width = DestinationSize().iWidth; - - iDestination->LockHeap(); - - TUint8* d = reinterpret_cast( iDestination->DataAddress() ); - TUint32 dPitch = iDestination->ScanLineLength( width, iDestination->DisplayMode() ); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16M(): [%d, %d] for >>"), RThread().Id().operator TUint(), width, height )); - - for( TInt h = 0; h < height; h++ ) - { - TInt sourceY = TInt( TReal32( h ) * iVSkipReal ); - TInt hTimesW = sourceY * SourceSize().iWidth; - TInt uvIdx = ( sourceY >> 1 ) * ( SourceSize().iWidth >> 1 ); - TUint8* dTemp = d; - for( TInt w = 0; w < width; w++ ) - { - TInt sourceX = TInt( TReal32( w ) * iHSkipReal ); - - TInt uvIdxW( uvIdx + ( sourceX >> 1 ) ); - - TInt ay = y[ hTimesW + sourceX ]; - TInt cb = u[ uvIdxW ] - 128; - TInt cr = v[ uvIdxW ] - 128; - - TInt greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 136 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 140 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 144 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 132 ) - ) >> 16; - - *dTemp++ = clip[ ay + cb ]; - *dTemp++ = clip[ ay - greenCbCr ]; - *dTemp++ = clip[ ay + cr ]; - } - d += dPitch; - } - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16M(): for <<"), RThread().Id().operator TUint())); - - iDestination->UnlockHeap(); - } - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16M() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess16MNoScale() -// When vertical and horizontal scaling is not required we can do two vertical -// lines in parallel in that case we need to calculate Cr and Cb values only -// once for four pixels. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess16MNoScale() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MNoScale() >>"), RThread().Id().operator TUint())); - - TInt height( SourceSize().iHeight >> 1 ); - TInt width( SourceSize().iWidth ); - - const TUint32* y1 = reinterpret_cast< const TUint32* >( iY ); - const TUint32* u = reinterpret_cast< const TUint32* >( iU ); - const TUint32* v = reinterpret_cast< const TUint32* >( iV ); - - iDestination->LockHeap(); - - TUint32 bytesPerDestRow = CFbsBitmap::ScanLineLength - ( DestinationSize().iWidth, EColor16M ); - - TUint8* d1 = reinterpret_cast< TUint8* >( iDestination->DataAddress() ); - - TUint32 ywidth = width >> 2; - - width >>= 3; - - TInt32 cb; - TInt32 cr; - TInt32 greenCbCr; - TInt32 yy; - TInt32 idx1; - TInt32 idx2; - const TUint8* clip = COFF_TBL_16M + 144; - - for( TInt y = 0; y < height; y++ ) - { - idx1 = 0; - idx2 = bytesPerDestRow; - - for( TInt x = 0; x < width; x++ ) - { - TUint32 u1 = *u++; - TUint32 v1 = *v++; - - for( TInt c2 = 0; c2 < 2; c2++ ) - { - TUint32 yy2 = y1[ ywidth ]; - TUint32 yy1 = *y1++; - - for( TInt c = 0; c < 2; c++ ) - { - cb = TInt32( u1 & 0xff ) - 128; - u1 >>= 8; - cr = TInt32( v1 & 0xff ) - 128; - v1 >>= 8; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 136 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 140 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 144 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 132 ) - ) >> 16; - - // lower left - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - d1[ idx2++ ] = clip[ yy + cb ]; - d1[ idx2++ ] = clip[ yy - greenCbCr ]; - d1[ idx2++ ] = clip[ yy + cr ]; - - // lower right - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - d1[ idx2++ ] = clip[ yy + cb ]; - d1[ idx2++ ] = clip[ yy - greenCbCr ]; - d1[ idx2++ ] = clip[ yy + cr ]; - - // upper left - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - d1[ idx1++ ] = clip[ yy + cb ]; - d1[ idx1++ ] = clip[ yy - greenCbCr ]; - d1[ idx1++ ] = clip[ yy + cr ]; - - // upper right - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - d1[ idx1++ ] = clip[ yy + cb ]; - d1[ idx1++ ] = clip[ yy - greenCbCr ]; - d1[ idx1++ ] = clip[ yy + cr ]; - } - } - } - - y1 += ( width << 1 ); - d1 += bytesPerDestRow * 2; - } - - iDestination->UnlockHeap(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MNoScale() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MA() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MA() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MA() >>"), RThread().Id().operator TUint())); - - // Vertical scaling needed? - if( ( iVSkipReal == 1 ) && ( iHSkipReal == 1 ) ) - { - // NO: Use really fast conversion - DoProcess16MU16MANoScale(); - } - else - { - // YES: Use slower conversion method - const TUint8* y = iY; - const TUint8* u = iU; - const TUint8* v = iV; - const TUint8* clip = COFF_TBL_16M + 144; - - TInt height = DestinationSize().iHeight; - TInt width = DestinationSize().iWidth; - - iDestination->LockHeap(); - TUint32* d = iDestination->DataAddress(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MA(): [%d, %d] for >>"), RThread().Id().operator TUint(), width, height )); - - for( TInt h = 0; h < height; h++ ) - { - TInt sourceY = TInt( TReal32( h ) * iVSkipReal ); - TInt hTimesW = sourceY * SourceSize().iWidth; - TInt uvIdx = ( sourceY >> 1 ) * ( SourceSize().iWidth >> 1 ); - for( TInt w = 0; w < width; w++ ) - { - TInt sourceX = TInt( TReal32( w ) * iHSkipReal ); - - TInt uvIdxW( uvIdx + ( sourceX >> 1 ) ); - - TInt ay = y[ hTimesW + sourceX ]; - TInt cb = u[ uvIdxW ] - 128; - TInt cr = v[ uvIdxW ] - 128; - - TInt greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 136 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 140 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 144 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 132 ) - ) >> 16; - - - // 0xffBBGG - TUint32 p = 0xff0000 | - ( clip[ ay + cr ] << 8 ) | clip[ ay - greenCbCr ]; - // 0xffBBGGRR - *d++ = clip[ ay + cb ] | ( p << 8 ); - } - } - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MA(): for <<"), RThread().Id().operator TUint())); - - iDestination->UnlockHeap(); - } - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MA() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MANoScale() -// When vertical and horizontal scaling is not required we can do two vertical -// lines in parallel in that case we need to calculate Cr and Cb values only -// once for four pixels. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MANoScale() - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MANoScale() >>"), RThread().Id().operator TUint())); - - TInt height( SourceSize().iHeight >> 1 ); - TInt width( SourceSize().iWidth ); - - const TUint32* y1 = reinterpret_cast< const TUint32* >( iY ); - const TUint32* u = reinterpret_cast< const TUint32* >( iU ); - const TUint32* v = reinterpret_cast< const TUint32* >( iV ); - - iDestination->LockHeap(); - - TUint32 uintsPerDestRow = CFbsBitmap::ScanLineLength - ( DestinationSize().iWidth, EColor16MU ) >> 2; - - TUint32* d1 = iDestination->DataAddress(); - - TUint32 ywidth = width >> 2; - - width >>= 3; - - TInt32 cb; - TInt32 cr; - TInt32 greenCbCr; - TInt32 yy; - TUint32 p; - const TUint8* clip = COFF_TBL_16M + 144; - - for( TInt y = 0; y < height; y++ ) - { - for( TInt x = 0; x < width; x++ ) - { - TUint32 u1 = *u++; - TUint32 v1 = *v++; - - for( TInt c2 = 0; c2 < 2; c2++ ) - { - TUint32 yy2 = y1[ ywidth ]; - TUint32 yy1 = *y1++; - - for( TInt c = 0; c < 2; c++ ) - { - cb = TInt32( u1 & 0xff ) - 128; - u1 >>= 8; - cr = TInt32( v1 & 0xff ) - 128; - v1 >>= 8; - - greenCbCr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 136 ) + - cb * *reinterpret_cast< const TInt32* >( clip - 140 ) - ) >> 16; - cr = - ( - cr * *reinterpret_cast< const TInt32* >( clip - 144 ) - ) >> 16; - cb = - ( - cb * *reinterpret_cast< const TInt32* >( clip - 132 ) - ) >> 16; - - // lower left - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - d1[ uintsPerDestRow ] = clip[ yy + cb ] | ( p << 8 ); - - // lower right - yy = ( yy2 & 0xff ); - yy2 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - d1[ uintsPerDestRow + 1 ] = clip[ yy + cb ] | ( p << 8 ); - - // upper left - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - *d1++ = clip[ yy + cb ] | ( p << 8 ); - - // upper right - yy = ( yy1 & 0xff ); - yy1 >>= 8; - - // 0xffBBGG - p = 0xff0000 | - ( clip[ yy + cr ] << 8 ) | clip[ yy - greenCbCr ]; - // 0xffBBGGRR - *d1++ = clip[ yy + cb ] | ( p << 8 ); - } - } - } - - y1 += ( width << 1 ); - d1 += uintsPerDestRow; - } - - iDestination->UnlockHeap(); - - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYUVPlanarFbsBitmapConverter::DoProcess16MU16MANoScale() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVTYUVPlanarFbsBitmapConverter::SetSourceL( const TDesC8& aSourceData ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVTYUVPlanarFbsBitmapConverter::SetSourceL( - const TDesC8& aSourceData ) - { - // make sure dimension and buffer size match - if( aSourceData.Length() != - ( ( SourceSize().iWidth * SourceSize().iHeight * 12 ) / 8 ) ) - { - User::Leave( KErrArgument ); - } - SetYUVPtrs( aSourceData ); - } - -// ============================ CVTIYUVFbsBitmapConverter =============================== - -// ----------------------------------------------------------------------------- -// CVTIYUVFbsBitmapConverter::NewL( const TSize& aSourceSize, -// const CFbsBitmap& aDestinationBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVTIYUVFbsBitmapConverter* CVTIYUVFbsBitmapConverter::NewL( - const TSize& aSourceSize, - const CFbsBitmap& aDestinationBitmap ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTIYUVFbsBitmapConverter::NewL() >>"), RThread().Id().operator TUint())); - CVTIYUVFbsBitmapConverter* self = NewL( - aSourceSize, aDestinationBitmap.Handle() ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTIYUVFbsBitmapConverter::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTIYUVFbsBitmapConverter::NewL( const TSize& aSourceSize, -// TInt aBitmapHandle ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVTIYUVFbsBitmapConverter* CVTIYUVFbsBitmapConverter::NewL( - const TSize& aSourceSize, - TInt aBitmapHandle ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTIYUVFbsBitmapConverter::NewL() >>"), RThread().Id().operator TUint())); - CVTIYUVFbsBitmapConverter* self = new (ELeave) - CVTIYUVFbsBitmapConverter( aSourceSize ); - CleanupStack::PushL( self ); - self->ConstructL( aBitmapHandle ); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTIYUVFbsBitmapConverter::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTIYUVFbsBitmapConverter::SetYUVPtrs( const TDesC8& aSourceData ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTIYUVFbsBitmapConverter::SetYUVPtrs( const TDesC8& aSourceData ) - { - TInt ySize = SourceSize().iWidth * SourceSize().iHeight; - TInt ySizeDiv4 = ( ySize >> 2 ); - iY = aSourceData.Mid( 0, ySize ).Ptr(); - iU = aSourceData.Mid( ySize, ySizeDiv4 ).Ptr(); - iV = aSourceData.Mid( ySize + ySizeDiv4, ySizeDiv4 ).Ptr(); - } - -// ----------------------------------------------------------------------------- -// CVTIYUVFbsBitmapConverter::CVTIYUVFbsBitmapConverter( const TSize& -// aSourceSize ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CVTIYUVFbsBitmapConverter::CVTIYUVFbsBitmapConverter( const TSize& aSourceSize ) -: CVTYUVPlanarFbsBitmapConverter( aSourceSize ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTIYUVFbsBitmapConverter::CVTIYUVFbsBitmapConverter() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTIYUVFbsBitmapConverter::CVTIYUVFbsBitmapConverter() <<"), RThread().Id().operator TUint())); - } - -// ============================ CVTYV12FbsBitmapConverter =============================== - -// ----------------------------------------------------------------------------- -// CVTYV12FbsBitmapConverter::NewL( const TSize& aSourceSize, -// const CFbsBitmap& aDestinationBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVTYV12FbsBitmapConverter* CVTYV12FbsBitmapConverter::NewL( - const TSize& aSourceSize, - const CFbsBitmap& aDestinationBitmap ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYV12FbsBitmapConverter::NewL() >>"), RThread().Id().operator TUint())); - CVTYV12FbsBitmapConverter* self = NewL( - aSourceSize, aDestinationBitmap.Handle() ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYV12FbsBitmapConverter::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTYV12FbsBitmapConverter::NewL( const TSize& aSourceSize, -// TInt aBitmapHandle ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVTYV12FbsBitmapConverter* CVTYV12FbsBitmapConverter::NewL( - const TSize& aSourceSize, - TInt aBitmapHandle ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYV12FbsBitmapConverter::NewL() >>"), RThread().Id().operator TUint())); - CVTYV12FbsBitmapConverter* self = new (ELeave) - CVTYV12FbsBitmapConverter( aSourceSize ); - CleanupStack::PushL( self ); - self->ConstructL( aBitmapHandle ); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYV12FbsBitmapConverter::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTYV12FbsBitmapConverter::SetYUVPtrs( const TDesC8& aSourceData ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVTYV12FbsBitmapConverter::SetYUVPtrs( const TDesC8& aSourceData ) - { - TInt ySize = SourceSize().iWidth * SourceSize().iHeight; - TInt ySizeDiv4 = ( ySize >> 2 ); - iY = aSourceData.Mid( 0, ySize ).Ptr(); - iV = aSourceData.Mid( ySize, ySizeDiv4 ).Ptr(); - iU = aSourceData.Mid( ySize + ySizeDiv4, ySizeDiv4 ).Ptr(); - } - -// ----------------------------------------------------------------------------- -// CVTYV12FbsBitmapConverter::CVTYV12FbsBitmapConverter( -// const TSize& aSourceSize ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CVTYV12FbsBitmapConverter::CVTYV12FbsBitmapConverter( const TSize& aSourceSize ) -: CVTYUVPlanarFbsBitmapConverter( aSourceSize ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYV12FbsBitmapConverter::CVTYV12FbsBitmapConverter() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVTYV12FbsBitmapConverter::CVTYV12FbsBitmapConverter() <<"), RThread().Id().operator TUint())); - } - -// ============================ CVSFbsBitmapIYUVConverter =============================== - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::CVSFbsBitmapIYUVConverter() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CVSFbsBitmapIYUVConverter::CVSFbsBitmapIYUVConverter() - { - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::NewL( const CFbsBitmap& aBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVSFbsBitmapIYUVConverter* CVSFbsBitmapIYUVConverter::NewL( - const CFbsBitmap& aBitmap ) - { - CVSFbsBitmapIYUVConverter* self = new (ELeave) CVSFbsBitmapIYUVConverter(); - CleanupStack::PushL( self ); - self->ConstructL( aBitmap ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::~CVSFbsBitmapIYUVConverter() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CVSFbsBitmapIYUVConverter::~CVSFbsBitmapIYUVConverter() - { - delete iSource; - delete iYUVData; - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::SetSourceL( const CFbsBitmap& aBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVSFbsBitmapIYUVConverter::SetSourceL( const CFbsBitmap& aBitmap ) - { - ReConstructL( aBitmap ); - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::ProcessL() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CVSFbsBitmapIYUVConverter::ProcessL() - { - switch( iSource->DisplayMode() ) - { - case EColor4K: - DoProcess( VSReadColor4K ); - break; - - case EColor64K: - DoProcess( VSReadColor64K ); - break; - - case EColor16M: - DoProcess( VSReadColor16M ); - break; - - case EColor16MU: - DoProcess( VSReadColor16MU ); - break; - - case EColor16MA: - DoProcess( VSReadColor16MA ); - break; - - case EColor16MAP: - DoProcess( VSReadColor16MAP ); - break; - - default: - User::Leave( KErrNotSupported ); - break; - }; - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::YUVData() const -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TPtrC8 CVSFbsBitmapIYUVConverter::YUVData() const - { - return *iYUVData; - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::ConstructL( const CFbsBitmap& aBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVSFbsBitmapIYUVConverter::ConstructL( const CFbsBitmap& aBitmap ) - { - iSource = new (ELeave) CFbsBitmap(); - ReConstructL( aBitmap ); - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::ReConstructL( const CFbsBitmap& aBitmap ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVSFbsBitmapIYUVConverter::ReConstructL( const CFbsBitmap& aBitmap ) - { - User::LeaveIfError( iSource->Duplicate( aBitmap.Handle() ) ); - - // make sure that source bitmap's displaymode is supported - if( ( iSource->DisplayMode() != EColor4K ) && - ( iSource->DisplayMode() != EColor64K ) && - ( iSource->DisplayMode() != EColor16M ) && - ( iSource->DisplayMode() != EColor16MU ) && - ( iSource->DisplayMode() != EColor16MA ) && - ( iSource->DisplayMode() != EColor16MAP ) ) - { - User::Leave( KErrNotSupported ); - } - - if( !iYUVData || !( iSize == iSource->SizeInPixels() ) ) - { - iSize = iSource->SizeInPixels(); - delete iYUVData; iYUVData = 0; - TInt ySize = iSize.iWidth * iSize.iHeight; - iYUVData = HBufC8::NewMaxL( ySize + ( ySize >> 1 ) ); - iY.Set( iYUVData->Des().Mid( 0, ySize ) ); - iU.Set( iYUVData->Des().Mid( ySize, ySize >> 2 ) ); - iV.Set( iYUVData->Des().Mid( ySize + ( ySize >> 2 ), ySize >> 2 ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVSFbsBitmapIYUVConverter::DoProcess( TVSColorReadFunc aReadFunction ) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CVSFbsBitmapIYUVConverter::DoProcess( TVSColorReadFunc aReadFunction ) - { - TUint8* pY = const_cast( iY.Ptr() ); - TUint8* pU = const_cast( iU.Ptr() ); - TUint8* pV = const_cast( iV.Ptr() ); - TVSYCrCb yuv1, yuv2; - - iSource->LockHeap(); - TAny* s = iSource->DataAddress(); - for( TInt h = 0; h < iSize.iHeight; h++ ) - { - if( h&1 ) - { - // Note! width must be even divisible by 2 - for( TInt w = 0; w < iSize.iWidth >> 1; w++ ) - { - *pY++ = RGBtoYCbCr( &yuv1, aReadFunction( s ) ); - *pY++ = RGBtoYCbCr( &yuv2, aReadFunction( s ) ); - *pU++ = static_cast( AVG( yuv1.iCb, yuv2.iCb ) ); - *pV++ = static_cast( AVG( yuv1.iCr, yuv2.iCr ) ); - } - } - else - { - // Note! width must be even divisible by 2 - for( TInt w = 0; w < iSize.iWidth >> 1; w++ ) - { - *pY++ = RGBtoYCbCr( &yuv1, aReadFunction( s ) ); - *pY++ = RGBtoYCbCr( &yuv2, aReadFunction( s ) ); - *pU++ = static_cast( - AVG( *pU, AVG( yuv1.iCb, yuv2.iCb ) ) ); - *pV++ = static_cast( - AVG( *pV, AVG( yuv1.iCr, yuv2.iCr ) ) ); - } - // if even row -> decrease pU and pV, we will calculate average for - // those on odd rows - pU -= ( iSize.iWidth >> 1 ); - pV -= ( iSize.iWidth >> 1 ); - } - } - iSource->UnlockHeap(); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageIYUV.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageIYUV.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,294 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageIYUV.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::NewL( TInt aBitmapHandle ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageIYUV* CVtImageIYUV::NewL( const TSize& aSize ) - { - CVtImageIYUV* self = new ( ELeave ) CVtImageIYUV( aSize ); - CleanupStack::PushL( self ); - self->ConstructL( 0 ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::NewL( const TSize& aSize, TDisplayMode aDisplayMode, -// const TDesC8& aImage ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageIYUV* CVtImageIYUV::NewL( - const TSize& aSize, - const TDesC8& aImage ) - { - CVtImageIYUV* self = new ( ELeave ) CVtImageIYUV( aSize ); - CleanupStack::PushL( self ); - self->ConstructL( &aImage ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::NewL( const TSize& aSize, TDisplayMode aDisplayMode, -// TPtr8& aImage ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageIYUV* CVtImageIYUV::NewL( - const TSize& aSize, - TPtr8& aImage ) - { - CVtImageIYUV* self = new ( ELeave ) CVtImageIYUV( aSize ); - CleanupStack::PushL( self ); - self->ValidateSizeL( aSize ); - self->SetImageL( aImage ); // No constructor call! - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::~CVtImageIYUV() -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageIYUV::~CVtImageIYUV() - { - delete iImage; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::SetImageL( const TDesC8& aImage ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageIYUV::SetImageL( const TDesC8& aImage ) - { - CheckDescriptorSizeL( aImage ); - if( !iImage ) - { - ConstructL( &aImage ); - } - else - { - *iImage = aImage; - } - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::SetImageL( TPtr8& aImage ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageIYUV::SetImageL( TPtr8& aImage ) - { - CheckDescriptorSizeL( aImage ); - delete iImage; iImage = 0; - iPtrImage.Set( aImage ); - SetYUVPointers(); - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::Image() const -// ----------------------------------------------------------------------------- -EXPORT_C TPtrC8 CVtImageIYUV::Image() const - { - return iPtrImage; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::Y() const -// ----------------------------------------------------------------------------- -EXPORT_C TUint8* CVtImageIYUV::Y() const - { - return iY; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::U() const -// ----------------------------------------------------------------------------- -EXPORT_C TUint8* CVtImageIYUV::U() const - { - return iU; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::V() const -// ----------------------------------------------------------------------------- -EXPORT_C TUint8* CVtImageIYUV::V() const - { - return iV; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::UVPlaneWidth() const -// ----------------------------------------------------------------------------- -EXPORT_C TInt CVtImageIYUV::UVPlaneWidth() const - { - return iSize.iWidth / 2; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::UVPlaneHeight() const -// ----------------------------------------------------------------------------- -EXPORT_C TInt CVtImageIYUV::UVPlaneHeight() const - { - return iSize.iHeight / 2; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::NeedHeapLock() const -// ----------------------------------------------------------------------------- -TBool CVtImageIYUV::NeedHeapLock() const - { - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::DisplayMode() const -// ----------------------------------------------------------------------------- -CVtImage::TVtDisplayMode CVtImageIYUV::DisplayMode() const - { - return CVtImage::EVtColorIYUV; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::Size() const -// ----------------------------------------------------------------------------- -TSize CVtImageIYUV::Size() const - { - return iSize; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::BytesPerRow() const -// ----------------------------------------------------------------------------- -TInt CVtImageIYUV::BytesPerRow() const - { - return iSize.iWidth; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::DataAddress() const -// ----------------------------------------------------------------------------- -TUint32* CVtImageIYUV::DataAddress() const - { - return reinterpret_cast< TUint32* >( iY ); - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::LineAddress( TInt aLine ) const -// ----------------------------------------------------------------------------- -TUint32* CVtImageIYUV::LineAddress( TInt aLine ) const - { - if( aLine < 0 ) - { - aLine = 0; - } - else if( aLine > Size().iHeight - 1 ) - { - aLine = Size().iHeight - 1; - } - return reinterpret_cast< TUint32* >( - reinterpret_cast< TUint8* >( DataAddress() ) + BytesPerRow() * aLine ); - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::ImageSize() const -// ----------------------------------------------------------------------------- -TInt CVtImageIYUV::ImageSize() const - { - return UVPlaneWidth() * UVPlaneHeight() * 2 + BytesPerRow() * iSize.iHeight; - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::CVtImageIYUV( const TSize& aSize ) -// ----------------------------------------------------------------------------- -CVtImageIYUV::CVtImageIYUV( const TSize& aSize ) -: CVtImage( CVtImage::EVtImageIYUV ), iSize( aSize ), iPtrImage( 0, 0 ) - { - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::ConstructL( const TDesC8* aImage ) -// ----------------------------------------------------------------------------- -void CVtImageIYUV::ConstructL( const TDesC8* aImage ) - { - ValidateSizeL( iSize ); - if( !aImage ) - { - // empty image - TInt size( ImageSize() ); - iImage = HBufC8::NewL( size ); - iImage->Des().SetLength( size ); - } - else - { - // prefilled image - CheckDescriptorSizeL( *aImage ); - iImage = aImage->AllocL(); - } - // set ptr descriptor - iPtrImage.Set( iImage->Des() ); - // set YUV pointers - SetYUVPointers(); - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::ValidateSizeL( const TSize& aSize ) -// ----------------------------------------------------------------------------- -void CVtImageIYUV::ValidateSizeL( const TSize& aSize ) - { - if( ( aSize.iWidth & 1 ) || ( aSize.iHeight & 1 ) ) - { - User::Leave( KErrNotSupported ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::CheckDescriptorSizeL( const TDesC8& aImage ) -// ----------------------------------------------------------------------------- -void CVtImageIYUV::CheckDescriptorSizeL( const TDesC8& aImage ) - { - if( aImage.Size() != ImageSize() ) - { - User::Leave( KErrArgument ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageIYUV::SetYUVPointers() -// ----------------------------------------------------------------------------- -void CVtImageIYUV::SetYUVPointers() - { - iY = const_cast< TUint8* >( iPtrImage.Ptr() ); - iU = iY + BytesPerRow() * iSize.iHeight; - iV = iU + UVPlaneWidth() * UVPlaneHeight(); - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageRotator.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageRotator.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,244 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "cvtimagerotator.h" -#include "CVtImageRotatorImplMirrorFlip.h" -#include "CVtImageRotatorImplClockwise.h" - -// CONSTANTS - -_LIT( KModuleName, "CVtImageRotator" ); - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtImageRotator::NewL( MVtImageRotatorObserver& aObserver, -// TPriority aPriority ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageRotator* CVtImageRotator::NewL( - MVtImageRotatorObserver& aObserver, - TPriority aPriority) - { - CVtImageRotator* self = new ( ELeave ) CVtImageRotator( aObserver, aPriority ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::~CVtImageRotator() -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageRotator::~CVtImageRotator() - { - Cancel(); - delete iAsyncCallBack; - delete iHeapLock; - delete iRotatorImpl; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::ScaleL( const CVtImage& aSource, -// CVtImage& aTarget, const TRotationAngle& aAngle ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageRotator::RotateL( const CVtImage& aSource, - CVtImage& aTarget, const TRotationAngle& aAngle ) - { - if ( !IsActive() ) - { - CreateRotatorL( aAngle ); - iRotatorImpl->SetSourceTargetL( aSource, aTarget ); - iCancelled = EFalse; - Activate(); - iAsyncCallBack->CallBack(); - } - else - { - User::Panic( KModuleName(), EBusy ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::Rotate -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageRotator::Rotate( - const CVtImage& aSource, - CVtImage& aTarget, const TRotationAngle& aAngle ) - { - TRAPD( result, RotateL( aSource, aTarget, aAngle ) ); - if ( result != KErrNone ) - { - Activate(); - Signal( result ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::CVtImageRotator( MVtImageRotatorObserver& aObserver, -// TPriority aPriority ) -// ----------------------------------------------------------------------------- -CVtImageRotator::CVtImageRotator( MVtImageRotatorObserver& aObserver, - TPriority aPriority ) -: CActive( aPriority ), iObserver( aObserver ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::ConstructL() -// ----------------------------------------------------------------------------- -void CVtImageRotator::ConstructL() - { - iHeapLock = new ( ELeave ) CFbsBitmap(); - iHeapLock->Create( TSize( 1, 1 ), EColor256 ); - iAsyncCallBack = new ( ELeave ) - CAsyncCallBack( TCallBack( StaticRotate, this ), Priority() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::CreateRotatorL( const TRotationAngle& aAngle ) -// ----------------------------------------------------------------------------- -void CVtImageRotator::CreateRotatorL( const TRotationAngle& aAngle ) - { - if( iRotatorImpl ) - { - if( iRotatorImpl->SupportsRotationAngle( aAngle ) ) - { - iRotatorImpl->SetAngle( aAngle ); - return; - } - delete iRotatorImpl; - iRotatorImpl = 0; - } - - switch( aAngle ) - { - case E90DegreesClockwise: - case E270DegreesClockwise: - iRotatorImpl = - new ( ELeave ) CVtImageRotatorImplClockwise( aAngle ); - break; - - case EMirrorHorizontalAxis: - case EFlipVerticalAxis: - case E180DegreesClockwise: - iRotatorImpl = - new ( ELeave ) CVtImageRotatorImplMirrorFlip( aAngle ); - break; - - default: - User::Leave( KErrNotSupported ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::Activate -// ----------------------------------------------------------------------------- -void CVtImageRotator::Activate() - { - iStatus = KRequestPending; - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::Signal( TInt aError ) -// ----------------------------------------------------------------------------- -void CVtImageRotator::Signal( TInt aError ) - { - TRequestStatus* pStatus = &iStatus; - User::RequestComplete( pStatus, aError ); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::RunL() -// ----------------------------------------------------------------------------- -void CVtImageRotator::RunL() - { - iObserver.RotationFinished( iStatus.Int() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::DoCancel() -// ----------------------------------------------------------------------------- -void CVtImageRotator::DoCancel() - { - if ( iStatus == KRequestPending ) - { - iCancelled = ETrue; - Signal( KErrCancel ); - iObserver.RotationFinished( KErrCancel ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::StaticRotate() -// ----------------------------------------------------------------------------- -TInt CVtImageRotator::StaticRotate( TAny* aPtr ) - { - CVtImageRotator* self = reinterpret_cast< CVtImageRotator* >( aPtr ); - self->DoRotate(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotator::DoRotate -// ----------------------------------------------------------------------------- -void CVtImageRotator::DoRotate() - { - if ( !iCancelled ) - { - TBool more; - TBool needsLock = iRotatorImpl->NeedHeapLock(); - if( needsLock ) - { - iHeapLock->LockHeap( ETrue ); - } - TInt result = iRotatorImpl->Rotate( more ); - if( needsLock ) - { - iHeapLock->UnlockHeap( ETrue ); - } - if( !more || ( result != KErrNone ) ) - { - Signal( result ); - } - else - { - iAsyncCallBack->CallBack(); - } - } - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageRotatorImpl.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageRotatorImpl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageRotatorImpl.h" -#include "cvtimage.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ========================== CVtImageRotatorImpl ============================== - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImpl::SetSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImpl::SetSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - iSource = iTarget = 0; - ValidateSourceTargetL( aSource, aTarget ); - iSource = &aSource; - iTarget = &aTarget; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImpl::NeedHeapLock() const -// ----------------------------------------------------------------------------- -TBool CVtImageRotatorImpl::NeedHeapLock() const - { - return iSource->NeedHeapLock() || iTarget->NeedHeapLock(); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImpl::SetAngle( -// const CVtImageRotator::TRotationAngle& aAngle ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImpl::SetAngle( const CVtImageRotator::TRotationAngle& aAngle ) - { - iAngle = aAngle; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImpl::CVtImageRotatorImpl( -// const CVtImageRotator::TRotationAngle& aAngle ) -// ----------------------------------------------------------------------------- -CVtImageRotatorImpl::CVtImageRotatorImpl( const CVtImageRotator::TRotationAngle& aAngle ) -: iAngle( aAngle ) - { - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageRotatorImplClockwise.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageRotatorImplClockwise.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,372 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageRotatorImplClockwise.h" -#include "cvtimage.h" -#include "CVtImageIYUV.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS =============================== - -// ======================= CVtImageRotatorImplClockwise ======================= - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplClockwise::CVtImageRotatorImplClockwise( -// const CVtImageRotator::TRotationAngle& aAngle ) -// ----------------------------------------------------------------------------- -CVtImageRotatorImplClockwise::CVtImageRotatorImplClockwise( - const CVtImageRotator::TRotationAngle& aAngle ) : CVtImageRotatorImpl( aAngle ) - { - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplClockwise::Rotate( TBool& aContinue ) -// ----------------------------------------------------------------------------- -TInt CVtImageRotatorImplClockwise::Rotate( TBool& aContinue ) - { - __IF_DEBUG( Print( _L( "ImageRotator [%d]: CVtImageRotatorImplClockwise::Rotate() >>" ), RThread().Id().operator TUint() ) ); - - TInt result( KErrNone ); - - aContinue = EFalse; - - DoRotate(); - - __IF_DEBUG( Print( _L( "ImageRotator [%d]: CVtImageRotatorImplClockwise::Rotate() <<" ), RThread().Id().operator TUint() ) ); - - return result; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplClockwise::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplClockwise::ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - // SourceWidth == TargetHeight && SourceHeight == TargetWidth - if( ( aSource.Size().iWidth != aTarget.Size().iHeight ) || - ( aSource.Size().iHeight != aTarget.Size().iWidth ) ) - { - User::Leave( KErrNotSupported ); - } - - // Displaymodes must match - if( aSource.DisplayMode() != aTarget.DisplayMode() ) - { - User::Leave( KErrNotSupported ); - } - - // Check that displaymode is one of the supported - switch( aSource.DisplayMode() ) - { - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - case CVtImage::EVtColor16M: - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - case CVtImage::EVtColorIYUV: - break; - - default: - User::Leave( KErrNotSupported ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplClockwise::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -TBool CVtImageRotatorImplClockwise::SupportsRotationAngle( - const CVtImageRotator::TRotationAngle& aAngle ) - { - TBool result( EFalse ); - - if( ( aAngle == CVtImageRotator::E90DegreesClockwise ) || - ( aAngle == CVtImageRotator::E270DegreesClockwise ) ) - { - result = ETrue; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// void CVtImageRotatorImplClockwise::DoRotate() -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplClockwise::DoRotate() - { - TInt bytesPerRow( iSource->BytesPerRow() ); - - TInt height( iSource->Size().iHeight ); - - TInt width( iSource->Size().iWidth ); - - TInt targetWidth( iTarget->Size().iWidth ); - - TInt targetHeight( iTarget->Size().iHeight ); - - TInt targetBytesPerRow( iTarget->BytesPerRow() ); - - switch( iSource->DisplayMode() ) - { - // DisplayMode: 4K and 64K - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - { - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TInt offsetPerRow( -2 ); - - if( iAngle == CVtImageRotator::E90DegreesClockwise ) - { - d += targetBytesPerRow - 2; - - if( targetWidth & 1 ) - { - d -= 2; - } - } - else - { - d += targetBytesPerRow * ( targetHeight - 1 ); - - targetBytesPerRow = -targetBytesPerRow; - - offsetPerRow = 2; - } - - targetBytesPerRow /= 2; // in loop we need 16-bit precalculated - - for( TInt y = height - 1; y >= 0; y-- ) - { - register const TUint16* tempS = reinterpret_cast< const TUint16* >( s ); - - register TUint16* tempD = reinterpret_cast< TUint16* >( d ); - - for( register TInt x = width - 1; x >= 0; x-- ) - { - *tempD = *tempS++; - tempD += targetBytesPerRow; - } - - s += bytesPerRow; - d += offsetPerRow; - } - } - break; - - // DisplayMode: 16M - case CVtImage::EVtColor16M: - { - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TInt offsetPerRow( -3 ); - - if( iAngle == CVtImageRotator::E90DegreesClockwise ) - { - d += targetWidth * 3 - 3; - } - else - { - d += targetBytesPerRow * ( targetHeight - 1 ); - - targetBytesPerRow = -targetBytesPerRow; - - offsetPerRow = 3; - } - - for( TInt y = height - 1; y >= 0; y-- ) - { - register const TUint8* tempS = s; - - register TUint8* tempD = d; - - for( register TInt x = width - 1; x >= 0; x-- ) - { - tempD[ 0 ] = *tempS++; - tempD[ 1 ] = *tempS++; - tempD[ 2 ] = *tempS++; - tempD += targetBytesPerRow; - } - - s += bytesPerRow; - d += offsetPerRow; - } - } - break; - - // DisplayMode: 16MU and 16MA - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - { - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TInt offsetPerRow( -4 ); - - if( iAngle == CVtImageRotator::E90DegreesClockwise ) - { - d += targetBytesPerRow - 4; - } - else - { - d += targetBytesPerRow * ( targetHeight - 1 ); - - targetBytesPerRow = -targetBytesPerRow; - - offsetPerRow = 4; - } - - targetBytesPerRow /= 4; // in loop we need 32-bit precalculated - - for( TInt y = height - 1; y >= 0; y-- ) - { - register const TUint32* tempS = reinterpret_cast< const TUint32* >( s ); - - register TUint32* tempD = reinterpret_cast< TUint32* >( d ); - - for( register TInt x = width - 1; x >= 0; x-- ) - { - *tempD = *tempS++; - tempD += targetBytesPerRow; - } - - s += bytesPerRow; - d += offsetPerRow; - } - } - break; - - // DisplayMode: IYUV - case CVtImage::EVtColorIYUV: - { - const CVtImageIYUV* src = reinterpret_cast< const CVtImageIYUV* >( iSource ); - CVtImageIYUV* trg = reinterpret_cast< CVtImageIYUV* >( iTarget ); - RotatePlane - ( - src->Y(), - trg->Y(), - width, - height, - bytesPerRow, - targetHeight, - targetBytesPerRow - ); - - RotatePlane - ( - src->U(), - trg->U(), - src->UVPlaneWidth(), - src->UVPlaneHeight(), - src->UVPlaneWidth(), - trg->UVPlaneHeight(), - trg->UVPlaneWidth() - ); - - RotatePlane - ( - src->V(), - trg->V(), - src->UVPlaneWidth(), - src->UVPlaneHeight(), - src->UVPlaneWidth(), - trg->UVPlaneHeight(), - trg->UVPlaneWidth() - ); - - } - break; - - default: - break; - - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplClockwise::RotatePlane( -// const TUint8* aSource, -// TUint8* aTarget, -// TInt aSourceWidth, -// TInt aSourceHeight, -// TInt aSourceBytesPerRow, -// TInt aTargetHeight, -// TInt aTargetBytesPerRow ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplClockwise::RotatePlane( - const TUint8* aSource, - TUint8* aTarget, - TInt aSourceWidth, - TInt aSourceHeight, - TInt aSourceBytesPerRow, - TInt aTargetHeight, - TInt aTargetBytesPerRow ) - { - TInt offsetPerRow( -1 ); - - if( iAngle == CVtImageRotator::E90DegreesClockwise ) - { - aTarget += aTargetBytesPerRow - 1; - } - else - { - aTarget += aTargetBytesPerRow * ( aTargetHeight - 1 ); - aTargetBytesPerRow = -aTargetBytesPerRow; - offsetPerRow = -offsetPerRow; - } - - for( TInt y = aSourceHeight - 1; y >= 0; y-- ) - { - register const TUint8* tempS = aSource; - register TUint8* tempD = aTarget; - for( register TInt x = aSourceWidth - 1; x >= 0; x-- ) - { - *tempD = *tempS++; - tempD += aTargetBytesPerRow; - } - - aSource += aSourceBytesPerRow; - aTarget += offsetPerRow; - } - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageRotatorImplMirrorFlip.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageRotatorImplMirrorFlip.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,589 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageRotatorImplMirrorFlip.h" -#include "cvtimage.h" -#include "CVtImageIYUV.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS =============================== - -// ======================= CVtImageRotatorImplMirrorFlip ======================= - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::CVtImageRotatorImplMirrorFlip( -// const CVtImageRotator::TRotationAngle& aAngle ) -// ----------------------------------------------------------------------------- -CVtImageRotatorImplMirrorFlip::CVtImageRotatorImplMirrorFlip( - const CVtImageRotator::TRotationAngle& aAngle ) : CVtImageRotatorImpl( aAngle ) - { - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::Rotate( TBool& aContinue ) -// ----------------------------------------------------------------------------- -TInt CVtImageRotatorImplMirrorFlip::Rotate( TBool& aContinue ) - { - __IF_DEBUG( Print( _L( "ImageRotator [%d]: CVtImageRotatorImplMirrorFlip::Rotate() >>" ), RThread().Id().operator TUint() ) ); - - TInt result( KErrNone ); - - aContinue = EFalse; - - TBool isSameBitmap( iSource->DataAddress() == iTarget->DataAddress() ); - - if( iAngle == CVtImageRotator::EFlipVerticalAxis ) - { - // Are source and target referencing same bitmap? - if( isSameBitmap ) - { - // YES: Flip inside bitmap - Flip( *iTarget ); - } - else - { - // NO: Use flipping from source to target - Flip(); - } - } - else if( iAngle == CVtImageRotator::EMirrorHorizontalAxis ) - { - // Are source and target referencing same bitmap? - if( isSameBitmap ) - { - // YES: Mirror inside bitmap - Mirror( *iTarget ); - } - else - { - // NO: Mirror from source to target - Mirror(); - } - } - else if( iAngle == CVtImageRotator::E180DegreesClockwise ) - { - // Are source and target referencing same bitmap? - if( isSameBitmap ) - { - // YES: Mirror inside bitmap - Mirror( *iTarget ); - } - else - { - // NO: Mirror from source to target - Mirror(); - } - Flip( *iTarget ); - } - - __IF_DEBUG( Print( _L( "ImageRotator [%d]: CVtImageRotatorImplMirrorFlip::Rotate() <<" ), RThread().Id().operator TUint() ) ); - - return result; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - - - // Sizes must match - if( aSource.Size() != aTarget.Size() ) - { - User::Leave( KErrNotSupported ); - } - - // Displaymodes must match - if( aSource.DisplayMode() != aTarget.DisplayMode() ) - { - User::Leave( KErrNotSupported ); - } - - // Check that displaymode is one of the supported - switch( aSource.DisplayMode() ) - { - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - case CVtImage::EVtColor16M: - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - case CVtImage::EVtColorIYUV: - break; - - default: - User::Leave( KErrNotSupported ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -TBool CVtImageRotatorImplMirrorFlip::SupportsRotationAngle( - const CVtImageRotator::TRotationAngle& aAngle ) - { - TBool result( EFalse ); - - if( ( aAngle == CVtImageRotator::EMirrorHorizontalAxis ) || - ( aAngle == CVtImageRotator::EFlipVerticalAxis ) || - ( aAngle == CVtImageRotator::E180DegreesClockwise ) ) - { - result = ETrue; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::Mirror() -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::Mirror() - { - TInt bytesPerRow( iSource->BytesPerRow() ); - - TInt height( iSource->Size().iHeight ); - - TInt width( iSource->Size().iWidth ); - - switch( iSource->DisplayMode() ) - { - // DisplayMode: 4K and 64K - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - { - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - d += bytesPerRow; - - if( width & 1 ) - { - d -= 2; - } - - for( TInt y = height - 1; y >= 0; y-- ) - { - register const TUint16* tempS = reinterpret_cast< const TUint16* >( s ); - - register TUint16* tempD = reinterpret_cast< TUint16* >( d ); - - for( register TInt x = width - 1; x >= 0; x-- ) - { - *--tempD = *tempS++; - } - - s += bytesPerRow; - - d += bytesPerRow; - } - } - break; - - // DisplayMode: 16M - case CVtImage::EVtColor16M: - { - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - d += width * 3; - - for( TInt y = height - 1; y >= 0; y-- ) - { - const TUint8* tempS = s; - - TUint8* tempD = d - 3; - - for( TInt x = width - 1; x >= 0; x-- ) - { - tempD[ 0 ] = *tempS++; - tempD[ 1 ] = *tempS++; - tempD[ 2 ] = *tempS++; - tempD -= 3; - } - - s += bytesPerRow; - - d += bytesPerRow; - } - } - break; - - // DisplayMode: 16MU and 16MA - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - { - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - d += bytesPerRow; - - for( TInt y = height - 1; y >= 0; y-- ) - { - register const TUint32* tempS = reinterpret_cast< const TUint32* >( s ); - register TUint32* tempD = reinterpret_cast< TUint32* >( d ); - - for( TInt x = width - 1; x >= 0; x-- ) - { - *--tempD = *tempS++; - } - - s += bytesPerRow; - - d += bytesPerRow; - } - } - break; - - // IYUV - case CVtImage::EVtColorIYUV: - MirrorIYUV( reinterpret_cast< const CVtImageIYUV& >( *iSource ), reinterpret_cast< CVtImageIYUV& >( *iTarget ) ); - break; - - default: - break; - - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::Mirror( CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::Mirror( CVtImage& aTarget ) - { - TInt bytesPerRow( aTarget.BytesPerRow() ); - - TInt height( aTarget.Size().iHeight ); - - TInt width( aTarget.Size().iWidth ); - - switch( aTarget.DisplayMode() ) - { - // DisplayMode: 4K and 64K - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - { - TUint8* d = reinterpret_cast< TUint8* >( aTarget.DataAddress() ); - - TUint8* s = reinterpret_cast< TUint8* >( d ); - - d += bytesPerRow; - - if( width & 1 ) - { - d -= 2; - } - - for( TInt y = height - 1; y >= 0; y-- ) - { - register TUint16* tempS = reinterpret_cast< TUint16* >( s ); - - register TUint16* tempD = reinterpret_cast< TUint16* >( d ); - - for( register TInt x = width/2 - 1; x >= 0; x-- ) - { - TUint16 p = *tempS; - *tempS++ = *--tempD; - *tempD = p; - } - - s += bytesPerRow; - - d += bytesPerRow; - } - } - break; - - // DisplayMode: 16M - case CVtImage::EVtColor16M: - { - TUint8* d = reinterpret_cast< TUint8* >( aTarget.DataAddress() ); - - TUint8* s = reinterpret_cast< TUint8* >( d ); - - d += width * 3; - - for( TInt y = height - 1; y >= 0; y-- ) - { - TUint8* tempS = s; - - TUint8* tempD = d - 3; - - for( TInt x = width/2 - 1; x >= 0; x-- ) - { - TUint8 s = *tempS; - TUint8 t = *tempD; - *tempD++ = s; - *tempS++ = t; - - s = *tempS; - t = *tempD; - *tempD++ = s; - *tempS++ = t; - - s = *tempS; - t = *tempD; - *tempD++ = s; - *tempS++ = t; - - tempD -= 6; - } - - s += bytesPerRow; - - d += bytesPerRow; - } - } - break; - - // DisplayMode: 16MU and 16MA - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - { - TUint8* d = reinterpret_cast< TUint8* >( aTarget.DataAddress() ); - - TUint8* s = reinterpret_cast< TUint8* >( d ); - - d += bytesPerRow; - - for( TInt y = height - 1; y >= 0; y-- ) - { - register TUint32* tempS = reinterpret_cast< TUint32* >( s ); - register TUint32* tempD = reinterpret_cast< TUint32* >( d ); - - for( TInt x = width/2 - 1; x >= 0; x-- ) - { - TUint32 p = *tempS; - *tempS++ = *--tempD; - *tempD = p; - } - - s += bytesPerRow; - - d += bytesPerRow; - } - } - break; - - // IYUV - case CVtImage::EVtColorIYUV: - MirrorIYUV( reinterpret_cast< const CVtImageIYUV& >( aTarget ), reinterpret_cast< CVtImageIYUV& >( aTarget ) ); - break; - - default: - break; - - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::MirrorIYUV( const CVtImageIYUV& aSource, -// CVtImageIYUV& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::MirrorIYUV( const CVtImageIYUV& aSource, - CVtImageIYUV& aTarget ) - { - MirrorPlane( aSource.Y(), aTarget.Y(), aSource.Size().iWidth, - aSource.Size().iHeight, aSource.BytesPerRow() ); - MirrorPlane( aSource.U(), aTarget.U(), aSource.UVPlaneWidth(), - aSource.UVPlaneHeight(), aSource.UVPlaneWidth() ); - MirrorPlane( aSource.V(), aTarget.V(), aSource.UVPlaneWidth(), - aSource.UVPlaneHeight(), aSource.UVPlaneWidth() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::MirrorPlane( TUint8* aSource, TUint8* aTarget, -// TInt aWidth, TInt aHeight, TInt aBytesPerRow ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::MirrorPlane( TUint8* aSource, - TUint8* aTarget, TInt aWidth, TInt aHeight, TInt aBytesPerRow ) - { - if( aSource != aTarget ) - { - aTarget += aBytesPerRow; - for( TInt y = aHeight - 1; y >= 0; y-- ) - { - register const TUint8* tempS = aSource; - register TUint8* tempD = aTarget; - for( TInt x = aWidth - 1; x >= 0; x-- ) - { - *--tempD = *tempS++; - } - aSource += aBytesPerRow; - aTarget += aBytesPerRow; - } - } - else - { - aTarget += aBytesPerRow; - for( TInt y = aHeight - 1; y >= 0; y-- ) - { - register TUint8* tempS = aSource; - register TUint8* tempD = aTarget; - for( TInt x = aWidth/2 - 1; x >= 0; x-- ) - { - TUint8 p = *tempS; - *tempS++ = *--tempD; - *tempD = p; - } - aSource += aBytesPerRow; - aTarget += aBytesPerRow; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::Flip() -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::Flip() - { - if( iSource->DisplayMode() == CVtImage::EVtColorIYUV ) - { - FlipIYUV - ( - reinterpret_cast< const CVtImageIYUV& >( *iSource ), - reinterpret_cast< CVtImageIYUV& >( *iTarget ) - ); - } - else - { - TInt bytesPerRow( iSource->BytesPerRow() ); - - TInt height( iSource->Size().iHeight ); - - const TUint8* s = reinterpret_cast< const TUint8* >( iSource->DataAddress() ); - - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - d += ( height - 1 ) * bytesPerRow; - - for( TInt y = height - 1; y >= 0; y-- ) - { - Mem::Copy( d, s, bytesPerRow ); - s += bytesPerRow; - d -= bytesPerRow; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::FlipIYUV() -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::FlipIYUV - ( - const CVtImageIYUV& aSource, - CVtImageIYUV& aTarget - ) - { - FlipPlane( aSource.Y(), aTarget.Y(), aSource.Size().iHeight, aSource.BytesPerRow() ); - FlipPlane( aSource.U(), aTarget.U(), aSource.UVPlaneHeight(), aSource.UVPlaneWidth() ); - FlipPlane( aSource.V(), aTarget.V(), aSource.UVPlaneHeight(), aSource.UVPlaneWidth() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::FlipPlane() -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::FlipPlane - ( - TUint8* aSource, - TUint8* aTarget, - TInt aHeight, - TInt aBytesPerRow - ) - { - TBool doSwap = ( aSource == aTarget ); - - aTarget += ( aHeight - 1 ) * aBytesPerRow; - - if( doSwap ) - { - for( TInt y = aHeight / 2 - 1; y >= 0; y-- ) - { - Mem::Swap( aTarget, aSource, aBytesPerRow ); - aSource += aBytesPerRow; - aTarget -= aBytesPerRow; - } - } - else - { - for( TInt y = aHeight - 1; y >= 0; y-- ) - { - Mem::Copy( aTarget, aSource, aBytesPerRow ); - aSource += aBytesPerRow; - aTarget -= aBytesPerRow; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtImageRotatorImplMirrorFlip::Flip( CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageRotatorImplMirrorFlip::Flip( CVtImage& aTarget ) - { - if( iSource->DisplayMode() == CVtImage::EVtColorIYUV ) - { - FlipIYUV - ( - reinterpret_cast< const CVtImageIYUV& >( aTarget ), - reinterpret_cast< CVtImageIYUV& >( aTarget ) - ); - } - else - { - TInt bytesPerRow( aTarget.BytesPerRow() ); - - TInt height( aTarget.Size().iHeight ); - - TUint8* s = reinterpret_cast< TUint8* >( aTarget.DataAddress() ); - - TUint8* d = s; - - d += ( height - 1 ) * bytesPerRow; - - for( TInt y = height / 2 - 1; y >= 0; y-- ) - { - Mem::Swap( d, s, bytesPerRow ); - s += bytesPerRow; - d -= bytesPerRow; - } - } - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageScaler.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageScaler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageScaler.h" -#include "CVtImageScalerImpl.h" -#include "CVtImageScalerImplNearest.h" -#include "CVtImageScalerImplWeightedAverage.h" -#include "CVtImageScalerImplBilinear.h" - -// CONSTANTS - -_LIT( KModuleName, "CVtImageScaler" ); - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtImageScaler::NewL( MVtImageScalerObserver& aObserver, TQuality aQuality, -// TPriority aPriority ) -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageScaler* CVtImageScaler::NewL( - MVtImageScalerObserver& aObserver, - TQuality aQuality, - TPriority aPriority ) - { - CVtImageScaler* self = new ( ELeave ) CVtImageScaler( aObserver, aPriority ); - CleanupStack::PushL( self ); - self->ConstructL( aQuality ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::~CVtImageScaler() -// ----------------------------------------------------------------------------- -EXPORT_C CVtImageScaler::~CVtImageScaler() - { - Cancel(); - delete iAsyncCallBack; - delete iHeapLock; - delete iScalerImpl; - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::SetQualityL( TQuality aQuality ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageScaler::SetQualityL( TQuality aQuality ) - { - delete iScalerImpl; - iScalerImpl = 0; - - switch( aQuality ) - { - case ENearest: - iScalerImpl = new ( ELeave ) CVtImageScalerImplNearest(); - break; - - case EWeightedAverage: - iScalerImpl = new ( ELeave ) CVtImageScalerImplWeightedAverage(); - break; - - case EBilinear: - iScalerImpl = new ( ELeave ) CVtImageScalerImplBilinear(); - break; - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::ScaleL( const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageScaler::ScaleL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - if( !IsActive() ) - { - if( !iScalerImpl ) - { - User::Leave( KErrNotReady ); - } - iScalerImpl->SetSourceTargetL( aSource, aTarget ); - iCancelled = EFalse; - Activate(); - iAsyncCallBack->CallBack(); - } - else - { - User::Panic( KModuleName(), EBusy ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::Scale( const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageScaler::Scale( - const CVtImage& aSource, - CVtImage& aTarget ) - { - TRAPD( result, ScaleL( aSource, aTarget ) ); - if( result != KErrNone ) - { - Activate(); - Signal( result ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::ScaleNowL( const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -EXPORT_C void CVtImageScaler::ScaleNowL( - const CVtImage& aSource, CVtImage& aTarget ) - { - if( !iScalerImpl ) - { - User::Leave( KErrNotReady ); - } - - iScalerImpl->SetSourceTargetL( aSource, aTarget ); - - TInt result; - TBool more; - TBool needsLock( iScalerImpl->NeedHeapLock() ); - do - { - - if ( needsLock ) - { - iHeapLock->LockHeap( ETrue ); - } - - result = iScalerImpl->Scale( more ); - - if ( needsLock ) - { - iHeapLock->UnlockHeap( ETrue ); - } - - } while ( more && ( result == KErrNone ) ); - - User::LeaveIfError( result ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::CVtImageScaler() -// ----------------------------------------------------------------------------- -CVtImageScaler::CVtImageScaler( MVtImageScalerObserver& aObserver, TPriority aPriority ) -: CActive( aPriority ), iObserver( aObserver ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::ConstructL( TQuality aQuality ) -// ----------------------------------------------------------------------------- -void CVtImageScaler::ConstructL( TQuality aQuality ) - { - SetQualityL( aQuality ); - iHeapLock = new ( ELeave ) CFbsBitmap(); - iHeapLock->Create( TSize( 1, 1 ), EColor256 ); - iAsyncCallBack = new ( ELeave ) - CAsyncCallBack( TCallBack( StaticScale, this ), Priority() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::Activate -// ----------------------------------------------------------------------------- -void CVtImageScaler::Activate() - { - iStatus = KRequestPending; - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::Signal( TInt aError ) -// ----------------------------------------------------------------------------- -void CVtImageScaler::Signal( TInt aError ) - { - TRequestStatus* pStatus = &iStatus; - User::RequestComplete( pStatus, aError ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::RunL() -// ----------------------------------------------------------------------------- -void CVtImageScaler::RunL() - { - iObserver.ScalingFinished( iStatus.Int() ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::DoCancel() -// ----------------------------------------------------------------------------- -void CVtImageScaler::DoCancel() - { - if ( iStatus == KRequestPending ) - { - iCancelled = ETrue; - Signal( KErrCancel ); - iObserver.ScalingFinished( KErrCancel ); - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::StaticScale() -// ----------------------------------------------------------------------------- -TInt CVtImageScaler::StaticScale( TAny* aPtr ) - { - CVtImageScaler* self = reinterpret_cast< CVtImageScaler* >( aPtr ); - self->DoScale(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtImageScaler::DoScale -// ----------------------------------------------------------------------------- -void CVtImageScaler::DoScale() - { - if ( !iCancelled ) - { - TBool more; - TBool needsLock = iScalerImpl->NeedHeapLock(); - if ( needsLock ) - { - iHeapLock->LockHeap( ETrue ); - } - TInt result = iScalerImpl->Scale( more ); - if ( needsLock ) - { - iHeapLock->UnlockHeap( ETrue ); - } - if ( !more || ( result != KErrNone ) ) - { - Signal( result ); - } - else - { - iAsyncCallBack->CallBack(); - } - } - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageScalerImpl.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageScalerImpl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageScalerImpl.h" -#include "cvtimage.h" -#include "CVtImageBitmap.h" - -// MACROS - -#ifdef _DEBUG - #include - #define PRINT RDebug::Print - #define _IFDBG(a) a -#else - #define PRINT - #define _IFDBG(a) -#endif - - -// ============================ MEMBER FUNCTIONS =============================== - -// ========================== CVtImageScalerImpl ============================== - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::CVtImageScalerImpl() -// ----------------------------------------------------------------------------- -CVtImageScalerImpl::CVtImageScalerImpl() : CActive( EPriorityStandard ) - { - _IFDBG(PRINT( _L("ScaleImpl.Ctor<") )); - CActiveScheduler::Add( this ); - _IFDBG(PRINT( _L("ScaleImpl.Ctor>") )); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::~CVtImageScalerImpl() -// ----------------------------------------------------------------------------- -CVtImageScalerImpl::~CVtImageScalerImpl() - { - _IFDBG(PRINT( _L("ScaleImpl.~<") )); - Cancel(); - delete iScaler; - _IFDBG(PRINT( _L("ScaleImpl.~>") )); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::SetSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImpl::SetSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - iSource = iTarget = 0; - LeaveIfNotValidSizeL( aSource.Size(), TSize( 2, 2 ) ); - LeaveIfNotValidSizeL( aTarget.Size() ); - ValidateSourceTargetL( aSource, aTarget ); - iSource = &aSource; - iTarget = &aTarget; - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::NeedHeapLock() const -// ----------------------------------------------------------------------------- -TBool CVtImageScalerImpl::NeedHeapLock() const - { - return iSource->NeedHeapLock() || iTarget->NeedHeapLock(); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::ScaleWithBitmapScalerL() -// ----------------------------------------------------------------------------- -void CVtImageScalerImpl::ScaleWithBitmapScalerL( - const CBitmapScaler::TQualityAlgorithm -#ifdef _DEBUG - aQuality -#endif // _DEBUG - ) - { - _IFDBG(PRINT( _L("ScaleImpl.ScaleWithBitmapScalerL<") )); - if ( IsActive() || iActiveSchedulerWait.IsStarted() ) - { - _IFDBG(PRINT( _L("ScaleImpl.ScaleWithBitmapScalerL LEAVE KErrInUse>") )); - User::Leave( KErrInUse ); - } - _IFDBG(PRINT( _L("ScaleImpl::ScaleWithBitmapScalerL aQuality = %d"), aQuality )); - CFbsBitmap& source( static_cast< CVtImageBitmap* >( - const_cast< CVtImage* >( iSource ) )->Bitmap() ); - CFbsBitmap& target( static_cast< CVtImageBitmap* >( iTarget )->Bitmap() ); - iScaler = CBitmapScaler::NewL(); - SetActive(); - iScaler->Scale( &iStatus, source, target, EFalse ); - iActiveSchedulerWait.Start(); - delete iScaler; iScaler = NULL; - _IFDBG(PRINT( _L("ScaleImpl.ScaleWithBitmapScalerL iStatus.Int() = %d"), iStatus.Int() )); - User::LeaveIfError( iStatus.Int() ); - _IFDBG(PRINT( _L("ScaleImpl.ScaleWithBitmapScalerL>") )); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::LeaveIfNotValidSizeL( -// const TSize& aSize, const TSize aMinSize ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImpl::LeaveIfNotValidSizeL( - const TSize& aSize, - const TSize aMinSize ) - { - _IFDBG(PRINT( _L("ScaleImpl.LeaveIfNotValidSizeL<") )); - if( ( aSize.iWidth < aMinSize.iWidth ) || - ( aSize.iHeight < aMinSize.iHeight ) ) - { - User::Leave( KErrNotSupported ); - } - _IFDBG(PRINT( _L("ScaleImpl.LeaveIfNotValidSizeL>") )); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::RunL() -// ----------------------------------------------------------------------------- -void CVtImageScalerImpl::RunL() - { - _IFDBG(PRINT( _L("CVtImageScalerImpl.RunL") )); - iActiveSchedulerWait.AsyncStop(); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImpl::RunL() -// ----------------------------------------------------------------------------- -void CVtImageScalerImpl::DoCancel() - { - _IFDBG(PRINT( _L("CVtImageScalerImpl.DoCancel") )); - iScaler->Cancel(); - iActiveSchedulerWait.AsyncStop(); - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageScalerImplBilinear.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageScalerImplBilinear.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1462 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageScalerImplBilinear.h" -#include "cvtimage.h" -#include "CVtImageScalerMacros.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -const TUint32 KDecimalBits = 14; // 18.14 pseudo real format, - // this must be lower than 15! - -// ============================ MEMBER FUNCTIONS =============================== - -// ======================= CVtImageScalerImplBilinear ========================== - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale( TBool& aContinue ) -// ----------------------------------------------------------------------------- -TInt CVtImageScalerImplBilinear::Scale( TBool& aContinue ) - { - TInt result( KErrNone ); - - aContinue = EFalse; - - // this implementation does not support different display modes for source - // and target - if( iSource->DisplayMode() != iTarget->DisplayMode() ) - { - return KErrNotSupported; - } - - // if sizes are same, just copy the data - if( iSource->Size() == iTarget->Size() ) - { - Mem::Copy( - iTarget->DataAddress(), - iSource->DataAddress(), - iTarget->BytesPerRow() * iTarget->Size().iHeight ); - } - else if ( ( iSource->Size().iHeight * 2 == iTarget->Size().iHeight ) - && ( iSource->Size().iWidth * 2 == iTarget->Size().iWidth ) ) - { - switch( iSource->DisplayMode() ) - { - case CVtImage::EVtColor4K: - Scale2x4K64K( 0xeee ); // 0000ggggbbbbrrrr -> - break; // mask = %0000111011101110 = 0xeee - - case CVtImage::EVtColor64K: - Scale2x4K64K( 0xf7de ); // bbbbbggggggrrrrr -> - break; // mask = %1111011111011110 = 0xf7de - - case CVtImage::EVtColor16M: - Scale2x16M(); - break; - - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - Scale2x16MU16MA(); - break; - - default: - if ( iSource->Type() == CVtImage::EVtImageBitmap && - iTarget->Type() == CVtImage::EVtImageBitmap ) - { - TRAPD( error, - ScaleWithBitmapScalerL( - CBitmapScaler::EMaximumQuality ) ); - result = error; - } - else - { - result = KErrNotSupported; - } - } - } - else - { - Initialize(); - - switch( iSource->DisplayMode() ) - { - case CVtImage::EVtColor4K: - Scale4K(); - break; - - case CVtImage::EVtColor64K: - Scale64K(); - break; - - case CVtImage::EVtColor16M: - Scale16M(); - break; - - case CVtImage::EVtColor16MU: - Scale16MU(); - break; - - case CVtImage::EVtColor16MA: - Scale16MA(); - break; - - default: - if ( iSource->Type() == CVtImage::EVtImageBitmap && - iTarget->Type() == CVtImage::EVtImageBitmap ) - { - TRAPD( error, - ScaleWithBitmapScalerL( - CBitmapScaler::EMaximumQuality ) ); - result = error; - } - else - { - result = KErrNotSupported; - } - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - if( aSource.DisplayMode() != aTarget.DisplayMode() ) - { - User::Leave( KErrNotSupported ); - } - - switch( aSource.DisplayMode() ) - { - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - case CVtImage::EVtColor16M: - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - break; - - default: - // Scaling for bitmaps is supported for other display modes - if ( !( aSource.Type() == CVtImage::EVtImageBitmap && - aTarget.Type() == CVtImage::EVtImageBitmap ) ) - { - User::Leave( KErrNotSupported ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Initialize() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Initialize() - { - iU = ( 1 << KDecimalBits ) * iSource->Size().iWidth / - iTarget->Size().iWidth; - iV = ( 1 << KDecimalBits ) * iSource->Size().iHeight / - iTarget->Size().iHeight; - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale4K() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale4K() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale4K() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint16* t = reinterpret_cast< TUint16* >( iTarget->DataAddress() ); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - TUint32 b11( 0 ); - TUint32 g11( 0 ); - TUint32 r11( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint16* s = reinterpret_cast< TUint16* >( - iSource->LineAddress( sourceY >> KDecimalBits ) ); - TUint16* snext = reinterpret_cast< TUint16* >( - iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ) ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - TUint32 x0prev( TUint32( -1 ) ); - - TInt x; - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch - // pixels from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - b00 = UNPACK_4K_BLUE( p0 ); - g00 = UNPACK_4K_GREEN( p0 ); - r00 = UNPACK_4K_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - b01 = UNPACK_4K_BLUE( p0 ); - g01 = UNPACK_4K_GREEN( p0 ); - r01 = UNPACK_4K_RED( p0 ); - - p0 = *( snext + x0 ); - - b10 = UNPACK_4K_BLUE( p0 ); - g10 = UNPACK_4K_GREEN( p0 ); - r10 = UNPACK_4K_RED( p0 ); - - p0 = *( snext + x0 + 1 ); - - b11 = UNPACK_4K_BLUE( p0 ); - g11 = UNPACK_4K_GREEN( p0 ); - r11 = UNPACK_4K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t = 0; - - *t++ = PACK_4K_BGR( - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - // last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - b01 = b00 = UNPACK_4K_BLUE( p0 ); - g01 = g00 = UNPACK_4K_GREEN( p0 ); - r01 = r00 = UNPACK_4K_RED( p0 ); - - p0 = *( snext + x0 ); - b11 = b10 = UNPACK_4K_BLUE( p0 ); - g11 = g10 = UNPACK_4K_GREEN( p0 ); - r11 = r10 = UNPACK_4K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_4K_BGR( - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - // if width is not even -> then we need to skip one additional byte - if( width & 1 ) - { - t++; - } - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale4K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale64K() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale64K() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale64K() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint16* t = reinterpret_cast< TUint16* >( iTarget->DataAddress() ); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - TUint32 b11( 0 ); - TUint32 g11( 0 ); - TUint32 r11( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint16* s = reinterpret_cast< TUint16* >( - iSource->LineAddress( sourceY >> KDecimalBits ) ); - TUint16* snext = reinterpret_cast< TUint16* >( - iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ) ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - TUint32 x0prev( TUint32( -1 ) ); - - TInt x; - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - b00 = UNPACK_64K_BLUE( p0 ); - g00 = UNPACK_64K_GREEN( p0 ); - r00 = UNPACK_64K_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - b01 = UNPACK_64K_BLUE( p0 ); - g01 = UNPACK_64K_GREEN( p0 ); - r01 = UNPACK_64K_RED( p0 ); - - p0 = *( snext + x0 ); - - b10 = UNPACK_64K_BLUE( p0 ); - g10 = UNPACK_64K_GREEN( p0 ); - r10 = UNPACK_64K_RED( p0 ); - - p0 = *( snext + x0 + 1 ); - - b11 = UNPACK_64K_BLUE( p0 ); - g11 = UNPACK_64K_GREEN( p0 ); - r11 = UNPACK_64K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_64K_BGR( - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - // last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - b01 = b00 = UNPACK_64K_BLUE( p0 ); - g01 = g00 = UNPACK_64K_GREEN( p0 ); - r01 = r00 = UNPACK_64K_RED( p0 ); - - p0 = *( snext + x0 ); - b11 = b10 = UNPACK_64K_BLUE( p0 ); - g11 = g10 = UNPACK_64K_GREEN( p0 ); - r11 = r10 = UNPACK_64K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_64K_BGR( - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - // if width is not even -> then we need to skip one additional byte - if( width & 1 ) - { - t++; - } - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale64K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale16M() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale16M() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale16M() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint32 t_pitch = iTarget->BytesPerRow(); - - TUint8* t = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - TUint32 b11( 0 ); - TUint32 g11( 0 ); - TUint32 r11( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint8* s = reinterpret_cast< TUint8* >( - iSource->LineAddress( sourceY >> KDecimalBits ) ); - TUint8* snext = reinterpret_cast< TUint8* >( - iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ) ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - TUint32 x0prev( TUint32( -1 ) ); - - TInt x; - - TUint8* d = t; - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = ( sourceX >> KDecimalBits ) * 3; - - if( x0 != x0prev ) - { - TUint8* tempSrc = s + x0; - - b00 = *tempSrc++; - g00 = *tempSrc++; - r00 = *tempSrc++; - - b01 = *tempSrc++; - g01 = *tempSrc++; - r01 = *tempSrc++; - - tempSrc = snext + x0; - - b10 = *tempSrc++; - g10 = *tempSrc++; - r10 = *tempSrc++; - - b11 = *tempSrc++; - g11 = *tempSrc++; - r11 = *tempSrc++; - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *d++ = static_cast< TUint8 >( bres >> KDecimalBits ); - *d++ = static_cast< TUint8 >( gres >> KDecimalBits ); - *d++ = static_cast< TUint8 >( rres >> KDecimalBits ); - - sourceX += iU; - } - - // last columns - for( ; x < width; x++ ) - { - TUint32 x0 = ( sourceX >> KDecimalBits ) * 3; - - if( x0 != x0prev ) - { - TUint8* tempSrc = s + x0; - - b01 = b00 = *tempSrc++; - g01 = g00 = *tempSrc++; - r01 = r00 = *tempSrc++; - - tempSrc = snext + x0; - - b11 = b10 = *tempSrc++; - g11 = g10 = *tempSrc++; - r11 = r10 = *tempSrc++; - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *d++ = static_cast< TUint8 >( bres >> KDecimalBits ); - *d++ = static_cast< TUint8 >( gres >> KDecimalBits ); - *d++ = static_cast< TUint8 >( rres >> KDecimalBits ); - - sourceX += iU; - } - - t += t_pitch; - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale16M() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale16MU() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale16MU() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale16MU() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint32* t = iTarget->DataAddress(); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - TUint32 b11( 0 ); - TUint32 g11( 0 ); - TUint32 r11( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint32* s = iSource->LineAddress( sourceY >> KDecimalBits ); - TUint32* snext = iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - TUint32 x0prev( TUint32( -1 ) ); - - TInt x; - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - b00 = UNPACK_16MU_BLUE( p0 ); - g00 = UNPACK_16MU_GREEN( p0 ); - r00 = UNPACK_16MU_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - b01 = UNPACK_16MU_BLUE( p0 ); - g01 = UNPACK_16MU_GREEN( p0 ); - r01 = UNPACK_16MU_RED( p0 ); - - p0 = *( snext + x0 ); - - b10 = UNPACK_16MU_BLUE( p0 ); - g10 = UNPACK_16MU_GREEN( p0 ); - r10 = UNPACK_16MU_RED( p0 ); - - p0 = *( snext + x0 + 1 ); - - b11 = UNPACK_16MU_BLUE( p0 ); - g11 = UNPACK_16MU_GREEN( p0 ); - r11 = UNPACK_16MU_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_16MU_BGR( - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - // last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - b01 = b00 = UNPACK_16MU_BLUE( p0 ); - g01 = g00 = UNPACK_16MU_GREEN( p0 ); - r01 = r00 = UNPACK_16MU_RED( p0 ); - - p0 = *( snext + x0 ); - b11 = b10 = UNPACK_16MU_BLUE( p0 ); - g11 = g10 = UNPACK_16MU_GREEN( p0 ); - r11 = r10 = UNPACK_16MU_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_16MU_BGR( - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale16MU() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale16MA() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale16MA() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale16MA() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint32* t = iTarget->DataAddress(); - - TUint32 sourceY( 0 ); - - TUint32 a00( 0 ); - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 a01( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 a10( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - TUint32 a11( 0 ); - TUint32 b11( 0 ); - TUint32 g11( 0 ); - TUint32 r11( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint32* s = iSource->LineAddress( sourceY >> KDecimalBits ); - TUint32* snext = iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - TUint32 x0prev( TUint32( -1 ) ); - - TInt x; - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - a00 = UNPACK_16MA_ALPHA( p0 ); - b00 = UNPACK_16MA_BLUE( p0 ); - g00 = UNPACK_16MA_GREEN( p0 ); - r00 = UNPACK_16MA_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - a01 = UNPACK_16MA_ALPHA( p0 ); - b01 = UNPACK_16MA_BLUE( p0 ); - g01 = UNPACK_16MA_GREEN( p0 ); - r01 = UNPACK_16MA_RED( p0 ); - - p0 = *( snext + x0 ); - - a10 = UNPACK_16MA_ALPHA( p0 ); - b10 = UNPACK_16MA_BLUE( p0 ); - g10 = UNPACK_16MA_GREEN( p0 ); - r10 = UNPACK_16MA_RED( p0 ); - - p0 = *( snext + x0 + 1 ); - - a11 = UNPACK_16MA_ALPHA( p0 ); - b11 = UNPACK_16MA_BLUE( p0 ); - g11 = UNPACK_16MA_GREEN( p0 ); - r11 = UNPACK_16MA_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 ares = w1 * a00 + w2 * a01 + w3 * a10 + w4 * a11; - ares += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_16MA_ABGR( - ares >> KDecimalBits, - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - // last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - // If the source is still same then we don't have to fetch pixels - // from memory and unpack them again - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - a01 = a00 = UNPACK_16MA_ALPHA( p0 ); - b01 = b00 = UNPACK_16MA_BLUE( p0 ); - g01 = g00 = UNPACK_16MA_GREEN( p0 ); - r01 = r00 = UNPACK_16MA_RED( p0 ); - - p0 = *( snext + x0 ); - a11 = a10 = UNPACK_16MA_ALPHA( p0 ); - b11 = b10 = UNPACK_16MA_BLUE( p0 ); - g11 = g10 = UNPACK_16MA_GREEN( p0 ); - r11 = r10 = UNPACK_16MA_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 w1 = ( du * dv ) >> KDecimalBits; - TUint32 w2 = ( invdu * dv ) >> KDecimalBits; - TUint32 w3 = ( du * invdv ) >> KDecimalBits; - TUint32 w4 = ( invdu * invdv ) >> KDecimalBits; - - TUint32 ares = w1 * a00 + w2 * a01 + w3 * a10 + w4 * a11; - ares += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 bres = w1 * b00 + w2 * b01 + w3 * b10 + w4 * b11; - bres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 gres = w1 * g00 + w2 * g01 + w3 * g10 + w4 * g11; - gres += ( 1 << ( KDecimalBits - 1 ) ); - TUint32 rres = w1 * r00 + w2 * r01 + w3 * r10 + w4 * r11; - rres += ( 1 << ( KDecimalBits - 1 ) ); - - *t++ = PACK_16MA_ABGR( - ares >> KDecimalBits, - bres >> KDecimalBits, - gres >> KDecimalBits, - rres >> KDecimalBits ); - - sourceX += iU; - } - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale16MA() <<" ), RThread().Id().operator TUint() ) ); - } - - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale2x4K64K( TUint32 aMask ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale2x4K64K( TUint32 aMask ) - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale2x4K64K() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint32* s = iSource->DataAddress(); - TUint32* d = iTarget->DataAddress(); - TInt y; - - // first average source rows - for( y = 0; y < sheight; y++ ) - { - TUint32* s1 = s; - TUint32* d1 = d; - - TUint32 p = *s1++; // 2 pixels - TUint32 p1 = p & 0xffff; - TUint32 p2 = ( p >> 16 ) & 0xffff; - TInt x; - - for( x = 0; x < swidth/2 - 1; x++ ) - { - TUint32 p1a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - *d1++ = p1 | ( p1a << 16 ); - - p = *s1++; // 2 pixels - - p1 = p & 0xffff; - TUint32 p2a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - *d1++ = p2 | ( p2a << 16 ); - - p2 = ( p >> 16 ) & 0xffff; - } - - TUint32 p1a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - *d1++ = p1 | ( p1a << 16 ); - - if( swidth & 1 ) - { - p = *s1; // 2 pixels - p1 = p & 0xffff; - TUint32 p2a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - *d1++ = p2 | ( p2a << 16 ); - - p = *--s1; // 2 pixels - p2 = ( p >> 16 ) & 0xffff; - *d1++ = p1 | ( p1 << 16 ); - } - else - { - p = *--s1; // 2 pixels - p2 = ( p >> 16 ) & 0xffff; - *d1++ = p2 | ( p2 << 16 ); - } - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - s = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( s ) + spitch ); - } - - // then average rows between - d = iTarget->DataAddress(); - - TUint32 mask32bit = aMask | ( aMask << 16 ); - - for( y = 0; y < sheight - 1; y++ ) - { - TUint32* d1 = reinterpret_cast< TUint32* >( d ); - TUint32* d2 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d1 ) + dpitch ); - TUint32* d3 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d2 ) + dpitch ); - - for( TInt x = 0; x < swidth; x++ ) - { - TUint32 p1 = *d1++; - TUint32 p2 = *d3++; - *d2++ = ( ( ( p1 ^ p2 ) & mask32bit ) >> 1 ) + ( p1 & p2 ); - } - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - } - - // last row is just copy of previous row, because we cannot calculate - // average - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ); - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale2x4K64K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale2x16M() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale2x16M() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale2x16M() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint8* s = reinterpret_cast< TUint8* >( iSource->DataAddress() ); - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TInt y; - - for( y = 0; y < sheight; y++ ) - { - TUint8* s2 = s; - TUint8* d1 = d; - - TUint32 g1 = 0; - TUint32 b1 = 0; - TUint32 r1 = 0; - - TUint32 g2 = 0; - TUint32 b2 = 0; - TUint32 r2 = 0; - - for( TInt x = 0; x < swidth - 1; x++ ) - { - g1 = *s2++; - b1 = *s2++; - r1 = *s2++; - - *d1++ = static_cast< TUint8 >( g1 ); - *d1++ = static_cast< TUint8 >( b1 ); - *d1++ = static_cast< TUint8 >( r1 ); - - g2 = s2[ 0 ]; - b2 = s2[ 1 ]; - r2 = s2[ 2 ]; - - *d1++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - } - - *d1++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - - *d1++ = static_cast< TUint8 >( g2 ); - *d1++ = static_cast< TUint8 >( b2 ); - *d1++ = static_cast< TUint8 >( r2 ); - - d += dpitch * 2; - s += spitch; - } - - // then average rows between - d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - for( y = 0; y < sheight - 1; y++ ) - { - TUint8* d1 = d; - TUint8* d2 = d1 + dpitch; - TUint8* d3 = d2 + dpitch; - - for( TInt x = 0; x < swidth; x++ ) - { - TUint32 g1 = *d1++; - TUint32 g2 = *d3++; - *d2++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - - TUint32 b1 = *d1++; - TUint32 b2 = *d3++; - *d2++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - - TUint32 r1 = *d1++; - TUint32 r2 = *d3++; - *d2++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - - g1 = *d1++; - g2 = *d3++; - *d2++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - - b1 = *d1++; - b2 = *d3++; - *d2++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - - r1 = *d1++; - r2 = *d3++; - *d2++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - } - - d += dpitch * 2; - } - - // last row is just copy of previous row, because we cannot calculate - // average - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ); - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale2x16M() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplBilinear::Scale2x16MU16MA() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplBilinear::Scale2x16MU16MA() - { - -#if defined ( __MARM_ARMI__ ) && defined ( NDEBUG ) && defined ( __USE_ASM_OPTS ) // From urel - - asm("stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, r11, r12, lr} "); - asm("ldr r11, .L1_671"); - asm("sub sp, sp, #24 "); - asm("mov r6, r0 "); - asm("ldr r1, [r6, #4] "); - asm("ldr r3, [r1, #0] "); - asm("add r0, sp, #16 "); - asm("ldr ip, [r3, #20] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("ldr r7, [sp, #20] "); - asm("ldr r1, [r6, #4] "); - asm("ldr r3, [r1, #0] "); - asm("add r0, sp, #8 "); - asm("ldr ip, [r3, #20] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("ldr r9, [sp, #8] "); - asm("str r9, [sp, #0] "); - asm("ldr r0, [r6, #4] "); - asm("ldr r3, [r0, #0] "); - asm("ldr ip, [r3, #24] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("str r0, [sp, #4] "); - asm("ldr r0, [r6, #8] "); - asm("ldr r3, [r0, #0] "); - asm("ldr ip, [r3, #24] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("mov sl, r0 "); - asm("ldr r0, [r6, #4] "); - asm("ldr r3, [r0, #0] "); - asm("ldr ip, [r3, #28] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("mov r4, r0 "); - asm("ldr r0, [r6, #8] "); - asm("ldr r3, [r0, #0] "); - asm("ldr ip, [r3, #28] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("mov r5, r0 "); - asm("subs r8, r7, #1 "); - asm("bmi .L1_654 "); - -asm(" .L1_656: "); - asm("mov ip, r5 "); - asm("mov lr, r4 "); - asm("ldr r1, [lr], #4 "); - asm("ldr r9, [sp, #0] "); - asm("cmp r9, #4"); - asm("bhi .L1_658_1"); - - // picture width lower or equal to 4 - asm("subs r0, r9, #2"); - asm("bmi .L1_658"); - - asm("ldr r9, [lr], #4 "); - asm("eor r2, r9, r1 "); - asm("and r2, r2, r11 "); - asm("and r3, r9, r1 "); - asm("add r3, r3, r2, lsr #1 "); - asm("str r1, [ip], #4"); - asm("str r3, [ip], #4"); - - asm("subs r0, r0, #1"); - asm("strmi r9, [ip], #4"); - asm("strmi r9, [ip], #4"); - asm("bmi .L1_658"); - - asm("ldr r1, [lr], #4 "); - asm("eor r2, r9, r1 "); - asm("and r2, r2, r11 "); - asm("and r3, r9, r1 "); - asm("add r3, r3, r2, lsr #1 "); - asm("str r9, [ip], #4"); - asm("str r3, [ip], #4"); - - asm("subs r0, r0, #1"); - asm("strmi r1, [ip], #4"); - asm("strmi r1, [ip], #4"); - asm("bmi .L1_658"); - - asm("ldr r9, [lr], #4 "); - asm("eor r2, r9, r1 "); - asm("and r2, r2, r11 "); - asm("and r3, r9, r1 "); - asm("add r3, r3, r2, lsr #1 "); - asm("str r1, [ip], #4"); - asm("str r3, [ip], #4"); - - asm("b .L1_658"); - - // picture width higher than 4 -asm(" .L1_658_1:"); - asm("mov r9, r9, lsr #1 "); - asm("subs r0, r9, #2 "); - asm("bmi .L1_658 "); - -asm(" .L1_660: "); - asm("ldr r9, [lr], #4 "); - asm("eor r2, r9, r1 "); - asm("and r2, r2, r11 "); - asm("and r3, r9, r1 "); - asm("add r3, r3, r2, lsr #1 "); - asm("stmia ip!, { r1, r3, r9 } "); - asm("sub r0, r0, #1 "); - asm("ldr r1, [lr], #4 "); - asm("eor r2, r9, r1 "); - asm("and r2, r2, r11 "); - asm("and r3, r9, r1 "); - asm("add r3, r3, r2, lsr #1 "); - asm("str r3, [ip], #4"); - asm("cmp r0,#0"); - asm("bge .L1_660 "); - -asm(" .L1_658: "); - asm("str r1, [ip], #4 "); - asm("str r1, [ip, #0] "); - asm("add r5, r5, sl, asl #1 "); - asm("ldr r9, [sp, #4] "); - asm("add r4, r4, r9 "); - asm("subs r8, r8, #1 "); - asm("bpl .L1_656 "); - -asm(" .L1_654: "); - asm("ldr r0, [r6, #8] "); - asm("ldr r3, [r0, #0] "); - asm("ldr ip, [r3, #28] "); - asm("mov lr, pc "); - asm("bx ip "); - asm("mov r5, r0 "); - asm("subs r8, r7, #2 "); - asm("bmi .L1_664 "); - -asm(" .L1_666: "); - asm("mov r7, r5 "); - asm("add r4, r5, sl "); - asm("add r6, r4, sl "); - asm("ldr r9, [sp, #0] "); - asm("subs lr, r9, #1 "); - asm("bmi .L1_668 "); - -asm(" .L1_670: "); - asm("ldr r1, [r7], #4 "); - asm("ldr r2, [r7], #4 "); - asm("ldr r0, [r6], #4 "); - asm("ldr ip, [r6], #4 "); - asm("eor r3, r1, r0 "); - asm("and r3, r3, r11 "); - asm("and r1, r1, r0 "); - asm("add r1, r1, r3, lsr #1 "); - asm("str r1, [r4], #4 "); - asm("eor r3, r2, ip "); - asm("and r3, r3, r11 "); - asm("and r2, r2, ip "); - asm("add r2, r2, r3, lsr #1 "); - asm("str r2, [r4], #4 "); - asm("subs lr, lr, #1 "); - asm("bpl .L1_670 "); - -asm(" .L1_668: "); - asm("add r5, r5, sl, asl #1 "); - asm("subs r8, r8, #1 "); - asm("bpl .L1_666 "); - -asm(" .L1_664: "); - asm("add r0, r5, sl "); - asm("mov r1, r5 "); - asm("mov r2, sl "); - asm("bl Copy__3MemPvPCvi "); - asm("add sp, sp, #24 "); - asm("ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, r11, r12, lr} "); - asm("bx lr "); - -asm(" .align 0 "); -asm(" .L1_671: "); -asm(" .word 0x00fefefe "); - -#else - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale2x16MU16MA() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint32 mask = 0xfefefefe; - TUint32* s = iSource->DataAddress(); - TUint32* d = iTarget->DataAddress(); - TInt y; - - TUint32 p1; - TUint32 p2; - TUint32 p3; - TUint32 p4; - - // first average source rows - for( y = sheight - 1; y >= 0; y-- ) - { - TUint32* s1 = s; - TUint32* d1 = d; - - TUint32 p2 = *s1++; - TUint32 p1 = 0; - - for( TInt x = swidth - 2; x >= 0; x-- ) - { - *d1++ = p2; - p1 = p2; - p2 = *s1++; - *d1++ = ( ( ( p1 ^ p2 ) & mask ) >> 1 ) + ( p1 & p2 ); - } - - *d1++ = p2; - *d1++ = p2; - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - s = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( s ) + spitch ); - } - - // then average rows between - d = iTarget->DataAddress(); - - for( y = sheight - 2; y >= 0; y-- ) - { - TUint32* d1 = reinterpret_cast< TUint32* >( d ); - TUint32* d2 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d1 ) + dpitch ); - TUint32* d3 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d2 ) + dpitch ); - - for( TInt x = swidth - 1; x >= 0; x-- ) - { - p1 = *d1++; - p2 = *d3++; - *d2++ = ( ( ( p1 ^ p2 ) & mask ) >> 1 ) + ( p1 & p2 ); - p3 = *d1++; - p4 = *d3++; - *d2++ = ( ( ( p3 ^ p4 ) & mask ) >> 1 ) + ( p3 & p4 ); - } - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - } - - // last row is just copy of previous row, because we cannot calculate - // average - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ); - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplBilinear::Scale2x16MU16MA() <<" ), RThread().Id().operator TUint() ) ); - -#endif - - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageScalerImplNearest.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageScalerImplNearest.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,522 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageScalerImplNearest.h" -#include "cvtimage.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -const TUint32 KDecimalBits = 16; // 16.16 pseudo real format - -// ============================ MEMBER FUNCTIONS =============================== - -// ======================= CVtImageScalerImplNearest ======================= - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale( TBool& aContinue ) -// ----------------------------------------------------------------------------- -TInt CVtImageScalerImplNearest::Scale( TBool& aContinue ) - { - TInt result( KErrNone ); - - aContinue = EFalse; - - // this implementation does not support different display modes for source - // and target - if( iSource->DisplayMode() != iTarget->DisplayMode() ) - { - return KErrNotSupported; - } - - // if sizes are same, just copy the data - if( iSource->Size() == iTarget->Size() ) - { - Mem::Copy( - iTarget->DataAddress(), - iSource->DataAddress(), - iTarget->BytesPerRow() * iTarget->Size().iHeight ); - } - else if( ( iSource->Size().iHeight * 2 == iTarget->Size().iHeight ) && - ( iSource->Size().iWidth * 2 == iTarget->Size().iWidth ) ) - { - switch( iSource->DisplayMode() ) - { - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - Scale2x4K64K(); - break; - - case CVtImage::EVtColor16M: - Scale2x16M(); - break; - - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - Scale2x16MU16MA(); - break; - - default: - if ( iSource->Type() == CVtImage::EVtImageBitmap && - iTarget->Type() == CVtImage::EVtImageBitmap ) - { - TRAPD( error, - ScaleWithBitmapScalerL( - CBitmapScaler::EMinimumQuality ) ); - result = error; - } - else - { - result = KErrNotSupported; - } - } - } - else - { - Initialize(); - - switch( iSource->DisplayMode() ) - { - case CVtImage::EVtColor4K: - Scale4K( - reinterpret_cast< const TUint16* >( - iSource->DataAddress() ), - iSource->BytesPerRow(), - reinterpret_cast< TUint16* >( iTarget->DataAddress() ), - iTarget->Size().iWidth, - iTarget->Size().iHeight, - iU, - iV ); - break; - - case CVtImage::EVtColor64K: - Scale64K( - reinterpret_cast< const TUint16* >( - iSource->DataAddress() ), - iSource->BytesPerRow(), - reinterpret_cast< TUint16* >( iTarget->DataAddress() ), - iTarget->Size().iWidth, - iTarget->Size().iHeight, - iU, - iV ); - break; - - case CVtImage::EVtColor16M: - Scale16M( - reinterpret_cast< const TUint8* >( - iSource->DataAddress() ), - iSource->BytesPerRow(), - reinterpret_cast< TUint8* >( iTarget->DataAddress() ), - iTarget->Size().iWidth, - iTarget->Size().iHeight, - iTarget->BytesPerRow(), - iU, - iV ); - break; - - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - Scale16MU16MA( - iSource->DataAddress(), - iSource->BytesPerRow(), - iTarget->DataAddress(), - iTarget->Size().iWidth, - iTarget->Size().iHeight, - iU, - iV ); - break; - - default: - if ( iSource->Type() == CVtImage::EVtImageBitmap && - iTarget->Type() == CVtImage::EVtImageBitmap ) - { - TRAPD( error, - ScaleWithBitmapScalerL( - CBitmapScaler::EMinimumQuality ) ); - result = error; - } - else - { - result = KErrNotSupported; - } - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - if( aSource.DisplayMode() != aTarget.DisplayMode() ) - { - User::Leave( KErrNotSupported ); - } - - switch( aSource.DisplayMode() ) - { - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - case CVtImage::EVtColor16M: - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - break; - - default: - // Scaling for bitmaps is supported for other display modes - if ( !( aSource.Type() == CVtImage::EVtImageBitmap && - aTarget.Type() == CVtImage::EVtImageBitmap ) ) - { - User::Leave( KErrNotSupported ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Initialize() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Initialize() - { - iU = ( 1 << KDecimalBits ) * iSource->Size().iWidth / - iTarget->Size().iWidth + 1; - iV = ( 1 << KDecimalBits ) * iSource->Size().iHeight / - iTarget->Size().iHeight + 1; - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale4K( -// const TUint16* aSrcPtr, TUint32 aSrcWidth, TUint16* aTrgPtr, -// TUint32 aTrgWidth, TUint32 aTrgHeight, TUint32 aDx, TUint32 aDy ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale4K( - const TUint16* aSrcPtr, - TUint32 aSrcWidth, - TUint16* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aDx, - TUint32 aDy ) - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale4K() >>" ), RThread().Id().operator TUint() ) ); - // scaling 4K and 64K is equal procedure - Scale64K( aSrcPtr, aSrcWidth, aTrgPtr, aTrgWidth, aTrgHeight, aDx, aDy ); - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale4K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale64K( -// const TUint16* aSrcPtr, TUint32 aSrcPitch, TUint16* aTrgPtr, -// TUint32 aTrgWidth, TUint32 aTrgHeight, TUint32 aDx, TUint32 aDy ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale64K( - const TUint16* aSrcPtr, - TUint32 aSrcPitch, - TUint16* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aDx, - TUint32 aDy ) - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale64K() >>" ), RThread().Id().operator TUint() ) ); - - TUint32 sy( 0 ); - - for( TUint32 y = 0; y < aTrgHeight; y++ ) - { - const TUint16* srow = - aSrcPtr + ( sy >> KDecimalBits ) * ( aSrcPitch >> 1 ); - - TUint32 sx( 0 ); - - TUint32 x( 0 ); - - // loop unrolled with 8 - for( ; x < ( aTrgWidth >> 3 ); x++ ) - { - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - } - - // handle remaining columns - for( x = 0; x < ( aTrgWidth & 7 ); x++ ) - { - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - } - - // if target width is not even aligning is needed - if( aTrgWidth & 1 ) - { - aTrgPtr++; - } - - sy += aDy; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale64K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale16M( -// const TUint8* aSrcPtr, TUint32 aSrcPitch, TUint8* aTrgPtr, -// TUint32 aTrgWidth, TUint32 aTrgHeight, TUint32 aTrgPitch, TUint32 aDx, TUint32 aDy ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale16M( - const TUint8* aSrcPtr, - TUint32 aSrcPitch, - TUint8* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aTrgPitch, - TUint32 aDx, - TUint32 aDy ) - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale16M() >>" ), RThread().Id().operator TUint() ) ); - - TUint32 sy( 0 ); - - for( TUint32 y = 0; y < aTrgHeight; y++ ) - { - const TUint8* s = aSrcPtr + ( sy >> KDecimalBits ) * aSrcPitch; - - TUint8* d = aTrgPtr; - - TUint32 sx( 0 ); - - TUint32 x( 0 ); - - for( ; x < aTrgWidth; x++ ) - { - const TUint8* tempSrc = s + ( sx >> KDecimalBits ) * 3; - *d++ = *tempSrc++; - *d++ = *tempSrc++; - *d++ = *tempSrc++; - sx += aDx; - } - - aTrgPtr += aTrgPitch; - - sy += aDy; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale16M() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale16MU16MA( const TUint32* aSrcPtr, -// TUint32 aSrcPitch, TUint32* aTrgPtr, TUint32 aTrgWidth, TUint32 aTrgHeight, -// TUint32 aDx, TUint32 aDy ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale16MU16MA( - const TUint32* aSrcPtr, - TUint32 aSrcPitch, - TUint32* aTrgPtr, - TUint32 aTrgWidth, - TUint32 aTrgHeight, - TUint32 aDx, - TUint32 aDy ) - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale16MU16MA() >>" ), RThread().Id().operator TUint() ) ); - - TUint32 sy( 0 ); - - for( TUint32 y = 0; y < aTrgHeight; y++ ) - { - const TUint32* srow = - aSrcPtr + ( sy >> KDecimalBits ) * ( aSrcPitch >> 2 ); - - TUint32 sx( 0 ); - - TUint32 x( 0 ); - - // loop unrolled with 8 - for( ; x < ( aTrgWidth >> 3 ); x++ ) - { - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - } - - // handle remaining columns - for( x = 0; x < ( aTrgWidth & 7 ); x++ ) - { - *aTrgPtr++ = srow[ sx >> KDecimalBits ]; - sx += aDx; - } - - sy += aDy; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale16MU16MA() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale2x4K64K() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale2x4K64K() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale2x4K64K() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint16* s = reinterpret_cast< TUint16* >( iSource->DataAddress() ); - TUint32* d = iTarget->DataAddress(); - - for( TInt y = 0; y < sheight; y++ ) - { - TUint16* s2 = s; - TUint32* d1 = d; - for( TInt x = 0; x < swidth; x++ ) - { - TUint32 p = *s2++; - p |= ( p << 16 ); - *d1++ = p; - } - d = reinterpret_cast< TUint32* >( - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ) ); - s = reinterpret_cast< TUint16* >( - reinterpret_cast< TUint8* >( s ) + spitch ); - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale2x4K64K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale2x16M() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale2x16M() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale2x16M() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint8* s = reinterpret_cast< TUint8* >( iSource->DataAddress() ); - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - for( TInt y = 0; y < sheight; y++ ) - { - TUint8* s2 = s; - TUint8* d1 = d; - for( TInt x = 0; x < swidth; x++ ) - { - TUint8 g = *s2++; - TUint8 b = *s2++; - TUint8 r = *s2++; - - *d1++ = g; - *d1++ = b; - *d1++ = r; - - *d1++ = g; - *d1++ = b; - *d1++ = r; - } - d = Mem::Copy( d + dpitch, d, dpitch ); - s += spitch; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale2x16M() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplNearest::Scale2x16MU16MA() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplNearest::Scale2x16MU16MA() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale2x16MU16MA() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint32* s = iSource->DataAddress(); - TUint32* d = iTarget->DataAddress(); - - for( TInt y = 0; y < sheight; y++ ) - { - TUint32* s2 = s; - TUint32* d1 = d; - for( TInt x = 0; x < swidth; x++ ) - { - TUint32 p = *s2++; - *d1++ = p; - *d1++ = p; - } - d = reinterpret_cast< TUint32* >( - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ) ); - s = reinterpret_cast< TUint32* >( - reinterpret_cast< TUint8* >( s ) + spitch ); - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplNearest::Scale2x16MU16MA() <<" ), RThread().Id().operator TUint() ) ); - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/CVtImageScalerImplWeightedAverage.cpp --- a/vtprotocolplugins/DisplaySink/src/CVtImageScalerImplWeightedAverage.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1183 +0,0 @@ -/* -* Copyright (c) 2004 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: Image Transforms subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVtImageScalerImplWeightedAverage.h" -#include "cvtimage.h" -#include "CVtImageScalerMacros.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -const TUint32 KDecimalBits = 16; // 16.16 pseudo real format - -// ============================ MEMBER FUNCTIONS =============================== - -// ======================= CVtImageScalerImplWeightedAverage =================== - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale( TBool& aContinue ) -// ----------------------------------------------------------------------------- -TInt CVtImageScalerImplWeightedAverage::Scale( TBool& aContinue ) - { - TInt result( KErrNone ); - - aContinue = EFalse; - - // this implementation does not support different display modes for source - // and target - if( iSource->DisplayMode() != iTarget->DisplayMode() ) - { - return KErrNotSupported; - } - - // if sizes are same, just copy the data - if( iSource->Size() == iTarget->Size() ) - { - Mem::Copy( - iTarget->DataAddress(), - iSource->DataAddress(), - iTarget->BytesPerRow() * iTarget->Size().iHeight ); - } - else if ( ( iSource->Size().iHeight * 2 == iTarget->Size().iHeight ) - && ( iSource->Size().iWidth * 2 == iTarget->Size().iWidth ) ) - { - switch( iSource->DisplayMode() ) - { - case CVtImage::EVtColor4K: - Scale2x4K64K( 0xeee ); // 0000ggggbbbbrrrr -> - break; // mask = %0000111011101110 = 0xeee - - case CVtImage::EVtColor64K: - Scale2x4K64K( 0xf7de ); // bbbbbggggggrrrrr -> - break; // mask = %1111011111011110 = 0xf7de - - case CVtImage::EVtColor16M: - Scale2x16M(); - break; - - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - Scale2x16MU16MA(); - break; - - default: - if ( iSource->Type() == CVtImage::EVtImageBitmap && - iTarget->Type() == CVtImage::EVtImageBitmap ) - { - TRAPD( error, - ScaleWithBitmapScalerL( - CBitmapScaler::EMediumQuality ) ); - result = error; - } - else - { - result = KErrNotSupported; - } - } - } - else - { - Initialize(); - - switch( iSource->DisplayMode() ) - { - case CVtImage::EVtColor4K: - Scale4K(); - break; - - case CVtImage::EVtColor64K: - Scale64K(); - break; - - case CVtImage::EVtColor16M: - Scale16M(); - break; - - case CVtImage::EVtColor16MU: - Scale16MU(); - break; - - case CVtImage::EVtColor16MA: - Scale16MA(); - break; - - default: - if ( iSource->Type() == CVtImage::EVtImageBitmap && - iTarget->Type() == CVtImage::EVtImageBitmap ) - { - TRAPD( error, - ScaleWithBitmapScalerL( - CBitmapScaler::EMediumQuality ) ); - result = error; - } - else - { - result = KErrNotSupported; - } - } - } - - return result; - } - - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::ValidateSourceTargetL( -// const CVtImage& aSource, CVtImage& aTarget ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::ValidateSourceTargetL( - const CVtImage& aSource, - CVtImage& aTarget ) - { - // source and target must have same displaymode - if( aSource.DisplayMode() != aTarget.DisplayMode() ) - { - User::Leave( KErrNotSupported ); - } - - // only 4K, 64K, 16M and 16MU modes are supported - switch( aSource.DisplayMode() ) - { - case CVtImage::EVtColor4K: - case CVtImage::EVtColor64K: - case CVtImage::EVtColor16M: - case CVtImage::EVtColor16MU: - case CVtImage::EVtColor16MA: - break; - - default: - // Scaling for bitmaps is supported for other display modes - if ( !( aSource.Type() == CVtImage::EVtImageBitmap && - aTarget.Type() == CVtImage::EVtImageBitmap ) ) - { - User::Leave( KErrNotSupported ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Initialize() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Initialize() - { - iU = ( 1 << KDecimalBits ) * iSource->Size().iWidth / - iTarget->Size().iWidth; - iV = ( 1 << KDecimalBits ) * iSource->Size().iHeight / - iTarget->Size().iHeight; - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale4K() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale4K() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale4K() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint16* t = reinterpret_cast< TUint16* >( iTarget->DataAddress() ); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint16* s = reinterpret_cast< TUint16* >( - iSource->LineAddress( sourceY >> KDecimalBits ) ); - TUint16* snext = reinterpret_cast< TUint16* >( - iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ) ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - - TInt x; - - TUint32 x0prev( TUint32( -1 ) ); - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - b00 = UNPACK_4K_BLUE( p0 ); - g00 = UNPACK_4K_GREEN( p0 ); - r00 = UNPACK_4K_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - b01 = UNPACK_4K_BLUE( p0 ); - g01 = UNPACK_4K_GREEN( p0 ); - r01 = UNPACK_4K_RED( p0 ); - - p0 = *( snext + x0 ); - - b10 = UNPACK_4K_BLUE( p0 ); - g10 = UNPACK_4K_GREEN( p0 ); - r10 = UNPACK_4K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_4K_BGR( - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // handle last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - b01 = b00 = UNPACK_4K_BLUE( p0 ); - g01 = g00 = UNPACK_4K_GREEN( p0 ); - r01 = r00 = UNPACK_4K_RED( p0 ); - - p0 = *( snext + x0 ); - b10 = UNPACK_4K_BLUE( p0 ); - g10 = UNPACK_4K_GREEN( p0 ); - r10 = UNPACK_4K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_4K_BGR( - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // if width is not even -> then we need to skip one additional byte - if( width & 1 ) - { - t++; - } - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale4K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale64K() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale64K() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale64K() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint16* t = reinterpret_cast< TUint16* >( iTarget->DataAddress() ); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint16* s = reinterpret_cast< TUint16* > - ( iSource->LineAddress( sourceY >> KDecimalBits ) ); - TUint16* snext = reinterpret_cast< TUint16* > - ( iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ) ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - - TInt x; - - TUint32 x0prev( TUint32( -1 ) ); - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - b00 = UNPACK_64K_BLUE( p0 ); - g00 = UNPACK_64K_GREEN( p0 ); - r00 = UNPACK_64K_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - b01 = UNPACK_64K_BLUE( p0 ); - g01 = UNPACK_64K_GREEN( p0 ); - r01 = UNPACK_64K_RED( p0 ); - - p0 = *( snext + x0 ); - - b10 = UNPACK_64K_BLUE( p0 ); - g10 = UNPACK_64K_GREEN( p0 ); - r10 = UNPACK_64K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_64K_BGR( - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // handle last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - b01 = b00 = UNPACK_64K_BLUE( p0 ); - g01 = g00 = UNPACK_64K_GREEN( p0 ); - r01 = r00 = UNPACK_64K_RED( p0 ); - - p0 = *( snext + x0 ); - b10 = UNPACK_64K_BLUE( p0 ); - g10 = UNPACK_64K_GREEN( p0 ); - r10 = UNPACK_64K_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_64K_BGR( - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // if width is not even -> then we need to skip one additional byte - if( width & 1 ) - { - t++; - } - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale64K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale16M() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale16M() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale16M() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint32 t_pitch = iTarget->BytesPerRow(); - - TUint8* t = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint8* s = reinterpret_cast< TUint8* >( - iSource->LineAddress( sourceY >> KDecimalBits ) ); - TUint8* snext = reinterpret_cast< TUint8* >( - iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ) ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - - TInt x; - - TUint32 x0prev( TUint32( -1 ) ); - - TUint8* d = t; - - // first columns - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = ( sourceX >> KDecimalBits ) * 3; - - if( x0 != x0prev ) - { - TUint8* tempSrc = s + x0; - - b00 = *tempSrc++; - g00 = *tempSrc++; - r00 = *tempSrc++; - - b01 = *tempSrc++; - g01 = *tempSrc++; - r01 = *tempSrc++; - - tempSrc = snext + x0; - - b10 = *tempSrc++; - g10 = *tempSrc++; - r10 = *tempSrc++; - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *d++ = static_cast< TUint8 >( bres >> ( KDecimalBits + 1 ) ); - *d++ = static_cast< TUint8 >( gres >> ( KDecimalBits + 1 ) ); - *d++ = static_cast< TUint8 >( rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // handle last columns - for( ; x < width; x++ ) - { - TUint32 x0 = ( sourceX >> KDecimalBits ) * 3; - - if( x0 != x0prev ) - { - TUint8* tempSrc = s + x0; - - b01 = b00 = *tempSrc++; - g01 = g00 = *tempSrc++; - r01 = r00 = *tempSrc++; - - tempSrc = snext + x0; - - b10 = *tempSrc++; - g10 = *tempSrc++; - r10 = *tempSrc++; - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *d++ = static_cast< TUint8 >( bres >> ( KDecimalBits + 1 ) ); - *d++ = static_cast< TUint8 >( gres >> ( KDecimalBits + 1 ) ); - *d++ = static_cast< TUint8 >( rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - t += t_pitch; - - sourceY += iV; - } - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale16M() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale16MU() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale16MU() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale16MU() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint32* t = iTarget->DataAddress(); - - TUint32 sourceY( 0 ); - - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint32* s = iSource->LineAddress( sourceY >> KDecimalBits ); - TUint32* snext = iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - - TInt x; - - TUint32 x0prev( TUint32( -1 ) ); - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - b00 = UNPACK_16MU_BLUE( p0 ); - g00 = UNPACK_16MU_GREEN( p0 ); - r00 = UNPACK_16MU_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - b01 = UNPACK_16MU_BLUE( p0 ); - g01 = UNPACK_16MU_GREEN( p0 ); - r01 = UNPACK_16MU_RED( p0 ); - - p0 = *( snext + x0 ); - - b10 = UNPACK_16MU_BLUE( p0 ); - g10 = UNPACK_16MU_GREEN( p0 ); - r10 = UNPACK_16MU_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_16MU_BGR( - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // handle last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - b01 = b00 = UNPACK_16MU_BLUE( p0 ); - g01 = g00 = UNPACK_16MU_GREEN( p0 ); - r01 = r00 = UNPACK_16MU_RED( p0 ); - - p0 = *( snext + x0 ); - b10 = UNPACK_16MU_BLUE( p0 ); - g10 = UNPACK_16MU_GREEN( p0 ); - r10 = UNPACK_16MU_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_16MU_BGR( - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - sourceY += iV; - } - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale16MU() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale16MA() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale16MA() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale16MA() >>" ), RThread().Id().operator TUint() ) ); - - TInt width = iTarget->Size().iWidth; - - TInt height = iTarget->Size().iHeight; - - TInt mod_width = width - ( ( 1 << KDecimalBits ) / iU ); - - TUint32* t = iTarget->DataAddress(); - - TUint32 sourceY( 0 ); - - TUint32 a00( 0 ); - TUint32 b00( 0 ); - TUint32 g00( 0 ); - TUint32 r00( 0 ); - TUint32 a01( 0 ); - TUint32 b01( 0 ); - TUint32 g01( 0 ); - TUint32 r01( 0 ); - TUint32 a10( 0 ); - TUint32 b10( 0 ); - TUint32 g10( 0 ); - TUint32 r10( 0 ); - - for( TInt y = 0; y < height; y++ ) - { - TUint32* s = iSource->LineAddress( sourceY >> KDecimalBits ); - TUint32* snext = iSource->LineAddress( ( sourceY >> KDecimalBits ) + 1 ); - - TUint32 invdv = sourceY & ( ( 1 << KDecimalBits ) - 1 ); // decimal part - TUint32 dv = ( 1 << KDecimalBits ) - invdv; // 1 - decimal part - - TUint32 sourceX( 0 ); - - TInt x; - - TUint32 x0prev( TUint32( -1 ) ); - - for( x = 0; x < mod_width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - - a00 = UNPACK_16MA_ALPHA( p0 ); - b00 = UNPACK_16MA_BLUE( p0 ); - g00 = UNPACK_16MA_GREEN( p0 ); - r00 = UNPACK_16MA_RED( p0 ); - - p0 = *( s + x0 + 1 ); - - a01 = UNPACK_16MA_ALPHA( p0 ); - b01 = UNPACK_16MA_BLUE( p0 ); - g01 = UNPACK_16MA_GREEN( p0 ); - r01 = UNPACK_16MA_RED( p0 ); - - p0 = *( snext + x0 ); - - a10 = UNPACK_16MA_ALPHA( p0 ); - b10 = UNPACK_16MA_BLUE( p0 ); - g10 = UNPACK_16MA_GREEN( p0 ); - r10 = UNPACK_16MA_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 ares = ( du + dv ) * a00 + invdu * a01 + invdv * a10; - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_16MA_ABGR( - ares >> ( KDecimalBits + 1 ), - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - // handle last columns - for( ; x < width; x++ ) - { - TUint32 x0 = sourceX >> KDecimalBits; - - if( x0 != x0prev ) - { - TUint32 p0 = *( s + x0 ); - a01 = a00 = UNPACK_16MA_ALPHA( p0 ); - b01 = b00 = UNPACK_16MA_BLUE( p0 ); - g01 = g00 = UNPACK_16MA_GREEN( p0 ); - r01 = r00 = UNPACK_16MA_RED( p0 ); - - p0 = *( snext + x0 ); - a10 = UNPACK_16MA_ALPHA( p0 ); - b10 = UNPACK_16MA_BLUE( p0 ); - g10 = UNPACK_16MA_GREEN( p0 ); - r10 = UNPACK_16MA_RED( p0 ); - - x0prev = x0; - } - - TUint32 invdu = sourceX & ( ( 1 << KDecimalBits ) - 1 ); // decimal - TUint32 du = ( 1 << KDecimalBits ) - invdu; // 1 - decimal part - - TUint32 ares = ( du + dv ) * a00 + invdu * a01 + invdv * a10; - TUint32 bres = ( du + dv ) * b00 + invdu * b01 + invdv * b10; - TUint32 gres = ( du + dv ) * g00 + invdu * g01 + invdv * g10; - TUint32 rres = ( du + dv ) * r00 + invdu * r01 + invdv * r10; - - *t++ = PACK_16MA_ABGR( - ares >> ( KDecimalBits + 1 ), - bres >> ( KDecimalBits + 1 ), - gres >> ( KDecimalBits + 1 ), - rres >> ( KDecimalBits + 1 ) ); - - sourceX += iU; - } - - sourceY += iV; - } - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale16MA() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale2x4K64K( TUint32 aMask ) -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale2x4K64K( TUint32 aMask ) - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale2x4K64K() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint32* s = iSource->DataAddress(); - TUint32* d = iTarget->DataAddress(); - TInt y; - - // first average source rows - for( y = 0; y < sheight; y++ ) - { - TUint32* s1 = s; - TUint32* d1 = d; - - TUint32 p = *s1++; // 2 pixels - TUint32 p1 = p & 0xffff; - TUint32 p2 = ( p >> 16 ) & 0xffff; - TInt x; - - for( x = 0; x < swidth/2 - 1; x++ ) - { - TUint32 p1a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - p1a = ( ( ( p1 ^ p1a ) & aMask ) >> 1 ) + ( p1 & p1a ); - *d1++ = p1 | ( p1a << 16 ); - - p = *s1++; // 2 pixels - - p1 = p & 0xffff; - TUint32 p2a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - p2a = ( ( ( p2a ^ p2 ) & aMask ) >> 1 ) + ( p2a & p2 ); - *d1++ = p2 | ( p2a << 16 ); - - p2 = ( p >> 16 ) & 0xffff; - } - - TUint32 p1a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - p1a = ( ( ( p1 ^ p1a ) & aMask ) >> 1 ) + ( p1 & p1a ); - *d1++ = p1 | ( p1a << 16 ); - - if( swidth & 1 ) - { - p = *s1; // 2 pixels - p1 = p & 0xffff; - TUint32 p2a = ( ( ( p1 ^ p2 ) & aMask ) >> 1 ) + ( p1 & p2 ); - p2a = ( ( ( p2a ^ p2 ) & aMask ) >> 1 ) + ( p2a & p2 ); - *d1++ = p2 | ( p2a << 16 ); - - p = *--s1; // 2 pixels - p2 = ( p >> 16 ) & 0xffff; - *d1++ = p1 | ( p1 << 16 ); - } - else - { - p = *--s1; // 2 pixels - p2 = ( p >> 16 ) & 0xffff; - *d1++ = p2 | ( p2 << 16 ); - } - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - s = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( s ) + spitch ); - } - - // then average rows between - d = iTarget->DataAddress(); - - for( y = 0; y < sheight - 1; y++ ) - { - TUint32* d1 = reinterpret_cast< TUint32* >( d ); - TUint32* d2 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d1 ) + dpitch ); - TUint32* d3 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d2 ) + dpitch ); - - TUint32 p1 = *d1++; - for( TInt x = 0; x < swidth - 1; x++ ) - { - TUint32 p11 = p1 & 0xffff; - TUint32 p3 = *d3++; - TUint32 p31 = p3 & 0xffff; - - TUint32 r1 = ( ( ( p11 ^ p31 ) & aMask ) >> 1 ) + ( p11 & p31 ); - r1 = ( ( ( p11 ^ r1 ) & aMask ) >> 1 ) + ( p11 & r1 ); - - p1 = *d1++; // read ahead - TUint32 p21 = p1 & 0xffff; - TUint32 r2 = ( ( ( p21 ^ p31 ) & aMask ) >> 1 ) + ( p21 & p31 ); - r2 = ( ( ( p11 ^ r2 ) & aMask ) >> 1 ) + ( p11 & r2 ); - - *d2++ = r1 | ( r2 << 16 ); - } - - TUint32 p11 = p1 & 0xffff; - TUint32 p3 = *d3++; - TUint32 p31 = p3 & 0xffff; - TUint32 r1 = ( ( ( p11 ^ p31 ) & aMask ) >> 1 ) + ( p11 & p31 ); - r1 = ( ( ( p11 ^ r1 ) & aMask ) >> 1 ) + ( p11 & r1 ); - *d2++ = r1 | ( r1 << 16 ); - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - } - - // last row is just copy of previous row, because we cannot calculate - // average - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ); - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale2x4K64K() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale2x16M() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale2x16M() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale2x16M() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint8* s = reinterpret_cast< TUint8* >( iSource->DataAddress() ); - TUint8* d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - TInt y; - - for( y = 0; y < sheight; y++ ) - { - TUint8* s2 = s; - TUint8* d1 = d; - - TUint32 g1 = 0; - TUint32 b1 = 0; - TUint32 r1 = 0; - - TUint32 g2 = 0; - TUint32 b2 = 0; - TUint32 r2 = 0; - - for( TInt x = 0; x < swidth - 1; x++ ) - { - g1 = *s2++; - b1 = *s2++; - r1 = *s2++; - - *d1++ = static_cast< TUint8 >( g1 ); - *d1++ = static_cast< TUint8 >( b1 ); - *d1++ = static_cast< TUint8 >( r1 ); - - g2 = s2[ 0 ]; - b2 = s2[ 1 ]; - r2 = s2[ 2 ]; - - *d1++ = static_cast< TUint8 >( ( g1 + ( ( g1 + g2 ) >> 1 ) ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( b1 + ( ( b1 + b2 ) >> 1 ) ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( r1 + ( ( r1 + r2 ) >> 1 ) ) >> 1 ); - } - - *d1++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - *d1++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - - *d1++ = static_cast< TUint8 >( g2 ); - *d1++ = static_cast< TUint8 >( b2 ); - *d1++ = static_cast< TUint8 >( r2 ); - - d += dpitch * 2; - s += spitch; - } - - // then average rows between - d = reinterpret_cast< TUint8* >( iTarget->DataAddress() ); - - for( y = 0; y < sheight - 1; y++ ) - { - TUint8* d1 = d; - TUint8* d2 = d1 + dpitch; - TUint8* d3 = d2 + dpitch; - - for( TInt x = 0; x < swidth; x++ ) - { - TUint32 g1 = *d1++; - TUint32 g2 = *d3++; - *d2++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - - TUint32 b1 = *d1++; - TUint32 b2 = *d3++; - *d2++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - - TUint32 r1 = *d1++; - TUint32 r2 = *d3++; - *d2++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - - g1 = *d1++; - g2 = *d3++; - *d2++ = static_cast< TUint8 >( ( g1 + g2 ) >> 1 ); - - b1 = *d1++; - b2 = *d3++; - *d2++ = static_cast< TUint8 >( ( b1 + b2 ) >> 1 ); - - r1 = *d1++; - r2 = *d3++; - *d2++ = static_cast< TUint8 >( ( r1 + r2 ) >> 1 ); - } - - d += dpitch * 2; - } - - // last row is just copy of previous row, because we cannot calculate - // average - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ); - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale2x16M() <<" ), RThread().Id().operator TUint() ) ); - } - -// ----------------------------------------------------------------------------- -// CVtImageScalerImplWeightedAverage::Scale2x16MU16MA() -// ----------------------------------------------------------------------------- -void CVtImageScalerImplWeightedAverage::Scale2x16MU16MA() - { - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale2x16MU16MA() >>" ), RThread().Id().operator TUint() ) ); - - TInt sheight = iSource->Size().iHeight; - TInt swidth = iSource->Size().iWidth; - TInt spitch = iSource->BytesPerRow(); - TInt dpitch = iTarget->BytesPerRow(); - - TUint32 mask = 0xfefefefe; - TUint32* s = iSource->DataAddress(); - TUint32* d = iTarget->DataAddress(); - TInt y; - - // first average source rows - for( y = 0; y < sheight; y++ ) - { - TInt x; - TUint32* s1 = s; - TUint32* d1 = d; - TUint32 p2 = *s1++; - TUint32 p1 = 0; - for( x = 0; x < swidth - 1; x++ ) - { - p1 = p2; - *d1++ = p1; - p2 = *s1++; - TUint32 p1a = ( ( ( p1 ^ p2 ) & mask ) >> 1 ) + ( p1 & p2 ); - p1a = ( ( ( p1 ^ p1a ) & mask ) >> 1 ) + ( p1 & p1a ); - *d1++ = p1a; - } - - if( swidth & 1 ) - { - TUint32 p2a = ( ( ( p1 ^ p2 ) & mask ) >> 1 ) + ( p1 & p2 ); - p2a = ( ( ( p2a ^ p2 ) & mask ) >> 1 ) + ( p2a & p2 ); - *d1++ = p2a; - *d1++ = p2; - } - else - { - p2 = *--s1; - *d1++ = p2; - *d1++ = p2; - } - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - s = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( s ) + spitch ); - } - - // then average rows between - d = iTarget->DataAddress(); - - for( y = 0; y < sheight - 1; y++ ) - { - TUint32* d1 = reinterpret_cast< TUint32* >( d ); - TUint32* d2 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d1 ) + dpitch ); - TUint32* d3 = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d2 ) + dpitch ); - - TUint32 p1 = *d1++; - - for( TInt x = 0; x < swidth - 1; x++ ) - { - TUint32 p3 = *d3++; - d3++; - - TUint32 r1 = ( ( ( p1 ^ p3 ) & mask ) >> 1 ) + ( p1 & p3 ); - r1 = ( ( ( p1 ^ r1 ) & mask ) >> 1 ) + ( p1 & r1 ); - - *d2++ = r1; - - d1++; - TUint32 p2 = *d1++; - - TUint32 r2 = ( ( ( p2 ^ p3 ) & mask ) >> 1 ) + ( p2 & p3 ); - r2 = ( ( ( p1 ^ r2 ) & mask ) >> 1 ) + ( p1 & r2 ); - - *d2++ = r2; - - p1 = p2; - } - - TUint32 p3 = *d3++; - TUint32 r1 = ( ( ( p1 ^ p3 ) & mask ) >> 1 ) + ( p1 & p3 ); - r1 = ( ( ( p1 ^ r1 ) & mask ) >> 1 ) + ( p1 & r1 ); - *d2++ = r1; - *d2++ = r1; - - d = reinterpret_cast< TUint32* > - ( reinterpret_cast< TUint8* >( d ) + dpitch * 2 ); - } - - // last row is just copy of previous row, because we cannot calculate - // average - Mem::Copy( reinterpret_cast< TUint8* >( d ) + dpitch, d, dpitch ); - - __IF_DEBUG( Print( _L( "ImageScaler [%d]: CVtImageScalerImplWeightedAverage::Scale2x16MU16MA() <<" ), RThread().Id().operator TUint() ) ); - } - -// End of File - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/DisplaySink/src/vtyuvconverter.cpp --- a/vtprotocolplugins/DisplaySink/src/vtyuvconverter.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2005-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: YUV format transcoder. -* -*/ - - -#include "vtyuvconverter.h" - -#ifdef _DEBUG - #include - #define PRINT RDebug::Print - #define _IFDBG(a) a -#else - #define PRINT - #define _IFDBG(a) -#endif - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// VtYuvConverter::ConvertFrom420PlanarTo422Interleaved -// --------------------------------------------------------------------------- -// -TInt VtYuvConverter::ConvertFrom420PlanarTo422Interleaved( - const TDesC8& aSource, - const TSize& aSize, - TDes8& aTarget, - TInt aStride ) - { - _IFDBG(PRINT( _L( "VtYuvConverter::ConvertFrom420PlanarTo422Interleaved<" ) )); - - if ( aTarget.MaxLength() < ByteSize422Interleaved( aSize ) ) - { - _IFDBG(PRINT( _L( "VtYuvConverter::ConvertFrom420PlanarTo422Interleaved> TargetMaxLength < ByteSize422" ) )); - return KErrUnderflow; - } - - if ( aSource.Size() != ByteSize420Planar( aSize ) ) - { - _IFDBG(PRINT( _L( "VtYuvConverter::ConvertFrom420PlanarTo422Interleaved> 420SourceSize != ByteSize420" ) )); - return KErrArgument; - } - - TInt planeSize( aSize.iWidth * aSize.iHeight ); - const TUint8* sy = aSource.Ptr(); - const TUint8* su = sy + planeSize; - const TUint8* sv = su + ( planeSize >> 2 ); - TUint8* t = const_cast< TUint8* >( aTarget.Ptr() ); - - TUint8* tsave = t; - for ( TInt y = ( aSize.iHeight >> 1 ) - 1; y >= 0; y-- ) - { - const TUint8* susave = su; - const TUint8* svsave = sv; - for ( TInt x = ( aSize.iWidth >> 1 ) - 1; x >= 0; x-- ) - { - *t++ = *su++; - *t++ = *sy++; - *t++ = *sv++; - *t++ = *sy++; - } - tsave = t = tsave + aStride; - su = susave; - sv = svsave; - for ( TInt x = ( aSize.iWidth >> 1 ) - 1; x >= 0; x-- ) - { - *t++ = *su++; - *t++ = *sy++; - *t++ = *sv++; - *t++ = *sy++; - } - tsave = t = tsave + aStride; - } - - _IFDBG(PRINT( _L( "VtYuvConverter::ConvertFrom420PlanarTo422Interleaved>" ) )); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// VtYuvConverter::ByteSize420Planar -// --------------------------------------------------------------------------- -// -TInt VtYuvConverter::ByteSize420Planar( const TSize& aSizeInPixels ) - { - TInt planeSize( aSizeInPixels.iWidth * aSizeInPixels.iHeight ); - return planeSize + planeSize / 2; - } - -// --------------------------------------------------------------------------- -// VtYuvConverter::ByteSize422Interleaved -// --------------------------------------------------------------------------- -// -TInt VtYuvConverter::ByteSize422Interleaved( const TSize& aSizeInPixels ) - { - TInt planeSize( aSizeInPixels.iWidth * aSizeInPixels.iHeight ); - return planeSize * 2; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/EABI/VideoSourceU.DEF --- a/vtprotocolplugins/VideoSource/EABI/VideoSourceU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -EXPORTS - _ZN13CVSController4NewLEP21MVSControllerObserver @ 1 NONAME - _ZN14CVsFrameBuffer4NewLEi @ 2 NONAME - _ZN14CVsFrameBufferD0Ev @ 3 NONAME - _ZN14CVsFrameBufferD1Ev @ 4 NONAME - _ZN14CVsFrameBufferD2Ev @ 5 NONAME - _ZN16CVSMMFDataBuffer4NewLEi @ 6 NONAME - _ZN16CVSMMFDataBuffer4NewLEv @ 7 NONAME - _ZN16CVSMMFDataBufferD0Ev @ 8 NONAME - _ZN16CVSMMFDataBufferD1Ev @ 9 NONAME - _ZN16CVSMMFDataBufferD2Ev @ 10 NONAME - _ZTI14CVsFrameBuffer @ 11 NONAME ; ## - _ZTI15CVSDataProvider @ 12 NONAME ; ## - _ZTI16CVSControllerImp @ 13 NONAME ; ## - _ZTI16CVSDataSourceImp @ 14 NONAME ; ## - _ZTI16CVSMMFDataBuffer @ 15 NONAME ; ## - _ZTI17CVSFrameRateTimer @ 16 NONAME ; ## - _ZTI18CSyncCameraReserve @ 17 NONAME ; ## - _ZTI19CVSProviderSwitchAO @ 18 NONAME ; ## - _ZTI21CVSCameraDataProvider @ 19 NONAME ; ## - _ZTI23CVSDataSourceObserverAO @ 20 NONAME ; ## - _ZTI24CProviderErrorNotifierAO @ 21 NONAME ; ## - _ZTI25CVSStillImageDataProvider @ 22 NONAME ; ## - _ZTI28CVSOnboardCameraDataProvider @ 23 NONAME ; ## - _ZTV14CVsFrameBuffer @ 24 NONAME ; ## - _ZTV15CVSDataProvider @ 25 NONAME ; ## - _ZTV16CVSControllerImp @ 26 NONAME ; ## - _ZTV16CVSDataSourceImp @ 27 NONAME ; ## - _ZTV16CVSMMFDataBuffer @ 28 NONAME ; ## - _ZTV17CVSFrameRateTimer @ 29 NONAME ; ## - _ZTV18CSyncCameraReserve @ 30 NONAME ; ## - _ZTV19CVSProviderSwitchAO @ 31 NONAME ; ## - _ZTV21CVSCameraDataProvider @ 32 NONAME ; ## - _ZTV23CVSDataSourceObserverAO @ 33 NONAME ; ## - _ZTV24CProviderErrorNotifierAO @ 34 NONAME ; ## - _ZTV25CVSStillImageDataProvider @ 35 NONAME ; ## - _ZTV28CVSOnboardCameraDataProvider @ 36 NONAME ; ## - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/bmarm/VIDEOSOURCEU.DEF --- a/vtprotocolplugins/VideoSource/bmarm/VIDEOSOURCEU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - NewL__13CVSControllerP21MVSControllerObserver @ 1 NONAME R3UNUSED ; CVSController::NewL(MVSControllerObserver *) - SwitchDataProviderL__16CVSDataSourceImpP15CVSDataProvider @ 2 NONAME R3UNUSED ; CVSDataSourceImp::SwitchDataProviderL(CVSDataProvider *) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/bwins/VIDEOSOURCEU.DEF --- a/vtprotocolplugins/VideoSource/bwins/VIDEOSOURCEU.DEF Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -EXPORTS - ??1CVSMMFDataBuffer@@UAE@XZ @ 1 NONAME ; CVSMMFDataBuffer::~CVSMMFDataBuffer(void) - ??1CVsFrameBuffer@@UAE@XZ @ 2 NONAME ; CVsFrameBuffer::~CVsFrameBuffer(void) - ?NewL@CVSController@@SAPAV1@PAVMVSControllerObserver@@@Z @ 3 NONAME ; class CVSController * CVSController::NewL(class MVSControllerObserver *) - ?NewL@CVSMMFDataBuffer@@SAPAV1@H@Z @ 4 NONAME ; class CVSMMFDataBuffer * CVSMMFDataBuffer::NewL(int) - ?NewL@CVSMMFDataBuffer@@SAPAV1@XZ @ 5 NONAME ; class CVSMMFDataBuffer * CVSMMFDataBuffer::NewL(void) - ?NewL@CVsFrameBuffer@@SAPAV1@H@Z @ 6 NONAME ; class CVsFrameBuffer * CVsFrameBuffer::NewL(int) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/data/videosource_stub.SIS Binary file vtprotocolplugins/VideoSource/data/videosource_stub.SIS has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/data/videosource_stub.pkg --- a/vtprotocolplugins/VideoSource/data/videosource_stub.pkg Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -; -; Copyright (c) 2009 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: -; -; Languages -&EN - -; Header -#{"videosource"}, (0x101F8692), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\videosource.dll" diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/group/CApiVideoSource.mmp --- a/vtprotocolplugins/VideoSource/group/CApiVideoSource.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Project definition file for Video Source subsystem -* -*/ - - -#include -#include "../inc/VideoSourceUids.hrh" - -TARGET videosource.dll -TARGETTYPE dll -VENDORID VID_DEFAULT - -UID KSharedLibraryUidDefine KUidVideoSourceLibrary - -SOURCEPATH ../src -SOURCE CVSController.cpp -SOURCE CVSControllerImp.cpp -SOURCE CVSDataProvider.cpp -SOURCE CVSStillImageDataProvider.cpp -SOURCE CVSCameraDataProvider.cpp -SOURCE CVSOnboardCameraDataProvider.cpp -SOURCE CVSDataSourceImp.cpp -SOURCE CVSMMFDataBuffer.cpp - -SOURCE cmultiframeloopao.cpp -SOURCE cmultiframeprovider.cpp -SOURCE cmultiframedataao.cpp -USERINCLUDE ../inc -SYSTEMINCLUDE ../../../inc -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/mmf/server -SYSTEMINCLUDE /epoc32/include/mmf/common - -LIBRARY euser.lib -LIBRARY fbscli.lib -LIBRARY mmfcontrollerframework.lib -LIBRARY ecam.lib -LIBRARY efsrv.lib -LIBRARY bafl.lib -LIBRARY bitgdi.lib -LIBRARY imageconversion.lib -LIBRARY vtimageconverter.lib -LIBRARY vtimagetransforms.lib -LIBRARY featmgr.lib -LIBRARY phoneclient.lib -LIBRARY ws32.lib -LIBRARY ecamadvsettings.lib - -CAPABILITY CAP_GENERAL_DLL - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/group/bld.inf --- a/vtprotocolplugins/VideoSource/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Component definition file for Video Source subsystem -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/CApiVideoSource.h |../../../inc/capivideosource.h -../inc/capivideosource.inl |../../../inc/capivideosource.inl - -// Export SIS stub file -../data/videosource_stub.SIS /epoc32/data/z/system/install/videosource_stub.sis - -// Export IBY file -../rom/VideoSource.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videosource.iby) - -PRJ_MMPFILES -CApiVideoSource.mmp - -// End of File \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CApiVideoSource.h --- a/vtprotocolplugins/VideoSource/inc/CApiVideoSource.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,922 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CAPIVIDEOSOURCE_H -#define CAPIVIDEOSOURCE_H - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS - -class MVSControllerObserver; -class MVSDataSourceObserver; -class MVSDataProviderObserver; -class CVSDataSource; -class CVSDataProvider; -class TVSDataProviderInfo; -class CVSDataSourceImp; -class CProviderErrorNotifierAO; - -class MFrameBuffer; -class RWsSession; -class CWsScreenDevice; -class RWindowBase; -class CFbsBitmap; -class MDataSink; -class MDataSource; -class MAsyncEventHandler; -class TMMFPrioritySettings; -class TMMFMessage; -class CDesC8Array; -class CVSMMFDataBuffer; - -// Camera lost during VT error -const TInt KVsErrCameraNoLongerReserved = 666; -// CLASS DECLARATION - -/** -* Initialization settings class for still image provider. -* -* @lib videosource.lib -*/ -class TVSStillImageDataProviderParams - { - public: - /** - * Enumeration that defines different initialization - * types. - */ - enum TInitialize - { - /** Created as blank image */ - EInitializeAsBlankImage, - /** Image will be load from General Settings */ - EInitializeFromGeneralSettings, - /** Image will be from file */ - EInitializeFromFile, - /** Imge will be load from phone server */ - EInitializeAsDefaultStillImage - }; - - public: - /** - * Constructor, set iInitialize to EInitializeAsBlankImage. iFileName - * is initialized as an empty descriptor. - */ - inline TVSStillImageDataProviderParams(); - - /** - * Constructor. iFileName is initialized as an empty descriptor. - * @param aInitialize Defines how provider must be initialized. - */ - inline TVSStillImageDataProviderParams( const TInitialize aInitialize ); - - /** - * Constructor. iInitialize is set to EInitializeFromFile. - * @param aFileName Name of the file from which this instance will - * be initialized. - */ - inline TVSStillImageDataProviderParams( const TFileName& aFileName ); - - public: - // Initialization type - TInitialize iInitialize; - - // Filename for EInitializeFromFile - TFileName iFileName; - }; - -typedef TPckgBuf< TVSStillImageDataProviderParams > TVSStillImageDataProviderParamsBuf; - -/** -* An interface to access free MMF buffers. -* -* @lib videosource.lib -*/ -class MVSBufferPool - { - public: - - /** - * Pure virtual function to get next free buffer from free buffer pool. - * @param "aRemove" Boolean flag. If ETrue buffer will be removed from - * the pool. - * @exception Can leave with one of the system wide error codes. - * @return Returns pointer to next available buffer in free buffers - * queue or NULL if no buffers in queue are available. - */ - virtual CVSMMFDataBuffer* GetBufferL( TBool aRemove ) = 0; - - /** - * Frees buffer that was previously got using GetBufferL(). - * @param "aBuffer" Buffer to be freed. - * @exception Can leave with one of the system wide error codes. - */ - virtual void FreeBufferL( CVSMMFDataBuffer* aBuffer ) = 0; - }; - -/** -* An interface to a controller callback functions. -* -* @lib videosource.lib -*/ -class MVSControllerObserver - { - public: - - /** - * Called when provider count has been changed. - * @param "aAttached" ETrue if provider attached, else EFalse. - */ - virtual void vsProvidersChanged( TBool aAttached ) = 0; - }; - -/** -* Controller interface. -* -* @lib videosource.lib -*/ -class CVSController : public CBase - { - public: // Constructor and destructor - - /** - * Static factory function to create instance of this class. - * @param "aObserver" Pointer to controller observer. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - IMPORT_C static CVSController* NewL( MVSControllerObserver* aObserver ); - - /** - * Pure virtual function to create data source instance. - * @param "aObserver" Pointer to data source observer. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new data source instance. - */ - virtual CVSDataSource* CreateDataSourceL( - MVSDataSourceObserver* aObserver ) = 0; - - public: // New functions - - /** - * Pure virtual function to return provider count and provider index. - * @return Number of providers available. Count also acts as zero based - * provider index. - */ - virtual TInt ProvidersAvailable() = 0; - - /** - * Pure virtual function to return provider information. - * @param "aProviderIndex" Index of the provider to return information - * for. - * @param "aInfo" Reference to the variable where the provider - * information is copied. - * @exception Can leave with one of the system wide error codes. - */ - virtual void ProviderInfoL( - TInt aProviderIndex, - TVSDataProviderInfo& aInfo ) = 0; - - /** - * Pure virtual function to create provider instance. - * @param "aProviderIndex" Index of the provider to be created. - * @param "aObserver" Pointer to provider observer. - * @param "aPool" Pointer to data MVSBufferPool that gives buffer to - * data provider. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new provider instance. - */ - virtual CVSDataProvider* CreateDataProviderL( - TInt aProviderIndex, - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ) = 0; - - public: // Constructor and destructor - - public: // Functions from base classes - - protected: // New functions - - /** - * C++ default constructor. - */ - CVSController(); - - /** - * Inliner to return reference to the controller observer. - * @return Reference to the controller observer. - */ - inline MVSControllerObserver& Observer() const; - - protected: // Constructor and destructor - - /** - * 2nd phase constructor. - * @param "aObserver" Pointer to controller observer - * @exception Can leave with one of the system wide error codes. - */ - virtual void ConstructL( MVSControllerObserver* aObserver ) = 0; - - protected: // Functions from base classes - - public: // Data - - protected: // Data - - // Pointer to controller observer - MVSControllerObserver* iObserver; - - private: // Data - - }; - -/** -* An interface to a provider callback functions. -* -* @lib videosource.lib -*/ -class MVSDataProviderObserver - { - public: - - /** - * Called when an error occurred in provider. - * @param "aError" of the system wide error codes. - */ - virtual void vsProviderError( TInt aError ) = 0; - - /** - * Called when provider is initalized. - */ - virtual void vsProviderReady() = 0; - - /** - * Called when provider has view finder bitmap ready. - * @param "aFrame" Reference to the view finder bitmap. - */ - virtual void vsViewFinderFrameReady( CFbsBitmap& aFrame ) = 0; - }; - -/** -* Extension to standard ECam TCameraInfo class. -* -* @lib videosource.lib -*/ -class TVSDataProviderInfo : public TCameraInfo - { - public: // Data - - // ETrue if the Freeze() is supported. - TBool iFreezeSupported; - - // Pointer to extension information. - TAny* iExtension; - - // A bitfield of suported colortones - TUint32 iSupportedColorTones; - }; - -/** -* Provider interface. -* -* @lib videosource.lib -*/ -class CVSDataProvider : public CBase - { - public: // Constructor and destructor - - /** - * Static factory function to create instance of this class. - * @param "aProviderIndex" Index of the provider to be created. - * @param "aObserver" Pointer to data provider observer. - * @param "aPool" Pointer to data MVSBufferPool that gives buffer to - * data provider. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CVSDataProvider* NewL( - TInt aProviderIndex, - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - /** - * Destructor. - */ - ~CVSDataProvider(); - - public: // New functions - - /** - * Static function get provider count and provider index. - * @return Number of providers available. Count also acts as zero based - * provider index. - */ - static TInt ProvidersAvailable(); - - /** - * Static function to return provider information. - * @param "aProviderIndex" Index of the provider to return information - * for. - * @param "aInfo" Reference to the variable to where the provider - * information is copied. - * @exception Can leave with one of the system wide error codes. - */ - static void ProviderInfoL( - TInt aProviderIndex, - TVSDataProviderInfo& aInfo ); - - /** - * Pure virtual function to initialize provider. - * @param "aInitParams" Reference to the initialization parameters. - * @exception Can leave with one of the system wide error codes. - */ - virtual void InitializeL( const TDesC8& aInitParams ) = 0; - - /** - * Pure virtual function to cancel initialization of provider. - */ - virtual void CancelInitializing() = 0; - - /** - * Pure virtual function to return digital zoom factor. - * @return Digital zoom factor. - */ - virtual TInt DigitalZoomFactor() const = 0; - - /** - * Pure virtual function to set digital zoom factor. - * @param "aDigitalZoomFactor" Digital zoom factor. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SetDigitalZoomFactorL( TInt aDigitalZoomFactor = 0 ) = 0; - - /** - * Pure virtual function to start view finder bitmaps. - * @param "aSize" Size of the returned view finder bitmap. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderBitmapsL( TSize& aSize ) = 0; - - /** - * Pure virtual function to start view finder bitmaps. - * @param "aSize" Size of the returned view finder bitmap. - * @param "aClipRect" Required clip rectangle. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderBitmapsL( - TSize& aSize, - TRect& aClipRect ) = 0; - - /** - * Pure virtual function to start view finder bitmaps using direct - * screen access. - * @param "aWs" Window server session. - * @param "aScreenDevice" Screen device. - * @param "aWindow" Displayable window. - * @param "aScreenRect" Portion of the screen to which view finder data - * is to be transferred. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderDirectL( - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - TRect& aScreenRect ) = 0; - - /** - * Pure virtual function to start view finder bitmaps using direct - * screen access. - * @param "aWs" Window server session. - * @param "aScreenDevice" Screen device. - * @param "aWindow" Displayable window. - * @param "aScreenRect" Portion of the screen to which view finder data - * is to be transferred. - * @param "aClipRect" The rectangle to which the screen will be clipped. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderDirectL( - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - TRect& aScreenRect, - TRect& aClipRect ) = 0; - - /** - * Pure virtual function to test if view finder is active. - * @return ETrue if view finder active. - */ - virtual TBool ViewFinderActive() const = 0; - - /** - * Pure virtual function to stop view finder bitmaps. - */ - virtual void StopViewFinder() = 0; - - /** - * Pure virtual function to return provider information. - * @param "aInfo" Reference to the variable to where the provider - * information is copied. - */ - virtual void ProviderInfo( TVSDataProviderInfo& aInfo ) = 0; - - /** - * Used to switch between what the camera sees and what you would see - * if the device were a mirror. - * @param "aMirror" ETrue to set mirroring on, EFalse to set mirroring off. - * @exception May leave with KErrNotSupported. - */ - virtual void SetViewFinderMirrorL( TBool aMirror ) = 0; - - /** - * Gets whether view finder mirroring is active. - * @return ETrue if mirroring is set, EFalse if mirroring is not set. - */ - virtual TBool ViewFinderMirror() const = 0; - - /** - * Freezes video (i.e. starts sending the last frame until provider is - * unfrozen). - * @exception May leave with KErrNotSupported if freezing is not supported - * by the provider. - */ - virtual void FreezeL() = 0; - - /** - * Unfreezes video (i.e. starts sending actual frames). - * @exception May leave with KErrNotSupported if freezing - * is not supported - * by the provider. - */ - virtual void UnfreezeL()= 0; - - /** - * Gets whether freeze is active. - * @return ETrue if video is frozen, EFalse otherwise. - */ - virtual TBool IsFrozen() const = 0; - - /** - * Sets the contrast adjustment of the device. - * This must be in the range of -100 to +100 or EContrastAuto. - * May leave with KErrNotSupported if the specified contrast value - * is out of range. - * @since S60 v3.2 - * @param aContrast - */ - virtual void SetContrastL( TInt aContrast ) = 0; - - /** - * Gets the currently set contrast value. - * @since S60 v3.2 - * @param aContrast The currently set contrast value. - * @return indication if method succeed or not. - */ - virtual TInt GetContrast( TInt& aContrast ) const = 0; - - /** - * Sets the brightness adjustment of the device. - * This must be in the range of -100 to +100 or EBrightnessAuto. - * May leave with KErrNotSupported if the brightness adjustment - * is out of range. - * @since S60 v3.2 - * @param aBrightness The required brightness adjustment. - */ - virtual void SetBrightnessL( TInt aBrightness ) = 0; - - /** - * Gets the currently set brightness adjustment value. - * @since S60 v3.2 - * @param aBrightness The currently set brightness adjustment value. - * @return indication if method succeed or not. - */ - virtual TInt GetBrightness( TInt& aBrightness ) const = 0; - - /** - * Sets the white balance adjustment of the device. - * No effect if this is not supported, see - * TCameraInfo::iWhiteBalanceModesSupported. - * @since S60 v3.2 - * @param aWhiteBalance The required white balance adjustment. - * @leave KErrNotSupported if the specified white balance adjustment - * is invalid. - */ - virtual void SetWhiteBalanceL( - CCamera::TWhiteBalance aWhiteBalance = CCamera::EWBAuto) = 0; - - /** - * Gets the currently set white balance adjustment value. - * @since S60 v3.2 - * @param aWhiteBalance The currently set white balance adjustment value. - * @return indication if method succeed or not. - */ - virtual TInt GetWhiteBalance( - CCamera::TWhiteBalance& aWhiteBalance ) const = 0; - - /** - * Gives the current color tone setting value - * @since S60 v3.2 - * @param aColorTone The currently set color tone adjustment value. - * @return indication if method succeed or not. - */ - virtual TInt GetColorTone( - CCamera::CCameraImageProcessing::TEffect& aColorTone ) const = 0; - - /** - * Sets color tone - * @since S60 v3.2 - * @param aValue new color tone - */ - virtual void SetColorToneL( - CCamera::CCameraImageProcessing::TEffect aValue ) = 0; - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - /** - * See MDataSource for description. - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ) = 0; - - /** - * See MDataSource for description. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ) = 0; - - /** - * See MDataSource for description. - */ - virtual void SourceThreadLogoff() = 0; - - /** - * See MDataSource for description. - */ - virtual void SourcePrimeL() = 0; - - /** - * See MDataSource for description. - */ - virtual void SourcePlayL() = 0; - - /** - * See MDataSource for description. - */ - virtual void SourcePauseL() = 0; - - /** - * See MDataSource for description. - */ - virtual void SourceStopL() = 0; - - private: // New functions - - /** - * See MVTVideoInput for description. - */ - virtual void SetFormatL( const TDesC8& aFormat ) = 0; - - /** - * See MVTVideoInput for description. - */ - virtual void SetFrameRateL( TReal32 aFrameRate ) = 0; - - /** - * See MVTVideoInput for description. - */ - virtual void SetVideoFrameSizeL( const TSize& aSize ) = 0; - - /** - * See MVTVideoInput for description. - */ - virtual void GetVideoFrameSizeL( TSize& aSize ) const = 0; - - private: // Functions from base classes - - protected: // New functions - - /** - * This version of prime method will be called when a provider - * is being switched. - * @exception Can leave with one of the system wide error codes. - */ - virtual void PrimeL() = 0; - - /** - * Inliner to test if FillBufferL call is active. - * @return ETrue if FillBufferL call is ongoing, else EFalse. - */ - inline TBool FillBufferActive() const; - - /** - * Inliner to return the sink that will empty the buffer. - * @return Pointer to sink. - */ - inline MVTVideoSink* Consumer() const; - - /** - * Inliner to return sink media ID that is used. - * @return Media ID identifiyng the stream that is used. - */ - inline TMediaId MediaId() const; - - /** - * Inliner to return reference to the provider observer. - * @return Reference to the provider observer. - */ - inline MVSDataProviderObserver& Observer() const; - - /** - * Saves input parameters given in FillBufferL call. - * @param "aConsumer" Pointer to sink that will empty the filled buffer. - * @param "aMediaId" Media ID for source/provider stream that is used. - */ - virtual void SetFillBufferParams( - MVTVideoSink* aConsumer, - TMediaId aMediaId ); - - /** - * Notify observer about provider error. - * @param "aError" Error code - */ - void NotifyError( TInt aError ); - - /** - * Inliner to return reference to the buffer pool. - * @return Reference to the buffer pool. - */ - inline MVSBufferPool& BufferPool() const; - - protected: // Constructor and destructor - - /** - * C++ default constructor. - */ - CVSDataProvider(); - - /** - * Constructor. - * @param "aObserver" Pointer to provider observer. - */ - CVSDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - /** - * 2nd phase constructor. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL(); - - /** - * Returns microseconds from the first SourcePlayL() call. - */ - const TTimeIntervalMicroSeconds& TimeToPlay(); - - /** - * Resets start time (the time when SourcePlayL() was called). - * iStartTime is set to TTime::HomeTime(). - */ - void ResetStartTime(); - - private: // New functions - - /** - * - */ - static TInt CamerasAvailable(); - - /** - * Sets timestamp for first SourcePlayL() call. This method - * is called by the CVSDataSource when data provider is switched. - */ - void SwitchFrom( const CVSDataProvider& anOldProvider ); - - /** - * Enumerate all providers and create a set of formats that is supported - * by all of them. - */ - static void EnumerateVideoFrameFormatsL( - CDesC8Array* aSupportedFormats ); - - /** - * Enumerate all providers and create a set of video frame sizes that - * is supported by all of them. - */ - static void EnumerateVideoFrameSizesL( - RArray& aSupportedSizes, - const TDesC8& aFormat ); - - /** - * Enumerate all providers and create a set of video frame rates that - * is supported by all of them. - */ - static void EnumerateVideoFrameRatesL( - RArray& aSupportedRates, - const TDesC8& aFormat, - const TSize& aSize ); - - protected: // New functions - - /** - * Get video frame size. Implemented in each provider. - */ - virtual void GetVideoFrameSize( - TSize& aSize, - TInt aSizeIndex, - const TDesC8& aFormat ) = 0; - - /** - * Get video frame rate. Implemented in each provider. - */ - virtual void GetVideoFrameRate( - TReal32& aRate, - TInt aRateIndex, - const TDesC8& aFormat, - const TSize& aSize ) = 0; - - public: // Data - - protected: // Data - - // Boolean that is ETrue when FillBufferL call is active. - TBool iFillBufferActive; - - // Sink that empties the buffer filled with video frame. Not owned. - MVTVideoSink* iConsumer; - - // Provider's media ID identifying media stream used. - TMediaId iMediaId; - - private: // Data - - // Pointer to provider observer. - MVSDataProviderObserver* iObserver; - - // Pointer to AO that reports provider errors to provider observer, - // used through NotifyError call. - CProviderErrorNotifierAO* iErrorNotifier; - - // Pointer to buffer pool - MVSBufferPool* iPool; - - // Previous TimeToPlay interval - TTimeIntervalMicroSeconds iPreviousTimeToPlay; - - // Start time (time when SourcePlayL() was called) - TTime iStartTime; - - private: // Data - - // Source is friend because it's MDataSource and MVTVideoInput derived - // calls are forwarded to provider. - friend class CVSDataSource; - - // Source is friend because it's MDataSource and MVTVideoInput derived - // calls are forwarded to provider. - friend class CVSDataSourceImp; - }; - -/** -* An interface to a data source callback functions. -* -* @lib videosource.lib -*/ -class MVSDataSourceObserver - { - public: - - /** - * Called when provider switch completed. - * @param "aOldProvider" Pointer provider that was previously active. - */ - virtual void vsProviderSwitchDone( CVSDataProvider* aOldProvider ) = 0; - }; - -/** -* Data source interface. -* -* @lib videosource.lib -*/ -class CVSDataSource : - public CBase, - public MVTVideoSource, - public MVSBufferPool - { - public: // Constructor and destructor - - /** - * Static factory function to create data source instance. - * @param "aObserver" Pointer to data source observer. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to data source instance. - */ - static CVSDataSource* NewSourceL( MVSDataSourceObserver* aObserver ); - - public: // New functions - - /** - * Pure virtual function to switch active provider for source. - * @param "aNewProvider" Pointer to provider instance. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SwitchDataProviderL( CVSDataProvider* aNewProvider ) = 0; - - /** - * Temporarily pause video sending. Used during initialization. - */ - virtual void PauseSending() = 0; - - /** - * Resume video sending. Used during initialization. - */ - virtual void ResumeSending() = 0; - - public: // Functions from base classes - - protected: // New functions - - /** - * Inliner to return reference to the data source observer. - * @return Reference to the data source observer. - */ - inline MVSDataSourceObserver& Observer() const; - - /** - * Inliner to return reference to the provider that is active. - * @return Reference to the provider. - */ - inline CVSDataProvider& DataProvider() const; - - /** - * Inliner to update member variable holding pointer to provider with - * new provider pointer. - * @param "aNewProvider" Pointer to (new) provider. - * @return Pointer to (old) provider. - */ - inline CVSDataProvider* SwitchProvider( CVSDataProvider* aNewProvider ); - - protected: // Constructor and destructor - - /** - * Constructor. - */ - CVSDataSource(); - - private: // Constructor and destructor - - /** - * 2nd phase consturctor. - * @param "aObserver" Pointer to data source observer. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL( MVSDataSourceObserver* aObserver ); - - private: // New functions - - private: // Functions from base classes - - public: // Data - - protected: // Data - - private: // Data - - // Pointer to data source observer. - MVSDataSourceObserver* iObserver; - - // Pointer to active provider. - CVSDataProvider* iProvider; - }; - -#include "capivideosource.inl" - -#endif // CAPIVIDEOSOURCE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSCameraDataProvider.h --- a/vtprotocolplugins/VideoSource/inc/CVSCameraDataProvider.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,517 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CVSCAMERADATAPROVIDER_H -#define CVSCAMERADATAPROVIDER_H - -// INCLUDE FILES - -#include "CApiVideoSource.h" - -#include -#include -// CLASS FORWARDS - -class CVsFrameBuffer; - -// CLASS DECLARATION - -/** -* Internal MFrameBuffer API. -* -* @lib videosource.lib -* @since 5.0 -*/ -class MVsFrameBuffer - { - -public: - - /** - * Copies properties from the given frame buffer. - * @param "aSource" Source frame buffer from which propreties will - * be copied. - */ - virtual void CopyProperties( MFrameBuffer* aSource ) = 0; - - /** - * Copies properties from the given camera buffer. - * @param "aSource" Source camera buffer from which propreties will - * be copied. - */ - virtual void CopyProperties( MCameraBuffer* aSource ) = 0; - - /** - * Copies frame data and properties from the given frame buffer. - * @param "aSource" Source frame buffer from which propreties and - * frame data will be copied. - */ - virtual void CopyFrameL( MFrameBuffer* aSource ) = 0; - - /** - * Copies frame data and properties from the given camera buffer. - * @param "aSource" Source camera buffer from which propreties and - * frame data will be copied. - */ - virtual void CopyFrameL( MCameraBuffer* aSource ) = 0; - - }; - -/** -* Internal MFrameBuffer implementation. -* -* @lib videosource.lib -*/ -class CVsFrameBuffer : public CBase, public MVsFrameBuffer, - public MFrameBuffer, public MCameraBuffer - { - public: - - /** - * Constructor. - * @param "sSize" Size of stored frame in bytes. - * @exception Can leave with one of the system wide error codes. - */ - IMPORT_C static CVsFrameBuffer* NewL( TInt aSize ); - - /** - * Destructor. - */ - IMPORT_C ~CVsFrameBuffer(); - - public: // from MVsFrameBuffer - - /** - * @see MVsFrameBuffer::CopyProperties - */ - virtual void CopyProperties( MFrameBuffer* aSource ); - - /** - * @see MVsFrameBuffer::CopyProperties - */ - virtual void CopyProperties( MCameraBuffer* aSource ); - - /** - * @see MVsFrameBuffer::CopyFrameL - */ - virtual void CopyFrameL( MFrameBuffer* aSource ); - - /** - * @see MVsFrameBuffer::CopyFrameL - */ - virtual void CopyFrameL( MCameraBuffer* aSource ); - - public: // from MFrameBuffer - - /** - * @see MFrameBuffer::DataL or MCameraBuffer::DataL - */ - TDesC8* DataL( TInt aIndex ); - - /** - * @see MFrameBuffer::FrameL or MCameraBuffer::FrameL - */ - CFbsBitmap* FrameL( TInt aIndex ); - - /** - * @see MFrameBuffer::Release or MCameraBuffer::Release - */ - void Release(); - - /** - * @see MCameraBuffer::FrameSize - */ - TInt FrameSize(TInt aFrameIndex); - - /** - * @see MCameraBuffer::ChunkOffsetL - */ - TInt ChunkOffsetL(TInt aFrameIndex); - - /** - * @see MCameraBuffer::ChunkL - */ - RChunk& ChunkL(); - - /** - * @see MCameraBuffer::BitmapL - */ - CFbsBitmap& BitmapL(TInt aFrameIndex); - - /** - * @see MCameraBuffer::NumFrames - */ - TInt NumFrames(); - - private: - - /** - * Constructor. - */ - CVsFrameBuffer(); - - /** - * Second phase constructor. - * @param "aSize" Size of the frame in bytes. - */ - void ConstructL( TInt aSize ); - - private: - - HBufC8* iBuffer; - - TPtr8 iPtr; - - }; - -/** -* Internal implementation of onboard camera data provider base class. This -* class is inherited from public provider interface. -* -* @lib videosource.lib -*/ -class CVSCameraDataProvider : public CVSDataProvider, public MCameraObserver, public MVtImageScalerObserver, public MCameraObserver2 - { - public: // Constructor and destructor - - /** - * Factory function to create instance of onboard camera data provider. - * @param "aObserver" Pointer to provider observer. - * @param "aProviderIndex" Index of the provider to be created. - * @param "aPool" Pointer to data MVSBufferPool that gives buffer to - * data provider. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new provider instance. - */ - static CVSCameraDataProvider* NewL( - MVSDataProviderObserver* aObserver, - TInt aProviderIndex, - MVSBufferPool* aPool ); - - /** - * Destructor. - */ - ~CVSCameraDataProvider(); - - public: // New functions - - public: // Functions from base classes - - /** - * Initialize provider. - * @param "aInitParams" Initialization parameters. - * @exception Can leave with one of the system wide error codes. - */ - void InitializeL( const TDesC8& aInitParams ); - - /** - * Cancel initialization of camera provider. - */ - void CancelInitializing(); - - /** - * Return digital zoom factor. - * @return Digital zoom factor. - */ - virtual TInt DigitalZoomFactor() const; - - /** - * Set digital zoom factor. - * @param "aDigitalZoomFactor" Digital zoom factor. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SetDigitalZoomFactorL( TInt aDigitalZoomFactor = 0 ); - - /** - * Start view finder bitmaps. - * @param "aSize" Size of the returned view finder bitmap. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderBitmapsL( TSize& aSize ); - - /** - * Start view finder bitmaps. - * @param "aSize" Size of the returned view finder bitmap. - * @param "aClipRect" Required clip rectangle. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderBitmapsL( TSize& aSize,TRect& aClipRect ); - - /** - * Stop view finder bitmaps. - */ - virtual void StopViewFinder(); - - /** - * Test if view finder is active. - * @return ETrue if view finder active. - */ - virtual TBool ViewFinderActive() const; - - /** - * Start view finder bitmaps using direct screen access. - * @param "aWs" Window server session. - * @param "aScreenDevice" Screen device. - * @param "aWindow" Displayable window. - * @param "aScreenRect" Portion of the screen to which view finder data - * is to be transferred. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderDirectL( - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - TRect& aScreenRect ); - - /** - * Start view finder bitmaps using direct screen access. - * @param "aWs" Window server session. - * @param "aScreenDevice" Screen device. - * @param "aWindow" Displayable window. - * @param "aScreenRect" Portion of the screen to which view finder data - * is to be transferred. - * @param "aClipRect" The rectangle to which the screen will be clipped. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderDirectL( - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - TRect& aScreenRect, - TRect& aClipRect ); - - /** - * Return provider information. - * @param @param "aInfo" Reference to variable to where the provider - * information is copied. - */ - virtual void ProviderInfo( TVSDataProviderInfo& aInfo ); - - /** - * See CVSDataProvider for description. - */ - virtual void SetViewFinderMirrorL( TBool aMirror ); - - /** - * See CVSDataProvider for description. - */ - virtual TBool ViewFinderMirror() const; - - /** - * See CVSDataProvider for description. - */ - virtual void FreezeL(); - - /** - * See CVSDataProvider for description. - */ - virtual void UnfreezeL(); - - /** - * See CVSDataProvider for description. - */ - virtual TBool IsFrozen() const; - - /** - * @see CVSDataProvider::SetContrastL for description. - */ - virtual void SetContrastL( TInt aContrast ); - - /** - * @see CVSDataProvider::GetContrast - */ - virtual TInt GetContrast( TInt& aContrast ) const; - - /** - * @see CVSDataProvider::SetBrightnessL for description. - */ - virtual void SetBrightnessL( TInt aBrightness ); - - /** - * @see CVSDataProvider::GetBrightness for description. - */ - virtual TInt GetBrightness( TInt& aBrightness ) const; - - /** - * @see CVSDataProvider::SetWhiteBalanceL for description. - */ - virtual void SetWhiteBalanceL( - CCamera::TWhiteBalance aWhiteBalance = CCamera::EWBAuto ); - - /** - * @see CVSDataProvider::GetWhiteBalance for description. - */ - virtual TInt GetWhiteBalance( - CCamera::TWhiteBalance& aWhiteBalance ) const; - - /** - * @see CVSDataProvider::GetColorTone for description. - */ - virtual TInt GetColorTone( - CCamera::CCameraImageProcessing::TEffect& aColorTone ) const; - - /** - * @see CVSDataProvider::SetColorToneL for description. - */ - virtual void SetColorToneL( - CCamera::CCameraImageProcessing::TEffect aValue ); - - protected: // from MCameraObserver - - /** - * @see MCameraObserver::ImageReady - */ - virtual void ImageReady( CFbsBitmap* aBitmap, HBufC8* aData, - TInt aError ); - - /** - * @see MCameraObserver::PowerOnComplete - */ - virtual void PowerOnComplete( TInt aError ); - - /** - * @see MCameraObserver::ViewFinderFrameReady - */ - virtual void ViewFinderFrameReady( CFbsBitmap& aFrame ); - - protected: // from MVtImageScalerObserver - - /** - * @see MVtImageScalerObserver::ScalingFinished( TInt aError ) - */ - virtual void ScalingFinished( TInt aError ); - - protected: // from MCameraObserver2 - - /** - * @see MCameraObserver2::ImageBufferReady - */ - virtual void ImageBufferReady( MCameraBuffer& aCameraBuffer, - TInt aError ); - - protected: // New functions - - /** - * Inliner to return reference to the onboard camera handle. - * @return Reference to the onboard camera handle. - */ - inline CCamera& Camera() const; - - protected: // Constructors and destructor - - /** - * Constructor. - * @param "aObserver" Pointer to provider observer. - */ - CVSCameraDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - private: // Constructors and destructors - - /** - * 2nd phase constructor. - * @param "aProviderIndex" Index of the provider to be created. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL( TInt aProviderIndex ); - - void FreezeViewFinderFrame( CFbsBitmap& aFrame ); - - void ScaleFrozenBitmapL( TSize& aSize ); - - private: // New functions - - /** - * Return provider information. - */ - void ProviderInfoExL( TVSDataProviderInfo& aInfo ); - - private: // Functions from base classes - - public: // Data - - protected: // Data - - enum TFreezePendingFlags - { - EViewFinderFreezePending = ( 1 << 0 ), - EVideoFrameFreezePending = ( 1 << 1 ) - }; - - // Camera handle number. - TInt iCameraHandle; - - // ETrue after ReserveComplete for iCamera - TBool iReserverComplete; - - // ETrue after PowerOnComplete for iCamera - TBool iPowerOnComplete; - - // ETrue after Freeze - TBool iFrozen; - - // Contains pending freeze flags after Freeze - TUint iFreezePendingFlags; - - // has frozen viewfinder frame copy - TBool iHasFrozenVFFrameCopyCreated; - - CVsFrameBuffer* iFrozenFrame; - - RCriticalSection iFreezeCS; - - private: // Data - - // Camera handle. - CCamera* iCamera; - - // owned: Copy of frozen VF frame - CFbsBitmap* iFrozenVFFrameCopy; - - // - CVtImageBitmap* iSource; - - // owned: Scaled version of frozen VF frame (this is sent) - CFbsBitmap* iFrozenVFFrameToBeSent; - - // - CVtImageBitmap* iTarget; - - // owned: Scaler instance - CVtImageScaler* iScaler; - - // ETrue when frozen VF frame is ready to be sent EFalse otherwise - TBool iFrozenVfFrameReady; - - // Camera image processing - CCamera::CCameraImageProcessing* iCamImgProc; - - private: // friends - - // Stif test module must be set as friend to be able to call protected - // and private methods - friend class CstiffVideoSourceAPICases; - - }; - -#include "CVSCameraDataProvider.inl" - -#endif // CVSCAMERADATAPROVIDER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSCameraDataProvider.inl --- a/vtprotocolplugins/VideoSource/inc/CVSCameraDataProvider.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::Camera -// ----------------------------------------------------------------------------- -// -inline CCamera& CVSCameraDataProvider::Camera() const - { - return *iCamera; - } - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSControllerImp.h --- a/vtprotocolplugins/VideoSource/inc/CVSControllerImp.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CVSCONTROLLERIMP_H -#define CVSCONTROLLERIMP_H - -// INCLUDE FILES -#include "CApiVideoSource.h" - -// CLASS DECLARATIONS - -/** -* Internal implementation of controller. This class is inherited from -* public controller interface. -* -* @lib videosource.lib -*/ -class CVSControllerImp : public CVSController - { - public: // Constructors and destructor - - /** - * Static factory function to create controller instance. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new controller instance. - */ - static CVSControllerImp* NewL(); - - /** - * Destructor. - */ - ~CVSControllerImp(); - - public: // New functions - - public: // Functions from base classes - - /** - * Create data source instance. - * @param "aObserver" Pointer to data source observer. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new data source instance. - */ - virtual CVSDataSource* CreateDataSourceL( - MVSDataSourceObserver* aObserver ); - - /** - * Return provider count and provider index. - * @return Number of providers available. Count also acts as zero - * based provider index. - */ - virtual TInt ProvidersAvailable(); - - /** - * Return provider information. - * @param "aProviderIndex" Index of the provider to return information - * for. - * @param "aInfo" Reference to the variable where the provider - * information is copied. - * @exception Can leave with one of the system wide error codes. - */ - virtual void ProviderInfoL( - TInt aProviderIndex, - TVSDataProviderInfo& aInfo ); - - /** - * Create provider instance. - * @param "aProviderIndex" Index of the provider to be created. - * @param "aObserver" Pointer to provider observer. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new provider instance. - */ - virtual CVSDataProvider* CreateDataProviderL( - TInt aProviderIndex, - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - protected: // New functions - - protected: // Functions from base classes - - private: // Constructors and destructor - - /** - * 2nd phase constructor. - * @param "aObserver" Pointer to controller observer - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL( MVSControllerObserver* aObserver ); - - private: // New functions - - private: // Functions from base classes - - public: // Data - - protected: // Data - - private: // Data - - }; - -#endif // CVSCONTROLLERIMP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSDataSourceImp.h --- a/vtprotocolplugins/VideoSource/inc/CVSDataSourceImp.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,577 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CVSDATASOURCEIMP_H -#define CVSDATASOURCEIMP_H - -// INCLUDE FILES - -#include "CApiVideoSource.h" - -// FORWARD DECLARATIONS - -class CVSDataSourceImp; -class CVSMMFDataBuffer; - -// CLASS DECLARATION - -/** -* Active Object that handles switch of active provider for data source. -* -* @lib videosource.lib -*/ -class CVSProviderSwitchAO : public CActive - { - public: // Constructors and destructor - - /** - * Leave safe static constructor. - * @param "aDataSourceImp" Pointer to VSDataSourceImp instance. - */ - static CVSProviderSwitchAO* NewL( CVSDataSourceImp* aDataSourceImp ); - - /** - * Destructor. - */ - ~CVSProviderSwitchAO(); - - public: // New functions - - /** - * Adds this instance to calling thread's active scheduler. - * @param "aEventHandler" Reference to asynchronous event handler. This - * will be given to provider that will be switched as active provider - * in SourceThreadLogon() call. - * @return Possible error code. - */ - TInt ThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * Removes this instance from calling thread's active scheduler. - */ - void ThreadLogoff(); - - /** - * Initializes provider switch. - * @param "aNewProvider" Pointer to CVSDataProvider instance that will - * be set as active provider. - */ - void InitiateProviderSwitch( CVSDataProvider* aNewProvider ); - - /** - * Return reference to event handler. - */ - inline MAsyncEventHandler& EventHandler() { return *iEventHandler; } - - /** - * Return pointer to new provider. - */ - inline CVSDataProvider*& NewDataProvider() { return iNewProvider; } - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - /** - * Constructor. - * @param "aDataSourceImp" Pointer to VSDataSourceImp instance. - */ - CVSProviderSwitchAO( CVSDataSourceImp* aDataSourceImp ); - - /** - * Leave safe construtor - */ - void ConstructL(); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - private: // New functions - - /** - * Signals this active object with given error code. - * @param "aError" Error code with which active object will be signalled. - */ - void Signal( TInt aError ); - - public: // Data - - protected: // Data - - private: // Data - - // Pointer to data source implementation. - CVSDataSourceImp* iDataSourceImp; // not owned - - // Pointer to data provider that will be switched. - CVSDataProvider* iNewProvider; // not owned - - // Id of thread whose active scheduler this instance is added into. - TThreadId iThreadId; - - // Pointer to async handler that will be given to the new provider in - // SourceThreadLogon() call. - MAsyncEventHandler* iEventHandler; // not owned - - // Critical section for switch handling - RCriticalSection iSwitchCs; - - }; - -/** -* Data source observer active object. This AO is needed because we want to -* call vsProviderSwitchDone() callback -* in correct thread context. -* -* @lib videosource.lib -*/ -class CVSDataSourceObserverAO : public CActive - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CVSDataSourceObserverAO(); - - /** - * Destructor. - */ - ~CVSDataSourceObserverAO(); - - public: // New functions - - /** - * This method is called when CVSProviderSwitchAO has completed provider - * switching. - * @param "aObserver" Observer that will signalled when RunL() is called. - * @param "aOldProvider" Pointer to provider that was active before the - * provider switch was done. - */ - void vsProviderSwitchDone( - MVSDataSourceObserver& aObserver, - CVSDataProvider* aOldProvider ); - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - private: // New functions - - /** - * Signals this active object with given error code. - * @param "aError" Error code with which active object will be signalled. - */ - void Signal( TInt aError ); - - public: // Data - - protected: // Data - - private: // Data - - // Data source observer pointer - MVSDataSourceObserver* iObserver; // not owned - - // Previous active provider - CVSDataProvider* iOldProvider; // not owned - - // Thread Id whose active scheduler this instance is added into - TThreadId iThreadId; - }; - - - -/** -* Internal implementation of data source. This class is inherited from -* public data source interface. Some of the implemented MVTVideoSource, -* MVTVideoInput calls are forwarded to active data provider, -* some are processed here. -* -* @lib videosource.lib -*/ -class CVSDataSourceImp : public CVSDataSource - { - public: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CVSDataSourceImp* NewSourceL(); - - public: // New functions - - public: // Functions from base classes - - /** - * Switch active provider for source. - * @param "aNewProvider" Pointer to provider instance. - * @exception Can leave with one of the system wide error codes. - */ - void SwitchDataProviderL( CVSDataProvider* aNewProvider ); - - /** - * @see CVSDataSource::PauseSending - */ - void PauseSending(); - - /** - * @see CVSDataSource::ResumeSending - */ - void ResumeSending(); - - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CVSDataSourceImp(); - - public: // Functions from base classes - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - void BufferEmptiedL( CMMFBuffer* aBuffer ); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual TBool CanCreateSourceBuffer(); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual CMMFBuffer* CreateSourceBufferL( - TMediaId aMediaId, - TBool &aReference ); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual CMMFBuffer* CreateSourceBufferL( - TMediaId aMediaId, - CMMFBuffer& aSinkBuffer, - TBool &aReference ); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual void SourceThreadLogoff(); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual TInt SourcePrimeL(); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual TInt SourcePlayL(); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual TInt SourcePauseL(); - - /** - * From MVTVideoSource / MDataSource. See MDataSource for description. - */ - virtual TInt SourceStopL(); - - protected: // New functions - - protected: // Functions from base classes - - /** - * From MDataSource. See MDataSource for description. - */ - virtual void ConstructSourceL(const TDesC8& aInitData); - - public: // Functions from base classes - - - virtual const RArray& GetMultimediaTypesL() const; - - - - public: // Functions from base classes - - /** - * From MVTVideoInput. See MVTVideoInput for description. - */ - virtual void SetFormatL( const TDesC8& aFormat ); - - /** - * From MVTVideoInput. See MVTVideoInput for description. - */ - virtual void SetFrameRateL( TReal32 aFrameRate ); - - /** - * From MVTVideoInput. See MVTVideoInput for description. - */ - virtual void SetVideoFrameSizeL( const TSize& aSize ); - - /** - * From MVTVideoInput. See MVTVideoInput for description. - */ - virtual void GetVideoFrameSizeL( TSize& aSize ) const; - - private: // New functions - - /** - * Starts provider switching. Switching must be done in correct thread - * context. - * @param "aNewProvider" Pointer to provider that will be switched as - * active. - * @param "aEventHandler" Reference to asynchronous event handler. - * @exception Can leave with one of the system wide error codes. - */ - void DoProviderSwitchL( - CVSDataProvider* aNewProvider, - MAsyncEventHandler& aEventHandler ); - - /** - * Test if provider switch operation is ongoing. - * @return ETrue if provider switch operation was suspended because - * buffers were not free. - */ - inline TBool SwitchPending() { return iSwitchPending; }; - - /** - * Notifies provider observer about error occurred in provider switch. - * @param "aError" Standard Symbian error code - */ - void ProviderSwitchError( TInt aError ); - - private: // Constructors and destructor - - /** - * Constructor. - */ - CVSDataSourceImp(); - - private: // Functions from base classes - - /** - * From MVSBufferPool. See MVSBufferPool for description. - */ - virtual CVSMMFDataBuffer* GetBufferL( TBool aRemove ); - - /** - * From MVSBufferPool. See MVSBufferPool for description. - */ - virtual void FreeBufferL( CVSMMFDataBuffer* aBuffer ); - - private: // New functions - - /** - * Add buffer to free buffer pool without locking queue cs. - * @return One of the system wide error codes or KErrNone if no error - * happens. - * @param "aBuffer" A pointer to buffer to add to free buffer pool. - * If buffer pointer is found from active buffer pool it is first - * removed from there. - */ - TInt FreeBufferNoWait( CVSMMFDataBuffer* aBuffer ); - - public: // Data - - protected: // Data - - private: // Data - - // Data source state - enum TDataSourceState - { - EStopped, - EPrimed, - EPlaying - }; - - // Data source method call flags - enum TCallFlags - { - // SetVideoFrameSizeL() was called - ESetSizeCalled = ( 1 << 0 ), - - // SetFrameRateL() was called - ESetFrameRateCalled = ( 1 << 1 ), - - // SetFormatL() was called - ESetFormatCalled = ( 1 << 2 ) - }; - - // Data source state - TDataSourceState iDSState; - - // Call flags - TUint32 iCallFlags; - - - // Provider switch AO pointer - CVSProviderSwitchAO* iProviderSwitchAO; - - // Data source observer AO pointer - CVSDataSourceObserverAO* iDataSourceObserverAO; // owned - - // Format heap descriptor pointer - HBufC8* iFormat; // owned - - // Frame rate - TReal32 iFrameRate; - - // Frame size - TSize iSize; - - // SourceThreadLogon() called flag - TBool iThreadLogonCalled; - - // Array to return in response to GetMultimediaTypesL call - // (supported video frame formats). - RArray iProtoMimeTypes; - - // Video frame formats supported by all providers. - CDesC8Array* iSupportedVideoFormats; - - // Video frame sizes for each format supported by all providers - class TVSFrameSize - { - public: - TPtrC8 iFormat; // Primary key, 1st field - TSize iSize; - }; - RArray iSupportedVideoSizes; - - // Video frame rates for each format and frame size supported by all - // providers. - class TVSFrameRate - { - public: - TPtrC8 iFormat; // Primary key, 1st field - TSize iSize; // Primary key, 2nd field - TReal32 iRate; - }; - - RArray iSupportedFrameRates; - - private: // Data - - // Needs to be friend - friend class CVSProviderSwitchAO; - - // MIME type holder - TBuf8<128> iYuv420PlanarDesc; - - private: // Data - - // Critical section for queue handling - RCriticalSection iQueueCs; - - // Critical section for queue handling - RCriticalSection iPauseCs; - - // Queue for buffers that are free for use - RPointerArray iFreeQueue; - - // Queue for buffers that are being used by the Protocol - RPointerArray iActiveQueue; - - // All buffers allocated by CreateSourceBufferL() - RPointerArray iAllocatedBuffers; - - // Number of buffer requests by CreateSourceBufferL() - TInt iRequestedBufferCount; - - // Set to ETrue when protocol is initializing (From - // SourceThreadLogon to SourcePlayL) - TBool iProtoInitOngoing; - - // Set to ETrue if provider switch operation was suspended because - // protocol was initializing - TBool iProviderSwitchRequestDuringProtoInit; - - // Temporary save pointer, not owned - CVSDataProvider* iNewProvider; - - // Critical section for synchronizing access to - // iProviderSwitchRequestDuringProtoInit and iProtoInitOngoing - RCriticalSection iProtoInitCS; - - // Set to ETrue during DoProviderSwitchL - TBool iSwitchOngoing; - - // Set to ETrue when DoProviderSwitchL is needed - TBool iSwitchPending; - - // Set to ETrue when video sending is paused to Protocol - // Guarded by: iPauseCs - TBool iSendingPaused; - - // If true then FBS was started during SourceThreadLogon() and - // thus should be stopped in SourceThreadLogoff() - TBool iFbsStarted; - }; - -#endif // CVSDATASOURCEIMP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSMMFDataBuffer.h --- a/vtprotocolplugins/VideoSource/inc/CVSMMFDataBuffer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CVSMMFDATABUFFER_H -#define CVSMMFDATABUFFER_H - -// INCLUDE FILES - -#include - -// FORWARD DECLARATIONS - -class MFrameBuffer; -class MCameraBuffer; - -/** -* API of data buffer that allows provider's buffer contents to -* be given to consumer without copying. -* -* @lib videosource.lib -* @since 5.0 -*/ -class MVSMMFDataBuffer - { - -public: - - /** - * Sets the ECAM frame buffer. - * @param "aFrameBuffer" MFrameBuffer pointer. - */ - virtual void SetFrameBufferL( MFrameBuffer* aFrameBuffer ) = 0; - - /** - * Sets the ECAM camera buffer. - * @param "aFrameBuffer" MFrameBuffer pointer. - */ - virtual void SetFrameBufferL( MCameraBuffer* aCameraBuffer ) = 0; - - /** - * Calls Release() for MFrameBuffer and sets aFrameBuffer to NULL. - */ - virtual void ReleaseL() = 0; - - /** - * Sets start offset and length of internal iPtr variable (when - * pointing to iData). - */ - virtual void SetBufferOffset( TInt aOffset ) = 0; - - /** - * Reallocates the max size in bytes. - * @param "aMaxBufferSize" New size in bytes. - * @exception Can leave with one of the system wide error codes. - */ - virtual void ReAllocBufferL( TInt aMaxBufferSize ) = 0; - - /** - * Checks whether buffer needs reset or not. - * @return ETrue if buffer needs reset, EFalse otherwise. - */ - virtual TBool NeedsReset() const = 0; - - /** - * Sets needs reset state. - * @param aNeedsReset New reset state. - */ - virtual void SetNeedsReset( TBool aNeedsReset ) = 0; - - /** - * Resets buffer (i.e. clears data). - */ - virtual void Reset() = 0; - - }; - -/** -* Implementation of data buffer that allows provider's buffer contents to -* be given to consumer without copying. -* -* @lib videosource.lib -*/ -class CVSMMFDataBuffer : public CMMFDataBuffer, public MVSMMFDataBuffer - { - public: // new methods - - /** - * Static factory function to create instance of this class. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - IMPORT_C static CVSMMFDataBuffer* NewL(); - - /** - * Static factory function to create instance of this class. - * @param "aMaxBufferSize" Buffer size - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - IMPORT_C static CVSMMFDataBuffer* NewL( TInt aMaxBufferSize ); - - /** - * Destructor. - */ - IMPORT_C ~CVSMMFDataBuffer(); - - public: // from CMMFDataBuffer - - /** - * @see CMMFDataBuffer::Data - */ - virtual TDes8& Data(); - - /** - * @see CMMFDataBuffer::Data - */ - virtual const TDesC8& Data() const; - - /** - * @see CMMFDataBuffer::SetStatus - */ - virtual void SetStatus( TBufferStatus aStatus ); - - /** - * @see CMMFDataBuffer::SetRequestSizeL - */ - virtual void SetRequestSizeL( TInt aSize ); - - /** - * @see CMMFDataBuffer::BufferSize - */ - virtual TUint BufferSize() const; - - /** - * @see CMMFDataBuffer::SetPosition - */ - virtual void SetPosition( TUint aPosition ); - - public: // from MVSMMFDataBuffer - - /** - * @see MVSMMFDataBuffer::SetFrameBufferL - */ - void SetFrameBufferL( MFrameBuffer* aFrameBuffer ); - - /** - * @see MVSMMFDataBuffer::SetFrameBufferL - */ - void SetFrameBufferL( MCameraBuffer* aCameraBuffer ); - - /** - * @see MVSMMFDataBuffer::ReleaseL - */ - void ReleaseL(); - - /** - * @see MVSMMFDataBuffer::SetBufferOffset - */ - void SetBufferOffset( TInt aOffset ); - - /** - * @see MVSMMFDataBuffer::ReAllocBufferL - */ - void ReAllocBufferL( TInt aMaxBufferSize ); - - /** - * @see MVSMMFDataBuffer::NeedsReset - */ - TBool NeedsReset() const; - - /** - * @see MVSMMFDataBuffer::SetNeedsReset - */ - void SetNeedsReset( TBool aNeedsReset ); - - /** - * @see MVSMMFDataBuffer::Reset - */ - void Reset(); - - - private: // Constructors and destructor - - /** - * Constructor. - */ - CVSMMFDataBuffer(); - - /** - * 2nd phase constructor. - * @param "aMaxBufferSize" Buffer size in bytes. - */ - void ConstructL( TInt aMaxBufferSize ); - - public: // Data - - protected: // Data - - private: // Data - - // Pointer to ECAM buffer - MFrameBuffer* iFrameBuffer; - - // Pointer to ECAM buffer - MCameraBuffer* iCameraBuffer; - - // Pointer to data buffer ( n/a for ECAM ) - TUint8* iData; - - // TPtr8 pointing to iData or ECAM buffer data content - TPtr8 iPtr; - - // Max buffer size ( n/a for ECAM ) - TInt iMaxBufferSize; - - // ETrue if buffers needs reset, EFalse otherwise - TBool iNeedsReset; - - // ETrue if buffer is set, EFalse otherwise - TBool iIsBufferSet; - - }; - -#endif // CVSMMFDATABUFFER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSOnboardCameraDataProvider.h --- a/vtprotocolplugins/VideoSource/inc/CVSOnboardCameraDataProvider.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,387 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CVSONBOARDCAMERADATAPROVIDER_H -#define CVSONBOARDCAMERADATAPROVIDER_H - -// INCLUDE FILES - -#include "CVSCameraDataProvider.h" - -// CLASS DECLARATION - -/** -* Handles provider error notification using interface to provider callback -* functions. Provider errors can occur in two threads and this class provides -* error notification in the same thread context that the provider was created. -* -* @lib videosource.lib -*/ -class CProviderErrorNotifierAO : public CActive - { - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CProviderErrorNotifierAO* NewL(); - - /** - * Destructor. - */ - ~CProviderErrorNotifierAO(); - - private: // New functions - - /** - * Notify provider observer about error. - * @param "aObserver" Pointer to provider observer to notify. - * @param "aError" Error code. - */ - void NotifyError( MVSDataProviderObserver* aObserver, TInt aError ); - - private: // Constructors and destructor - - /** - * Constructor. - */ - CProviderErrorNotifierAO(); - - /** - * 2nd phase constructor. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL(); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - public: // Data - - protected: // Data - - private: // Data - - // Pointer to provider observer that will receive the error - // notification. - MVSDataProviderObserver* iObserver; - - // Error code. - TInt iError; - - // Critical section to synchronize access to this object. - RCriticalSection iCS; - - // Thread id of the thread in which this object was created. - TThreadId iThreadId; - - private: // Data - - // This class is private to CVSDataProvider. - friend class CVSDataProvider; - }; - -/** -* Makes onboard camera Reserve and PowerOn function calls synchronous. -* -* @lib videosource.lib -*/ -class CSyncCameraReserve : public CActive - { - public: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CSyncCameraReserve* NewL(); - - public: // New functions - - /** - * Starts waiting and returns when RunL is called. - * @exception Can leave with one of the system wide error codes. - */ - void StartL(); - - private: // Constructors and destructor - - /** - * Constructor. - */ - CSyncCameraReserve(); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - private: // Data - - // Active scheduler loop owner. See CActiveSchedulerWait for - // description. - CActiveSchedulerWait iWait; - }; - -/** -* Internal implementation of onboard camera data provider. This -* class is inherited from onboard camera data provider base class. -* -* @lib videosource.lib -*/ -class CVSOnboardCameraDataProvider : public CVSCameraDataProvider - { - public: // Constructors and destructor - - /** - * Constructor. - * @param "aObserver" Pointer to provider observer. - * @param "aPool" Pointer to data MVSBufferPool that gives buffer to - * data provider. - */ - CVSOnboardCameraDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - /** - * Destructor. - */ - ~CVSOnboardCameraDataProvider(); - - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - /** - * See CVSDataProvider for description. - */ - void PrimeL(); - - private: // Functions from base classes - - /** - * See MDataSource for description. - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ); - - /** - * See MDataSource for description. - */ - virtual void BufferEmptiedL( CMMFBuffer* aBuffer ); - - /** - * See MDataSource for description. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * See MDataSource for description. - */ - virtual void SourceThreadLogoff(); - - /** - * See MDataSource for description. - */ - virtual void SourcePrimeL(); - - /** - * See MDataSource for description. - */ - virtual void SourcePlayL(); - - /** - * See MDataSource for description. - */ - virtual void SourcePauseL(); - - /** - * See MDataSource for description. - */ - virtual void SourceStopL(); - - private: // Functions from base classes - - /** - * See MVTVideoInput for description. - */ - virtual void SetFormatL( const TDesC8& aFormat ); - - /** - * See MVTVideoInput for description. - */ - virtual void SetFrameRateL( TReal32 aFrameRate ); - - /** - * See MVTVideoInput for description. - */ - virtual void SetVideoFrameSizeL( const TSize& aSize ); - - /** - * See MVTVideoInput for description. - */ - virtual void GetVideoFrameSizeL( TSize& aSize ) const; - - private: // from MCameraObserver - - /** - * @see MCameraObserver::ReserveComplete - */ - virtual void ReserveComplete( TInt aError ); - - /** - * @see MCameraObserver::FrameBufferReady - */ - virtual void FrameBufferReady( MFrameBuffer* aFrameBuffer, - TInt aError ); - - private: // from MCameraObserver2 - - /** - * @see MCameraObserver2::HandleEvent - */ - virtual void HandleEvent(const TECAMEvent& aEvent); - - /** - * @see MCameraObserver2::ViewFinderReady - */ - virtual void ViewFinderReady(MCameraBuffer& aCameraBuffer,TInt aError); - - /** - * @see MCameraObserver2::VideoBufferReady - */ - virtual void VideoBufferReady(MCameraBuffer& aCameraBuffer,TInt aError); - - private: // Functions from base classes - - /** - * Get video frame size. - */ - virtual void GetVideoFrameSize( - TSize& aSize, - TInt aSizeIndex, - const TDesC8& aFormat ); - - /** - * Get video frame rate. - */ - virtual void GetVideoFrameRate( - TReal32& aRate, - TInt aRateIndex, - const TDesC8& aFormat, - const TSize& aSize ); - - void FreezeFrame( MFrameBuffer* aFrameBuffer ); - - void FreezeFrame( MCameraBuffer* aCameraBuffer ); - - public: // Data - - protected: // Data - - private: // Data - - // Onboard camera dublicate for the second thread. Owned. - CCamera* iCameraDuplicate; - - // MMF controller framwork mixin for event handling - MAsyncEventHandler* iEventHandler; - - // Enumerated values for possible states this class can have. - enum TState - { - EStopped, - EPrimed, - EPlaying - }; - - // One of the enumerated states. - TState iState; - - // ECAM frame rate index. - TInt iFrameRateIndex; - - // ECAM frame size index. - TInt iFrameSizeIndex; - - // Frame size. - TSize iFrameSize; - - // ECAM Video frame format. - CCamera::TFormat iFormat; - - // Pointer to AO that makes iCameraDuplicate.Reserve() and PowerOn() - // synchronous. Owned. These are called in SourcePrimeL and because - // it is synchronous, reserve & poweron must be too. - CSyncCameraReserve* iSyncReserve; - - // - TBool iAsynchronousReserveIssued; - - // Pointer to dublicated camera bitmap - CFbsBitmap* iDublicatedBitmap; - - // Camera lost by force indicator - TBool iCameraLost; - - private: // friends - - // Stif test module must be set as friend to be able to call protected - // and private methods - friend class CstiffVideoSourceAPICases; - - }; - -#endif // CVSONBOARDCAMERADATAPROVIDER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/CVSStillImageDataProvider.h --- a/vtprotocolplugins/VideoSource/inc/CVSStillImageDataProvider.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,532 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -#ifndef CVSSTILLIMTAGEDATAPROVIDER_H -#define CVSSTILLIMTAGEDATAPROVIDER_H - -// INCLUDE FILES - -#include -#include "CApiVideoSource.h" -#include "cvtimagescaler.h" -#include - -#include "cactivewait.h" -#include "mmultiframeprovider.h" - -// FORWARD DECLARATIONS - -class CImageDecoder; -class CVSStillImageDataProvider; -class CVSFrameRateTimer; -class CVtImageBitmap; -class CMultiframeProvider; - - -// CLASS DECLARATION - -/** -* Internal implementation of still image data provider. This -* class is inherited from from public provider interface. -* -* @lib videosource.lib -*/ -class CVSStillImageDataProvider : public CVSDataProvider, MMultiframeprovider - { - public: // Constructors and destructor - - /** - * Static factory function create instance of this class. - * @param "aObserver" Pointer to provider observer. - * @param "aPool" Pointer to data MVSBufferPool that gives buffer to - * data provider. - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CVSStillImageDataProvider* NewL( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - /** - * Destructor. - */ - ~CVSStillImageDataProvider(); - - public: // New functions - - public: // Functions from base classes - - /** - * Initialize provider. - * @param "aInitParams" Reference to the initialization parameters. - * @exception Can leave with one of the system wide error codes. - */ - void InitializeL( const TDesC8& aInitParams ); - - /** - * Cancel initialization of still image provider. - */ - void CancelInitializing(); - - /** - * Return digital zoom factor. - * @return Digital zoom factor. - */ - virtual TInt DigitalZoomFactor() const; - - /** - * Set digital zoom factor. - * @param "aDigitalZoomFactor" Digital zoom factor. - * @exception Can leave with one of the system wide error codes. - */ - virtual void SetDigitalZoomFactorL( TInt aDigitalZoomFactor = 0 ); - - /** - * Start view finder bitmaps. - * @param "aSize" Size of the returned view finder bitmap. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderBitmapsL( TSize& aSize ); - - /** - * Start view finder bitmaps. - * @param "aSize" Size of the returned view finder bitmap. - * @param "aClipRect" Required clip rectangle. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderBitmapsL( TSize& aSize,TRect& aClipRect ); - - /** - * Stop view finder bitmaps. - */ - virtual void StopViewFinder(); - - /** - * Test if view finder is active. - * @return ETrue if view finder active. - */ - virtual TBool ViewFinderActive() const; - - /** - * Start view finder bitmaps using direct screen access. - * @param "aWs" Window server session. - * @param "aScreenDevice" Screen device. - * @param "aWindow" Displayable window. - * @param "aScreenRect" Portion of the screen to which view finder data - * is to be transferred. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderDirectL( - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - TRect& aScreenRect ); - - /** - * Start view finder bitmaps using direct screen access. - * @param "aWs" Window server session. - * @param "aScreenDevice" Screen device. - * @param "aWindow" Displayable window. - * @param "aScreenRect" Portion of the screen to which view finder data - * is to be transferred. - * @param "aClipRect" The rectangle to which the screen will be clipped. - * @exception Can leave with one of the system wide error codes. - */ - virtual void StartViewFinderDirectL( - RWsSession& aWs, - CWsScreenDevice& aScreenDevice, - RWindowBase& aWindow, - TRect& aScreenRect, - TRect& aClipRect ); - - /** - * Return provider information. - * @param @param "aInfo" Reference to variable to where the provider - * information is copied. - */ - virtual void ProviderInfo( TVSDataProviderInfo& aInfo ); - - /** - * See CVSDataProvider for description. - */ - virtual void SetViewFinderMirrorL( TBool aMirror ); - - /** - * See CVSDataProvider for description. - */ - virtual TBool ViewFinderMirror() const; - - /** - * See CVSDataProvider for description. - */ - virtual void FreezeL(); - - /** - * See CVSDataProvider for description. - */ - virtual void UnfreezeL(); - - /** - * See CVSDataProvider for description. - */ - virtual TBool IsFrozen() const; - - /** - * @See CVSDataProvider::SetContrastL for description. - */ - virtual void SetContrastL( TInt aContrast ); - - /** - * @See CVSDataProvider::GetContrast for description. - */ - virtual TInt GetContrast( TInt& aContrast ) const; - - /** - * @See CVSDataProvider::SetBrightnessL for description. - */ - virtual void SetBrightnessL( TInt aBrightness ); - - /** - * @See CVSDataProvider::GetBrightness for description. - */ - virtual TInt GetBrightness( TInt& aBrightness ) const; - - /** - * @See CVSDataProvider::SetWhiteBalanceL for description. - */ - virtual void SetWhiteBalanceL( - CCamera::TWhiteBalance aWhiteBalance = CCamera::EWBAuto); - - /** - * @See CVSDataProvider::GetWhiteBalance for description. - */ - virtual TInt GetWhiteBalance( - CCamera::TWhiteBalance& aWhiteBalance ) const; - - /** - * @See CVSDataProvider::GetColorTone for description. - */ - virtual TInt GetColorTone( - CCamera::CCameraImageProcessing::TEffect& aColorTone) const; - - /** - * @See CVSDataProvider::SetColorToneL for description. - */ - virtual void SetColorToneL( - CCamera::CCameraImageProcessing::TEffect aValue ); - - protected: // New functions - - protected: // Functions from base classes - - private: // New functions - - /** - * See CVSDataProvider for description. - */ - void PrimeL(); - - private: - - private: // Functions from base classes - - /** - * See MDataSource for description. - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ); - - private: - - /** - * See MDataSource for description. - */ - virtual void BufferEmptiedL( CMMFBuffer* aBuffer ); - - /** - * See MDataSource for description. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * See MDataSource for description. - */ - virtual void SourceThreadLogoff(); - - /** - * See MDataSource for description. - */ - virtual void SourcePrimeL(); - - /** - * See MDataSource for description. - */ - virtual void SourcePlayL(); - - /** - * See MDataSource for description. - */ - virtual void SourcePauseL(); - - /** - * See MDataSource for description. - */ - virtual void SourceStopL(); - - private: // Functions from base classes - - /** - * See MVTVideoInput for description. - */ - virtual void SetFormatL( const TDesC8& aFormat ); - - /** - * See MVTVideoInput for description. - */ - virtual void SetFrameRateL( TReal32 aFrameRate ); - - /** - * See MVTVideoInput for description. - */ - virtual void SetVideoFrameSizeL( const TSize& aSize ); - - /** - * See MVTVideoInput for description. - */ - virtual void GetVideoFrameSizeL( TSize& aSize ) const; - - private: // New functions - - /** - * Common initialization of the provider (initializes features - * that are always needed by the provider). - * @exception Can leave with one of the system wide error codes. - */ - void CommonInitializeL(); - - /** - * Undo common initialization of still image data provider. - */ - void UndoCommonInitialized(); - - /** - * Loads image that was set in General Settings application. - * @param aType Type of of the general settings image. - * @exception Can leave with one of the system wide error codes. - */ - void GeneralSettingsInitializeL( const TGeneralSettingsImageType aType ); - - /** - * Initializes this instance as blank image instance. - * @exception Can leave with one of the system wide error codes. - */ - void BlankImageInitializeL(); - - /** - * Initializes this instance from image file. - * @param aFileName Name of the file from which this intance will be - * initialized. - * @exception Can leave with one of the system wide error codes. - */ - void FileImageInitializeL( const TFileName& aFileName ); - - /** - * View finder timer callback. This method is called when view finder - * needs updating. - */ - void VFTimer(); - - /** - * protocol timer callback. This method is called when new frame - * will be sent to consumer. - */ - void ProtoTimer(); - - /** - * Method for creating timer for protocol. This method is called - * in Proto thread context. - * @exception Can leave with one of the system wide error codes. - */ - void CreateProtoTimerL(); - - /** - * Releases protocol timer. This method is called in Protocol thread - * context. - */ - void ReleaseProtoTimer(); - - /** - * Creates YUV buffer from still image. This method is called in Protocol - * thread context. - * @exception Can leave with one of the system wide error codes. - */ - void CreateYUVDataL(); - - /** - * Release YUV buffer. This method is called in Protocol thread context. - */ - void ReleaseYUVData(); - - private: // Constructors and destructor - - /** - * Constructor. - * @param "aObserver" Pointer to provider observer. - */ - CVSStillImageDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ); - - /** - * 2nd phase constructor. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL(); - - private: // Functions from base classes - - /** - * Get video frame size. - */ - virtual void GetVideoFrameSize( - TSize& aSize, - TInt aSizeIndex, - const TDesC8& aFormat ); - - /** - * Get video frame rate. - */ - virtual void GetVideoFrameRate( - TReal32& aRate, - TInt aRateIndex, - const TDesC8& aFormat, - const TSize& aSize ); - - /** - * Returns current screen display mode. - */ - TDisplayMode DisplayMode() const; - - private: - - // from MMultiframeprovider - /** - * @See MMultiframeprovider for description. - */ - virtual void InitializeReady(); - - /** - * @See MMultiframeprovider for description. - */ - virtual void RefreshYUVData( TImageShareDataBuffer& aYUVBitMap ); - - /** - * @See MMultiframeprovider for description. - */ - virtual void RefreshViewFinder( TImageShareDataBuffer& aVFBitMap ); - - /** - * @See MMultiframeprovider for description. - */ - virtual void NotifyImageHandlingError( TInt aError ); - - public: // Data - - protected: // Data - RCriticalSection iFreezeCS; - private: // Data - - // Provider state - enum TProviderState - { - EPSUninitialized, // Provider is uninitialized - EPSStopped, // Provider is initialized and stopped - EPSPrimed, // Provider is initialized and ready for playing - EPSPlaying, // Provider is playing - EPSInitializing, // Provider is initializing - EPSUndoInitializing // Provider is undoinitializing - }; - - // Provider state - TProviderState iPSState; - - // View finder state - enum TViewFinderState - { - EVFStopped, // View finder is not started - EVFPlaying // View finder started - }; - - // View finder state - TViewFinderState iVFState; - - // Source bitmap's name - TFileName iBitmapFileName; - - // Pointer to view finder timer instance - CVSFrameRateTimer* iVFTimer; // owned - - // Pointer to protocol timer instance - CVSFrameRateTimer* iProtoTimer; // owned, created in Proto thread context! - - // Target image for CVtImageScaler - CVtImageBitmap* iScaled; - CVtImageBitmap* iYUVBitMap; - - // Pointer to selected view finder image - CVtImageBitmap* iVFCurrent; - CVtImageBitmap* iVFBitmap; - - // Pointer to active waiter instance - CVSActiveWait< CVSStillImageDataProvider >* iActiveWait; // owned - - // Heap descriptor pointer that contains image as YUV - HBufC8* iYUVBuffer; // owned, created in Protocol thread context! - - // Frame counter - TUint32 iFrameCount; - - // protocol timer update rate - TInt iProtoUpdateRate; - - // Rescaling recuirement flag - TBool iVFRescalingRequired; - - // FireServer session instance - RFs iFs; - - // Current display mode - TDisplayMode iDisplayMode; - - // Viewer instance - CMultiframeProvider* iViewer; //owned - - // Traget VF size - TSize iTargetSize; - - //Record TVSStillImageDataProviderParams::iInitialize in InitializeL(), - //used in CancelInitializing call - TVSStillImageDataProviderParams::TInitialize iInitType; - - }; - -#endif // CVSSTILLIMTAGEDATAPROVIDER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/VSPanic.h --- a/vtprotocolplugins/VideoSource/inc/VSPanic.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* 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: Panic definitions for videosource module. -* -*/ - - -#ifndef VSPANIC_H -#define VSPANIC_H - -// INCLUDES -#include - -// CONSTANTS -_LIT( KVSPanicCategory, "VideoSource" ); - -// DATA TYPES -enum TVSPanic - { - EVSPanicSwitchAlreadyPending, // 0 - EVSPanicProviderNotSet, // 1 - EVSPanicProviderAlreadyInitialized, // 2 - EVSPanicProviderNotReady, // 3 - EVSPanicOperationNotSupported, // 4 - EVSPanicThreadOpenFailure // 5 - }; - -// FUNCTION PROTOTYPES -extern void Panic( TVSPanic aPanicCode ); - -#endif // VSPANIC_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/VideoSourceUids.hrh --- a/vtprotocolplugins/VideoSource/inc/VideoSourceUids.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2004 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: Uid definition file for Video Source subsystem -* -*/ - - - -#ifndef __VIDEOSOURCEUIDS_HRH__ -#define __VIDEOSOURCEUIDS_HRH__ - -#define KSharedLibraryUidDefine 0x1000008D -#define KUidVideoSourceLibrary 0x101F8692 - -#endif \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/cactivewait.h --- a/vtprotocolplugins/VideoSource/inc/cactivewait.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -#ifndef C_ACTIVEWAIT_H -#define C_ACTIVEWAIT_H - -// INCLUDE FILES -#include -#include -/** -* Active waiter class for waiting any active request. When asynchronous -* request has been completed a given callback method will be called. -* -* @lib videosource.lib -*/ -template < class R > class CVSActiveWait: public CActive - { - private : - - typedef void ( R::*TVSActiveWaitCallback) ( TInt ); - - public : // Constructors and destructor - - /** - * Constructor. - * @param "aRequester" ?description - */ - inline CVSActiveWait( R* aRequester ); - - /** - * Destructor. - */ - inline ~CVSActiveWait(); - - /** - * Initializes the waiter class. - * @param "aCallback" Pointer to callback method that will be called - * when asynchronous request has been completed. - */ - inline void InitializeWaiter( TVSActiveWaitCallback aCallback ); - - /** - * Returns pointer to this active object's TRequestStatus member - * (iStatus). - * @return Pointer to this classes TRequestStatus member (iStatus). - */ - inline TRequestStatus* RequestStatus(); - - /** - * Signals waiter with given error code. - * @param aError Integer error code. - */ - inline void Signal( TInt aError ); - - private : // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - inline void RunL(); - - /** - * From CActive. See CActive for description. - */ - inline void DoCancel(); - - private : // Data - - // Pointer to requester. Callback method call will be made in this - // context. - R* iRequester; // not owned - - // Pointer to callback method. - TVSActiveWaitCallback iCallback; - }; - -#include "cactivewait.inl" - -#endif // C_ACTIVEWAIT_H - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/cactivewait.inl --- a/vtprotocolplugins/VideoSource/inc/cactivewait.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ CVSActiveWait =============================== - -// ----------------------------------------------------------------------------- -// CVSActiveWait::~CVSActiveWait() -// ----------------------------------------------------------------------------- -// -template -CVSActiveWait< R >::~CVSActiveWait() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::~CVSActiveWait() >>"), RThread().Id().operator TUint())); - Cancel(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::~CVSActiveWait() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::RequestStatus() -// ----------------------------------------------------------------------------- -// -template -TRequestStatus* CVSActiveWait< R >::RequestStatus() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RequestStatus() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RequestStatus() <<"), RThread().Id().operator TUint())); - return &iStatus; - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::Signal( TInt aError ) -// ----------------------------------------------------------------------------- -// -template -void CVSActiveWait< R >::Signal( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::Signal() >>"), RThread().Id().operator TUint())); - if( IsActive() ) - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, aError ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::Signal() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::RunL() -// ----------------------------------------------------------------------------- -// -template -void CVSActiveWait< R >::RunL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RunL() >>"), RThread().Id().operator TUint())); - (iRequester->*iCallback)( iStatus.Int() ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RunL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::DoCancel() -// ----------------------------------------------------------------------------- -// -template -void CVSActiveWait< R >::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::DoCancel() >>"), RThread().Id().operator TUint())); - if ( iStatus == KRequestPending ) - { - TRequestStatus* pStatus = &iStatus; - User::RequestComplete( pStatus, KErrCancel ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::DoCancel() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::CVSActiveWait( CAnimatedImageViewer* aRequester ) -// ----------------------------------------------------------------------------- -// -template < class R > -CVSActiveWait< R >::CVSActiveWait( R* aRequester ) -: CActive( EPriorityHigh ), iRequester( aRequester ) - { - __IF_DEBUG(Print(_L("CVSActiveWait::CVSActiveWait() >>"))); - CActiveScheduler::Add( this ); - __IF_DEBUG(Print(_L("CVSActiveWait::CVSActiveWait() <<"))); - } -// ----------------------------------------------------------------------------- -// CVSActiveWait::InitializeWaiter( TVSActiveWaitCallback aCallback ) -// ----------------------------------------------------------------------------- -// -template < class R > -void CVSActiveWait< R >::InitializeWaiter( TVSActiveWaitCallback aCallback ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::InitializeWaiter() >>"), RThread().Id().operator TUint())); - if ( !IsActive() ) - { - iStatus = KRequestPending; - iCallback = aCallback; - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::InitializeWaiter() SetActive"), RThread().Id().operator TUint())); - SetActive(); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::InitializeWaiter() <<"), RThread().Id().operator TUint())); - } - - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/capivideosource.inl --- a/vtprotocolplugins/VideoSource/inc/capivideosource.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -/* - * CVSController -*/ - -// ----------------------------------------------------------------------------- -// CVSController::Observer -// ----------------------------------------------------------------------------- -// -inline MVSControllerObserver& CVSController::Observer() const - { - return *iObserver; - } - -/* - * CVSDataProvider -*/ - -// ----------------------------------------------------------------------------- -// CVSDataProvider::Observer -// ----------------------------------------------------------------------------- -// -inline MVSDataProviderObserver& CVSDataProvider::Observer() const - { - return *iObserver; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::BufferPool -// ----------------------------------------------------------------------------- -// -inline MVSBufferPool& CVSDataProvider::BufferPool() const - { - return *iPool; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::FillBufferActive -// ----------------------------------------------------------------------------- -// -inline TBool CVSDataProvider::FillBufferActive() const - { - return iFillBufferActive; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::Consumer -// ----------------------------------------------------------------------------- -// -inline MVTVideoSink* CVSDataProvider::Consumer() const - { - return iConsumer; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::MediaId -// ----------------------------------------------------------------------------- -// -inline TMediaId CVSDataProvider::MediaId() const - { - return iMediaId; - } - -/* - * CVSDataSource -*/ - -// ----------------------------------------------------------------------------- -// CVSDataSource::Observer -// ----------------------------------------------------------------------------- -// -inline MVSDataSourceObserver& CVSDataSource::Observer() const - { - return *iObserver; - } - -// ----------------------------------------------------------------------------- -// CVSDataSource::DataProvider -// ----------------------------------------------------------------------------- -// -inline CVSDataProvider& CVSDataSource::DataProvider() const - { - return *iProvider; - } - -// ----------------------------------------------------------------------------- -// CVSDataSource::SwitchProvider -// ----------------------------------------------------------------------------- -// -inline CVSDataProvider* CVSDataSource::SwitchProvider( - CVSDataProvider* aNewProvider ) - { - CVSDataProvider* oldProvider = iProvider; - iProvider = aNewProvider; - return oldProvider; - } - -/* - * TVSStillImageDataProviderParams - */ - -// ----------------------------------------------------------------------------- -// TVSStillImageDataProviderParams::TVSStillImageDataProviderParams -// ----------------------------------------------------------------------------- -// -TVSStillImageDataProviderParams::TVSStillImageDataProviderParams() - : iInitialize( EInitializeAsBlankImage ), iFileName( TPtrC() ) - { - } - -// ----------------------------------------------------------------------------- -// TVSStillImageDataProviderParams::TVSStillImageDataProviderParams -// ----------------------------------------------------------------------------- -// -TVSStillImageDataProviderParams::TVSStillImageDataProviderParams( - const TInitialize aInitialize ) - : iInitialize( aInitialize ), iFileName( TPtrC() ) - { - } - -// ----------------------------------------------------------------------------- -// TVSStillImageDataProviderParams::TVSStillImageDataProviderParams -// ----------------------------------------------------------------------------- -// -TVSStillImageDataProviderParams::TVSStillImageDataProviderParams( - const TFileName& aFileName ) - : iInitialize( EInitializeFromFile ), iFileName( aFileName ) - { - } diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/cmultiframedataao.h --- a/vtprotocolplugins/VideoSource/inc/cmultiframedataao.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - -#ifndef C_MULTIFRAMEDATAAO_H -#define C_MULTIFRAMEDATAAO_H - -// INCLUDE FILES -#include -#include "mmultiframeprovider.h" -// FORWARD DECLARATIONS -class CMultiframeProvider; - -// MACROS - -/** -* @lib videosource.lib -*/ -// ============================ CMultiframeDataAO =============================== -NONSHARABLE_CLASS( CMultiframeDataAO ) : public CTimer - { - public: // Constructors and destructor - - /** - * Constructor. - * @param "aRequester" instance to requester - */ - CMultiframeDataAO( CMultiframeProvider* aRequester ); - - /** - * Destructor. - */ - ~CMultiframeDataAO(); - - public: // New functions - - /** - * Sets observer. - * @param "aObserever" instance to observer - */ - void SetObserver( MMultiframeprovider* aObserver ); - - /** - * Activates CTimer - * @param "aUpdateTime" expiration time - */ - void Activate( TTimeIntervalMicroSeconds aUpdateTime, TBool aInit, TBool aVFUpdate ); - - /** - * Updates local buffer. - * @param "aLocalBuffer" local buffer - */ - void LocalBuffer( CVtImageBitmap* aLocalBuffer ); - - /** - * Updates remote buffer. - * @param "aRemoteBuffer" remote buffer - */ - void RemoteBuffer ( CVtImageBitmap* aRemoteBuffer ); - - /** - * Cancels looping and completes request in correct thread. - */ - void CancelTimeLoop(); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - private: // Data - - // Pointer to observer. - MMultiframeprovider* iObserver; // not owned - - // Pointer to requester - CMultiframeProvider* iRequester; - - // For updating ViewFinder buffer - TImageShareDataBuffer iLocalBuffer; - // For updating remote buffer - TImageShareDataBuffer iRemoteBuffer; - - // For updating remote buffer if activated when active - TImageShareDataBuffer iRemoteSecondBuffer; - - // For updating ViewFinder buffer if activated when active - TImageShareDataBuffer iLocalSecondBuffer; - - // Initialization flag - TBool iInit; - - // Delta calc ref point - TTimeIntervalMicroSeconds iTime; - - // VF update flag - TBool iVFUpdate; - - // Id of thread whose active scheduler this instance is added into. - TThreadId iThreadId; - - // A flag to indecate loop ao must be stopped - TBool iRequireStopping; - }; - -#endif //C_MULTIFRAMEDATAAO_H - -// End of File - - - - - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/cmultiframeloopao.h --- a/vtprotocolplugins/VideoSource/inc/cmultiframeloopao.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -#ifndef C_MULTIFRAMELOOPAO_H -#define C_MULTIFRAMELOOPAO_H - -// INCLUDE FILES -#include - -// FORWARD DECLARATIONS -class CMultiframeProvider; - -// MACROS - -/** -* @lib videosource.lib -* Handles data looping in multi frame sharing case. -*/ -NONSHARABLE_CLASS( CMultiframeloopAO ) : public CActive - { - public: // Constructors and destructor - - /** - * Constructor. - * @param "aRequester" instance to requester - */ - CMultiframeloopAO( CMultiframeProvider* aRequester ); - - /** - * Destructor. - */ - ~CMultiframeloopAO(); - - /** - * Decreases number of free bitmaps - * @param "aCount" count how many bitmaps to be removed - */ - void RemoveFreeBitmaps( TInt aCount ); - - /** - * Increases number of free bitmaps - * @param "aCount" count how many bitmaps to be increased - */ - void SetFreeBitmaps( TInt aCount ); - - /** - * Cancels looping and completes request in correct thread. - */ - void CancelDataLoop(); - - public: // New functions - - /** - * Activates looping and completes request in correct thread. - */ - void Signal( ); - - /** - * Sets frame count. - * @param "aCount" frame count - */ - void SetFrameCount( TInt aCount ); - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - /** - * From CActive. See CActive for description. - */ - void DoCancel(); - - private: // Data - - // Pointer to requester. - CMultiframeProvider* iRequester; // not owned - - // Index of frame to be handled - TInt iIndex; - - // Total nuber of frames - TInt iFramecount; - - // Number of free bitmaps - TInt iFreeBMCount; - - // Id of thread whose active scheduler this instance is added into. - TThreadId iThreadId; - - // A flag to indecate loop ao must be stopped - TBool iRequireStopping; - }; -#endif //C_MULTIFRAMELOOPAO_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/cmultiframeprovider.h --- a/vtprotocolplugins/VideoSource/inc/cmultiframeprovider.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,395 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -#ifndef C_MULTIFRAMEPROVIDER_H -#define C_MULTIFRAMEPROVIDER_H - -// INCLUDE FILES -#include -#include -#include "cactivewait.h" -#include "cvtimagescaler.h" -#include "mmultiframeprovider.h" - -// FORWARD DECLARATIONS - -class CVtImageBitmap; -class CImageDecoder; -class CMultiframeloopAO; -class TScalingMediator; -class CMultiframeProvider; -class CMultiframeDataAO; - -const TInt KFirstFrameIndx = 0; - -// CLASS DECLARATION -// ============================ TScalingMediator =============================== -/** -* Internal implementation of still scaling mediator -* @lib videosource.lib -*/ - -NONSHARABLE_CLASS( TScalingMediator) : public MVtImageScalerObserver - { - public : - TScalingMediator(); - public : - /** - * @see MVtImageScalerObserver::ScalingFinished( TInt aError ) - */ - void ScalingFinished( TInt aError ); - - /** - * Sets waiter observer - */ - void SetWaiter( CVSActiveWait< CMultiframeProvider >* aWait ); - private : - CVSActiveWait< CMultiframeProvider >* iWait; - }; - - -// ============================ CMultiframeProvider =============================== -/** -* Internal implementation of multiframe provider -* @lib videosource.lib -*/ -NONSHARABLE_CLASS( CMultiframeProvider ) : public CBase - { - - public : // Constructors and destructor - - /** - * Static factory function create instance of this class. - * @param "aObserver" Pointer to data provider observer. - * @param aDisplayMode current display mode - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CMultiframeProvider* NewL( MMultiframeprovider* aObserver, TDisplayMode aDisplayMode ); - - /** - * Destructor. - */ - ~CMultiframeProvider(); - - - public : // Functions from base classes - - /** - * Initializes this instance from image or multiframe file. - * @param aFileName Name of the file from which this intance will be - * initialized. - * @exception Can leave with one of the system wide error codes. - */ - void InitializeL( const TFileName* aFileName ); - - /** - * Cancel initialization of multiframe provider. - * @return ETrue if don't need to wait a error message. - */ - TBool CancelInitializing(); - - /** - * Initializes this instance for blank image bitmap. - */ - void IniatializeBlankL(); - - /** - * Initializes this instance for Generalsettings image bitmap. - */ - void IniatializeGSL( const TGeneralSettingsImageType aType ); - /** - * Sets ViewFinder size - * @param aSize size of target bitmap (view finder) - */ - void SetVFScalingTargetSize( TSize aSize ); - - /** - * Decodes and scales initialized image or multiframe file - * @param aFrameindex index of frame to be decoded and scaled - */ - void ConvertAndScaleL( TInt aFrameIndex ); - - /** - * Scales and copies decoded frame for view finder display - * @param aSize size of target bitmap ( view fiender ) - */ - void ScaleCopy( TSize& aSize, TBool aVFUpdate = EFalse ); - - /** - * Signals looping AO to proceed to next frame - */ - void NextFrame(); - - /** - * Clears ViewFinder size - */ - void ClearVFScalingTargetSize(); - - /** - * Increases number of data consumers by one - */ - void IncreaseDataConsumer(); - - /** - * Decreases number of data consumers by one - * and if number is less than one it cancels data looping - * mechanism - */ - void DecreaseDataConsumer(); - - /** - * Adds used bitmap to free queue - */ - void AddBitmapToFreeQueue(); - - /** - * Indicates that second VF buffer needs to be used - */ - void UseSecondVfBuffer(); - - /** - * Indicates that VF has been stopped - */ - TBool IsVFStopped(); - - /** - * Set ViewFinder of Multiframe provider to stop - */ - void SetVFStop(); - - /** - * Wait for converting function exit - */ - void WaitForConverting(); - - /** - * Release converting flag - */ - void ReleaseForConverting(); - - private : // Constructors and destructor - - /** - * Constructor. - * @param "aObserver" Pointer to data provider observer. - * @param aDisplayMode current display mode - */ - CMultiframeProvider( MMultiframeprovider* aObserver, TDisplayMode aDisplayMode ); - - /** - * 2nd phase constructor. - * @exception Can leave with one of the system wide error codes. - */ - void ConstructL(); - - /** - * Image conversion finished callback. This method is called when image - * conversion is done. - * @param "aError" Error code. KErrNone if no error happened, one of the - * system wide error codes. - * otherwise. - */ - void ConversionFinished( TInt aError ); - - /** - * Image scaling finished callback. This method is called when image - * scaling is done. - * @param "aError" Error code. KErrNone if no error happened, one of - * the system wide error codes. - */ - void BMSScalingFinished( TInt aError ); - - /** - * Scales VF to new size. - * @param "aSize" New VF size. - * the system wide error codes. - */ - void ScaleVF( const TSize& aSize ); - - /** - * When view finder frame must be rescaled (wanted view finder size is - * neither QCIF nor QQQCIF) this callback will be called when the - * rescaling has finished. - * @param "aError" Error code. KErrNone if no error happened, one of - * the system wide error codes. - */ - void VFRescalingFinished( TInt aError ); - - /** - * When view finder frames are rescaled this callback method will be - * called. - * @param "aError" Error code. KErrNone if no error happened, one of - * the system wide error codes. - */ - void VFScalingReady(); - - /** - * Creates blank bitmap with given size, color mode and color. - * @param "aBitmap" Bitmap pointer reference into which pointer to new - * isntance will be copied. - * @param "aSize" Size of the blank bitmap to be created. - * @param "aMode" Color mode for created bitmap. - * @param "aColor" Color of created bitmap. - * @exception Can leave with one of the system wide error codes. - */ - void CreateBlankBitmapL( CFbsBitmap*& aBitmap, const TSize& aSize, const TDisplayMode& aMode, const TRgb& aColor ); - - public : // Data - - TBool iAnimation; - - TBool iConvertAndScale; - - protected: // Data - - RCriticalSection iFreezeCS; - - private : //Data - - - // Source image for CVtImageScaler - CVtImageBitmap* iConverted; - - // Target image for CVtImageScaler - CVtImageBitmap* iScaled; - CVtImageBitmap* iBuffer1; - CVtImageBitmap* iBuffer2; - - // Pointer to remote image - CVtImageBitmap* iYUVBitMap; - - // Pointer to QCIF sized view finder image - CVtImageBitmap* iVFbitmap; - CVtImageBitmap* iFirstVfBuf; - CVtImageBitmap* iSecondVfBuf; - - // Boolean values of VF buffer validation - TBool iSecondVFBuffer; - TBool iFirstVFBuffer; - - // Pointer to bitmap loaded from GS - CVtImageBitmap* iGSBitmap; - - // Pointer to selected view finder image - CVtImageBitmap* iVFCurrent; - - // Viewer AO instance - CMultiframeloopAO* iLoopAo;// owned - - // Initalisation scaling mediator - TScalingMediator iInitMediator; - - // ViewFinder scaling scaling mediator - TScalingMediator iScalingMediator; - - // Waiter instance for initialisation - CVSActiveWait< CMultiframeProvider >* iActiveWaitInit;// owned - - // Waiter instance for scaling - CVSActiveWait< CMultiframeProvider >* iActiveWaitScale;// owned - - // Waiter instance for scaling - CVSActiveWait< CMultiframeProvider >* iActiveWaitInitScale; // owned - - // VT image scaler instance for initialisation - CVtImageScaler* iVtImageScalerInit; // owned - - // VT image scaler instance for scaling - CVtImageScaler* iVtImageScalerScale; // owned - - // Image decoder instance - CImageDecoder* iImageDecoder; // owned - - // Wanted view finder size - TSize iWantedVFSize; - - // FireServer session instance - RFs iFs; - - // Current display mode - TDisplayMode iDisplayMode; - - // Rescaling recuirement flag - TBool iVFRescalingRequired; - - // Multiframe observer instance - MMultiframeprovider* iObserver; - - // VF bitmap size - TSize iTargetSize; - - // Is blank image share - TBool iBlank; - - // Is GS image share - TBool iGSImage; - - // Is second bitmap in use - TBool iOldBM; - - // Pointer to old bitmap - CVtImageBitmap* iOldBitmap; - - // Frame count - TInt iCount; - - // Is initialization ongoing flag - TBool iInitialization; - - // Frame delay - TTimeIntervalMicroSeconds iDelay; - - // Start time for image conversion - TTime iStartTime; - - // Data timer expiration / Frame update time - TTimeIntervalMicroSeconds iFrameUpdateTime; - - // Pointer to data timer AO - CMultiframeDataAO* iDataTimer; - - // Number of data consumers - TInt iNumOfConsumers; - - // Queue for bitmaps that are free for use - RPointerArray iFreeQueue; - - // Pointer to bitmap mask - CFbsBitmap* iMask; - - // Pointer to temporary bitmap - CVtImageBitmap* iTempBM; - - TSize iVFSize; - - // Boolean value of VF buffer update - TBool iVFUpdate; - - // file handle to default VT image - RFile iDefaultImageFile; - // Boolean value of VF buffer stopping - TBool iIsVfStopped; - - // Boolean value of VF buffer stopping - TBool iWaitForConverting; - }; - -#endif // C_MULTIFRAMEPROVIDER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/inc/mmultiframeprovider.h --- a/vtprotocolplugins/VideoSource/inc/mmultiframeprovider.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -#ifndef M_MULTIFRAMEPROVIDER_H -#define M_MULTIFRAMEPROVIDER_H - -// INCLUDE FILES -#include - -// FORWARD DECLARATIONS -class CVtImageBitmap; - -// ============================ TImageShareDataBuffer =============================== -/** -* Share buffer class -* @lib videosource.lib -*/ -NONSHARABLE_CLASS( TImageShareDataBuffer) - { - public : - CVtImageBitmap* iBitmap; - TBool iIsBitmapFree; - }; - - // General Settings image type - enum TGeneralSettingsImageType - { - EGSStillImage, - EGSDefaultStillImage - }; - -// ============================ MMultiframeprovider =============================== -/** -* Multiframe observer API -* Interface for receiving data and acknowledgements from multiframe provider. -* @lib videosource.lib -*/ -class MMultiframeprovider - { - public: - /** - * Indicates when initialization of multiframeprovider has finished - */ - virtual void InitializeReady() = 0; - - /** - * Refresh YUV data - * @param "aYUVBitMap" reference new YUV data. - */ - virtual void RefreshYUVData( TImageShareDataBuffer& aYUVBitMap ) = 0; - - /** - * Refresh VF data - * @param "aVFBitMap" reference new VF data. - */ - virtual void RefreshViewFinder( TImageShareDataBuffer& aVFBitMap ) = 0; - - /** - * Notifies if error occures in multiframeprovider - * @param "aError" symbian wide error code. - */ - virtual void NotifyImageHandlingError( TInt aError ) = 0; - - }; -#endif //M_MULTIFRAMEPROVIDER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/rom/VideoSource.iby --- a/vtprotocolplugins/VideoSource/rom/VideoSource.iby Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* 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: -* IBY file for VideoSource -* -* -*/ - - -#ifndef __VIDEOSOURCE_IBY__ -#define __VIDEOSOURCE_IBY__ - -#ifdef __CS_VIDEO_TELEPHONY - -file=ABI_DIR\BUILD_DIR\VideoSource.dll SHARED_LIB_DIR\VideoSource.dll - -// Enabler for eclipsing ROM binary -data=ZSYSTEM\install\videosource_stub.sis system\install\videosource_stub.sis - -#endif - -#endif diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSCameraDataProvider.cpp --- a/vtprotocolplugins/VideoSource/src/CVSCameraDataProvider.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,864 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CVSCameraDataProvider.h" -#include "CVSOnboardCameraDataProvider.h" -#include "VSPanic.h" - -// EXTERNAL FUNCTION PROTOTYPES - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -static const TInt KQcifWidth = 176; -static const TInt KQcifHeight = 144; -static const TReal32 KFrameRate = 15.0; -static const TInt KFrozenFrameBufferSize = ( KQcifWidth * KQcifHeight ) + ( KQcifWidth * KQcifHeight ) / 2; -static const TInt KCCameraPriority = 80; - -// ============================ MEMBER FUNCTIONS =============================== - -// ============================= CVsFrameBuffer ================================ - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::NewL( TInt aSize ) -// ----------------------------------------------------------------------------- -// -EXPORT_C CVsFrameBuffer* CVsFrameBuffer::NewL( TInt aSize ) - { - CVsFrameBuffer* self = new ( ELeave ) CVsFrameBuffer(); - CleanupStack::PushL( self ); - self->ConstructL( aSize ); - CleanupStack::Pop(); // self - return self; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::~CVsFrameBuffer() -// ----------------------------------------------------------------------------- -// -EXPORT_C CVsFrameBuffer::~CVsFrameBuffer() - { - delete iBuffer; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::CopyProperties( MFrameBuffer* aSource ) -// ----------------------------------------------------------------------------- -// -void CVsFrameBuffer::CopyProperties( MFrameBuffer* aSource ) - { - MFrameBuffer::iIndexOfFirstFrameInBuffer = aSource->iIndexOfFirstFrameInBuffer; - MFrameBuffer::iElapsedTime = aSource->iElapsedTime; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::CopyProperties( MCameraBuffer* aSource ) -// ----------------------------------------------------------------------------- -// -void CVsFrameBuffer::CopyProperties( MCameraBuffer* aSource ) - { - MCameraBuffer::iIndexOfFirstFrameInBuffer = aSource->iIndexOfFirstFrameInBuffer; - MCameraBuffer::iElapsedTime = aSource->iElapsedTime; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::CopyFrameL( MFrameBuffer* aSource ) -// ----------------------------------------------------------------------------- -// -void CVsFrameBuffer::CopyFrameL( MFrameBuffer* aSource ) - { - iPtr = *( aSource->DataL( 0 ) ); - CopyProperties( aSource ); - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::CopyFrameL( MCameraBuffer* aSource ) -// ----------------------------------------------------------------------------- -// -void CVsFrameBuffer::CopyFrameL( MCameraBuffer* aSource ) - { - iPtr = *( aSource->DataL( 0 ) ); - CopyProperties( aSource ); - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::DataL( TInt aIndex ) -// ----------------------------------------------------------------------------- -// -TDesC8* CVsFrameBuffer::DataL( TInt aIndex ) - { - if( aIndex != 0 ) - { - User::Leave( KErrNotSupported ); - } - - return &iPtr; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::FrameL( TInt aIndex ) -// ----------------------------------------------------------------------------- -// -CFbsBitmap* CVsFrameBuffer::FrameL( TInt aIndex ) - { - ( void ) aIndex; - User::Leave( KErrNotSupported ); - return 0; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::Release() -// ----------------------------------------------------------------------------- -// -void CVsFrameBuffer::Release() - { - // Nothing to do - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::FrameSize() -// ----------------------------------------------------------------------------- -// -TInt CVsFrameBuffer::FrameSize( TInt /*aFrameIndex*/ ) - { - return KErrNotSupported; - } -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::ChunkOffsetL() -// ----------------------------------------------------------------------------- -// -TInt CVsFrameBuffer::ChunkOffsetL( TInt /*aFrameIndex*/ ) - { - User::Leave( KErrNotSupported ); - return KErrNotSupported; - } -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::ChunkL() -// ----------------------------------------------------------------------------- -// -RChunk& CVsFrameBuffer::ChunkL() - { - User::Leave( KErrNotSupported ); - RChunk* help = NULL; - return *help; - } -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::BitmapL() -// ----------------------------------------------------------------------------- -// -CFbsBitmap& CVsFrameBuffer::BitmapL(TInt /*aFrameIndex*/ ) - { - CFbsBitmap* helpbit = new (ELeave) CFbsBitmap; - CleanupStack::PushL( helpbit ); - User::Leave( KErrNotSupported ); - CleanupStack::Pop( helpbit ); - delete helpbit; - return *helpbit; - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::NumFrames() -// ----------------------------------------------------------------------------- -// -TInt CVsFrameBuffer::NumFrames() - { - return KErrNotSupported; - } -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::CVsFrameBuffer() -// ----------------------------------------------------------------------------- -// -CVsFrameBuffer::CVsFrameBuffer() -: iPtr( 0, 0 ) - { - } - -// ----------------------------------------------------------------------------- -// CVsFrameBuffer::ConstructL( TInt aSize ) -// ----------------------------------------------------------------------------- -// -void CVsFrameBuffer::ConstructL( TInt aSize ) - { - iBuffer = HBufC8::NewL( aSize ); - iPtr.Set( iBuffer->Des() ); - } - -// ========================= CVSCameraDataProvider ============================= - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::NewL -// ----------------------------------------------------------------------------- -// -CVSCameraDataProvider* CVSCameraDataProvider::NewL( - MVSDataProviderObserver* aObserver, - TInt aProviderIndex, - MVSBufferPool* aPool ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::NewL() >>"), RThread().Id().operator TUint())); - CVSCameraDataProvider* self = - new (ELeave) CVSOnboardCameraDataProvider( aObserver, aPool ); - CleanupStack::PushL( self ); - self->ConstructL( aProviderIndex ); - CleanupStack::Pop( self ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::~CVSCameraDataProvider -// ----------------------------------------------------------------------------- -// -CVSCameraDataProvider::~CVSCameraDataProvider() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::~CVSCameraDataProvider() >>"), RThread().Id().operator TUint())); - delete iFrozenFrame; - delete iFrozenVFFrameCopy; - delete iSource; - delete iFrozenVFFrameToBeSent; - delete iTarget; - delete iScaler; - delete iCamImgProc; - if ( &Camera() != NULL ) - { - Camera().Release(); - } - delete iCamera; - iFreezeCS.Close(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::~CVSCameraDataProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::InitializeL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::InitializeL( const TDesC8& /*aInitParams*/ ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::InitializeL() >>"), RThread().Id().operator TUint())); - Camera().Reserve(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::InitializeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::DigitalZoomFactor -// ----------------------------------------------------------------------------- -// -TInt CVSCameraDataProvider::DigitalZoomFactor() const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::DigitalZoomFactor() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::DigitalZoomFactor() <<"), RThread().Id().operator TUint())); - return Camera().DigitalZoomFactor(); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::SetDigitalZoomFactorL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::SetDigitalZoomFactorL( TInt aDigitalZoomFactor) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetDigitalZoomFactorL() >>"), RThread().Id().operator TUint())); - Camera().SetDigitalZoomFactorL( aDigitalZoomFactor ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetDigitalZoomFactorL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::StartViewFinderBitmapsL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::StartViewFinderBitmapsL( TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint())); - TCameraInfo info; - Camera().CameraInfo( info ); - if ( !(info.iOptionsSupported & TCameraInfo::EViewFinderBitmapsSupported) ) - { - User::Leave( KErrNotSupported ); - } - if( IsFrozen()&& iHasFrozenVFFrameCopyCreated ) - { - ScaleFrozenBitmapL( aSize ); - } - Camera().StartViewFinderBitmapsL( aSize ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderBitmapsL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::StartViewFinderBitmapsL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::StartViewFinderBitmapsL( TSize&, TRect& ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::StopViewFinder -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::StopViewFinder() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StopViewFinder() >>"), RThread().Id().operator TUint())); - Camera().StopViewFinder(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StopViewFinder() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ViewFinderActive -// ----------------------------------------------------------------------------- -// -TBool CVSCameraDataProvider::ViewFinderActive() const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderActive() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderActive() <<"), RThread().Id().operator TUint())); - return Camera().ViewFinderActive(); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::StartViewFinderDirectL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::StartViewFinderDirectL( RWsSession&, - CWsScreenDevice&, RWindowBase&, TRect& ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::StartViewFinderDirectL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::StartViewFinderDirectL( RWsSession&, - CWsScreenDevice&, RWindowBase&, TRect&, TRect& ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ProviderInfo -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ProviderInfo( TVSDataProviderInfo& aInfo ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfo() >>"), RThread().Id().operator TUint())); - Camera().CameraInfo( static_cast< TCameraInfo& >( aInfo ) ); - aInfo.iFreezeSupported = ETrue; - TRAP_IGNORE( ProviderInfoExL( aInfo ) ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfo() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::SetViewFinderMirrorL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::SetViewFinderMirrorL( TBool aMirror ) - { - Camera().SetViewFinderMirrorL( aMirror ); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ViewFinderMirror -// ----------------------------------------------------------------------------- -// -TBool CVSCameraDataProvider::ViewFinderMirror() const - { - return Camera().ViewFinderMirror(); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::FreezeL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::FreezeL() - { - iFreezeCS.Wait(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeL() >>"), RThread().Id().operator TUint())); - if( !IsFrozen() ) - { - iFrozen = ETrue; - iFrozenVfFrameReady = EFalse; - iFreezePendingFlags = EViewFinderFreezePending | EVideoFrameFreezePending; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeL() <<"), RThread().Id().operator TUint())); - iFreezeCS.Signal(); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::UnfreezeL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::UnfreezeL() - { - iFreezeCS.Wait(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::UnfreezeL() >>"), RThread().Id().operator TUint())); - if( IsFrozen() ) - { - iFrozen = EFalse; - iFreezePendingFlags = 0; - iHasFrozenVFFrameCopyCreated = EFalse; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::UnfreezeL() <<"), RThread().Id().operator TUint())); - iFreezeCS.Signal(); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::IsFrozen -// ----------------------------------------------------------------------------- -// -TBool CVSCameraDataProvider::IsFrozen() const - { - return iFrozen; - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ImageReady -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ImageReady( - CFbsBitmap* /*aBitmap*/, HBufC8* /*aData*/, TInt /*aError*/ ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageReady() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageReady() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::PowerOnComplete -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::PowerOnComplete( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::PowerOnComplete() >>"), RThread().Id().operator TUint())); - if ( !iPowerOnComplete ) - { - if ( aError == KErrNone ) - { - iPowerOnComplete = ETrue; - iCameraHandle = Camera().Handle(); - // Setup ECAM so that the returned image is ok even if view finder - // is asked before video - TCameraInfo info; - Camera().CameraInfo( info ); - if ( !(info.iOptionsSupported & - TCameraInfo::EViewFinderBitmapsSupported) ) - { - NotifyError( KErrNotSupported ); - return; // End debug print is missed - } - TInt sizeIndex, rateIndex; - sizeIndex = rateIndex = 0; - for ( - sizeIndex = 0; - sizeIndex < info.iNumVideoFrameSizesSupported; - sizeIndex++ ) - { - TSize size; - Camera().EnumerateVideoFrameSizes( - size, - sizeIndex, - CCamera::EFormatYUV420Planar ); - if ( size == TSize( KQcifWidth, KQcifHeight ) ) - { - TReal32 rate; - for ( - rateIndex = 0; - rateIndex < info.iNumVideoFrameRatesSupported; - rateIndex++ ) - { - Camera().EnumerateVideoFrameRates( - rate, - rateIndex, - CCamera::EFormatYUV420Planar, - sizeIndex ); - if ( KFrameRate == rate ) - { - TRAPD( - err, - Camera().PrepareVideoCaptureL( - CCamera::EFormatYUV420Planar, - sizeIndex, - rateIndex, - 2, - 1) ); - if ( err != KErrNone ) - { - NotifyError( err ); - return; // End debug print is missed - } - break; - } - } - break; - } - } - Observer().vsProviderReady(); - } - else - { - NotifyError( aError ); - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::PowerOnComplete() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ViewFinderFrameReady -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ViewFinderFrameReady( CFbsBitmap& aFrame ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderFrameReady() >>"), RThread().Id().operator TUint())); - if( iFreezePendingFlags & EViewFinderFreezePending ) - { - FreezeViewFinderFrame( aFrame ); - } - if( IsFrozen() && !( iFreezePendingFlags & EViewFinderFreezePending ) && iFrozenVfFrameReady ) - { - Observer().vsViewFinderFrameReady( *iFrozenVFFrameToBeSent ); - } - else if( !IsFrozen() ) - { - Observer().vsViewFinderFrameReady( aFrame ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ViewFinderFrameReady() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ImageBufferReady -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ImageBufferReady(MCameraBuffer& /*aCameraBuffer*/,TInt /*aError*/) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageBufferReady() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ImageBufferReady() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ScalingFinished -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ScalingFinished( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScalingFinished() >>"), RThread().Id().operator TUint())); - if( aError == KErrNone ) - { - iFrozenVfFrameReady = ETrue; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScalingFinished() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::CVSCameraDataProvider -// ----------------------------------------------------------------------------- -// -CVSCameraDataProvider::CVSCameraDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ) : - CVSDataProvider( aObserver, aPool ) - { - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ConstructL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ConstructL( TInt aProviderIndex ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ConstructL() >>"), RThread().Id().operator TUint())); - CVSDataProvider::ConstructL(); - // New CCamera API imp - // Check which API is suported - TRAPD( error, iCamera = - CCamera::New2L( *this, aProviderIndex, KCCameraPriority ) ); - // try to create using API - if ( error ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ConstructL() New2L failed, using NewL instead"), RThread().Id().operator TUint())); - iCamera = CCamera::NewL( *this, aProviderIndex ); - } - iFrozenVFFrameCopy = new ( ELeave ) CFbsBitmap(); - iFrozenVFFrameToBeSent = new ( ELeave ) CFbsBitmap(); - iScaler = CVtImageScaler::NewL( *this ); - iFrozenFrame = CVsFrameBuffer::NewL( KFrozenFrameBufferSize ); - - iHasFrozenVFFrameCopyCreated = EFalse; - - // Camera image processing - TRAP( error, iCamImgProc = - CCamera::CCameraImageProcessing::NewL( *iCamera ) ); - User::LeaveIfError( iFreezeCS.CreateLocal() ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::FreezeViewFinderFrame -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::FreezeViewFinderFrame( CFbsBitmap& aFrame ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeViewFinderFrame() >>"), RThread().Id().operator TUint())); - - TSize frameSize( aFrame.SizeInPixels() ); - - TUint scanlineLength( CFbsBitmap::ScanLineLength( frameSize.iWidth, aFrame.DisplayMode() ) ); - - TInt result = iFrozenVFFrameCopy->Create( frameSize, aFrame.DisplayMode() ); - - if( result != KErrNone ) - { - Observer().vsProviderError( result ); - return; - } - - iFrozenVFFrameCopy->LockHeap(); - const TUint8* source = reinterpret_cast< TUint8* >( aFrame.DataAddress() ); - TUint8* dest = reinterpret_cast< TUint8* >( iFrozenVFFrameCopy->DataAddress() ); - for( TInt y = frameSize.iHeight - 1; y >= 0; y-- ) - { - Mem::Copy( dest, source, scanlineLength ); - dest += scanlineLength; - source += scanlineLength; - } - iFrozenVFFrameCopy->UnlockHeap(); - TRAP( result, ScaleFrozenBitmapL( frameSize ) ); - iFreezePendingFlags &= ~EViewFinderFreezePending; - iHasFrozenVFFrameCopyCreated = ETrue; - if( result != KErrNone ) - { - Observer().vsProviderError( result ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::FreezeViewFinderFrame() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ScaleFrozenBitmapL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ScaleFrozenBitmapL( TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScaleFrozenBitmapL() >>"), RThread().Id().operator TUint())); - iFrozenVfFrameReady = EFalse; - delete iSource; iSource = 0; - iSource = CVtImageBitmap::NewL( iFrozenVFFrameCopy->Handle() ); - User::LeaveIfError( iFrozenVFFrameToBeSent->Create( aSize, iFrozenVFFrameCopy->DisplayMode() ) ); - delete iTarget; iTarget = 0; - iTarget = CVtImageBitmap::NewL( iFrozenVFFrameToBeSent->Handle() ); - iScaler->Cancel(); - iScaler->ScaleL( *iSource, *iTarget ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ScaleFrozenBitmapL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::ProviderInfoExL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::ProviderInfoExL( TVSDataProviderInfo& aInfo ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() >>"), RThread().Id().operator TUint())); - aInfo.iSupportedColorTones = CCamera::CCameraImageProcessing::EEffectNone; - // Check if colortone is suported and set colortone values - if ( iCamImgProc ) - { - RArray< TUid > uids; - CleanupClosePushL( uids ); - iCamImgProc->GetSupportedTransformationsL( uids ); - if ( uids.Find( KUidECamEventImageProcessingEffect ) != KErrNotFound ) - { - TValueInfo type; - RArray< TInt > values; - CleanupClosePushL( values ); - iCamImgProc->GetTransformationSupportedValuesL( - KUidECamEventImageProcessingEffect, values, type ); - if ( ( type == EBitField ) && ( values.Count() > 0 ) ) - { - aInfo.iSupportedColorTones = values[ 0 ]; - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() valueType is NOT bitfield, fix me"), RThread().Id().operator TUint())); - } - CleanupStack::PopAndDestroy(); // values.Close() - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() camera image processing not supported"), RThread().Id().operator TUint())); - } - CleanupStack::PopAndDestroy(); // uids.Close() - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::ProviderInfoExL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::SetContrastL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::SetContrastL( TInt aContrast ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetContrastL() >>"), RThread().Id().operator TUint())); - Camera().SetContrastL(aContrast); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetContrastL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::GetContrast -// ----------------------------------------------------------------------------- -// -TInt CVSCameraDataProvider::GetContrast( TInt& aContrast ) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetContrast() >>"), RThread().Id().operator TUint())); - TInt result( KErrNotSupported ); - TCameraInfo info; - Camera().CameraInfo( info ); - if ( info.iOptionsSupported & TCameraInfo::EContrastSupported ) - { - aContrast = Camera().Contrast(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetContrast() %d"), RThread().Id().operator TUint(), aContrast)); - result = KErrNone; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetContrast() <<"), RThread().Id().operator TUint())); - return result; - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::SetBrightnessL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::SetBrightnessL( TInt aBrightness ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetBrightnessL() >>"), RThread().Id().operator TUint())); - Camera().SetBrightnessL( aBrightness ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetBrightnessL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::GetBrightness -// ----------------------------------------------------------------------------- -// -TInt CVSCameraDataProvider::GetBrightness( TInt& aBrightness ) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetBrightness() >>"), RThread().Id().operator TUint())); - TInt result( KErrNotSupported ); - TCameraInfo info; - Camera().CameraInfo( info ); - if ( info.iOptionsSupported & TCameraInfo::EBrightnessSupported ) - { - aBrightness = Camera().Brightness(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetBrightness() %d"), aBrightness)); - result = KErrNone; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetBrightness() <<"), RThread().Id().operator TUint())); - return result; - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::SetWhiteBalanceL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::SetWhiteBalanceL( CCamera::TWhiteBalance - aWhiteBalance ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetWhiteBalanceL() >>"), RThread().Id().operator TUint())); - Camera().SetWhiteBalanceL( aWhiteBalance ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetWhiteBalanceL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::GetWhiteBalance -// ----------------------------------------------------------------------------- -// -TInt CVSCameraDataProvider::GetWhiteBalance( CCamera::TWhiteBalance& - aWhiteBalance) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetWhiteBalance() >>"),RThread().Id().operator TUint() ) ); - aWhiteBalance = Camera().WhiteBalance(); - __IF_DEBUG(Print(_L("WhiteBalance[%d]: CVSCameraDataProvider::GetWhiteBalance() %d"), aWhiteBalance ) ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetWhiteBalance() <<"), RThread().Id().operator TUint() ) ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::SetColorToneL -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::SetColorToneL( - CCamera::CCameraImageProcessing::TEffect aValue ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetColorToneL() >>"), RThread().Id().operator TUint())); - if ( iCamImgProc ) - { - iCamImgProc->SetTransformationValue( KUidECamEventImageProcessingEffect, aValue ); - } - else - { - //Set colortone that is not suported -> Leave - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetColorToneL() LEAVE"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::SetColorToneL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::GetColorTone -// ----------------------------------------------------------------------------- -// -TInt CVSCameraDataProvider::GetColorTone( - CCamera::CCameraImageProcessing::TEffect& aColorTone ) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetColorTone() >>"), RThread().Id().operator TUint())); - TInt result( KErrNotSupported ); - if ( iCamImgProc ) - { - aColorTone = - static_cast< CCamera::CCameraImageProcessing::TEffect >( - iCamImgProc->TransformationValue( - KUidECamEventImageProcessingEffect ) ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetColorTone() %d"), RThread().Id().operator TUint(), aColorTone)); - result = KErrNone; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::GetColorTone() <<"), RThread().Id().operator TUint())); - return result; - } - -// ----------------------------------------------------------------------------- -// CVSCameraDataProvider::CancelInitializing -// ----------------------------------------------------------------------------- -// -void CVSCameraDataProvider::CancelInitializing() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::CancelInitializing() >>"), RThread().Id().operator TUint())); - //There is a blank implemention. - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSCameraDataProvider::CancelInitializing() <<"), RThread().Id().operator TUint())); - return; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSController.cpp --- a/vtprotocolplugins/VideoSource/src/CVSController.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES - -#include "CApiVideoSource.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVSController::CVSController() -// ----------------------------------------------------------------------------- -// -CVSController::CVSController() - { - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSControllerImp.cpp --- a/vtprotocolplugins/VideoSource/src/CVSControllerImp.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES - -#include - -#include "CVSControllerImp.h" -#include "VSPanic.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Panics current thread. -// ----------------------------------------------------------------------------- -// -void Panic( TVSPanic aPanicCode ) - { - User::Panic( KVSPanicCategory(), aPanicCode ); - } - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVSController::NewL -// ----------------------------------------------------------------------------- -// -EXPORT_C CVSController* CVSController::NewL( MVSControllerObserver* aObserver ) - { - __IF_DEBUG(Print(_L("VideoSource: CVSController::NewL() entering"))); - if ( aObserver == NULL ) - { - User::Leave( KErrArgument ); - } - CVSController* self = CVSControllerImp::NewL(); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - __IF_DEBUG(Print(_L("VideoSource: CVSController::NewL() returning"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::ConstructL -// ----------------------------------------------------------------------------- -// -void CVSControllerImp::ConstructL( MVSControllerObserver* aObserver ) - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::ConstructL() entering"))); - iObserver = aObserver; - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::ConstructL() returning"))); - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::NewL -// ----------------------------------------------------------------------------- -// -CVSControllerImp* CVSControllerImp::NewL() - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::NewL() entering"))); - CVSControllerImp* self = new (ELeave) CVSControllerImp; - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::NewL() returning"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::~CVSControllerImp -// ----------------------------------------------------------------------------- -// -CVSControllerImp::~CVSControllerImp() - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::~CVSControllerImp() entering"))); - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::~CVSControllerImp() returning"))); - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::CreateDataSourceL -// ----------------------------------------------------------------------------- -// -CVSDataSource* CVSControllerImp::CreateDataSourceL( MVSDataSourceObserver* aObserver ) - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::CreateDataSourceL() entering"))); - CVSDataSource* p = CVSDataSource::NewSourceL( aObserver ); - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::CreateDataSourceL() returning"))); - return p; - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::ProvidersAvailable -// ----------------------------------------------------------------------------- -// -TInt CVSControllerImp::ProvidersAvailable() - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::ProvidersAvailable() entering"))); - TInt count = CVSDataProvider::ProvidersAvailable(); - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::ProvidersAvailable() returning"))); - return count; - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::ProviderInfoL -// ----------------------------------------------------------------------------- -// -void CVSControllerImp::ProviderInfoL( - TInt aProviderIndex, - TVSDataProviderInfo& aInfo ) - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::ProviderInfo() entering"))); - if (aProviderIndex >= ProvidersAvailable() || aProviderIndex < 0) - { - User::Leave( KErrNotSupported ); - } - CVSDataProvider::ProviderInfoL( aProviderIndex, aInfo ); - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::ProviderInfo() returning"))); - } - -// ----------------------------------------------------------------------------- -// CVSControllerImp::CreateDataProviderL -// ----------------------------------------------------------------------------- -// -CVSDataProvider* CVSControllerImp::CreateDataProviderL( - TInt aProviderIndex, - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ) - { - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::CreateDataProviderL() entering"))); - if (aProviderIndex >= ProvidersAvailable() || aProviderIndex < 0) - { - User::Leave( KErrArgument ); - } - if ( aObserver == NULL ) - { - User::Leave( KErrArgument ); - } - CVSDataProvider* p = - CVSDataProvider::NewL( aProviderIndex, aObserver, aPool ); - __IF_DEBUG(Print(_L("VideoSource: CVSControllerImp::CreateDataProviderL() returning"))); - return p; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSDataProvider.cpp --- a/vtprotocolplugins/VideoSource/src/CVSDataProvider.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,543 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include "CApiVideoSource.h" -#include "CVSCameraDataProvider.h" -#include "CVSStillImageDataProvider.h" -#include "CVSOnboardCameraDataProvider.h" - -// EXTERNAL FUNCTION PROTOTYPES - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -class TSizeCount - { - public: - TInt iCount; - TSize iSize; - }; - -class TRateCount - { - public: - TInt iCount; - TReal32 iRate; - }; - -// LOCAL FUNCTION PROTOTYPES - -static TInt TSizeCountTLinearOrderFunc( - const TSizeCount& aSizeCount1, const TSizeCount& aSizeCount2 ); -static TBool TSizeCountTIdentityRelationFunc( - const TSizeCount& aSizeCount1, const TSizeCount& aSizeCount2 ); -static TInt TRateCountTLinearOrderFunc( - const TRateCount& aRateCount1, const TRateCount& aRateCount2 ); -static TBool TRateCountTIdentityRelationFunc( - const TRateCount& aRateCount1, const TRateCount& aRateCount2 ); - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TSizeCountTLinearOrderFunc: Used in RArray aRateCount2.iRate ) - { - return 1; - } - - if ( aRateCount1.iRate < aRateCount2.iRate ) - { - return -1; - } - - return 0; - } - -// ----------------------------------------------------------------------------- -// TRateCountTIdentityRelationFunc: Used in RArray>"), RThread().Id().operator TUint(), aProviderIndex)); - - CVSDataProvider* self = NULL; - - // Is it ecam - TInt count = CamerasAvailable(); - - // < 0 == error - if( count < 0 ) - { - User::Leave( count ); - } - - if ( aProviderIndex < count ) - { - self = CVSCameraDataProvider::NewL( aObserver, aProviderIndex, aPool ); - } - else - { - // Is it still image - count += 1; - - if ( aProviderIndex == ( count - 1) ) - { - self = CVSStillImageDataProvider::NewL( aObserver, aPool ); - } - else - { - User::Leave( KErrNotSupported ); - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::~CVSDataProvider -// ----------------------------------------------------------------------------- -// -CVSDataProvider::~CVSDataProvider() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::~CVSDataProvider() >>"), RThread().Id().operator TUint())); - delete iErrorNotifier; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::~CVSDataProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::ProvidersAvailable -// ----------------------------------------------------------------------------- -// -TInt CVSDataProvider::ProvidersAvailable() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ProvidersAvailable() >>"), RThread().Id().operator TUint())); - - // Count ecams - TInt numProviders = CamerasAvailable(); - - // < 0 == error - if ( numProviders < 0 ) - { - numProviders = 1; // only still image provider - } - else - { - numProviders += 1; // add still - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ProvidersAvailable() [numProviders = %d] <<"), RThread().Id().operator TUint(), numProviders)); - - return numProviders; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::ProviderInfoL -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::ProviderInfoL( - TInt aProviderIndex, - TVSDataProviderInfo& aInfo ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ProviderInfoL() >>"), RThread().Id().operator TUint())); - CVSDataProvider* provider = NewL( aProviderIndex, NULL, NULL); - provider->ProviderInfo( aInfo ); - delete provider; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ProviderInfoL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::SetFillBufferParams -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::SetFillBufferParams( - MVTVideoSink* aConsumer, - TMediaId aMediaId ) - { - iConsumer = aConsumer; - iMediaId = aMediaId; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::NotifyError -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::NotifyError( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::NotifyError() >>"), RThread().Id().operator TUint())); - iErrorNotifier->NotifyError( &Observer(), aError ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::NotifyError() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::CVSDataProvider -// ----------------------------------------------------------------------------- -// -CVSDataProvider::CVSDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ) : - iObserver( aObserver ), - iPool ( aPool ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::CVSDataProvider() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::CVSDataProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::ConstructL -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::ConstructL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ConstructL() >>"), RThread().Id().operator TUint())); - iErrorNotifier = CProviderErrorNotifierAO::NewL(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ConstructL() <<"), RThread().Id().operator TUint())); - } - - -// ----------------------------------------------------------------------------- -// CVSDataProvider::TimeToPlay -// ----------------------------------------------------------------------------- -// -const TTimeIntervalMicroSeconds& CVSDataProvider::TimeToPlay() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::TimeToPlay() >>"), RThread().Id().operator TUint())); - - TTime now; - now.HomeTime(); - - TTimeIntervalMicroSeconds timeToPlay( now.MicroSecondsFrom( iStartTime ) ); - - if( timeToPlay <= iPreviousTimeToPlay ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::TimeToPlay(): *WARNING* Time warp backwards! Correcting.."), RThread().Id().operator TUint())); - iPreviousTimeToPlay = - TTimeIntervalMicroSeconds( iPreviousTimeToPlay.Int64() + 1 ); - } - else - { - iPreviousTimeToPlay = timeToPlay; - } - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::TimeToPlay() <<"), RThread().Id().operator TUint())); - return iPreviousTimeToPlay; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::ResetStartTime -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::ResetStartTime() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ResetStartTime() >>"), RThread().Id().operator TUint())); - iStartTime.HomeTime(); - iPreviousTimeToPlay = iStartTime.MicroSecondsFrom( iStartTime ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::ResetStartTime() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::CamerasAvailable() -// ----------------------------------------------------------------------------- -// -TInt CVSDataProvider::CamerasAvailable() - { - TRAPD( result, FeatureManager::InitializeLibL() ); - - if( result != KErrNone ) - { - return result; - } - - TInt count( 0 ); - - if( FeatureManager::FeatureSupported( KFeatureIdCamera ) ) - { - count = CCamera::CamerasAvailable(); - } - - FeatureManager::UnInitializeLib(); - - return count; - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::SwitchFrom -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::SwitchFrom( const CVSDataProvider& anOldProvider ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::SwitchFrom() >>"), RThread().Id().operator TUint())); - iStartTime = anOldProvider.iStartTime; - iPreviousTimeToPlay = anOldProvider.iPreviousTimeToPlay; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::SwitchFrom() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::EnumerateVideoFrameFormatsL -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::EnumerateVideoFrameFormatsL( - CDesC8Array* aSupportedFormats ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::EnumerateVideoFrameFormats() >>"), RThread().Id().operator TUint())); - TInt providerCount = ProvidersAvailable(); - TInt countOfProvidersThatSupportYUV420Planar = 0; - for ( TInt i = 0; i < providerCount; i++ ) - { - TVSDataProviderInfo info; - ProviderInfoL( i, info ); - if ( info.iVideoFrameFormatsSupported & CCamera::EFormatYUV420Planar ) - { - countOfProvidersThatSupportYUV420Planar++; - } - } - if( providerCount > 0 && - providerCount <= countOfProvidersThatSupportYUV420Planar ) - { - aSupportedFormats->AppendL( KVtVideoMIMETypeYUV420 ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::EnumerateVideoFrameFormats() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::EnumerateVideoFrameSizesL -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::EnumerateVideoFrameSizesL( - RArray& aSupportedSizes, - const TDesC8& aFormat ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::EnumerateVideoFrameSizes() >>"), RThread().Id().operator TUint())); - RArray sizeCountArray; - CleanupClosePushL( sizeCountArray ); - TInt providerCount = ProvidersAvailable(); - for ( TInt i = 0; i < providerCount; i++ ) - { - CVSDataProvider* p = CVSDataProvider::NewL( i, NULL, NULL ); - CleanupStack::PushL( p ); - TVSDataProviderInfo info; - ProviderInfoL( i, info ); - for ( TInt j = 0; j < info.iNumVideoFrameSizesSupported; j++ ) - { - TSize size; - p->GetVideoFrameSize( size, j, aFormat ); - if ( size != TSize(0,0) ) - { - TSizeCount sizeCount; - sizeCount.iCount = 1; - sizeCount.iSize = size; - TInt err = sizeCountArray.InsertInOrder( - sizeCount, - TLinearOrder( TSizeCountTLinearOrderFunc ) ); - if ( err == KErrAlreadyExists ) - { - TInt idx = sizeCountArray.Find( - sizeCount, - TIdentityRelation( - TSizeCountTIdentityRelationFunc ) ); - if ( idx == KErrNotFound ) - { - User::Leave( KErrUnknown ); - } - else - { - // Increment count of providers that supports the size - sizeCountArray[idx].iCount++; - } - } - else - { - User::LeaveIfError( err ); - } - } - } - CleanupStack::PopAndDestroy(); // p - } - aSupportedSizes.Reset(); - for ( TInt k = 0; k < sizeCountArray.Count(); k++ ) - { - // Do all providers support the size - if ( providerCount > 0 && providerCount <= sizeCountArray[k].iCount ) - { - User::LeaveIfError( - aSupportedSizes.Append( sizeCountArray[k].iSize ) ); - } - } - CleanupStack::PopAndDestroy( ); // sizeCountArray - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::EnumerateVideoFrameSizes() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataProvider::EnumerateVideoFrameRatesL -// ----------------------------------------------------------------------------- -// -void CVSDataProvider::EnumerateVideoFrameRatesL( - RArray& aSupportedRates, - const TDesC8& aFormat, - const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::EnumerateVideoFrameRates() >>"), RThread().Id().operator TUint())); - RArray rateCountArray; - CleanupClosePushL( rateCountArray ); - TInt providerCount = ProvidersAvailable(); - __IF_DEBUG(Print(_L(" LOOKING FOR COMMON SUPPORTED RATES, PROVIDER COUNT: %d"), providerCount)); - for ( TInt i = 0; i < providerCount; i++ ) - { - __IF_DEBUG(Print(_L(" PROVIDER %d"), i)); - CVSDataProvider* p = CVSDataProvider::NewL( i, NULL, NULL ); - CleanupStack::PushL( p ); - TVSDataProviderInfo info; - ProviderInfoL( i, info ); - __IF_DEBUG(Print(_L(" info.iNumVideoFrameRatesSupported: %d"), info.iNumVideoFrameRatesSupported)); - for ( TInt j = 0; j < info.iNumVideoFrameRatesSupported; j++ ) - { - TReal32 rate = 0.0; - p->GetVideoFrameRate( rate, j, aFormat, aSize ); - __IF_DEBUG(Print(_L(" RATE FOR RATE INDEX %d IS %f"), j, rate)); - if ( rate != 0.0 ) - { - TRateCount rateCount; - rateCount.iCount = 1; - rateCount.iRate = rate; - TInt err = rateCountArray.InsertInOrder( - rateCount, - TLinearOrder( TRateCountTLinearOrderFunc ) ); - if ( err == KErrAlreadyExists ) - { - TInt idx = rateCountArray.Find( - rateCount, - TIdentityRelation( - TRateCountTIdentityRelationFunc ) ); - if ( idx == KErrNotFound ) - { - User::Leave( KErrUnknown ); - } - else - { - // Increment count of providers that supports the rate - rateCountArray[idx].iCount++; - } - } - else - { - User::LeaveIfError( err ); - } - } - } - CleanupStack::PopAndDestroy(); // p - } - aSupportedRates.Reset(); - for ( TInt k = 0; k < rateCountArray.Count(); k++ ) - { - // Do all providers support the rate - if ( providerCount > 0 && providerCount <= rateCountArray[k].iCount ) - { - User::LeaveIfError( - aSupportedRates.Append( rateCountArray[k].iRate ) ); - } - } - CleanupStack::PopAndDestroy( ); // rateCountArray - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataProvider::EnumerateVideoFrameRates() <<"), RThread().Id().operator TUint())); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSDataSourceImp.cpp --- a/vtprotocolplugins/VideoSource/src/CVSDataSourceImp.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1315 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include -#include -#include - -#include "CVSMMFDataBuffer.h" -#include "CVSDataSourceImp.h" -#include "VSPanic.h" - -// EXTERNAL FUNCTION PROTOTYPES - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -static const TInt KQcifWidth = 176; -static const TInt KQcifHeight = 144; - - // 4:2:0 planar and 32 bytes extra - static const TInt KSourceBufferSize = - ( KQcifWidth * KQcifHeight ) + ( ( KQcifWidth * KQcifHeight ) / 2 ) + 12; - -// Granularity for video frame format array -static const TInt KNoOfSupportedFormats = 4; - -// How many sequential FillBufferL calls is supported -static const TInt KNoOfSupportedBuffers = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ============================ CVSProviderSwitchAO ============================ - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::NewL -// ----------------------------------------------------------------------------- -// -CVSProviderSwitchAO* CVSProviderSwitchAO::NewL( - CVSDataSourceImp* aDataSourceImp ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::NewL() >>"), RThread().Id().operator TUint())); - CVSProviderSwitchAO* self = - new ( ELeave ) CVSProviderSwitchAO( aDataSourceImp ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::ConstructL -// ----------------------------------------------------------------------------- -// -void CVSProviderSwitchAO::ConstructL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::ConstructL() >>"), RThread().Id().operator TUint())); - User::LeaveIfError( iSwitchCs.CreateLocal() ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::CVSProviderSwitchAO -// ----------------------------------------------------------------------------- -// -CVSProviderSwitchAO::CVSProviderSwitchAO( CVSDataSourceImp* aDataSourceImp ) -: CActive( EPriorityStandard ), iDataSourceImp( aDataSourceImp ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::CVSProviderSwitchAO() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::CVSProviderSwitchAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::~CVSProviderSwitchAO -// ----------------------------------------------------------------------------- -// -CVSProviderSwitchAO::~CVSProviderSwitchAO() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::~CVSProviderSwitchAO() >>"), RThread().Id().operator TUint())); - iSwitchCs.Close(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::~CVSProviderSwitchAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::ThreadLogon -// ----------------------------------------------------------------------------- -// -TInt CVSProviderSwitchAO::ThreadLogon( MAsyncEventHandler& aEventHandler ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::ThreadLogon() >>"), RThread().Id().operator TUint())); - iEventHandler = &aEventHandler; - RThread me; - iThreadId = me.Id(); - CActiveScheduler::Add( this ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::ThreadLogon() <<"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::ThreadLogoff -// ----------------------------------------------------------------------------- -// -void CVSProviderSwitchAO::ThreadLogoff() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::ThreadLogoff() >>"), RThread().Id().operator TUint())); - if( RThread().Id().operator TUint() == iThreadId ) - { - Deque(); - iThreadId = 0; - iNewProvider = NULL; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::ThreadLogoff() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::InitiateProviderSwitch -// ----------------------------------------------------------------------------- -// -void CVSProviderSwitchAO::InitiateProviderSwitch( - CVSDataProvider* aNewProvider ) - { - iSwitchCs.Wait(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::InitiateProviderSwitch() >>"), RThread().Id().operator TUint())); - iNewProvider = aNewProvider; - iStatus = KRequestPending; - SetActive(); - Signal( KErrNone ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::InitiateProviderSwitch() <<"), RThread().Id().operator TUint())); - iSwitchCs.Signal(); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::RunL -// ----------------------------------------------------------------------------- -// -void CVSProviderSwitchAO::RunL() - { - iSwitchCs.Wait(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::RunL() >>"), RThread().Id().operator TUint())); - if( iStatus.Int() == KErrNone ) - { - if ( iDataSourceImp->SwitchPending() ) - { - Panic( EVSPanicSwitchAlreadyPending ); - } - TRAPD( - leaveCode, - iDataSourceImp->DoProviderSwitchL( iNewProvider, *iEventHandler ) ); - if ( leaveCode != KErrNone ) - { - iDataSourceImp->ProviderSwitchError( leaveCode ); - } - } - else - { - iNewProvider = NULL; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::RunL() <<"), RThread().Id().operator TUint())); - iSwitchCs.Signal(); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::DoCancel -// ----------------------------------------------------------------------------- -// -void CVSProviderSwitchAO::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::DoCancel() >>"), RThread().Id().operator TUint())); - // Nothing to do here. This AO is always signalled when it's activated. - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::DoCancel() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSProviderSwitchAO::Signal -// ----------------------------------------------------------------------------- -// -void CVSProviderSwitchAO::Signal( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::Signal() >>"), RThread().Id().operator TUint())); - if( IsActive() ) - { - TRequestStatus* pStatus = &iStatus; - RThread me; - if( me.Id() == iThreadId ) - { - User::RequestComplete( pStatus, aError ); - } - else - { - if( me.Open( iThreadId ) == KErrNone ) - { - *pStatus = KRequestPending; - me.RequestComplete( pStatus, aError ); - me.Close(); - } - else - { - Panic( EVSPanicThreadOpenFailure ); - } - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSProviderSwitchAO::Signal() <<"), RThread().Id().operator TUint())); - } - -// ============================ CVSDataSourceObserverAO ======================== - -// ----------------------------------------------------------------------------- -// CVSDataSourceObserverAO::CVSDataSourceObserverAO -// ----------------------------------------------------------------------------- -// -CVSDataSourceObserverAO::CVSDataSourceObserverAO() -: CActive( EPriorityStandard ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::CVSDataSourceObserverAO() >>"), RThread().Id().operator TUint())); - RThread me; - iThreadId = me.Id(); - CActiveScheduler::Add( this ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::CVSDataSourceObserverAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceObserverAO::~CVSDataSourceObserverA -// ----------------------------------------------------------------------------- -// -CVSDataSourceObserverAO::~CVSDataSourceObserverAO() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::~CVSDataSourceObserverAO() >>"), RThread().Id().operator TUint())); - Cancel(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::~CVSDataSourceObserverAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceObserverAO::vsProviderSwitchDone -// ----------------------------------------------------------------------------- -// -void CVSDataSourceObserverAO::vsProviderSwitchDone( - MVSDataSourceObserver& aObserver, - CVSDataProvider* aOldProvider ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::vsProviderSwitchDone() >>"), RThread().Id().operator TUint())); - iObserver = &aObserver; - iOldProvider = aOldProvider; - iStatus = KRequestPending; - SetActive(); - Signal( KErrNone ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::vsProviderSwitchDone() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceObserverAO::RunL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceObserverAO::RunL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::RunL() >>"), RThread().Id().operator TUint())); - if( iStatus.Int() == KErrNone ) - { - iObserver->vsProviderSwitchDone( iOldProvider ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::RunL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceObserverAO::DoCancel -// ----------------------------------------------------------------------------- -// -void CVSDataSourceObserverAO::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::DoCancel() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::DoCancel() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceObserverAO::Signal -// ----------------------------------------------------------------------------- -// -void CVSDataSourceObserverAO::Signal( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::Signal() >>"), RThread().Id().operator TUint())); - TRequestStatus* pStatus = &iStatus; - RThread me; - if( me.Id() == iThreadId ) - { - User::RequestComplete( pStatus, aError ); - } - else - { - if( me.Open( iThreadId ) == KErrNone ) - { - *pStatus = KRequestPending; - me.RequestComplete( pStatus, aError ); - me.Close(); - } - else - { - Panic( EVSPanicThreadOpenFailure ); - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceObserverAO::Signal() <<"), RThread().Id().operator TUint())); - } - - - -// =============================== CVSDataSource =============================== - -// ----------------------------------------------------------------------------- -// CVSDataSource::NewSourceL -// ----------------------------------------------------------------------------- -// -CVSDataSource* CVSDataSource::NewSourceL( MVSDataSourceObserver* aObserver ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSource::NewSourceL() >>"), RThread().Id().operator TUint())); - if ( aObserver == NULL ) - { - User::Leave( KErrArgument ); - } - CVSDataSource* self = CVSDataSourceImp::NewSourceL(); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSource::NewSourceL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSDataSource::CVSDataSource -// ----------------------------------------------------------------------------- -// -CVSDataSource::CVSDataSource() : MVTVideoSource( KNullUid ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSource::CVSDataSource() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSource::CVSDataSource() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSource::ConstructL -// ----------------------------------------------------------------------------- -// -void CVSDataSource::ConstructL( MVSDataSourceObserver* aObserver ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSource::ConstructL() >>"), RThread().Id().operator TUint())); - iObserver = aObserver; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSource::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::NewSourceL -// ----------------------------------------------------------------------------- -// -CVSDataSourceImp* CVSDataSourceImp::NewSourceL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::NewSourceL() >>"), RThread().Id().operator TUint())); - CVSDataSourceImp* self = new (ELeave) CVSDataSourceImp; - CleanupStack::PushL( self ); - self->ConstructSourceL( KNullDesC8 ); - CleanupStack::Pop( self ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::NewSourceL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SwitchDataProviderL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::SwitchDataProviderL( - CVSDataProvider* aNewProvider ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SwitchDataProviderL() >>"), RThread().Id().operator TUint())); - if ( aNewProvider == NULL ) - { - __IF_DEBUG(Print(_L("SwitchDataProviderL(): NULL argument, leaving."))); - User::Leave( KErrArgument ); - } - // Is new provider same as old, then no need to change provider - if ( aNewProvider == &DataProvider() ) - { - __IF_DEBUG(Print(_L("SwitchDataProviderL(): New provider same as old: 0x%x"), aNewProvider)); - Observer().vsProviderSwitchDone( aNewProvider ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SwitchDataProvider() <<"), RThread().Id().operator TUint())); - return; - } - // If Protocol is in the currently initializing itself then complete this switch - // request when Protocol ready (from SourcePlayL). No need to protect - // iProtoInitOngoing test with CS. - if ( iProtoInitOngoing ) - { - __IF_DEBUG(Print(_L("PROTOCOL INIT ONGOING, PENDING SWITCH FOR A WHILE"))); - iProtoInitCS.Wait(); - iProviderSwitchRequestDuringProtoInit = ETrue; - iNewProvider = aNewProvider; - iProtoInitCS.Signal(); - return; - } - // Switch provider - if ( iThreadLogonCalled ) - { - iProviderSwitchAO->InitiateProviderSwitch( aNewProvider ); - } - else - { - CVSDataProvider* oldProvider = SwitchProvider( aNewProvider ); - Observer().vsProviderSwitchDone( oldProvider ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SwitchDataProviderL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::PauseSending -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::PauseSending() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::PauseSending() >>"), RThread().Id().operator TUint())); - iPauseCs.Wait(); - iSendingPaused = ETrue; - iPauseCs.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::PauseSending() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::ResumeSending -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::ResumeSending() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::ResumeSending() >>"), RThread().Id().operator TUint())); - iPauseCs.Wait(); - iSendingPaused = EFalse; - iPauseCs.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::ResumeSending() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::~CVSDataSourceImp -// ----------------------------------------------------------------------------- -// -CVSDataSourceImp::~CVSDataSourceImp() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::~CVSDataSourceImp() >>"), RThread().Id().operator TUint())); - delete iDataSourceObserverAO; - delete iProviderSwitchAO; - iProtoMimeTypes.Close(); - delete iSupportedVideoFormats; - iSupportedVideoSizes.Close(); - iSupportedFrameRates.Close(); - // Assuming no need to use critical section here - iFreeQueue.Close(); - iActiveQueue.Close(); - iAllocatedBuffers.ResetAndDestroy(); - iQueueCs.Close(); - iPauseCs.Close(); - iProtoInitCS.Close(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::~CVSDataSourceImp() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::FillBufferL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL() >>"), RThread().Id().operator TUint())); - - if ( aBuffer == NULL || aConsumer == NULL ) - { - User::Leave( KErrArgument ); - } - - if ( aBuffer->Type() != KUidMmfDataBuffer ) - { - User::Leave( KErrArgument ); - } - - DataProvider().SetFillBufferParams( aConsumer, aMediaId ); - - iPauseCs.Wait(); - const TBool sendingPaused( iSendingPaused ); - iPauseCs.Signal(); - - if( iSwitchOngoing ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL(): Switch ongoing"), RThread().Id().operator TUint())); - // queues are locked by us -> it's safe to modify queues without - // locking - User::LeaveIfError( - FreeBufferNoWait( static_cast( aBuffer ) ) ); - } - else if( iSwitchPending ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL(): Switch pending"), RThread().Id().operator TUint())); - FreeBufferL( static_cast( aBuffer ) ); - TRAPD( - err, - DoProviderSwitchL( - iProviderSwitchAO->NewDataProvider(), - iProviderSwitchAO->EventHandler() ) ); - if( err != KErrNone ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL(): Error in switch = %d"), RThread().Id().operator TUint(), err)); - // Not leaving from here (it was provider switch related error), - // let VT take care of the rest - ProviderSwitchError( err ); - } - } - else if( sendingPaused ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL(): Sending Paused"), RThread().Id().operator TUint())); - // queues are locked by us -> it's safe to modify queues without - // locking - User::LeaveIfError( - FreeBufferNoWait( static_cast( aBuffer ) ) ); - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL(): No switch -> normal FillBufferL()"), RThread().Id().operator TUint())); - FreeBufferL( static_cast( aBuffer ) ); - DataProvider().FillBufferL( aBuffer, aConsumer, aMediaId ); - } - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FillBufferL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::BufferEmptiedL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::BufferEmptiedL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::BufferEmptiedL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::CanCreateSourceBuffer -// ----------------------------------------------------------------------------- -// -TBool CVSDataSourceImp::CanCreateSourceBuffer() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CanCreateSourceBuffer() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CanCreateSourceBuffer) <<"), RThread().Id().operator TUint())); - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::CreateSourceBufferL -// ----------------------------------------------------------------------------- -// -CMMFBuffer* CVSDataSourceImp::CreateSourceBufferL( - TMediaId /*aMediaId*/, - TBool &aReference ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CreateSourceBufferL() >>"), RThread().Id().operator TUint())); - if ( iRequestedBufferCount >= KNoOfSupportedBuffers ) - { - User::Leave( KErrOverflow ); - } - aReference = ETrue; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CreateSourceBufferL(): Returning buffer: %d [0x%08x]"), RThread().Id().operator TUint(), iRequestedBufferCount + 1, iAllocatedBuffers[ iRequestedBufferCount ])); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CreateSourceBufferL() <<"), RThread().Id().operator TUint())); - return iAllocatedBuffers[ iRequestedBufferCount++ ]; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::CreateSourceBufferL -// ----------------------------------------------------------------------------- -// -CMMFBuffer* CVSDataSourceImp::CreateSourceBufferL( - TMediaId /*aMediaId*/, - CMMFBuffer& /*aSinkBuffer*/, - TBool &aReference ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CreateSourceBufferL() >>"), RThread().Id().operator TUint())); - if ( iRequestedBufferCount >= KNoOfSupportedBuffers ) - { - User::Leave( KErrOverflow ); - } - aReference = ETrue; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CreateSourceBufferL(): Returning buffer: %d [0x%08x]"), RThread().Id().operator TUint(), iRequestedBufferCount + 1, iAllocatedBuffers[ iRequestedBufferCount ])); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CreateSourceBufferL() <<"), RThread().Id().operator TUint())); - return iAllocatedBuffers[ iRequestedBufferCount++ ]; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SourceThreadLogon -// ----------------------------------------------------------------------------- -// -TInt CVSDataSourceImp::SourceThreadLogon( MAsyncEventHandler& aEventHandler ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourceThreadLogon() >>"), RThread().Id().operator TUint())); - __ASSERT_DEBUG( (&DataProvider()) != NULL, - Panic( EVSPanicProviderNotSet ) ); - TInt err( KErrNone ); - if( !iFbsStarted ) - { - // Caller does not start the FBS server when compiled on proxy mode - // so we have to take care of that by ourself. - err = FbsStartup(); - if( err == KErrNone ) - { - err = RFbsSession::Connect(); - if( err == KErrNone ) - { - iFbsStarted = ETrue; - } - } - } - if( !iThreadLogonCalled && ( err == KErrNone ) ) - { - err = DataProvider().SourceThreadLogon( aEventHandler ); - if (err != KErrNone) - { - return err; - } - iProviderSwitchAO->ThreadLogon( aEventHandler ); - iThreadLogonCalled = ETrue; - iProtoInitOngoing = ETrue; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourceThreadLogon() <<"), RThread().Id().operator TUint())); - return err; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SourceThreadLogoff -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::SourceThreadLogoff() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourceThreadLogoff() >>"), RThread().Id().operator TUint())); - - iThreadLogonCalled = EFalse; - - if ( iProviderSwitchRequestDuringProtoInit ) - { - __IF_DEBUG(Print(_L("PROTOCOL INIT FAILED, NOW COMPLETING THE SWITCH REQUEST WITH ERROR"))); - iProviderSwitchRequestDuringProtoInit = EFalse; - ProviderSwitchError( KErrAbort ); - } - - if( &DataProvider() ) - { - DataProvider().SourceThreadLogoff(); - } - - iSwitchOngoing = iSwitchPending = EFalse; - - iProtoInitOngoing = EFalse; - - // If provider switch ongoing complete it - if ( iProviderSwitchAO->NewDataProvider() != NULL ) - { - CVSDataProvider* oldProvider = - SwitchProvider( iProviderSwitchAO->NewDataProvider() ); - Observer().vsProviderSwitchDone( oldProvider ); - } - - iProviderSwitchAO->ThreadLogoff(); - - delete iFormat; iFormat = 0; - - iCallFlags = 0; - - // Clear iFreeQueue - while( iFreeQueue.Count() ) - { - iFreeQueue.Remove( 0 ); - } - - // Clear iActiveQueue - while( iActiveQueue.Count() ) - { - iActiveQueue.Remove( 0 ); - } - - // Set frame buffer to NULL for all buffers - for( TInt i = 0; i < iRequestedBufferCount; i++ ) - { - TInt err = KErrNone; - // Does not leave when framebuffer is set to NULL - // Both type of buffers needs to be nulled - TRAP( err, iAllocatedBuffers[i]->SetFrameBufferL( ( MCameraBuffer* )NULL )); - TRAP( err, iAllocatedBuffers[i]->SetFrameBufferL( ( MFrameBuffer* )NULL )); } - - // All pre-created buffers are free again - iRequestedBufferCount = 0; - - if( iFbsStarted ) - { - RFbsSession::Disconnect(); - iFbsStarted = EFalse; - } - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourceThreadLogoff() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SourcePrimeL -// ----------------------------------------------------------------------------- -// -TInt CVSDataSourceImp::SourcePrimeL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePrimeL() >>"), RThread().Id().operator TUint())); - TRAPD( result, DataProvider().SourcePrimeL() ); - if( ( result == KErrNone ) || ( result == KRequestPending ) ) - { - iDSState = CVSDataSourceImp::EPrimed; - } - else - { - User::Leave( result ); - } - iProtoInitOngoing = EFalse; - // If provider switch was requested when Proto was initializing itself then - // fill switch request now - iProtoInitCS.Wait(); - if ( iProviderSwitchRequestDuringProtoInit ) - { - __IF_DEBUG(Print(_L("PROTOCOL INIT READY, NOW COMPLETING THE SWITCH REQUEST"))); - iProviderSwitchRequestDuringProtoInit = EFalse; - iProviderSwitchAO->InitiateProviderSwitch( iNewProvider ); - iNewProvider = NULL; - } - iProtoInitCS.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePrimeL() <<"), RThread().Id().operator TUint())); - return result; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SourcePlayL -// ----------------------------------------------------------------------------- -// -TInt CVSDataSourceImp::SourcePlayL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePlayL() >>"), RThread().Id().operator TUint())); - if( !iSwitchOngoing ) - { - DataProvider().SourcePlayL(); - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePlayL(): Switch ongoing -> updating state only, play will be called after switch"), RThread().Id().operator TUint())); - } - iDSState = CVSDataSourceImp::EPlaying; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePlayL() <<"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SourcePauseL -// ----------------------------------------------------------------------------- -// -TInt CVSDataSourceImp::SourcePauseL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePauseL() >>"), RThread().Id().operator TUint())); - if( !iSwitchOngoing ) - { - DataProvider().SourcePauseL(); - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePlayL(): Switch ongoing -> updating state only"), RThread().Id().operator TUint())); - } - iDSState = CVSDataSourceImp::EPrimed; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePauseL() <<"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SourceStopL -// ----------------------------------------------------------------------------- -// -TInt CVSDataSourceImp::SourceStopL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourceStopL() >>"), RThread().Id().operator TUint())); - if( !iSwitchOngoing ) - { - DataProvider().SourceStopL(); - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourcePlayL(): Switch ongoing -> updating state only"), RThread().Id().operator TUint())); - } - iDSState = CVSDataSourceImp::EStopped; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SourceStopL() <<"), RThread().Id().operator TUint())); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::ConstructSourceL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::ConstructSourceL( const TDesC8& /*aInitData*/ ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::ConstructSourceL() >>"), RThread().Id().operator TUint())); - iYuv420PlanarDesc.Zero(); - iYuv420PlanarDesc.Append( KVtVideoMIMETypeYUV420 ); - User::LeaveIfError( iProtoMimeTypes.Append( &iYuv420PlanarDesc ) ); - iProviderSwitchAO = CVSProviderSwitchAO::NewL( this ); - iDataSourceObserverAO = new (ELeave) CVSDataSourceObserverAO(); - iSupportedVideoFormats = - new (ELeave) CDesC8ArrayFlat( KNoOfSupportedFormats ); - // Get formats supported by all providers - CVSDataProvider::EnumerateVideoFrameFormatsL( iSupportedVideoFormats ); - // Get video frame sizes for specified format supported by all providers - TInt i, j; - i = j = 0; - for ( i = 0; i < iSupportedVideoFormats->Count(); i++ ) - { - TPtrC8 format = iSupportedVideoFormats->MdcaPoint( i ); - RArray sizeArray; - CleanupClosePushL( sizeArray ); - CVSDataProvider::EnumerateVideoFrameSizesL( sizeArray, format ); - for ( j = 0; j < sizeArray.Count(); j++ ) - { - TVSFrameSize sizePerFormat; - sizePerFormat.iFormat.Set( format ); - sizePerFormat.iSize = sizeArray[j]; - User::LeaveIfError( iSupportedVideoSizes.Append( sizePerFormat ) ); - } - CleanupStack::PopAndDestroy(); // sizeArray - } - // Get video frame rates for specified frame format and size supported - // by all providers - for ( i = 0; i < iSupportedVideoSizes.Count(); i++ ) - { - RArray rateArray; - CleanupClosePushL( rateArray ); - CVSDataProvider::EnumerateVideoFrameRatesL( - rateArray, - iSupportedVideoSizes[i].iFormat, - iSupportedVideoSizes[i].iSize ); - for ( j = 0; j < rateArray.Count(); j++ ) - { - TVSFrameRate framePerSizeAndFormat; - framePerSizeAndFormat.iFormat.Set( - iSupportedVideoSizes[i].iFormat ); - framePerSizeAndFormat.iSize = iSupportedVideoSizes[i].iSize; - framePerSizeAndFormat.iRate = rateArray[j]; - User::LeaveIfError( iSupportedFrameRates.Append( - framePerSizeAndFormat ) ); - } - CleanupStack::PopAndDestroy(); // rateArray - } - // Create queue criticalsection - User::LeaveIfError( iQueueCs.CreateLocal() ); - // Create VTEng-Protocol guard - User::LeaveIfError( iPauseCs.CreateLocal() ); - // Pre-create buffers - for( i = 0; i < KNoOfSupportedBuffers; i++ ) - { - User::LeaveIfError( iFreeQueue.Append( 0 ) ); - User::LeaveIfError( iActiveQueue.Append( 0 ) ); - CVSMMFDataBuffer* buffer = CVSMMFDataBuffer::NewL( KSourceBufferSize ); - CleanupStack::PushL( buffer ); - User::LeaveIfError( iAllocatedBuffers.Append( buffer ) ); - CleanupStack::Pop(); // buffer - } - for( i = 0; i < KNoOfSupportedBuffers; i++ ) - { - iFreeQueue.Remove( 0 ); - iActiveQueue.Remove( 0 ); - } - // Init critical sections - User::LeaveIfError( iProtoInitCS.CreateLocal() ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::ConstructSourceL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::GetMultimediaTypesL -// ----------------------------------------------------------------------------- -// -const RArray& CVSDataSourceImp::GetMultimediaTypesL() const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetMultimediaTypeL() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetMultimediaTypeL() <<"), RThread().Id().operator TUint())); - return iProtoMimeTypes; - } - - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SetFormatL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::SetFormatL( const TDesC8& aFormat ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SetFormatL() >>"), RThread().Id().operator TUint())); - if ( &DataProvider() == NULL ) - { - User::Leave( KErrBadHandle ); - } - TBool supported = EFalse; - for ( TInt i = 0; i < iSupportedVideoFormats->Count(); i++ ) - { - TPtrC8 format = iSupportedVideoFormats->MdcaPoint( i ); - if ( aFormat == format ) - { - supported = ETrue; - break; - } - } - if ( !supported ) - { - User::Leave( KErrNotSupported ); - } - DataProvider().SetFormatL( aFormat ); - delete iFormat; iFormat = 0; - iFormat = aFormat.AllocL(); - iCallFlags |= ESetFormatCalled; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SetFormatL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SetFrameRateL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::SetFrameRateL( TReal32 aFrameRate ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SetFrameRateL() >>"), RThread().Id().operator TUint())); - if ( &DataProvider() == NULL ) - { - User::Leave( KErrBadHandle ); - } - TBool supported = EFalse; - for ( TInt i = 0; i < iSupportedFrameRates.Count(); i++ ) - { - TVSFrameRate rate = iSupportedFrameRates[i]; - if ( rate.iFormat == iFormat->Des() && rate.iSize == iSize) - { - if ( aFrameRate == rate.iRate ) - { - supported = ETrue; - break; - } - } - } - if ( !supported ) - { - User::Leave( KErrNotSupported ); - } - DataProvider().SetFrameRateL( aFrameRate ); - iFrameRate = aFrameRate; - iCallFlags |= ESetFrameRateCalled; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SetFrameRateL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::SetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::SetVideoFrameSizeL( const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SetVideoFrameSizeL() >>"), RThread().Id().operator TUint())); - if ( &DataProvider() == NULL ) - { - User::Leave( KErrBadHandle ); - } - TBool supported = EFalse; - for ( TInt i = 0; i < iSupportedVideoSizes.Count(); i++ ) - { - TVSFrameSize size = iSupportedVideoSizes[i]; - if ( size.iFormat == iFormat->Des() ) - { - if ( aSize == size.iSize ) - { - supported = ETrue; - break; - } - } - } - if ( !supported ) - { - User::Leave( KErrNotSupported ); - } - DataProvider().SetVideoFrameSizeL( aSize ); - iSize = aSize; - iCallFlags |= ESetSizeCalled; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::SetVideoFrameSizeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::GetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::GetVideoFrameSizeL( TSize& aSize ) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetVideoFrameSizeL() >>"), RThread().Id().operator TUint())); - if ( &DataProvider() == NULL ) - { - User::Leave( KErrBadHandle ); - } - DataProvider().GetVideoFrameSizeL( aSize ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetVideoFrameSizeL() <<"), RThread().Id().operator TUint())); - } - - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::DoProviderSwitchL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::DoProviderSwitchL( - CVSDataProvider* aNewProvider, - MAsyncEventHandler& aEventHandler ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::DoProviderSwitchL() >>"), RThread().Id().operator TUint())); - - iQueueCs.Wait(); - - // If there are entries in iActiveQueue wait until they are freed by Protocol - if ( iActiveQueue.Count() > 0 ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::DoProviderSwitchL(): activequeue count > 0, <<"), RThread().Id().operator TUint())); - iSwitchPending = ETrue; - iQueueCs.Signal(); - return; - } - else - { - iSwitchPending = EFalse; - } - - iSwitchOngoing = ETrue; - - /* - * THE FOLLOWING CALLS USE CActiveSchedulerWait WHICH MEANS SOME OTHER - * OBJECT MAY RUN IN BETWEEN THE FOLLOWING CALLS I.E. THESE CALLS ARE NOT - * SYNCHRONOUS. - */ - - User::LeaveIfError( aNewProvider->SourceThreadLogon( aEventHandler ) ); - - // Is format set by the Protocol - if ( iCallFlags & ESetFormatCalled ) - { - aNewProvider->SetFormatL( *iFormat ); - } - // Is size set by the Protocol - if ( iCallFlags & ESetSizeCalled ) - { - aNewProvider->SetVideoFrameSizeL( iSize ); - } - // Is framerate set by the Protocol - if ( iCallFlags & ESetFrameRateCalled ) - { - aNewProvider->SetFrameRateL( iFrameRate ); - } - // Stop old provider - if ( &DataProvider() != NULL ) - { - switch( iDSState ) - { - case EPlaying: - DataProvider().SourcePauseL(); - DataProvider().SourceStopL(); - break; - - case EPrimed: - DataProvider().SourceStopL(); - break; - - default: - break; - }; - DataProvider().SourceThreadLogoff(); - } - - // Set new provider state according to current state - switch ( iDSState ) - { - case EStopped: - break; - - case EPrimed: - case EPlaying: - aNewProvider->PrimeL(); - - // check if SourcePlayL() was called during prime - if( iDSState == EPlaying ) - { - aNewProvider->SourcePlayL(); - aNewProvider->SwitchFrom( DataProvider() ); - } - // or SourceStopL() - else if( iDSState == EStopped ) - { - aNewProvider->SourceStopL(); - } - break; - } - /* - * THE FOLLOWING CALLS ARE SUPPOSED TO BE SYNCHRONOUS IN THAT THEY DO NOT - * LET ACTIVE SCHEDULER RUN SOME OTHER OBJECT. - */ - - // Complete switch - CVSDataProvider* oldProvider = SwitchProvider( aNewProvider ); - - // Set consumer and media id - DataProvider().SetFillBufferParams( - oldProvider->Consumer(), - oldProvider->MediaId() ); - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::DoProviderSwitchL(): iFreeQueue.Count() = %d, iActiveQueue.Count() = %d"), RThread().Id().operator TUint(), iFreeQueue.Count(), iActiveQueue.Count() )); - - // If old provider has pending FillBufferL() calls -> call FillBufferL() - // for new provider if it is in Playing state. - if( iDSState == EPlaying ) - { - for ( TInt i = 0; i < iFreeQueue.Count(); i++ ) - { - iFreeQueue[ i ]->Reset(); - DataProvider().FillBufferL( - iFreeQueue[i], - DataProvider().Consumer(), - DataProvider().MediaId() ); - } - } - - // Buffers that are being used by Protocol are set to be needing a reset - for ( TInt i = 0; i < iActiveQueue.Count(); i++ ) - { - iActiveQueue[ i ]->SetNeedsReset( ETrue ); - } - - iSwitchOngoing = EFalse; - - iQueueCs.Signal(); - - iDataSourceObserverAO->vsProviderSwitchDone( Observer(), oldProvider ); - iProviderSwitchAO->NewDataProvider() = NULL; - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::DoProviderSwitchL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::CVSDataSourceImp -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::ProviderSwitchError( TInt aError ) - { - DataProvider().NotifyError( aError ); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::CVSDataSourceImp -// ----------------------------------------------------------------------------- -// -CVSDataSourceImp::CVSDataSourceImp() -: iFreeQueue( KNoOfSupportedBuffers ), iActiveQueue( KNoOfSupportedBuffers ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CVSDataSourceImp() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::CVSDataSourceImp() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::GetBufferL -// ----------------------------------------------------------------------------- -// -CVSMMFDataBuffer* CVSDataSourceImp::GetBufferL( TBool aRemove ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetBufferL() >>"), RThread().Id().operator TUint())); - if( !iQueueCs.IsBlocked() ) - { - iPauseCs.Wait(); - const TBool sendingPaused( iSendingPaused ); - iPauseCs.Signal(); - - iQueueCs.Wait(); - - // while switch is pending, always return NULL we don't want to let - // buffer float around - if( iSwitchPending || sendingPaused ) - { - iQueueCs.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetBufferL(): Switch pending or sending paused -> returning NULL"), RThread().Id().operator TUint())); - return 0; - } - - // If no buffers in free (FillBufferL is called) queue -> return NULL - if( !iFreeQueue.Count() ) - { - iQueueCs.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetBufferL(): NO free buffers -> returning NULL"), RThread().Id().operator TUint())); - return 0; - } - // Otherwise get first buffer - CVSMMFDataBuffer* temp = iFreeQueue[ 0 ]; - // Move to active (BufferFilledL is called) queue if requested - if( aRemove ) - { - iFreeQueue.Remove( 0 ); - TInt err = iActiveQueue.Append( temp ); - if ( err != KErrNone ) - { - iQueueCs.Signal(); - User::Leave( err ); - } - } - iQueueCs.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetBufferL() returning [$%x]"), RThread().Id().operator TUint(), temp)); - return temp; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::GetBufferL(): blocked, returning [$%08x]"), RThread().Id().operator TUint(), 0)); - return 0; - } - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::FreeBufferL -// ----------------------------------------------------------------------------- -// -void CVSDataSourceImp::FreeBufferL( CVSMMFDataBuffer* aBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FreeBufferL() >>"), RThread().Id().operator TUint())); - iQueueCs.Wait(); - TInt err = FreeBufferNoWait( aBuffer ); - iQueueCs.Signal(); - User::LeaveIfError( err ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FreeBufferL() <<"), RThread().Id().operator TUint())); - } - - -// ----------------------------------------------------------------------------- -// CVSDataSourceImp::FreeBufferNoWait( CVSMMFDataBuffer* aBuffer ) -// ----------------------------------------------------------------------------- -// -TInt CVSDataSourceImp::FreeBufferNoWait( CVSMMFDataBuffer* aBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FreeBufferNoWait() >>"), RThread().Id().operator TUint())); - - // Append buffer into free (FillBufferL is called) queue - TInt err( KErrNone ); - - // Try finding buffer from active (BufferFilledL is called) queue - TInt actIdx = iActiveQueue.Find( aBuffer ); - - // If it is found, remove it from there - if( actIdx != KErrNotFound ) - { - iActiveQueue.Remove( actIdx ); - TRAP( err, aBuffer->ReleaseL() ); - if( err != KErrNone ) - { - return err; - } - } - - if( iFreeQueue.Find( aBuffer ) == KErrNotFound ) - { - err = iFreeQueue.Append( aBuffer ); - } - -#ifdef _DEBUG - TBuf<256> b; - TInt i; - b = _L("Active: "); - for( i = 0; i < iActiveQueue.Count(); i++ ) - { - if( i > 0 ) - { - b.Append( _L(", ") ); - } - TBuf<16> b1; - b1.Format( _L("[$%08x]"), iActiveQueue[i] ); - b.Append( b1 ); - } - RDebug::Print( b ); - - b = _L("Free : "); - for( i = 0; i < iFreeQueue.Count(); i++ ) - { - if( i > 0 ) - { - b.Append( _L(", ") ); - } - TBuf<16> b1; - b1.Format( _L("[$%08x]"), iFreeQueue[i] ); - b.Append( b1 ); - } - RDebug::Print( b ); -#endif - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSDataSourceImp::FreeBufferNoWait() <<"), RThread().Id().operator TUint())); - - return err; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSMMFDataBuffer.cpp --- a/vtprotocolplugins/VideoSource/src/CVSMMFDataBuffer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,343 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include -#include "CVSMMFDataBuffer.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ CVSMMFDataBuffer =============================== - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::NewL -// ----------------------------------------------------------------------------- -// -EXPORT_C CVSMMFDataBuffer* CVSMMFDataBuffer::NewL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::NewL() >>"), RThread().Id().operator TUint())); - CVSMMFDataBuffer* self = new ( ELeave ) CVSMMFDataBuffer; - CleanupStack::PushL(self); - self->ConstructL( KMMFDataBufferDefaultBufferSize ); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::NewL <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::NewL -// ----------------------------------------------------------------------------- -// -EXPORT_C CVSMMFDataBuffer* CVSMMFDataBuffer::NewL( TInt aMaxBufferSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::NewL() >>"), RThread().Id().operator TUint())); - CVSMMFDataBuffer* self = new ( ELeave ) CVSMMFDataBuffer; - CleanupStack::PushL(self); - self->ConstructL( aMaxBufferSize ); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::NewL <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::~CVSMMFDataBuffer -// ----------------------------------------------------------------------------- -// -EXPORT_C CVSMMFDataBuffer::~CVSMMFDataBuffer() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::~CVSMMFDataBuffer() >>"), RThread().Id().operator TUint())); - delete[] iData; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::~CVSMMFDataBuffer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::ReAllocBufferL -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::ReAllocBufferL( TInt aMaxBufferSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::ReAllocBufferL() >>"), RThread().Id().operator TUint())); - if ( !iIsBufferSet ) - { - TUint8* tmp = new (ELeave) TUint8[aMaxBufferSize]; - delete[] iData; - iData = tmp; - iPtr.Set( iData, 0, aMaxBufferSize ); - iMaxBufferSize = aMaxBufferSize; - } - else - { - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::ReAllocBufferL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::NeedsReset -// ----------------------------------------------------------------------------- -// -TBool CVSMMFDataBuffer::NeedsReset() const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::NeedsReset() ><"), RThread().Id().operator TUint())); - return iNeedsReset; - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetNeedsReset -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetNeedsReset( TBool aNeedsReset ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetNeedsReset() >>"), RThread().Id().operator TUint())); - iNeedsReset = aNeedsReset; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetNeedsReset() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::Reset -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::Reset() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Reset() >>"), RThread().Id().operator TUint())); - iPtr.Zero(); - SetNeedsReset( EFalse ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Reset() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::Data -// ----------------------------------------------------------------------------- -// -TDes8& CVSMMFDataBuffer::Data() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Data() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Data() <<"), RThread().Id().operator TUint())); - return iPtr; - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::Data -// ----------------------------------------------------------------------------- -// -const TDesC8& CVSMMFDataBuffer::Data() const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Data() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Data() <<"), RThread().Id().operator TUint())); - return iPtr; - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetStatus -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetStatus( TBufferStatus aStatus ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetStatus() >>"), RThread().Id().operator TUint())); - CMMFBuffer::SetStatus( aStatus ); - if ( iStatus == EBeingFilled ) - { - Reset(); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetStatus() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetRequestSizeL -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetRequestSizeL( TInt aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetRequestSizeL() >>"), RThread().Id().operator TUint())); - if ( aSize < 0 ) - { - User::Leave( KErrUnderflow ); - } - else if ( aSize > iPtr.MaxLength() ) - { - User::Leave( KErrOverflow ); - } - else - { - iRequestSize = aSize; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetRequestSizeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::BufferSize -// ----------------------------------------------------------------------------- -// -TUint CVSMMFDataBuffer::BufferSize() const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::BufferSize() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::BufferSize() <<"), RThread().Id().operator TUint())); - return iPtr.Length(); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetPosition -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetPosition( TUint aPosition ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetPosition() >>"), RThread().Id().operator TUint())); - if ( aPosition <= (TUint)iPtr.Length() ) - { - iPosition = aPosition; - } - else - { - iPosition = (TUint)iPtr.Length(); // Tried to position beyond end of - // data - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetPosition() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetFrameBufferL -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetFrameBufferL( MFrameBuffer* aFrameBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetFrameBuffer() >>"), RThread().Id().operator TUint())); - iFrameBuffer = aFrameBuffer; - //Buffer is valid - iIsBufferSet = ETrue; - if ( aFrameBuffer == NULL ) - { - iPtr.Set( iData, 0, iMaxBufferSize ); - } - else - { - Reset(); - TPtrC8 ptr( *iFrameBuffer->DataL( 0 ) ); - iPtr.Set((TUint8*)ptr.Ptr(), ptr.Size(), ptr.Size()); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetFrameBuffer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetFrameBufferL -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetFrameBufferL( MCameraBuffer* aCameraBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetFrameBuffer() >>"), RThread().Id().operator TUint())); - iCameraBuffer = aCameraBuffer; - //Buffer is valid - iIsBufferSet = ETrue; - if ( aCameraBuffer == NULL ) - { - iPtr.Set( iData, 0, iMaxBufferSize ); - } - else - { - Reset(); - // Take the latest frame data from buffer should be always 0, - // but if buffer contains more than 1 frame could be something else - TPtrC8 ptr( *iCameraBuffer->DataL( iCameraBuffer->NumFrames() - 1 ) ); - iPtr.Set((TUint8*)ptr.Ptr(), ptr.Size(), ptr.Size()); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetFrameBuffer() <<"), RThread().Id().operator TUint())); - } - - - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::ReleaseL -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::ReleaseL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Release() >>"), RThread().Id().operator TUint())); - if( iFrameBuffer ) - { - iFrameBuffer->Release(); - SetFrameBufferL( (MFrameBuffer*)NULL ); - } - else if( iCameraBuffer ) - { - iCameraBuffer->Release(); - SetFrameBufferL( (MCameraBuffer*)NULL ); - } - else - { - if ( iPtr.Ptr() != iData ) - { - iPtr.Set( iData, 0, iMaxBufferSize ); - } - if( NeedsReset() ) - { - Reset(); - } - } - - //Buffer is no longer valid - iIsBufferSet = EFalse; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::Release() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::SetBufferOffset -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::SetBufferOffset( TInt aOffset ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetBufferOffset() >>"), RThread().Id().operator TUint())); - if ( !iIsBufferSet ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetBufferOffset(): Length = %d, Offset = %d"), RThread().Id().operator TUint(), iPtr.Length(), aOffset)); - iPtr.Set( iData + aOffset, iPtr.Length() - aOffset, iMaxBufferSize ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::SetBufferOffset() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::CVSMMFDataBuffer -// ----------------------------------------------------------------------------- -// -CVSMMFDataBuffer::CVSMMFDataBuffer() : - CMMFDataBuffer( KUidMmfDataBuffer ), iPtr(0,0,0), iIsBufferSet(EFalse) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::CVSMMFDataBuffer() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::CVSMMFDataBuffer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSMMFDataBuffer::ConstructL -// ----------------------------------------------------------------------------- -// -void CVSMMFDataBuffer::ConstructL( TInt aMaxBufferSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::ConstructL() >>"), RThread().Id().operator TUint())); - iData = new (ELeave) TUint8[aMaxBufferSize]; - iPtr.Set( iData, 0, aMaxBufferSize ); - iMaxBufferSize = aMaxBufferSize; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSMMFDataBuffer::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSOnboardCameraDataProvider.cpp --- a/vtprotocolplugins/VideoSource/src/CVSOnboardCameraDataProvider.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1007 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CVSOnboardCameraDataProvider.h" -#include "CVSDataSourceImp.h" -#include "VSPanic.h" -#include "CVSMMFDataBuffer.h" - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -const TInt KQCIFWidth = 176; -const TInt KQCIFHeight = 144; - -// MACROS -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ============================ CProviderErrorNotifierAO ======================= - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::NewL -// ----------------------------------------------------------------------------- -// -CProviderErrorNotifierAO* CProviderErrorNotifierAO::NewL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::NewL() >>"), RThread().Id().operator TUint())); - CProviderErrorNotifierAO* self = new ( ELeave ) CProviderErrorNotifierAO(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::~CProviderErrorNotifierAO -// ----------------------------------------------------------------------------- -// -CProviderErrorNotifierAO::~CProviderErrorNotifierAO() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::~CProviderErrorNotifierAO() >>"), RThread().Id().operator TUint())); - Cancel(); - iCS.Close(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::~CProviderErrorNotifierAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::NotifyError -// ----------------------------------------------------------------------------- -// -void CProviderErrorNotifierAO::NotifyError( - MVSDataProviderObserver* aObserver, - TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::NotifyError() >>"), RThread().Id().operator TUint())); - iCS.Wait(); - iObserver = aObserver; - iError = aError; - TRequestStatus* statusP = &iStatus; - RThread thread; - if( thread.Open( iThreadId ) == KErrNone ) - { - *statusP = KRequestPending; - thread.RequestComplete( statusP, KErrNone ); - thread.Close(); - } - else - { - Panic( EVSPanicThreadOpenFailure ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::NotifyError() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::CProviderErrorNotifierAO -// ----------------------------------------------------------------------------- -// -CProviderErrorNotifierAO::CProviderErrorNotifierAO() : - CActive( EPriorityNormal ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::CProviderErrorNotifierAO() >>"), RThread().Id().operator TUint())); - CActiveScheduler::Add( this ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::CProviderErrorNotifierAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::ConstructL -// ----------------------------------------------------------------------------- -// -void CProviderErrorNotifierAO::ConstructL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::ConstructL() >>"), RThread().Id().operator TUint())); - iCS.CreateLocal(); - iThreadId = RThread().Id(); - iStatus = KRequestPending; - SetActive(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::DoCancel -// ----------------------------------------------------------------------------- -// -void CProviderErrorNotifierAO::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::DoCancel() >>"), RThread().Id().operator TUint())); - if( iStatus == KRequestPending ) - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrCancel ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::DoCancel() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CProviderErrorNotifierAO::RunL -// ----------------------------------------------------------------------------- -// -void CProviderErrorNotifierAO::RunL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::RunL() >>"), RThread().Id().operator TUint())); - TInt err = iStatus.Int(); - if ( err == KErrCancel ) - { - return; - } - if ( iObserver != NULL ) - { - iObserver->vsProviderError( iError ); - } - iStatus = KRequestPending; - SetActive(); - iCS.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CProviderErrorNotifierAO::RunL() <<"), RThread().Id().operator TUint())); - } - -// ============================ CSyncCameraReserve ============================= - -// ----------------------------------------------------------------------------- -// CSyncCameraReserve::CSyncCameraReserve -// ----------------------------------------------------------------------------- -// -CSyncCameraReserve::CSyncCameraReserve() : CActive( EPriorityNormal ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::CSyncCameraReserve() >>"), RThread().Id().operator TUint())); - CActiveScheduler::Add( this ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::CSyncCameraReserve() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CSyncCameraReserve::StartL -// ----------------------------------------------------------------------------- -// -void CSyncCameraReserve::StartL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::StartL() >>"), RThread().Id().operator TUint())); - SetActive(); - iStatus = KRequestPending; - iWait.Start(); - User::LeaveIfError( iStatus.Int() ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::StartL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CSyncCameraReserve::NewL -// ----------------------------------------------------------------------------- -// -CSyncCameraReserve* CSyncCameraReserve::NewL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::NewL() >>"), RThread().Id().operator TUint())); - CSyncCameraReserve* self = new ( ELeave ) CSyncCameraReserve(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CSyncCameraReserve::DoCancel -// ----------------------------------------------------------------------------- -// -void CSyncCameraReserve::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::DoCancel() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::DoCancel() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CSyncCameraReserve::RunL -// ----------------------------------------------------------------------------- -// -void CSyncCameraReserve::RunL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::RunL() >>"), RThread().Id().operator TUint())); - iWait.AsyncStop(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CSyncCameraReserve::RunL() <<"), RThread().Id().operator TUint())); - } - -// ============================ CVSOnboardCameraDataProvider =================== - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::CVSOnboardCameraDataProvider -// ----------------------------------------------------------------------------- -// -CVSOnboardCameraDataProvider::CVSOnboardCameraDataProvider( - MVSDataProviderObserver* aObserver, MVSBufferPool* aPool ) : - CVSCameraDataProvider( aObserver, aPool ),iCameraLost( EFalse ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::CVSOnboardCameraDataProvider() >>"), RThread().Id().operator TUint())); - iState = EStopped; - iFormat = CCamera::EFormatYUV420Planar; - iDublicatedBitmap = new CFbsBitmap(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::CVSOnboardCameraDataProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::~CVSOnboardCameraDataProvider -// ----------------------------------------------------------------------------- -// -CVSOnboardCameraDataProvider::~CVSOnboardCameraDataProvider() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::~CVSOnboardCameraDataProvider() >>"), RThread().Id().operator TUint())); - delete iDublicatedBitmap; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::~CVSOnboardCameraDataProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::PrimeL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::PrimeL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::PrimeL() >>"), RThread().Id().operator TUint())); - - const TBool primeable( iCameraDuplicate && ( iState == EStopped ) ); - - if ( !primeable ) - { - User::Leave( KErrNotReady ); - } - - iAsynchronousReserveIssued = EFalse; - iCameraDuplicate->Reserve(); - iSyncReserve->StartL(); // Returns when from ReserveComplete() has been - // signalled iSyncReserve - - // Reserve ok, prepare capture next - iCameraDuplicate->PrepareVideoCaptureL( - iFormat, - iFrameSizeIndex, - iFrameRateIndex, - 2, - 1 ); - - SetVideoFrameSizeL( TSize( KQCIFWidth, KQCIFHeight ) ); - - iState = EPrimed; - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::PrimeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::FillBufferL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::FillBufferL( - CMMFBuffer* /*aBuffer*/, - MVTVideoSink* /*aConsumer*/, - TMediaId /*aMediaId*/ ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::FillBufferL() >>"), RThread().Id().operator TUint())); - if ( iState != EPlaying ) - { - User::Leave( KErrNotReady ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::FillBufferL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::BufferEmptiedL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::BufferEmptiedL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::BufferEmptiedL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SourceThreadLogon -// ----------------------------------------------------------------------------- -// -TInt CVSOnboardCameraDataProvider::SourceThreadLogon( - MAsyncEventHandler& aEventHandler ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourceThreadLogon() >>"), RThread().Id().operator TUint())); - TInt err = KErrNone; - iEventHandler = &aEventHandler; - if ( iCameraDuplicate ) - { - Panic( EVSPanicProviderAlreadyInitialized ); - } - TRAP( err, iCameraDuplicate = - CCamera::NewDuplicate2L( (MCameraObserver2&)*this, iCameraHandle) ); - - if ( err != KErrNone ) - { - TRAP( err, iCameraDuplicate = - CCamera::NewDuplicateL( (MCameraObserver&)*this, iCameraHandle) ); - if (err != KErrNone) - { - return err; - } - } - iCameraLost = EFalse; - - TCameraInfo info; - iCameraDuplicate->CameraInfo( info ); - if ( !(info.iOptionsSupported & TCameraInfo::EVideoCaptureSupported) ) - { - delete iCameraDuplicate; - iCameraDuplicate = NULL; - return KErrNotSupported; - } - if ( iSyncReserve == NULL ) - { - TRAP( err, iSyncReserve = CSyncCameraReserve::NewL() ); - if ( err != KErrNone ) - { - delete iCameraDuplicate; - iCameraDuplicate = NULL; - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourceThreadLogon() <<"), RThread().Id().operator TUint())); - return err; - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SourceThreadLogoff -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SourceThreadLogoff() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourceThreadLogoff() >>"), RThread().Id().operator TUint())); - delete iCameraDuplicate; - iCameraDuplicate = NULL; - iState = EStopped; - delete iSyncReserve; - iSyncReserve = NULL; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourceThreadLogoff() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SourcePrimeL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SourcePrimeL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourcePrimeL() >>"), RThread().Id().operator TUint())); - const TBool primeable( iCameraDuplicate && ( iState == EStopped ) ); - if ( !primeable ) - { - User::Leave( KErrNotReady ); - } - iAsynchronousReserveIssued = ETrue; - iCameraDuplicate->Reserve(); - User::Leave( KRequestPending ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourcePrimeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SourcePlayL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SourcePlayL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourcePlayL() >>"), RThread().Id().operator TUint())); - if ( iState != EPrimed ) - { - User::Leave( KErrNotReady ); - } - ResetStartTime(); - iCameraDuplicate->StartVideoCapture(); - iState = EPlaying; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourcePlayL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SourcePauseL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SourcePauseL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourcePauseL() >>"), RThread().Id().operator TUint())); - if ( iState != EPlaying ) - { - return; - } - iCameraDuplicate->StopVideoCapture(); - iState = EPrimed; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourcePauseL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SourceStopL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SourceStopL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourceStopL() >>"), RThread().Id().operator TUint())); - if ( iState == EStopped ) - { - return; - } - SourcePauseL(); - iCameraDuplicate->Release(); - iState = EStopped; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SourceStopL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SetFormatL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SetFormatL( const TDesC8& aFormat ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SetFormatL() >>"), RThread().Id().operator TUint())); - if ( !iCameraDuplicate ) - { - User::Leave( KErrBadHandle ); - } - TCameraInfo info; - iCameraDuplicate->CameraInfo( info ); - if ( aFormat == KVtVideoMIMETypeYUV420 ) - { - if ( info.iVideoFrameFormatsSupported & CCamera::EFormatYUV420Planar ) - { - iFormat = CCamera::EFormatYUV420Planar; - } - else - { - User::Leave( KErrNotSupported ); - } - } - else - { - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SetFormatL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SetFrameRateL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SetFrameRateL( TReal32 aFrameRate ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SetFrameRateL() >>"), RThread().Id().operator TUint())); - if ( !iCameraDuplicate ) - { - User::Leave( KErrBadHandle ); - } - TCameraInfo info; - iCameraDuplicate->CameraInfo( info ); - TBool found = EFalse; - for ( TInt i = 0; i < info.iNumVideoFrameRatesSupported; i++ ) - { - TReal32 rate = 0; - iCameraDuplicate->EnumerateVideoFrameRates( - rate, - i, - iFormat, - iFrameSizeIndex ); - if ( rate == aFrameRate ) - { - iFrameRateIndex = i; - found = ETrue; - break; - } - } - if ( !found ) - { - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SetFrameRateL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::SetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::SetVideoFrameSizeL( const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SetVideoFrameSizeL() >>"), RThread().Id().operator TUint())); - if ( !iCameraDuplicate ) - { - User::Leave( KErrBadHandle ); - } - TCameraInfo info; - iCameraDuplicate->CameraInfo( info ); - TBool found = EFalse; - for ( TInt i = 0; i < info.iNumVideoFrameSizesSupported; i++ ) - { - TSize size; - iCameraDuplicate->EnumerateVideoFrameSizes( size, i, iFormat ); - if ( size == aSize ) - { - iFrameSizeIndex = i; - iFrameSize = size; - found = ETrue; - break; - } - } - if ( !found ) - { - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::SetVideoFrameSizeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::GetVideoFrameSizeL -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::GetVideoFrameSizeL( TSize& aSize ) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::GetVideoFrameSizeL() >>"), RThread().Id().operator TUint())); - aSize = iFrameSize; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::GetVideoFrameSizeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::ReserveComplete -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::ReserveComplete( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::ReserveComplete() >>"), RThread().Id().operator TUint())); - if ( !iReserverComplete ) - { - if ( aError == KErrNone ) - { - iReserverComplete = ETrue; - Camera().PowerOn(); - } - else - { - NotifyError( aError ); - } - } - else - { - if( iAsynchronousReserveIssued ) - { - iAsynchronousReserveIssued = EFalse; - - if( aError == KErrNone && iCameraDuplicate ) - { - // Reserve ok, prepare capture next - TRAP( - aError, - iCameraDuplicate->PrepareVideoCaptureL( - iFormat, - iFrameSizeIndex, - iFrameRateIndex, - 2, - 1 ) ); - - if( aError == KErrNone ) - { - TRAP( aError, SetVideoFrameSizeL( TSize( KQCIFWidth, KQCIFHeight ) ) ); - - if( aError == KErrNone ) - { - // Everything ok in PrimeL() - iState = EPrimed; - } - } - } - TMMFEvent event( TUid::Uid( KVtUidDataSrcPrime ), aError ); - iEventHandler->SendEventToClient( event ); - } - else - { - TRequestStatus* statusP = &iSyncReserve->iStatus; - User::RequestComplete( statusP, aError ); - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::ReserveComplete() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::FrameBufferReady -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::FrameBufferReady( - MFrameBuffer* aFrameBuffer, - TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::FrameBufferReady() >>"), RThread().Id().operator TUint())); - - iFreezeCS.Wait(); - - if ( aError == KErrNone ) - { - if( iFreezePendingFlags & EVideoFrameFreezePending ) - { - FreezeFrame( aFrameBuffer ); - } - - CVSMMFDataBuffer* buffer = NULL; - - TRAPD( err, buffer = BufferPool().GetBufferL( ETrue ) ); - - if( err == KErrNone ) - { - if ( buffer ) - { - MFrameBuffer* frameBufferToBeUsed = aFrameBuffer; - - if( IsFrozen() && !( iFreezePendingFlags & EVideoFrameFreezePending ) ) - { - iFrozenFrame->CopyProperties( aFrameBuffer ); - aFrameBuffer->Release(); - frameBufferToBeUsed = iFrozenFrame; - } - - TRAP( err, buffer->SetFrameBufferL( frameBufferToBeUsed ) ); - - if ( err != KErrNone ) - { - TInt leaveCode = KErrNone; - TRAP( leaveCode, BufferPool().FreeBufferL( buffer ) ); - } - else - { - buffer->SetTimeToPlay( TimeToPlay() ); - buffer->SetFrameNumber( aFrameBuffer->iIndexOfFirstFrameInBuffer ); - TRAP( err, Consumer()->BufferFilledL( buffer ) ); - if ( err != KErrNone ) - { - TInt leaveCode = KErrNone; - TRAP( leaveCode, BufferPool().FreeBufferL( buffer ) ); - } - } - } - else - { - aFrameBuffer->Release(); - } - } - - if( err != KErrNone ) - { - NotifyError( err ); - } - } - else - { - NotifyError( aError ); - } - - iFreezeCS.Signal(); - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::FrameBufferReady() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::GetVideoFrameSize -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::GetVideoFrameSize( - TSize& aSize, - TInt aSizeIndex, - const TDesC8& aFormat ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::GetVideoFrameSize() >>"), RThread().Id().operator TUint())); - TCameraInfo info; - Camera().CameraInfo( info ); - if ( aFormat == KVtVideoMIMETypeYUV420 ) - { - if ( info.iVideoFrameFormatsSupported & CCamera::EFormatYUV420Planar ) - { - Camera().EnumerateVideoFrameSizes( aSize, aSizeIndex, CCamera::EFormatYUV420Planar ); - } - else - { - aSize.SetSize( 0, 0 ); - } - } - else - { - aSize.SetSize( 0, 0 ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::GetVideoFrameSize() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::GetVideoFrameRate -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::GetVideoFrameRate( - TReal32& aRate, - TInt aRateIndex, - const TDesC8& aFormat, - const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::GetVideoFrameRate() >>"), RThread().Id().operator TUint())); - TCameraInfo info; - Camera().CameraInfo( info ); - if ( aFormat == KVtVideoMIMETypeYUV420 ) - { - if ( info.iVideoFrameFormatsSupported & CCamera::EFormatYUV420Planar ) - { - TBool found = EFalse; - for ( TInt i = 0; i < info.iNumVideoFrameSizesSupported; i++ ) - { - TSize size; - Camera().EnumerateVideoFrameSizes( - size, - i, - CCamera::EFormatYUV420Planar ); - if ( size == aSize ) - { - Camera().EnumerateVideoFrameRates( - aRate, - aRateIndex, - CCamera::EFormatYUV420Planar, - i ); - found = ETrue; - break; - } - } - if ( !found ) - { - aRate = 0.0; - } - } - else - { - aRate = 0.0; - } - } - else - { - aRate = 0.0; - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::GetVideoFrameRate() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::FreezeFrame -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::FreezeFrame( MFrameBuffer* aFrameBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::FreezeFrame() >>"), RThread().Id().operator TUint())); - - TRAPD( error, iFrozenFrame->CopyFrameL( aFrameBuffer ) ); - - if( error != KErrNone ) - { - Observer().vsProviderError( error ); - } - else - { - iFreezePendingFlags &= ~EVideoFrameFreezePending; - } - - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::FreezeFrame() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::FreezeFrame -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::FreezeFrame( MCameraBuffer* aCameraBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::FreezeFrame() >>"), RThread().Id().operator TUint())); - - TRAPD( error, iFrozenFrame->CopyFrameL( aCameraBuffer ) ); - - if( error != KErrNone ) - { - Observer().vsProviderError( error ); - } - else - { - iFreezePendingFlags &= ~EVideoFrameFreezePending; - } - - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::FreezeFrame() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::HandleEvent -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::HandleEvent( const TECAMEvent& aEvent ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::HandleEvent() event %d>>"), - RThread().Id().operator TUint(), aEvent.iEventType )); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::HandleEvent() iErrorCode %d>"), - RThread().Id().operator TUint(), aEvent.iErrorCode )); - //Needs to handled first - if( aEvent.iEventType == KUidECamEventCameraNoLongerReserved ) - { - iCameraLost = ETrue; - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::HandleEvent() Camera lost>>"), - RThread().Id().operator TUint())); - NotifyError( KVsErrCameraNoLongerReserved ); - } - //Do not care errors that occures if camera is lost - if ( aEvent.iErrorCode != KErrNone ) - { - if ( iCameraLost ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::HandleEvent() Camera lost error<<"), - RThread().Id().operator TUint())); - return; - } - } - // Gets called twice for both threads - if ( aEvent.iEventType == KUidECamEventReserveComplete ) - { - ReserveComplete( aEvent.iErrorCode ); - } - else if( aEvent.iEventType == KUidECamEventPowerOnComplete ) - { - PowerOnComplete( aEvent.iErrorCode ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSOnboardCameraDataProvider::HandleEvent() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::ViewFinderReady -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::ViewFinderReady( MCameraBuffer& aCameraBuffer,TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::ViewFinderReady() error %d >>"), RThread().Id().operator TUint(), aError )); - // If error occures notify observer - if ( aError != KErrNone && !iCameraLost ) - { - NotifyError( aError ); - return; - } - // If camera has been lost do nothing - // because event to indicate cameralost has come or is coming - else if ( iCameraLost ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::ViewFinderReady() Camera lost<<"), - RThread().Id().operator TUint())); - return; - } - // If there is more than 1 frame in buffer - // something has went wrong and error (-38) has occured - if ( aCameraBuffer.NumFrames() > 1 ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::ViewFinderReady() FRAMES [%d] IN BUFFER >>"), - RThread().Id().operator TUint(), aCameraBuffer.NumFrames())); - } - - //Duplicate camera buffers the newest bitmap - //In case of error release buffer and notify observer - if ( !iDublicatedBitmap ) - { - aCameraBuffer.Release(); - NotifyError( KErrBadDescriptor ); - return; - } - iDublicatedBitmap->BeginDataAccess(); - TRAPD( err, iDublicatedBitmap->Duplicate( aCameraBuffer.BitmapL( aCameraBuffer.NumFrames() - 1 ).Handle() ) ); - iDublicatedBitmap->EndDataAccess(); - if( err != KErrNone ) - { - aCameraBuffer.Release(); - NotifyError( KErrBadDescriptor ); - return; - } - - // Send dublicated bitmap to UI - ViewFinderFrameReady( *iDublicatedBitmap ); - - //Release camera buffer for further usage - aCameraBuffer.Release(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::ViewFinderReady() <<"), - RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSOnboardCameraDataProvider::VideoBufferReady -// ----------------------------------------------------------------------------- -// -void CVSOnboardCameraDataProvider::VideoBufferReady( MCameraBuffer& aCameraBuffer,TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::VideoBufferReady() >>"), RThread().Id().operator TUint())); - - iFreezeCS.Wait(); - - // If there is more than 1 frame in buffer - // print it out - // calculate delta which indicates how many frames are skipped - TInt delta = 0; - if ( aCameraBuffer.NumFrames() > 1 ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::VideoBufferReady() FRAMES [%d] IN BUFFER >>"), - RThread().Id().operator TUint(), aCameraBuffer.NumFrames())); - delta = aCameraBuffer.NumFrames() - 1; - } - - if ( aError == KErrNone ) - { - if( iFreezePendingFlags & EVideoFrameFreezePending ) - { - FreezeFrame( &aCameraBuffer ); - } - - CVSMMFDataBuffer* buffer = NULL; - - TRAPD( err, buffer = BufferPool().GetBufferL( ETrue ) ); - - if( err == KErrNone ) - { - if ( buffer ) - { - MCameraBuffer* cameraBufferToBeUsed = &aCameraBuffer; - - if( IsFrozen() && !( iFreezePendingFlags & EVideoFrameFreezePending ) ) - { - iFrozenFrame->CopyProperties( &aCameraBuffer ); - ( &aCameraBuffer )->Release(); - cameraBufferToBeUsed = iFrozenFrame; - } - - TRAP( err, buffer->SetFrameBufferL( cameraBufferToBeUsed ) ); - - if ( err != KErrNone ) - { - TInt leaveCode = KErrNone; - TRAP( leaveCode, BufferPool().FreeBufferL( buffer ) ); - } - else - { - buffer->SetTimeToPlay( TimeToPlay() ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::VideoBufferReady() iIndexOfFirstFrameInBuffer [%d]>>"), - RThread().Id().operator TUint(), aCameraBuffer.iIndexOfFirstFrameInBuffer + delta)); - buffer->SetFrameNumber( ( &aCameraBuffer )->iIndexOfFirstFrameInBuffer + delta ); - TRAP( err, Consumer()->BufferFilledL( buffer ) ); - if ( err != KErrNone ) - { - TInt leaveCode = KErrNone; - TRAP( leaveCode, BufferPool().FreeBufferL( buffer ) ); - } - } - } - else - { - ( &aCameraBuffer )->Release(); - } - } - else - { - NotifyError( err ); - } - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::VideoBufferReady() Camera lost"), - RThread().Id().operator TUint())); - if ( !iCameraLost ) - { - NotifyError( aError ); - } - } - iFreezeCS.Signal(); - - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSOnboardCameraDataProvider::VideoBufferReady() <<"), RThread().Id().operator TUint())); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/CVSStillImageDataProvider.cpp --- a/vtprotocolplugins/VideoSource/src/CVSStillImageDataProvider.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1190 +0,0 @@ -/* -* 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES - -#include -#include -#include -#include -#include -#include -#include - -#include "CVSStillImageDataProvider.h" -#include "CVSDataSourceImp.h" -#include "VSPanic.h" -#include "cvtimagebitmap.h" -#include "CVSMMFDataBuffer.h" - -#include "cmultiframeprovider.h" - -// EXTERNAL FUNCTION PROTOTYPES - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// LOCAL CONSTANTS AND MACROS - -static const TInt KMinZoom = 0; -static const TInt KMaxZoom = 0; -static const TInt KMaxDigitalZoom = 0; -static const TReal32 KMinZoomFactor = 0.0; -static const TReal32 KMaxZoomFactor = 0.0; -static const TReal32 KMaxDigitalZoomFactor = 1.0; -static const TInt KNumVideoSizesSupported = 1; -static const TInt KNumVideoFrameSizesSupported = 1; -static const TInt KNumVideoFrameRatesSupported = 1; -static const TInt KMaxFramesPerBufferSupported = 1; -static const TInt KQcifWidth = 176; -static const TInt KQcifHeight = 144; -static const TReal32 KFrameRate = 15.0; -static const TUint32 KVSViewFinderUpdateRate = 1000000/15; // 15 times per second - -// TYPE DEFINITIONS - -// Timer expired callback - -typedef void (CVSStillImageDataProvider::*TTimerElapsed) (); - -// INTERNAL CLASSES - -/** -* Timer class that calls given callback method when timer request has been -* completed. If the timer request is cancelled then callback will not be -* called. -* -* @lib videosource.lib -*/ -class CVSFrameRateTimer : public CTimer - { - public: // Constructors and destructor - - /** - * Static factory function to create instance of this class. - * @param "aRequester" ?description - * @exception Can leave with one of the system wide error codes. - * @return Pointer to new instance. - */ - static CVSFrameRateTimer* NewL( CVSStillImageDataProvider* aRequester ); - - public: // New functions - - public: // Functions from base classes - - /** - * Starts timer request. When timer request has been completed given - * callback method will be called. - * @param "anInterval" Interval after which event is to occur, - * in microseconds. - * @param "aFunction" Callback method that will be called when timer - * request has been completed. - */ - void After( - TTimeIntervalMicroSeconds32 anInterval, - TTimerElapsed aFunction ); - - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CVSFrameRateTimer(); - - protected: // New functions - - protected: // Functions from base classes - - private: // Constructors and destrcutor - - /** - * Constructor. - * @param "aRequester" ?description - */ - CVSFrameRateTimer( CVSStillImageDataProvider* aRequester ); - - private: // New functions - - private: // Functions from base classes - - /** - * From CActive. See CActive for description. - */ - void RunL(); - - public: // Data - - protected: // Data - - private: // Data - - // Pointer to requester (i.e. through which callback call will be made) - CVSStillImageDataProvider* iRequester; // not owned - - // Pointer to callback method. - TTimerElapsed iFunction; - }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ============================ CVSFrameRateTimer ============================== - -// ----------------------------------------------------------------------------- -// CVSFrameRateTimer::NewL( CVSStillImageDataProvider* aRequester ) -// ----------------------------------------------------------------------------- -// -CVSFrameRateTimer* CVSFrameRateTimer::NewL( - CVSStillImageDataProvider* aRequester ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::NewL() >>"), RThread().Id().operator TUint())); - CVSFrameRateTimer* self = new (ELeave) CVSFrameRateTimer( aRequester ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSFrameRateTimer::CVSFrameRateTimer( CVSStillImageDataProvider* aRequester ) -// ----------------------------------------------------------------------------- -// -CVSFrameRateTimer::CVSFrameRateTimer( CVSStillImageDataProvider* aRequester ) -: CTimer( EPriorityStandard ), iRequester( aRequester ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::CVSFrameRateTimer() >>"), RThread().Id().operator TUint())); - // Added to CActiveScheduler in CVSStillImageDataProvider::InitializeL - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::CVSFrameRateTimer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSFrameRateTimer::After( -// TTimeIntervalMicroSeconds32 anInterval, TTimerElapsed aFunction ) -// ----------------------------------------------------------------------------- -// -void CVSFrameRateTimer::After( - TTimeIntervalMicroSeconds32 anInterval, - TTimerElapsed aFunction ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::After() >>"), RThread().Id().operator TUint())); - if ( iFunction == aFunction ) - { - if ( !IsActive() ) - { - iFunction = aFunction; - CTimer::After( anInterval ); - } - } - else - { - if ( !IsActive() ) - { - iFunction = aFunction; - CTimer::After( anInterval ); - } - else - { - User::Panic(_L("VideoSource"),KErrGeneral); - } - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::After() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSFrameRateTimer::~CVSFrameRateTimer() -// ----------------------------------------------------------------------------- -// -CVSFrameRateTimer::~CVSFrameRateTimer() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::~CVSFrameRateTimer() >>"), RThread().Id().operator TUint())); - Cancel(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::~CVSFrameRateTimer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSFrameRateTimer::RunL() -// ----------------------------------------------------------------------------- -// -void CVSFrameRateTimer::RunL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::RunL() >>"), RThread().Id().operator TUint())); - if( iStatus.Int() == KErrNone ) - { - (iRequester->*iFunction)(); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSFrameRateTimer::RunL() <<"), RThread().Id().operator TUint())); - } - -// ============================ CVSStillImageDataProvider =============================== - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::NewL( -// MVSDataProviderObserver* aObserver, MVSBufferPool* aPool ) -// ----------------------------------------------------------------------------- -// -CVSStillImageDataProvider* CVSStillImageDataProvider::NewL( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CVSStillImageDataProvider::NewL() >>"), RThread().Id().operator TUint())); - CVSStillImageDataProvider* self = - new (ELeave) CVSStillImageDataProvider( aObserver, aPool ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CVSStillImageDataProvider::NewL() <<"), RThread().Id().operator TUint())); - return self; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::~CVSStillImageDataProvider() -// ----------------------------------------------------------------------------- -// -CVSStillImageDataProvider::~CVSStillImageDataProvider() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::~CVSStillImageDataProvider() this %x >>"), RThread().Id().operator TUint(), this)); - iFs.Close(); - delete iVFTimer; - delete iActiveWait; - delete iViewer; - iFreezeCS.Close(); - delete iScaled; - ReleaseYUVData(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::~CVSStillImageDataProvider() this %x <<"), RThread().Id().operator TUint(), this)); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::InitializeL( const TDesC8& aInitParams ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::InitializeL( const TDesC8& aInitParams ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeL() >>"), RThread().Id().operator TUint())); - - CommonInitializeL(); - - TPckgBuf< TVSStillImageDataProviderParams > pb; - pb.Copy( aInitParams ); - - iInitType = pb().iInitialize; - iPSState = EPSInitializing; - - switch( pb().iInitialize ) - { - /** Initialize from blank image */ - case TVSStillImageDataProviderParams::EInitializeAsBlankImage: - BlankImageInitializeL(); - break; - - /** Initialize from General Settings */ - case TVSStillImageDataProviderParams::EInitializeFromGeneralSettings: - GeneralSettingsInitializeL( EGSStillImage ); - break; - - /** Initilaize from General Settings*/ - case TVSStillImageDataProviderParams::EInitializeAsDefaultStillImage: - GeneralSettingsInitializeL( EGSDefaultStillImage ); - break; - - /** Initialize from file */ - case TVSStillImageDataProviderParams::EInitializeFromFile: - FileImageInitializeL( pb().iFileName ); - break; - } - - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::CommonInitializeL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::CommonInitializeL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CommonInitializeL() >>"), RThread().Id().operator TUint())); - iVFTimer = CVSFrameRateTimer::NewL( this ); - CActiveScheduler::Add( iVFTimer ); - iActiveWait = new (ELeave) CVSActiveWait< CVSStillImageDataProvider > ( this ); - - //Create viewer - iViewer = CMultiframeProvider::NewL( this , iDisplayMode ); - User::LeaveIfError( iFreezeCS.CreateLocal() ); - - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CommonInitializeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GeneralSettingsInitializeL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::GeneralSettingsInitializeL( const TGeneralSettingsImageType aType ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GeneralSettingsInitializeL() >>"), RThread().Id().operator TUint())); - iViewer->IniatializeGSL( aType ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GeneralSettingsInitializeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::BlankImageInitializeL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::BlankImageInitializeL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BlankImageInitializeL() %x >>"), RThread().Id().operator TUint(), this)); - iViewer->IniatializeBlankL(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BlankImageInitializeL() %x <<"), RThread().Id().operator TUint(), this)); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::FileImageInitializeL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::FileImageInitializeL( const TFileName& aFileName ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FileImageInitializeL(): %S >>"), RThread().Id().operator TUint(), &aFileName )); - iViewer->InitializeL( &aFileName ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FileImageInitializeL() %x <<"), RThread().Id().operator TUint(), this)); - } - - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::DigitalZoomFactor() const -// ----------------------------------------------------------------------------- -// -TInt CVSStillImageDataProvider::DigitalZoomFactor() const - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::DigitalZoomFactor() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::DigitalZoomFactor() <<"), RThread().Id().operator TUint())); - return KMaxDigitalZoom; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetDigitalZoomFactorL( -// TInt /*aDigitalZoomFactor*/ ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetDigitalZoomFactorL( - TInt /*aDigitalZoomFactor*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetDigitalZoomFactorL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetDigitalZoomFactorL() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::StartViewFinderBitmapsL( TSize& aSize ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::StartViewFinderBitmapsL( TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint())); - __ASSERT_DEBUG( iPSState > EPSUninitialized, - Panic( EVSPanicProviderNotReady ) ); - iVFState = EVFPlaying; - iViewer->ClearVFScalingTargetSize(); - iTargetSize = aSize; - iViewer->SetVFScalingTargetSize( aSize ); - iViewer->ScaleCopy( aSize, ETrue ); - iViewer->IncreaseDataConsumer(); - iViewer->NextFrame(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::StartViewFinderBitmapsL( -// TSize& /*aSize*/, TRect& /*aClipRect*/ ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::StartViewFinderBitmapsL( - TSize& /*aSize*/, - TRect& /*aClipRect*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderBitmapsL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::StopViewFinder() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::StopViewFinder() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StopViewFinder() >>"), RThread().Id().operator TUint())); - // Make sure scaler is cancelled (just in case!) - iViewer->ClearVFScalingTargetSize(); - iViewer->DecreaseDataConsumer(); - iViewer->SetVFStop(); - // No double stopping.. - if( iVFState != EVFStopped ) - { - iVFState = EVFStopped; - iVFTimer->Cancel(); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StopViewFinder() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ViewFinderActive() const -// ----------------------------------------------------------------------------- -// -TBool CVSStillImageDataProvider::ViewFinderActive() const - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ViewFinderActive() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ViewFinderActive() <<"), RThread().Id().operator TUint())); - return ( iVFState == EVFPlaying ); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::StartViewFinderDirectL( -// RWsSession& /*aWs*/, CWsScreenDevice& /*aScreenDevice*/, -// RWindowBase& /*aWindow*/, TRect& /*aScreenRect*/ ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::StartViewFinderDirectL( - RWsSession& /*aWs*/, - CWsScreenDevice& /*aScreenDevice*/, - RWindowBase& /*aWindow*/, - TRect& /*aScreenRect*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint())); - User::Leave(KErrNotSupported); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::StartViewFinderDirectL( -// RWsSession& /*aWs*/, CWsScreenDevice& /*aScreenDevice*/, -// RWindowBase& /*aWindow*/, TRect& /*aScreenRect*/, TRect& /*aClipRect*/ ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::StartViewFinderDirectL( - RWsSession& /*aWs*/, - CWsScreenDevice& /*aScreenDevice*/, - RWindowBase& /*aWindow*/, - TRect& /*aScreenRect*/, - TRect& /*aClipRect*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() >>"), RThread().Id().operator TUint())); - User::Leave(KErrNotSupported); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::StartViewFinderDirectL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ProviderInfo( TVSDataProviderInfo& aInfo ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::ProviderInfo( TVSDataProviderInfo& aInfo ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ProviderInfo() >>"), RThread().Id().operator TUint())); - Mem::FillZ( &aInfo, sizeof( aInfo ) ); - aInfo.iHardwareVersion = TVersion( 0, 0, 0 ); - aInfo.iSoftwareVersion = TVersion( 0, 0, 0 ); - aInfo.iOrientation = TCameraInfo::EOrientationUnknown; - aInfo.iOptionsSupported = TCameraInfo::EViewFinderBitmapsSupported | - TCameraInfo::EVideoCaptureSupported; - aInfo.iFlashModesSupported = CCamera::EFlashNone; - aInfo.iExposureModesSupported = CCamera::EExposureAuto; - aInfo.iWhiteBalanceModesSupported = CCamera::EWBAuto; - aInfo.iMinZoom = KMinZoom; - aInfo.iMaxZoom = KMaxZoom; - aInfo.iMaxDigitalZoom = KMaxDigitalZoom; - aInfo.iMinZoomFactor = KMinZoomFactor; - aInfo.iMaxZoomFactor = KMaxZoomFactor; - aInfo.iMaxDigitalZoomFactor = KMaxDigitalZoomFactor; - aInfo.iImageFormatsSupported = CCamera::EFormatFbsBitmapColor64K | - CCamera::EFormatFbsBitmapColor16M; - aInfo.iNumVideoFrameSizesSupported = KNumVideoSizesSupported; - aInfo.iNumVideoFrameSizesSupported = KNumVideoFrameSizesSupported; - aInfo.iNumVideoFrameRatesSupported = KNumVideoFrameRatesSupported; - aInfo.iVideoFrameFormatsSupported = CCamera::EFormatYUV420Planar; - aInfo.iMaxFramesPerBufferSupported = KMaxFramesPerBufferSupported; - aInfo.iFreezeSupported = EFalse; - - aInfo.iSupportedColorTones = - CCamera::CCameraImageProcessing::EEffectNone; - - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ProviderInfo() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetViewFinderMirrorL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetViewFinderMirrorL( TBool /*aMirror*/ ) - { - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ViewFinderMirror -// ----------------------------------------------------------------------------- -// -TBool CVSStillImageDataProvider::ViewFinderMirror() const - { - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::FreezeL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::FreezeL() - { - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::UnfreezeL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::UnfreezeL() - { - User::Leave( KErrNotSupported ); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::IsFrozen -// ----------------------------------------------------------------------------- -// -TBool CVSStillImageDataProvider::IsFrozen() const - { - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::PrimeL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::PrimeL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::PrimeL() &%x >>"), RThread().Id().operator TUint(), this)); - SourcePrimeL(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::PrimeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::FillBufferL( -// CMMFBuffer* aBuffer, MVTVideoSink* aConsumer, TMediaId aMediaId ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::FillBufferL( - CMMFBuffer* /*aBuffer*/, - MVTVideoSink* /*aConsumer*/, - TMediaId /*aMediaId*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FillBufferL() &%x >>"), RThread().Id().operator TUint(),this)); - if ( iPSState != EPSPlaying ) - { - User::Leave( KErrNotReady ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::FillBufferL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::BufferEmptiedL( CMMFBuffer* /*aBuffer*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BufferEmptiedL() >>"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::BufferEmptiedL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SourceThreadLogon( -// MAsyncEventHandler& /*aEventHandler*/ ) -// ----------------------------------------------------------------------------- -// -TInt CVSStillImageDataProvider::SourceThreadLogon( - MAsyncEventHandler& /*aEventHandler*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogon() &%x >>"), RThread().Id().operator TUint(),this)); - __ASSERT_DEBUG( iPSState > EPSUninitialized, - Panic( EVSPanicProviderNotReady ) ); - TRAPD( err, CreateProtoTimerL() ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogon() <<"), RThread().Id().operator TUint())); - return err; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SourceThreadLogoff() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SourceThreadLogoff() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogoff() &%x >>"), RThread().Id().operator TUint(),this)); - ReleaseProtoTimer(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceThreadLogoff() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SourcePrimeL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SourcePrimeL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePrimeL() &%x >>"), RThread().Id().operator TUint(),this)); - iPSState = EPSPrimed; - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePrimeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SourcePlayL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SourcePlayL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePlayL() &%x >>"), RThread().Id().operator TUint(),this)); - iPSState = EPSPlaying; - iFrameCount = 0; - ResetStartTime(); - iViewer->IncreaseDataConsumer(); - iProtoTimer->After( iProtoUpdateRate, &CVSStillImageDataProvider::ProtoTimer ); - iViewer->NextFrame(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePlayL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SourcePauseL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SourcePauseL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePauseL() &%x >>"), RThread().Id().operator TUint(),this)); - if ( iProtoTimer != NULL ) - { - iProtoTimer->Cancel(); - } - iPSState = EPSPrimed; - iViewer->DecreaseDataConsumer(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourcePauseL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SourceStopL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SourceStopL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceStopL() &%x >>"), RThread().Id().operator TUint(),this)); - if ( iProtoTimer != NULL ) - { - iProtoTimer->Cancel(); - } - iPSState = EPSStopped; - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SourceStopL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetFormatL( const TDesC8& aFormat ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetFormatL( const TDesC8& aFormat ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFormatL() &%x >>"), RThread().Id().operator TUint(),this)); - if ( aFormat != KVtVideoMIMETypeYUV420 ) - { - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFormatL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetFrameRateL( TReal32 aFrameRate ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetFrameRateL( TReal32 aFrameRate ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFrameRateL() &%x >>"), RThread().Id().operator TUint(),this)); - if ( aFrameRate != KFrameRate ) - { - User::Leave( KErrNotSupported ); - } - iProtoUpdateRate = static_cast( 1000000.0 / aFrameRate ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetFrameRateL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetVideoFrameSizeL( const TSize& aSize ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetVideoFrameSizeL( const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetVideoFrameSizeL() &%x >>"), RThread().Id().operator TUint(),this)); - if( aSize != TSize( KQcifWidth, KQcifHeight ) ) - { - User::Leave( KErrNotSupported ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::SetVideoFrameSizeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetVideoFrameSizeL( TSize& aSize ) const -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::GetVideoFrameSizeL( TSize& aSize ) const - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::GetVideoFrameSizeL() &%x >>"), RThread().Id().operator TUint(),this)); - aSize = TSize( KQcifWidth, KQcifHeight ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::GetVideoFrameSizeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::VFTimer() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::VFTimer() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::VFTimer() >>"), RThread().Id().operator TUint())); - if( iVFState == EVFPlaying ) - { - Observer().vsViewFinderFrameReady( iVFBitmap->Bitmap() ); - iVFTimer->After( KVSViewFinderUpdateRate, &CVSStillImageDataProvider::VFTimer ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::VFTimer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ProtoTimer() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::ProtoTimer() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer() this %x >>"), RThread().Id().operator TUint(), this)); - iFrameCount++; - CVSMMFDataBuffer* buffer = NULL; - TRAPD( err, buffer = BufferPool().GetBufferL( ETrue ) ); - if ( err != KErrNone ) - { - NotifyError( err ); - } - if( buffer ) - { - buffer->SetFrameNumber( iFrameCount ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer(): iFrameCount %d"), RThread().Id().operator TUint(), iFrameCount)); - buffer->SetTimeToPlay( TimeToPlay() ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer(): SetTimeToPlay() = $%08x:$%08x"), RThread().Id().operator TUint(), I64HIGH( buffer->TimeToPlay().Int64() ), I64LOW( buffer->TimeToPlay().Int64() ) )); - iFreezeCS.Wait(); - buffer->Data() = *iYUVBuffer; - iFreezeCS.Signal(); - TRAPD( err, Consumer()->BufferFilledL( buffer ) ); - if( err != KErrNone ) - { - TInt leaveCode = KErrNone; - TRAP( leaveCode, BufferPool().FreeBufferL( buffer ) ); - NotifyError( err ); - } - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer(): GetBufferL() returned NULL"), RThread().Id().operator TUint())); - } - // Just to make sure that we're actually playing. We also check that - // iProtoTimer still exists BECAUSE BufferFilledL() may call - // SourceThreadLogoff() if a switch is pending - if( iProtoTimer && ( iPSState == EPSPlaying ) ) - { - iProtoTimer->After( iProtoUpdateRate, &ProtoTimer ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ProtoTimer() this %x <<"), RThread().Id().operator TUint(), this)); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::CreateProtoTimerL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::CreateProtoTimerL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateProtoTimerL() >>"), RThread().Id().operator TUint())); - iProtoTimer = CVSFrameRateTimer::NewL( this ); - CActiveScheduler::Add( iProtoTimer ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateProtoTimerL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ReleaseProtoTimer() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::ReleaseProtoTimer() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseProtoTimer() >>"), RThread().Id().operator TUint())); - delete iProtoTimer; - iProtoTimer = 0; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseProtoTimer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::CreateYUVDataL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::CreateYUVDataL() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateYUVDataL() this %x >>"), RThread().Id().operator TUint(), this)); - CVSFbsBitmapIYUVConverter* conv = - CVSFbsBitmapIYUVConverter::NewL( iYUVBitMap->Bitmap() ); - CleanupStack::PushL( conv ); - conv->ProcessL(); - iFreezeCS.Wait(); - ReleaseYUVData(); - iYUVBuffer = conv->YUVData().AllocL(); - iFreezeCS.Signal(); - CleanupStack::PopAndDestroy(); // conv - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::CreateYUVDataL() iYUVBuffer %x <<"), RThread().Id().operator TUint(), iYUVBuffer)); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ReleaseYUVData() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::ReleaseYUVData() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseYUVData() >>"), RThread().Id().operator TUint())); - delete iYUVBuffer; - iYUVBuffer = 0; - __IF_DEBUG(Print(_L("VideoSource[%d]: CVSStillImageDataProvider::ReleaseYUVData() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::CVSStillImageDataProvider( -// MVSDataProviderObserver* aObserver ) -// ----------------------------------------------------------------------------- -// -CVSStillImageDataProvider::CVSStillImageDataProvider( - MVSDataProviderObserver* aObserver, - MVSBufferPool* aPool ) : - CVSDataProvider( aObserver, aPool ), iProtoUpdateRate( 1000000.0 / KFrameRate ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CVSStillImageDataProvider() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CVSStillImageDataProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::ConstructL() -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::ConstructL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ConstructL() this %x >>"), RThread().Id().operator TUint(), this)); - CVSDataProvider::ConstructL(); - User::LeaveIfError( iFs.Connect() ); - RWsSession wsSession; - User::LeaveIfError( wsSession.Connect() ); - CleanupClosePushL( wsSession ); - CWsScreenDevice* wsScreenDevice = new ( ELeave ) CWsScreenDevice( wsSession ); - CleanupStack::PushL( wsScreenDevice ); - User::LeaveIfError( wsScreenDevice->Construct() ); - iDisplayMode = wsScreenDevice->DisplayMode();/* = EColor16MU;*/ - CleanupStack::PopAndDestroy( 2 ); // wsSession, wsScreenDevice - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::ConstructL() this %x <<"), RThread().Id().operator TUint(), this)); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetVideoFrameSize( -// TSize& aSize, TInt /*aSizeIndex*/, const TDesC8& aFormat ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::GetVideoFrameSize( - TSize& aSize, - TInt /*aSizeIndex*/, - const TDesC8& aFormat ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameSize() >>"), RThread().Id().operator TUint())); - if ( aFormat == KVtVideoMIMETypeYUV420 ) - { - aSize.SetSize( KQcifWidth, KQcifHeight ); - } - else - { - aSize.SetSize( 0, 0 ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameSize() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetVideoFrameRate( -// TReal32& aRate, TInt /*aRateIndex*/, const TDesC8& aFormat, -// const TSize& aSize ) -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::GetVideoFrameRate( - TReal32& aRate, - TInt /*aRateIndex*/, - const TDesC8& aFormat, - const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameRate() >>"), RThread().Id().operator TUint())); - if ( aFormat == KVtVideoMIMETypeYUV420 && - aSize == TSize( KQcifWidth, KQcifHeight ) ) - { - aRate = KFrameRate; - } - else - { - aRate = 0.0; - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::GetVideoFrameRate() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::DisplayMode -// ----------------------------------------------------------------------------- -// -TDisplayMode CVSStillImageDataProvider::DisplayMode() const - { -#ifdef _DEBUG - TUint threadId( RThread().Id() ); - switch( iDisplayMode ) - { - case EColor4K: - RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor4K" ), threadId ); - break; - case EColor64K: - RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor64K" ), threadId ); - break; - case EColor16M: - RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor16M" ), threadId ); - break; - case EColor16MU: - RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = EColor16MU" ), threadId ); - break; - default: - RDebug::Print( _L( "VideoSource [%d]: DisplayMode() = %d" ), threadId, iDisplayMode ); - break; - } -#endif // _DEBUG - return iDisplayMode; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetContrastL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetContrastL(TInt /*aContrast*/) - { - __IF_DEBUG(Print(_L("VideoSource [%d]:CVSStillImageDataProvider::SetContrastL() LEAVE"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetContrast -// ----------------------------------------------------------------------------- -// -TInt CVSStillImageDataProvider::GetContrast(TInt& /*aContrast*/) const - { - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetBrightnessL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetBrightnessL(TInt /*aBrightness*/) - { - __IF_DEBUG(Print(_L("VideoSource [%d]:CVSStillImageDataProvider::SetBrightnessL() LEAVE"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetBrightness -// ----------------------------------------------------------------------------- -// -TInt CVSStillImageDataProvider::GetBrightness(TInt& /*aBrightness*/ ) const - { - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetWhiteBalanceL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetWhiteBalanceL( CCamera::TWhiteBalance /*aWhiteBalance*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetWhiteBalanceL() LEAVE"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetWhiteBalance -// ----------------------------------------------------------------------------- -// - TInt CVSStillImageDataProvider::GetWhiteBalance(CCamera::TWhiteBalance& /*aWhiteBalance*/) const - { - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::SetColorToneL -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::SetColorToneL( CCamera::CCameraImageProcessing::TEffect /*aValue*/ ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::SetColorToneL() LEAVE"), RThread().Id().operator TUint())); - User::Leave( KErrNotSupported ); - } -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::GetColorTone -// ----------------------------------------------------------------------------- -// -TInt CVSStillImageDataProvider::GetColorTone( CCamera::CCameraImageProcessing::TEffect& /*aColorTone*/ ) const - { - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::InitializeReady -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::InitializeReady() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeReady()>> "), RThread().Id().operator TUint())); - if ( EPSUndoInitializing == iPSState ) - { - NotifyError(KErrCancel); - UndoCommonInitialized(); - iPSState = EPSUninitialized; - } - else - { - iPSState = EPSStopped; - Observer().vsProviderReady(); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::InitializeReady()<< "), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::RefreshYUVData -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::RefreshYUVData( TImageShareDataBuffer& aYUVBitMap ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshYUVData()>> "), RThread().Id().operator TUint())); - iYUVBitMap = aYUVBitMap.iBitmap; - //Create YUV buffer only in play state - TRAP_IGNORE ( CreateYUVDataL() ); - aYUVBitMap.iIsBitmapFree = ETrue; - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshYUVData()<< "), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::RefreshViewFinder -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::RefreshViewFinder( TImageShareDataBuffer& aVFBitMap ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshViewFinder()>> "), RThread().Id().operator TUint())); - iVFBitmap = aVFBitMap.iBitmap; - aVFBitMap.iIsBitmapFree = ETrue; - // Allow VF refresh only if size is what - // has beed aquired and play state is on - if ( ( iTargetSize == iVFBitmap->Size() ) && ( iVFState == EVFPlaying ) ) - { - iVFTimer->After( 1, &VFTimer ); - } - else - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshViewFinder() conditon doesn't match, iVFState[%d] "), RThread().Id().operator TUint(), iVFState)); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::RefreshViewFinder()<< "), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::NotifyImageHandlingError -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::NotifyImageHandlingError( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::NotifyImageHandlingError()>> "), RThread().Id().operator TUint())); - NotifyError( aError ); - if ( ( KErrCancel == aError ) && ( EPSUndoInitializing == iPSState ) ) - { - UndoCommonInitialized(); - iPSState = EPSUninitialized; - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::NotifyImageHandlingError()<< "), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::CancelInitializing -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::CancelInitializing() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing()>> "), RThread().Id().operator TUint())); - if ( iPSState != EPSInitializing ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing(), iPSState is not valid,%d>> "), RThread().Id().operator TUint(), iPSState)); - return; - } - - if ( iInitType != TVSStillImageDataProviderParams::EInitializeFromFile ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing(), iInitType is not valid,%d>> "), RThread().Id().operator TUint(), iInitType)); - return; - } - if ( iViewer->CancelInitializing() ) - { - // In this condition, convert was cancelled , no any message will receive from multiframe provider, - // so delete multiFrame provider, and change IPSState, NotifyError to VT Engine - NotifyError(KErrCancel); - UndoCommonInitialized(); - iPSState = EPSUninitialized; - } - else - { - // In this condition, cnverting is finished, and Scale will cancel(CVtImageScaler->Cancel()), but in CVtImageScaler::DoCancel(), - // there is a error notify exist, so we must wait the error message from multiframe provider, - // we change the iPSState to EPSUndoInitializing for waiting error message. - // Error message will be received in function CVSStillImageDataProvider::NotifyImageHandlingError - iPSState = EPSUndoInitializing; - } - - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::CancelInitializing()<< "), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::UndoCommonInitialized -// ----------------------------------------------------------------------------- -// -void CVSStillImageDataProvider::UndoCommonInitialized() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::UndoCommonInitialized()>> "), RThread().Id().operator TUint())); - - iFreezeCS.Close(); - if ( NULL != iVFTimer ) - { - iVFTimer->Cancel(); - } - - delete iViewer; - iViewer = NULL; - - delete iActiveWait; - iActiveWait = NULL; - - delete iVFTimer; - iVFTimer = NULL; - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSStillImageDataProvider::UndoCommonInitialized()<< "), RThread().Id().operator TUint())); - - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/cactivewait.cpp --- a/vtprotocolplugins/VideoSource/src/cactivewait.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES -#include "cactivewait.h" - -const TInt KFirstFrameIndx = 0; - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ CVSActiveWait =============================== - -// ----------------------------------------------------------------------------- -// CVSActiveWait::~CVSActiveWait() -// ----------------------------------------------------------------------------- -// -template -CVSActiveWait< R >::~CVSActiveWait() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::~CVSActiveWait() >>"), RThread().Id().operator TUint())); - Cancel(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::~CVSActiveWait() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::RequestStatus() -// ----------------------------------------------------------------------------- -// -template -TRequestStatus* CVSActiveWait< R >::RequestStatus() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RequestStatus() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RequestStatus() <<"), RThread().Id().operator TUint())); - return &iStatus; - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::Signal( TInt aError ) -// ----------------------------------------------------------------------------- -// -template -void CVSActiveWait< R >::Signal( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::Signal() >>"), RThread().Id().operator TUint())); - if( IsActive() ) - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, aError ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::Signal() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::RunL() -// ----------------------------------------------------------------------------- -// -template -void CVSActiveWait< R >::RunL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RunL() >>"), RThread().Id().operator TUint())); - (iRequester->*iCallback)( iStatus.Int() ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::RunL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CVSActiveWait::DoCancel() -// ----------------------------------------------------------------------------- -// -template -void CVSActiveWait< R >::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::DoCancel() >>"), RThread().Id().operator TUint())); - TRequestStatus* pStatus = &iStatus; - User::RequestComplete( pStatus, KErrCancel ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CVSActiveWait::DoCancel() <<"), RThread().Id().operator TUint())); - } - - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/cmultiframedataao.cpp --- a/vtprotocolplugins/VideoSource/src/cmultiframedataao.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES -#include "cmultiframedataao.h" -#include "mmultiframeprovider.h" -#include "cmultiframeprovider.h" -#include "VSPanic.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif -// ============================ CMultiframeDataAO =============================== - -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::CMultiframeDataAO( CMultiframeProvider* aRequester ) -// ----------------------------------------------------------------------------- -// -CMultiframeDataAO::CMultiframeDataAO( CMultiframeProvider* aRequester ) -: CTimer( EPriorityHigh ), iRequester( aRequester ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::CMultiframeDataAO() >>"), RThread().Id().operator TUint())); - RThread me; - iThreadId = me.Id(); - CActiveScheduler::Add( this ); - TRAP_IGNORE(CTimer::ConstructL()); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::CMultiframeDataAO() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::SetObserver( MMultiframeprovider* aObserever ) -// ----------------------------------------------------------------------------- -// -void CMultiframeDataAO::SetObserver( MMultiframeprovider* aObserver ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::SetObserver() >>"), RThread().Id().operator TUint())); - iObserver = aObserver; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::SetObserver() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::~CMultiframeDataAO() -// ----------------------------------------------------------------------------- -// -CMultiframeDataAO::~CMultiframeDataAO() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::~CMultiframeDataAO() >>"), RThread().Id().operator TUint())); - Cancel(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::~CMultiframeDataAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::Activate( ) -// ----------------------------------------------------------------------------- -// -void CMultiframeDataAO::Activate( TTimeIntervalMicroSeconds aUpdateTime, TBool aInit, TBool aVFUpdate ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::Activate() >>"), RThread().Id().operator TUint())); - - TTimeIntervalMicroSeconds32 time = aUpdateTime.Int64(); - iInit = aInit; - iVFUpdate = aVFUpdate; - if ( !IsActive() ) - { - CTimer::After( time ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::Activate() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::LocalBuffer( ) -// ----------------------------------------------------------------------------- -// -void CMultiframeDataAO::LocalBuffer( CVtImageBitmap* aLocalBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::LocalBuffer() >>"), RThread().Id().operator TUint())); - iLocalBuffer.iBitmap = aLocalBuffer; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::LocalBuffer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::RemoteBuffer( ) -// ----------------------------------------------------------------------------- -// -void CMultiframeDataAO::RemoteBuffer( CVtImageBitmap* aRemoteBuffer ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::RemoteBuffer() >>"), RThread().Id().operator TUint())); - iRemoteBuffer.iBitmap = aRemoteBuffer; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::RemoteBuffer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::RunL() -// ----------------------------------------------------------------------------- -// -void CMultiframeDataAO::RunL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::RunL() >>"), RThread().Id().operator TUint())); - - //stop loop ao - if (iRequireStopping) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::RunL() cancel by flag"), RThread().Id().operator TUint())); - iRequireStopping = EFalse; - return; - } - - if ( !iVFUpdate ) - { - iObserver->RefreshYUVData( iRemoteBuffer ); - } - iObserver->RefreshViewFinder( iLocalBuffer ); - iRequester->UseSecondVfBuffer(); - if ( iInit ) - { - iObserver->InitializeReady(); - } - if ( !iVFUpdate ) - { - iRequester->AddBitmapToFreeQueue(); - } - if ( !iInit && !iVFUpdate ) - { - iRequester->NextFrame(); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::RunL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeDataAO::CancelTimeLoop() -// ----------------------------------------------------------------------------- -// -void CMultiframeDataAO::CancelTimeLoop() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::CancelTimeLoop >>"), RThread().Id().operator TUint())); - if ( IsActive() ) - { - if ( iStatus == KRequestPending ) - { - RThread me; - if ( me.Id() == iThreadId ) - { - Cancel(); - iRequireStopping = EFalse; - } - else - { - iRequireStopping = ETrue; - } - } - else - { - iRequireStopping = ETrue; - } - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeDataAO::CancelTimeLoop <<"), RThread().Id().operator TUint())); - } - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/cmultiframeloopao.cpp --- a/vtprotocolplugins/VideoSource/src/cmultiframeloopao.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES -#include "cmultiframeloopao.h" -#include "cmultiframeprovider.h" -#include "VSPanic.h" - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif -// ============================ CMultiframeloopAO =============================== - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::CMultiframeloopAO( CMultiframeProvider* aRequester ) -// ----------------------------------------------------------------------------- -// -CMultiframeloopAO::CMultiframeloopAO( CMultiframeProvider* aRequester ) -: CActive( EPriorityLow ), iRequester( aRequester ), iFreeBMCount(0), iRequireStopping(EFalse) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::CMultiframeloopAO() >>"), RThread().Id().operator TUint())); - RThread me; - iThreadId = me.Id(); - CActiveScheduler::Add( this ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::CMultiframeloopAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::~CMultiframeloopAO() -// ----------------------------------------------------------------------------- -// -CMultiframeloopAO::~CMultiframeloopAO() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::~CMultiframeloopAO() >>"), RThread().Id().operator TUint())); - Cancel(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::~CMultiframeloopAO() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::Signal( ) -// ----------------------------------------------------------------------------- -// -void CMultiframeloopAO::Signal( ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::Signal() >>"), RThread().Id().operator TUint())); - iRequester->iAnimation = ETrue; - if ( !IsActive() ) - { - SetActive(); - TRequestStatus* pStatus = &iStatus; - RThread me; - if ( me.Id() == iThreadId ) - { - User::RequestComplete( pStatus, KErrNone ); - } - else - { - if ( me.Open( iThreadId ) == KErrNone ) - { - *pStatus = KRequestPending; - me.RequestComplete( pStatus, KErrNone ); - me.Close(); - } - else - { - Panic( EVSPanicThreadOpenFailure ); - } - } - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::Signal() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::RunL() -// ----------------------------------------------------------------------------- -// -void CMultiframeloopAO::RunL() - { - iRequester->WaitForConverting(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RunL() >>"), RThread().Id().operator TUint())); - - //stop loop ao - if (iRequireStopping) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RunL() CANCEL CALLED,stop by flag"), RThread().Id().operator TUint())); - iRequireStopping = EFalse; - iRequester->ReleaseForConverting(); - return; - } - - // Cancel is handled in this way because - if ( iStatus == KErrCancel) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RunL() CANCEL CALLED IN PROTO THREAD STOP LOOPPING"), RThread().Id().operator TUint())); - iRequester->ReleaseForConverting(); - return; - } - - //If free bitmaps proceed next frame - if ( iFreeBMCount > 0 ) - { - ++iIndex; - // Loop animation starting from first frame - if ( iIndex > iFramecount - 1 ) - { - iIndex = KFirstFrameIndx; - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RunL() RunL index %d"), RThread().Id().operator TUint(), iIndex)); - iRequester->ConvertAndScaleL( iIndex ); - } - //Wait until free bitmaps to proceed - else - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RunL() NO FREE BMs"), RThread().Id().operator TUint())); - iStatus = KRequestPending; - SetActive(); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RunL() <<"), RThread().Id().operator TUint())); - iRequester->ReleaseForConverting(); - } -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::RemoveFreeBitmaps() -// ----------------------------------------------------------------------------- -// -void CMultiframeloopAO::RemoveFreeBitmaps( TInt aCount ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RemoveFreeBitmaps() >>"), RThread().Id().operator TUint())); - iFreeBMCount = iFreeBMCount - aCount; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::RemoveFreeBitmaps() frames %d <<"), RThread().Id().operator TUint(), aCount)); - } - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::SetFreeBitmaps() -// ----------------------------------------------------------------------------- -// -void CMultiframeloopAO::SetFreeBitmaps( TInt aCount ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::SetFreeBitmaps() >>"), RThread().Id().operator TUint())); - iFreeBMCount = iFreeBMCount + aCount; - if ( IsActive() && iStatus == KRequestPending) - { - TRequestStatus* pStatus = &iStatus; - User::RequestComplete( pStatus, KErrNone ); - } - - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::SetFreeBitmaps() frames %d <<"), RThread().Id().operator TUint(), aCount)); - } -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::SetFrameCount() -// ----------------------------------------------------------------------------- -// -void CMultiframeloopAO::SetFrameCount( TInt aCount ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::SetFrameCount() >>"), RThread().Id().operator TUint())); - iFramecount = aCount; - iIndex = 0; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::SetFrameCount() frames %d <<"), RThread().Id().operator TUint(), aCount)); - } - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::CancelDataLoop() -// ----------------------------------------------------------------------------- -// - void CMultiframeloopAO::CancelDataLoop() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::CancelDataLoop() >>"), RThread().Id().operator TUint())); - if ( IsActive() ) - { - if ( iStatus == KRequestPending ) - { - RThread me; - if ( me.Id() == iThreadId ) - { - Cancel(); - } - else - { - if ( me.Open( iThreadId ) == KErrNone ) - { - TRequestStatus* pStatus = &iStatus; - *pStatus = KRequestPending; - me.RequestComplete( pStatus, KErrCancel ); - me.Close(); - } - else - { - Panic( EVSPanicThreadOpenFailure ); - } - } - } - else - { - iRequireStopping = ETrue; - } - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::CancelDataLoop() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeloopAO::DoCancel() -// ----------------------------------------------------------------------------- -// -void CMultiframeloopAO::DoCancel() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::DoCancel() >>"), RThread().Id().operator TUint())); - if ( iStatus == KRequestPending ) - { - TRequestStatus* pStatus = &iStatus; - User::RequestComplete( pStatus, KErrCancel ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeloopAO::DoCancel() <<"), RThread().Id().operator TUint())); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/VideoSource/src/cmultiframeprovider.cpp --- a/vtprotocolplugins/VideoSource/src/cmultiframeprovider.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1019 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Source subsystem. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include - -#include "cmultiframeprovider.h" -#include "cmultiframeloopao.h" -#include "cmultiframedataao.h" - -#include "CVSStillImageDataProvider.h" -#include "cvtimagebitmap.h" - -static const TInt KQcifWidth = 176; -static const TInt KQcifHeight = 144; - -// Default bitmap size is VGA -static const TInt KDefaultBitmapSizeWidth = 640; -static const TInt KDefaultBitmapSizeHeight = 480; - -// MACROS - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ============================ TScalingMediator =============================== - -// ----------------------------------------------------------------------------- -// TScalingMediator::TScalingMediator( ) -// ----------------------------------------------------------------------------- -// -TScalingMediator::TScalingMediator() - { - } - -// ----------------------------------------------------------------------------- -// TScalingMediator::ScalingFinished( ) -// ----------------------------------------------------------------------------- -// -void TScalingMediator::ScalingFinished( TInt aError ) - { - __IF_DEBUG(Print(_L("TScalingMediator::ScalingFinished() >>"))); - iWait->Signal( aError ); - __IF_DEBUG(Print(_L("TScalingMediator::ScalingFinished() error %d <<"), aError)); - } -// ----------------------------------------------------------------------------- -// TScalingMediator::ScalingFinished( ) -// ----------------------------------------------------------------------------- -// -void TScalingMediator::SetWaiter( CVSActiveWait< CMultiframeProvider >* aWait ) - { - iWait = aWait; - } - -// ============================ CMultiframeProvider =============================== - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::NewL( ) -// ----------------------------------------------------------------------------- -// -CMultiframeProvider* CMultiframeProvider::NewL( MMultiframeprovider* aObserver, TDisplayMode aDisplayMode ) - { - __IF_DEBUG(Print(_L("VideoSource: [%d] CMultiframeProvider::NewL() >>"), RThread().Id().operator TUint())); - CMultiframeProvider* self = - new (ELeave) CMultiframeProvider( aObserver, aDisplayMode ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - __IF_DEBUG(Print(_L("VideoSource: [%d] CMultiframeProvider::NewL() <<"), RThread().Id().operator TUint())); - return self; - } -// ----------------------------------------------------------------------------- -// CMultiframeProvider::CMultiframeProvider( -// MVSDataProviderObserver* aObserver ) -// ----------------------------------------------------------------------------- -// -CMultiframeProvider::CMultiframeProvider( - MMultiframeprovider* aObserver , TDisplayMode aDisplayMode ): iDisplayMode( aDisplayMode ), iObserver( aObserver ), iBlank( EFalse ), iGSImage( EFalse ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::CMultiframeProvider() >>"), RThread().Id().operator TUint())); - //Set target VF size QCIF as default - iTargetSize.SetSize( KQcifWidth , KQcifHeight ); - iVFSize.SetSize( KQcifWidth , KQcifHeight ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::CMultiframeProvider() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CMultiframeProvider::~CMultiframeProvider() -// ----------------------------------------------------------------------------- -// -CMultiframeProvider::~CMultiframeProvider() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::~CMultiframeProvider() >>"), RThread().Id().operator TUint())); - iFs.Close(); - iFreezeCS.Close(); - delete iImageDecoder; iImageDecoder = 0; - delete iVtImageScalerInit; - delete iVtImageScalerScale; - delete iActiveWaitInit; - delete iActiveWaitScale; - delete iActiveWaitInitScale; - delete iConverted; - delete iMask; - delete iTempBM; - delete iDataTimer; - delete iLoopAo; - if ( iScaled != iBuffer1 && iScaled != iBuffer2 ) - { - delete iScaled; - } - delete iGSBitmap; - if ( !iBlank || !iGSImage ) - { - delete iBuffer1; - delete iBuffer2; - } - delete iFirstVfBuf; - delete iSecondVfBuf; - iFreeQueue.Close(); - iDefaultImageFile.Close(); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::~CMultiframeProvider() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::ConstructL() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ConstructL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConstructL() >>"), RThread().Id().operator TUint())); - User::LeaveIfError( iFs.Connect() ); - User::LeaveIfError( iFreezeCS.CreateLocal() ); - - // Create waiters and mediators for scaling purposes - iActiveWaitInit = new (ELeave) CVSActiveWait< CMultiframeProvider >( this ); - iActiveWaitScale = new (ELeave) CVSActiveWait< CMultiframeProvider >( this ); - iActiveWaitInitScale = new (ELeave) CVSActiveWait< CMultiframeProvider >( this ); - iInitMediator.SetWaiter( iActiveWaitInitScale ); - iScalingMediator.SetWaiter( iActiveWaitScale ); - iVtImageScalerInit = CVtImageScaler::NewL( iInitMediator, CVtImageScaler::EBilinear ); - iVtImageScalerScale = CVtImageScaler::NewL( iScalingMediator, CVtImageScaler::EBilinear ); - iDataTimer = new (ELeave) CMultiframeDataAO( this ); - iDataTimer->SetObserver( iObserver ); - iLoopAo = new (ELeave) CMultiframeloopAO( this ); - iFirstVfBuf = CVtImageBitmap::NewL( TSize( KQcifWidth >> 2, KQcifHeight >> 2 ), iDisplayMode ); - iSecondVfBuf = CVtImageBitmap::NewL( TSize( KQcifWidth >> 2, KQcifHeight >> 2 ), iDisplayMode ); - iSecondVFBuffer = EFalse; - iFirstVFBuffer = ETrue; - iIsVfStopped = EFalse; - iWaitForConverting = EFalse; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConstructL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::IniatializeGSL() -// -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::IniatializeGSL( const TGeneralSettingsImageType aType ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::IniatializeGSL() >>"), RThread().Id().operator TUint())); - if ( aType == EGSStillImage ) - { - // Open connection to phone server - RPhCltServer phoneClient; - User::LeaveIfError( phoneClient.Connect() ); - CleanupClosePushL( phoneClient ); - - CPhCltImageHandler* stillH = CPhCltImageHandler::NewL(); - CleanupStack::PushL( stillH ); - - // Load images - CPhCltImageParams* imageParams; - imageParams = stillH->CPhCltBaseImageParamsL( EPhCltTypeVTStill ); - CleanupStack::PushL( imageParams ); - User::LeaveIfError( stillH->LoadImages( imageParams ) ); - - // Duplicate to image - if( imageParams->Count() > 0 ) - { - __IF_DEBUG(Print(_L("iImageCount > 0"))); - iGSBitmap = CVtImageBitmap::NewL( imageParams->GetImageL( 0 ) ); - } - else - { - __IF_DEBUG(Print(_L("iImageCount <= 0 -> User::Leave( KErrNotFound )"))); - User::Leave( KErrNotFound ); - } - // Cleanup - CleanupStack::PopAndDestroy( 3 ); // phoneClient, stillH, imageParams - iScaled = CVtImageBitmap::NewL( TSize( KQcifWidth, KQcifHeight ), iDisplayMode ); - - // If bitmap has different display mode than screen, then new bitmap - // is created and image is converted to screen's display mode - if ( iGSBitmap->Bitmap().DisplayMode() != iDisplayMode || - iGSBitmap->Bitmap().ExtendedBitmapType() != KNullUid ) - { - CVtImageBitmap* temp = CVtImageBitmap::NewL( - iGSBitmap->Bitmap().SizeInPixels(), iDisplayMode ); - CleanupStack::PushL( temp ); - // Color conversion is done by blitting it to other bitmap - CFbsBitmapDevice* fbd = CFbsBitmapDevice::NewL( &temp->Bitmap() ); - CleanupStack::PushL( fbd ); - CFbsBitGc* fgc = NULL; - User::LeaveIfError( fbd->CreateContext( fgc ) ); - CleanupStack::PushL( fgc ); - fgc->BitBlt( TPoint(), &iGSBitmap->Bitmap() ); - CleanupStack::PopAndDestroy( 2 ); // fbd, fgc - CleanupStack::Pop(); // temp - delete iGSBitmap; iGSBitmap = NULL; - iGSBitmap = temp; - } - iGSImage = ETrue; - iCount = 1; - iActiveWaitInit->InitializeWaiter( &ConversionFinished ); - iActiveWaitInit->Signal( KErrNone ); - } - else - { // default still image prepared by using file handle - InitializeL( NULL ); - } - iInitialization = ETrue; - iDelay = 0; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::IniatializeGSL() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CMultiframeProvider::IniatializeBlank() -// -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::IniatializeBlankL() - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::IniatializeBlank() >>"), RThread().Id().operator TUint())); - iBlank = ETrue; - iInitialization = ETrue; - iDelay = 0; - iCount = 1; - - CFbsBitmap* tempBitmap = 0; - - CreateBlankBitmapL( - tempBitmap, - TSize( KQcifWidth, KQcifHeight ), - iDisplayMode, -#ifdef _DEBUG - KRgbYellow -#else - KRgbBlack -#endif - ); - - CleanupStack::PushL( tempBitmap ); - iScaled = CVtImageBitmap::NewL( tempBitmap->Handle() ); - CleanupStack::PopAndDestroy(); // tempBitmap - tempBitmap = 0; - - iActiveWaitInit->InitializeWaiter( &BMSScalingFinished ); - iActiveWaitInit->Signal( KErrNone ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::IniatializeBlank() <<"), RThread().Id().operator TUint())); - } - // ----------------------------------------------------------------------------- -// CVSStillImageDataProvider::CreateBlankBitmapL( -// CFbsBitmap*& aBitmap, const TSize& aSize, const TDisplayMode& aMode, -// const TRgb& aColor ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::CreateBlankBitmapL( - CFbsBitmap*& aBitmap, - const TSize& aSize, - const TDisplayMode& aMode, - const TRgb& aColor ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::CreateBlankBitmapL() >>"), RThread().Id().operator TUint())); - if( aBitmap ) - { - delete aBitmap; - aBitmap = 0; - } - aBitmap = new (ELeave) CFbsBitmap(); - User::LeaveIfError( aBitmap->Create( aSize, aMode ) ); - CFbsBitmapDevice* fbd = CFbsBitmapDevice::NewL( aBitmap ); - CleanupStack::PushL( fbd ); - CFbsBitGc* fgc = 0; - User::LeaveIfError( fbd->CreateContext( fgc ) ); - CleanupStack::PushL( fgc ); - - fgc->SetPenColor( aColor ); - fgc->SetBrushColor( aColor ); - fgc->SetBrushStyle( CGraphicsContext::ESolidBrush ); - fgc->DrawRect( TRect( aSize ) ); - - CleanupStack::PopAndDestroy( 2 ); // fbd, fgc - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::CreateBlankBitmapL() <<"), RThread().Id().operator TUint())); - } -// ----------------------------------------------------------------------------- -// CMultiframeProvider::Iniatialize() -// -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::InitializeL( const TFileName* aFileName ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::InitializeL() >>"), RThread().Id().operator TUint())); - // Create bitmaps used for conversion and scaling - iBuffer1 = CVtImageBitmap::NewL( TSize( KQcifWidth, KQcifHeight ), iDisplayMode ); - iBuffer2 = CVtImageBitmap::NewL( TSize( KQcifWidth, KQcifHeight ), iDisplayMode ); - User::LeaveIfError( iFreeQueue.Append( iBuffer1 ) ); - User::LeaveIfError( iFreeQueue.Append( iBuffer2 ) ); - iLoopAo->SetFreeBitmaps( 2 ); - - // Create ICL decoder in its own thread for current file - TInt decodingoptions( - CImageDecoder::TOptions( CImageDecoder::EOptionAlwaysThread | CImageDecoder::EAllowGeneratedMask ) ); - - if ( aFileName ) - { - __IF_DEBUG(Print(_L(" file name exist, creating CImageDecoder"))); - iImageDecoder = CImageDecoder::FileNewL( iFs, *aFileName, (CImageDecoder::TOptions )decodingoptions /*CImageDecoder::EOptionNone*/ ); - } - else - { - __IF_DEBUG(Print(_L(" default vt image file => use phone server"))); - // default VT image file handle obtained from phone server - RPhCltServer phoneClient; - User::LeaveIfError( phoneClient.Connect() ); - __IF_DEBUG(Print(_L(" connected to phone server"))); - CleanupClosePushL( phoneClient ); - CPhCltImageHandler* handler = CPhCltImageHandler::NewL(); - CleanupStack::PushL( handler ); - __IF_DEBUG(Print(_L(" created image handler"))); - User::LeaveIfError( handler->OpenDefaultVtImage( iDefaultImageFile ) ); - decodingoptions &= ~CImageDecoder::EOptionAlwaysThread; - __IF_DEBUG(Print(_L(" creating image decoder"))); - iImageDecoder = CImageDecoder::FileNewL( iDefaultImageFile, ContentAccess::EPlay, (CImageDecoder::TOptions )decodingoptions ); - __IF_DEBUG(Print(_L(" created image decoder"))); - CleanupStack::PopAndDestroy( 2 ); // handler, phoneClient - } - // Use ICL to calculate frame count - iCount = iImageDecoder->FrameCount(); - __IF_DEBUG(Print(_L(" frame count=%d"),iCount)); - //If advanced flags are on show only first frame! - for ( TInt index = 0; index < iCount; ++index ) - { - TFrameInfo frameInfo( iImageDecoder->FrameInfo( index ) ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::InitializeL() frameInfo.iFlags %b >>"), RThread().Id().operator TUint(), frameInfo.iFlags)); - if ( frameInfo.iFlags & TFrameInfo::ELeaveInPlace ) - { - iDelay = 0; - iCount = 1; - } - } - //Set num of frames to viewer AO - iLoopAo->SetFrameCount( iCount ); - //For default loopping frame sequence is disabled - iAnimation = EFalse; - iInitialization = ETrue; - //Start ICL image conversion (decoding) and local scaling - ConvertAndScaleL( KFirstFrameIndx ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::InitializeL() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::SetVFScalingTargetSize() -// -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::SetVFScalingTargetSize( TSize aSize ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::SetVFScalingTargetSize() >>"), RThread().Id().operator TUint())); - iTargetSize = aSize; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::SetVFScalingTargetSize() W %d H %d <<"), RThread().Id().operator TUint(), aSize.iWidth , aSize.iHeight )); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::ConvertAndScaleL() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ConvertAndScaleL( TInt aFrameIndex ) - { - // Variables related to Bitmap size - // calculation - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConvertAndScale() aFrameIndex %d>>"), RThread().Id().operator TUint(),aFrameIndex)); - TSize convertedBitmapSize; - TFrameInfo frameInfo( iImageDecoder->FrameInfo( aFrameIndex ) ); - if ( !iInitialization ) - { - TInt delayindex; - delayindex = aFrameIndex - 1; - if ( delayindex < KFirstFrameIndx ) - { - delayindex = ( iCount - 1 ); - } - TFrameInfo delayframeInfo( iImageDecoder->FrameInfo( delayindex ) ); - iDelay = delayframeInfo.iDelay; - } - else - { - iDelay = 1; - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConvertAndScale() iDelay %d>>"), RThread().Id().operator TUint(),iDelay.Int64() )); -#ifdef _DEBUG - TUint threadId( RThread().Id() ); - switch ( frameInfo.iFrameDisplayMode ) - { - case EColor4K: - RDebug::Print( _L( "VideoSource [%d]: FrameDPmode = EColor4K" ), - threadId ); - break; - case EColor64K: - RDebug::Print( _L( "VideoSource [%d]: FrameDPmode = EColor64K" ), - threadId ); - break; - case EColor16M: - RDebug::Print( _L( "VideoSource [%d]: FrameDPmode = EColor16M" ), - threadId ); - break; - case EColor16MU: - RDebug::Print( _L( "VideoSource [%d]: FrameDPmode = EColor16MU" ), - threadId ); - break; - default: - RDebug::Print( _L( "VideoSource [%d]: FrameDPmode = %d" ), - threadId, frameInfo.iFrameDisplayMode ); - break; - } - - RDebug::Print( _L( "VideoSource [%d]: CMultiframeProvider:: frameInfo.iFlags %d" ), - threadId,frameInfo.iFlags ); -#endif // _DEBUG - - // Use imagedecoder to calculate how many times source picture needs to be divided by 2 - // to fit in default (VGA) picture - TInt reductionfactor = iImageDecoder->ReductionFactor( frameInfo.iOverallSizeInPixels, - TSize( KDefaultBitmapSizeWidth, KDefaultBitmapSizeHeight ) ); - if ( iImageDecoder->ReducedSize( frameInfo.iOverallSizeInPixels, reductionfactor, convertedBitmapSize ) ) - { - convertedBitmapSize = frameInfo.iOverallSizeInPixels; - } - -#ifdef _DEBUG - RDebug::Print( _L( "VideoSource [%d]: convertedBitmapSize Width = %d convertedBitmapSize Height = %d" ), - threadId, convertedBitmapSize.iWidth, convertedBitmapSize.iHeight ); -#endif // _DEBUG - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConvertAndScale() iConverted"), RThread().Id().operator TUint())); - iConverted = CVtImageBitmap::NewL( convertedBitmapSize, iDisplayMode ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConvertAndScale() iConverted"), RThread().Id().operator TUint())); -#ifdef _DEBUG - RDebug::Print( _L( "VideoSource [%d]: convBitmap Width = %d convBitmap Height = %d" ), - threadId, iConverted->Size().iWidth, iConverted->Size().iHeight ); -#endif // _DEBUG - - iStartTime.HomeTime(); - if ( iFreeQueue.Count() < 2 ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConvertAndScale() iFreeQueue.Count() < 2 "), RThread().Id().operator TUint())); - iOldBM = ETrue; - iOldBitmap = iScaled; - } - iScaled = iFreeQueue[ 0 ]; - iFreeQueue.Remove( 0 ); - iLoopAo->RemoveFreeBitmaps( 1 ); - iActiveWaitInit->InitializeWaiter( &CMultiframeProvider::ConversionFinished ); - // Check if masking is supported - if ( frameInfo.iFlags & TFrameInfo::ETransparencyPossible ) - { - // Create mask for bitmap - iMask = new ( ELeave )CFbsBitmap(); - User::LeaveIfError( iMask->Create( convertedBitmapSize, EGray256 )); - iTempBM = CVtImageBitmap::NewL( convertedBitmapSize, iDisplayMode ); - iImageDecoder->Convert( iActiveWaitInit->RequestStatus(), iTempBM->Bitmap(), *iMask, aFrameIndex ); - } - // No mask - else - { - iImageDecoder->Convert( iActiveWaitInit->RequestStatus(), iConverted->Bitmap(), aFrameIndex ); - } - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConvertAndScale() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::ConversionFinished( TInt aError ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ConversionFinished( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConversionFinished() >>"), RThread().Id().operator TUint())); - if ( iCount == 1 || aError ) - { - // delete decoder if not needed any more - // 1) single frame image, no further frames to convert - // 2) error occured, decoder won't be used anyway - __IF_DEBUG(Print(_L(" single frame image => destruct iImageDecoder, err %d"), aError ) ); - delete iImageDecoder; - iImageDecoder = NULL; - } - // no harm done if other than this used, handle would already be 0 - iDefaultImageFile.Close(); - if ( aError == KErrNone ) - { - iActiveWaitInitScale->InitializeWaiter( &BMSScalingFinished ); - if ( iGSImage ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConversionFinished() scale GS "), RThread().Id().operator TUint())); - iVtImageScalerInit->Scale( *iGSBitmap, *iScaled ); - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConversionFinished() scale "), RThread().Id().operator TUint())); - // Blit mask into a converted bitmap - if ( iMask ) - { - CGraphicsContext* bitmapcontext = NULL; - CFbsBitmapDevice* bitmapdevice = NULL; - // Create bm device - TRAPD( error, bitmapdevice = CFbsBitmapDevice::NewL( &( iConverted->Bitmap() ) ) ); - if ( error != KErrNone ) - { - iObserver->NotifyImageHandlingError( aError ); - delete bitmapdevice; - delete iTempBM; - delete iMask; - iMask = NULL; - iTempBM = NULL; - return; - } - // Create GC for bm - error = bitmapdevice->CreateContext( bitmapcontext ); - if ( error != KErrNone ) - { - iObserver->NotifyImageHandlingError( aError ); - delete bitmapdevice; - delete bitmapcontext; - delete iTempBM; - delete iMask; - iMask = NULL; - iTempBM = NULL; - return; - } - // Fill destination bitmap with white color - TRect rect( iConverted->Size() ); - bitmapcontext->SetBrushStyle( CGraphicsContext:: ESolidBrush ); - bitmapcontext->SetPenStyle( CGraphicsContext::ESolidPen ); - bitmapcontext->SetBrushColor( KRgbWhite ); - bitmapcontext->SetPenColor( KRgbWhite); - bitmapcontext->DrawRect( rect ); - - // Draw mask and data bitmap into a same destination bm - bitmapcontext->DrawBitmapMasked( iConverted->Size(), &( iTempBM->Bitmap() ), iConverted->Size(), iMask, EFalse ); - delete bitmapdevice; - delete bitmapcontext; - delete iTempBM; - delete iMask; - iMask = NULL; - iTempBM = NULL; - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ConversionFinished() iMask"), RThread().Id().operator TUint())); - } - iVtImageScalerInit->Scale( *iConverted, *iScaled ); - } - } - // Allways inform Decoding problems - else - { - iObserver->NotifyImageHandlingError( aError ); - delete iTempBM; - delete iMask; - iMask = NULL; - iTempBM = NULL; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConversionFinished() error %d <<"), RThread().Id().operator TUint(), aError)); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::BMSScalingFinished( TInt aError ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::BMSScalingFinished( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::BMSScalingFinished() >>"), RThread().Id().operator TUint())); - if ( aError == KErrNone ) - { - VFScalingReady(); - } - else - { -#if 0 - if ( aError != KErrCancel ) // If KErrCancel, then ignore error! - { - iObserver->NotifyImageHandlingError( aError ); - } - //Needs to be deleted also in cancel case - delete iConverted; iConverted = NULL; -#endif - delete iConverted; iConverted = NULL; - iObserver->NotifyImageHandlingError( aError ); - - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::BMSScalingFinished() err %d <<"), RThread().Id().operator TUint(), aError)); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::AddBitmapToFreeQueue( CVtImageBitmap* aBitmap ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::AddBitmapToFreeQueue() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::AddBitmapToFreeQueue() >>"), RThread().Id().operator TUint())); - if ( iOldBM ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::AddBitmapToFreeQueue() OLD BM"), RThread().Id().operator TUint())); - iOldBM = EFalse; - iFreeQueue.Append( iOldBitmap ); - } - else - { - iFreeQueue.Append( iScaled ); - } - iLoopAo->SetFreeBitmaps( 1 ); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::AddBitmapToFreeQueue() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::UseSecondVfBuffer() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::UseSecondVfBuffer() - { - iSecondVFBuffer = ETrue; - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::VFScalingReady() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::VFScalingReady() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady() >>"), RThread().Id().operator TUint())); - delete iConverted; iConverted = 0; - - // Calculate frame update delay here! - TTime refpointtime; - refpointtime.HomeTime(); - TTimeIntervalMicroSeconds deltaTime = refpointtime.MicroSecondsFrom( iStartTime ); - iFrameUpdateTime = iDelay.Int64() - deltaTime.Int64(); - if ( iFrameUpdateTime < 0 ) - { - iFrameUpdateTime = 1; - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady() iFrameUpdateTime %d>>"), RThread().Id().operator TUint(), iFrameUpdateTime.Int64())); - // Scale VF to fit in requested size - // size is as default QCIF - if ( iIsVfStopped ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady()VF Stop>>"), RThread().Id().operator TUint())); - if ( iActiveWaitScale->IsActive() ) - { - //ScaleCopy running - //Waiting is OK - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady()ScaleCopy running>>"), RThread().Id().operator TUint())); - } - else - { - //ScaleCopy is not running, Jump ScaleCopy - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady()jump ScaleCopy>>"), RThread().Id().operator TUint())); - iActiveWaitScale->InitializeWaiter( &VFRescalingFinished ); - iActiveWaitScale->Signal(KErrNone); - } - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady()Normal run>>"), RThread().Id().operator TUint())); - iVFUpdate = EFalse; - ScaleCopy( iTargetSize ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::ScaleCopy( TSize& aSize ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ScaleCopy( TSize& aSize, TBool aVFUpdate ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy() >>"), RThread().Id().operator TUint())); - - iVFUpdate = aVFUpdate; - iVFSize = aSize; - if ( iSecondVFBuffer && !iFirstVFBuffer ) - { - iVFbitmap = iSecondVfBuf; - iSecondVFBuffer = EFalse; - iFirstVFBuffer = ETrue; - } - else - { - iVFbitmap = iFirstVfBuf; - iFirstVFBuffer = EFalse; - } - //If Scaling is ongoing - if ( iActiveWaitScale->IsActive() ) - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy(): active, storing size"), RThread().Id().operator TUint())); - iWantedVFSize = aSize; - } - else - { - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy(): scaling NOW"), RThread().Id().operator TUint())); - iActiveWaitScale->InitializeWaiter( &VFRescalingFinished ); - TInt result( iVFbitmap->Bitmap().Resize( aSize ) ); - __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy() result %d <<"), RThread().Id().operator TUint(), result)); - if ( result != KErrNone ) - { - iActiveWaitScale->Signal( result ); - } - else - { - iVtImageScalerScale->Scale( *iScaled, *iVFbitmap ); - } - } - } -// ----------------------------------------------------------------------------- -// CMultiframeProvider::NextFrame() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::NextFrame() - { - iFreezeCS.Wait(); - iInitialization = EFalse; - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::NextFrame() >>"), RThread().Id().operator TUint())); - - if ( iNumOfConsumers < 1 ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::NextFrame() Consumer < 1>>"), RThread().Id().operator TUint())); - iFreezeCS.Signal(); - return; - } - - if (iCount > 1 && !iActiveWaitInit->IsActive() ) - { - if (iWaitForConverting) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::NextFrame() Because CMultiframeloopAO::RunL is executing, so Signal is not needed"), RThread().Id().operator TUint())); - } - else - { - iLoopAo->Signal(); - } - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::NextFrame() <<"), RThread().Id().operator TUint())); - iFreezeCS.Signal(); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::IncreaseDataConsumer() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::IncreaseDataConsumer() - { - iFreezeCS.Wait(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::IncreaseDataConsumer() >>"), RThread().Id().operator TUint())); - ++iNumOfConsumers; - iFreezeCS.Signal(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::IncreaseDataConsumer() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::DecreaseDataConsumer() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::DecreaseDataConsumer() - { - iFreezeCS.Wait(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::DecreaseDataConsumer() >>"), RThread().Id().operator TUint())); - --iNumOfConsumers; - if ( iNumOfConsumers < 1 ) - { - iLoopAo->CancelDataLoop(); - iDataTimer->CancelTimeLoop(); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::DecreaseDataConsumer() <<"), RThread().Id().operator TUint())); - iFreezeCS.Signal(); - } -// ----------------------------------------------------------------------------- -// CMultiframeProvider::ScaleVF( const TSize& aSize ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ScaleVF( const TSize& aSize ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScaleVF() >>"), RThread().Id().operator TUint())); - iActiveWaitScale->InitializeWaiter( &VFRescalingFinished ); - TInt result( iVFbitmap->Bitmap().Resize( aSize ) ); - ClearVFScalingTargetSize(); - if ( result != KErrNone ) - { - iActiveWaitScale->Signal( result ); - } - else - { - iVtImageScalerScale->Scale( *iScaled, *iVFbitmap ); - } - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScaleVF() result %d <<"), RThread().Id().operator TUint(), result)); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::VFRescalingFinished( TInt aError ) -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::VFRescalingFinished( TInt aError ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFRescalingFinished() >>"), RThread().Id().operator TUint())); - if ( aError == KErrNone ) - { - if ( iWantedVFSize != TSize() ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFRescalingFinished() REScaling needed"), RThread().Id().operator TUint())); - ScaleVF( iWantedVFSize ); - ClearVFScalingTargetSize(); - } - else - { - iDataTimer->CancelTimeLoop(); - - if ( !iIsVfStopped && !iVFUpdate ) - { - //Normally, VF and VS work - iVFCurrent = iVFbitmap; - iYUVBitMap = iScaled; - iDataTimer->LocalBuffer(iVFCurrent); - iDataTimer->RemoteBuffer(iYUVBitMap); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScalecopyRemoteAndUpdate() normal, iFrameUpdateTime %d>>"), RThread().Id().operator TUint(), - iFrameUpdateTime.Int64())); - iDataTimer->Activate(iFrameUpdateTime, iInitialization, iVFUpdate); - } - else if ( iIsVfStopped && !iVFUpdate ) - { - //VF doesn't work. - iYUVBitMap = iScaled; - iDataTimer->RemoteBuffer(iYUVBitMap); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScalecopyRemoteAndUpdate() VF Stop, iFrameUpdateTime %d>>"), RThread().Id().operator TUint(), - iFrameUpdateTime.Int64())); - iDataTimer->Activate( iFrameUpdateTime, iInitialization, iVFUpdate); - } - else if ( iIsVfStopped && iVFUpdate ) - { - //VF restart - iIsVfStopped = EFalse; - iVFUpdate = EFalse; - iVFCurrent = iVFbitmap; - iYUVBitMap = iScaled; - iDataTimer->LocalBuffer(iVFCurrent); - iDataTimer->RemoteBuffer(iYUVBitMap); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScalecopyRemoteAndUpdate() VF Restart iFrameUpdateTime 1>>"), - RThread().Id().operator TUint())); - iDataTimer->Activate(1, iInitialization, iVFUpdate); - } - else - { - //maybe this condition never execute. - iVFCurrent = iVFbitmap; - iDataTimer->LocalBuffer(iVFCurrent); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScalecopyRemoteAndUpdate() last one, iFrameUpdateTime %d>>"), RThread().Id().operator TUint(), - iFrameUpdateTime.Int64())); - iDataTimer->Activate( 1, iInitialization, iVFUpdate); - } - } - } -#if 0 - else if ( ( aError == KErrCancel ) ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFRescalingFinished() CANCEL"), RThread().Id().operator TUint())); - } - else if( aError != KErrCancel ) // If KErrCancel, then ignore error! - { - iObserver->NotifyImageHandlingError( aError ); - } -#endif - else - { - iObserver->NotifyImageHandlingError( aError ); - } - - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFRescalingFinished() err %d <<"), RThread().Id().operator TUint(), aError)); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::IsVFStopped() -// ----------------------------------------------------------------------------- -// -TBool CMultiframeProvider::IsVFStopped() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::IsVFStopped() >>"), RThread().Id().operator TUint())); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::IsVFStopped() <<"), RThread().Id().operator TUint())); - return iIsVfStopped; - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::SetVFStop() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::SetVFStop() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::SetVFStop() >>"), RThread().Id().operator TUint())); - iIsVfStopped = ETrue; - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::SetVFStop() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::WaitForConverting() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::WaitForConverting() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::WaitForConverting() >>"), RThread().Id().operator TUint())); - iWaitForConverting = ETrue; - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::WaitForConverting() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::WaitForConverting() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ReleaseForConverting() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ReleaseForConverting() >>"), RThread().Id().operator TUint())); - iWaitForConverting = EFalse; - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ReleaseForConverting() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::ClearVFScalingTargetSize() -// ----------------------------------------------------------------------------- -// -void CMultiframeProvider::ClearVFScalingTargetSize() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ClearVFScalingTargetSize() >>"), RThread().Id().operator TUint())); - iWantedVFSize = TSize(); - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ClearVFScalingTargetSize() <<"), RThread().Id().operator TUint())); - } - -// ----------------------------------------------------------------------------- -// CMultiframeProvider::CancelInitializing() -// ----------------------------------------------------------------------------- -// -TBool CMultiframeProvider::CancelInitializing() - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::CancelInitializing() >>"), RThread().Id().operator TUint())); - TBool lResult = EFalse; - - if ( NULL == iImageDecoder ) - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::CancelInitializing() iImageDecoder is NULL ==="), RThread().Id().operator TUint())); - // In this condition, Convert is already finished - if ( iVtImageScalerInit->IsActive() ) - { - __IF_DEBUG(Print(_L("VideoSource[%d] Line[%d]: CMultiframeProvider::CancelInitializing() iVtImageScalerInit->Cancel ==="), - RThread().Id().operator TUint(), __LINE__)); - iVtImageScalerInit->Cancel(); - } - else if ( iActiveWaitInitScale->IsActive() ) - { - __IF_DEBUG(Print(_L("VideoSource[%d] Line[%d]: CMultiframeProvider::CancelInitializing() iActiveWaitInitScale->Cancel ==="), - RThread().Id().operator TUint(), __LINE__)); - iActiveWaitInitScale->Cancel(); - } - else if ( iVtImageScalerScale->IsActive() ) - { - __IF_DEBUG(Print(_L("VideoSource[%d] Line[%d]: CMultiframeProvider::CancelInitializing() iVtImageScalerScale->Cancel ==="), - RThread().Id().operator TUint(), __LINE__)); - iVtImageScalerScale->Cancel(); - } - else if ( iActiveWaitScale->IsActive() ) - { - __IF_DEBUG(Print(_L("VideoSource[%d] Line[%d]: CMultiframeProvider::CancelInitializing() iActiveWaitScale->Cancel ==="), - RThread().Id().operator TUint(), __LINE__)); - iActiveWaitScale->Cancel(); - } - else - { - //In this condition, the convert,scale,copyScale were finished, - //so do nothing, Waiting for InitializeReady() - __IF_DEBUG(Print(_L("VideoSource[%d] Line[%d]: CMultiframeProvider::CancelInitializing() Nothong to do,wait finish ==="), - RThread().Id().operator TUint(), __LINE__)); - } - } - else - { - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::CancelInitializing() cancel convert ==="), RThread().Id().operator TUint())); - //Convert is not finished, so we can cancel it, and return ETrue - iImageDecoder->Cancel(); - lResult = ETrue; - } - - __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::CancelInitializing() <<"), RThread().Id().operator TUint())); - return lResult; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolplugins/group/bld.inf --- a/vtprotocolplugins/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Build information for Video Telephony protocol subsystem. -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -// Include components' bld.inf files -#include "../DisplaySink/group/bld.inf" -#include "../VideoSource/group/bld.inf" - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/bwins/videotelprotou.def --- a/vtprotocols/bwins/videotelprotou.def Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -EXPORTS - ?DeleteAudioSink@VTProtocolFactory@@SAHPAVMVTAudioSink@@@Z @ 1 NONAME ; int VTProtocolFactory::DeleteAudioSink(class MVTAudioSink *) - ?CreateAudioSink@VTProtocolFactory@@SAPAVMVTAudioSink@@XZ @ 2 NONAME ; class MVTAudioSink * VTProtocolFactory::CreateAudioSink(void) - ?CreateCommServerL@VTProtocolFactory@@SAPAVMCommServer@@ABVTDesC16@@H@Z @ 3 NONAME ; class MCommServer * VTProtocolFactory::CreateCommServerL(class TDesC16 const &, int) - ?CreateUserInputIndication@VTProtocolFactory@@SAPAVMVTUserInput@@W4TUserInputType@@E@Z @ 4 NONAME ; class MVTUserInput * VTProtocolFactory::CreateUserInputIndication(enum TUserInputType, unsigned char) - ?CreateSessionCommandL@VTProtocolFactory@@SAPAVMVtSessionCommand@@PAVMVtProtocolHandler@@HAAW4TVt3G324MSupported@@@Z @ 5 NONAME ; class MVtSessionCommand * VTProtocolFactory::CreateSessionCommandL(class MVtProtocolHandler *, int, enum TVt3G324MSupported &) - ?DeletAudioSource@VTProtocolFactory@@SAHPAVMVTAudioSource@@@Z @ 6 NONAME ; int VTProtocolFactory::DeletAudioSource(class MVTAudioSource *) - ?GetAudioConfigCommandL@VTProtocolFactory@@SAPAVMVtAudioConfigCommand@@PAVMVTAudioSink@@@Z @ 7 NONAME ; class MVtAudioConfigCommand * VTProtocolFactory::GetAudioConfigCommandL(class MVTAudioSink *) - ?CreateAudioSource@VTProtocolFactory@@SAPAVMVTAudioSource@@XZ @ 8 NONAME ; class MVTAudioSource * VTProtocolFactory::CreateAudioSource(void) - ?DeleteCommServerL@VTProtocolFactory@@SAXPAVMCommServer@@@Z @ 9 NONAME ; void VTProtocolFactory::DeleteCommServerL(class MCommServer *) - ?DeleteUserInputIndication@VTProtocolFactory@@SAXPAVMVTUserInput@@@Z @ 10 NONAME ; void VTProtocolFactory::DeleteUserInputIndication(class MVTUserInput *) - ?DeleteSessionCommand@VTProtocolFactory@@SAXPAVMVtSessionCommand@@@Z @ 11 NONAME ; void VTProtocolFactory::DeleteSessionCommand(class MVtSessionCommand *) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/eabi/videotelprotou.def --- a/vtprotocols/eabi/videotelprotou.def Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -EXPORTS - _ZN17VTProtocolFactory15CreateAudioSinkEv @ 1 NONAME - _ZN17VTProtocolFactory15DeleteAudioSinkEP12MVTAudioSink @ 2 NONAME - _ZN17VTProtocolFactory16DeletAudioSourceEP14MVTAudioSource @ 3 NONAME - _ZN17VTProtocolFactory17CreateAudioSourceEv @ 4 NONAME - _ZN17VTProtocolFactory17CreateCommServerLERK7TDesC16i @ 5 NONAME - _ZN17VTProtocolFactory17DeleteCommServerLEP11MCommServer @ 6 NONAME - _ZN17VTProtocolFactory20DeleteSessionCommandEP17MVtSessionCommand @ 7 NONAME - _ZN17VTProtocolFactory21CreateSessionCommandLEP18MVtProtocolHandleriR18TVt3G324MSupported @ 8 NONAME - _ZN17VTProtocolFactory22GetAudioConfigCommandLEP12MVTAudioSink @ 9 NONAME - _ZN17VTProtocolFactory25CreateUserInputIndicationE14TUserInputTypeh @ 10 NONAME - _ZN17VTProtocolFactory25DeleteUserInputIndicationEP12MVTUserInput @ 11 NONAME - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/group/bld.inf --- a/vtprotocols/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2004 - 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: vtprotocols build information file. -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_TESTEXPORTS - -PRJ_EXPORTS - - -../inc/mvtprotocolhandler.h |../../inc/mvtprotocolhandler.h - - -PRJ_MMPFILES - -../group/videotelproto.mmp - - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/group/videotelproto.mmp --- a/vtprotocols/group/videotelproto.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2004 - 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: This is project specification file for the Vtprotocols. -* -*/ - - -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -// default vendor id -VENDORID VID_DEFAULT - -TARGET videotelproto.dll -TARGETTYPE dll -UID 0x1000008d 0x20021182 - - -SOURCEPATH ../src - -SOURCE cdatasinkproxy.cpp -SOURCE cdatasourceproxy.cpp -SOURCE caudioconfighandler.cpp -SOURCE ch324confighandler.cpp -SOURCE csessionhandler.cpp -SOURCE cvideoconfighandler.cpp -SOURCE cvtuserinput.cpp -SOURCE vtprotocolfactory.cpp - -DOCUMENT ../../group/bld.inf - -USERINCLUDE ../inc/ - - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../inc -SYSTEMINCLUDE /epoc32/include/mmf/common -SYSTEMINCLUDE /epoc32/include/mmf/server - -LIBRARY euser.lib -LIBRARY ws32.lib - -LIBRARY commonengine.lib -LIBRARY mediaclientaudio.lib - - - -DEBUGLIBRARY vtlogger.lib - -LIBRARY pv2waysymbianadapter.lib -LIBRARY mmfdevsound.lib - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/caudioconfighandler.h --- a/vtprotocols/inc/caudioconfighandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2004-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: . -* -*/ - - -#ifndef CAUDIOCONFIGHANDLER_H -#define CAUDIOCONFIGHANDLER_H -NONSHARABLE_CLASS( TAudioConfigHandler ) : public MPVAudioOutputControlObserver - { - public: - /** - * Constructor. - */ - TAudioConfigHandler( MVtProtocolHandler* aProtocolHandler); - - /** - * Signals completion of the audio output control command. - * @param aId The command id of the completed command. - * @param aCmd The command type. - * @param aContextData The context data passed in with the command. - * @param aStatus The command completion status. - **/ - virtual void AudioOutputControlCommandComplete(TPVCommandId aId - ,TPVAudioOutputControlCommand aCmd - ,TAny *aContextData - ,TInt aStatus); - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CAudioConfigCommand ) : public CBase, - public MVtAudioConfigCommand - { - public: - - /** - * Constructor. - */ - CAudioConfigCommand(MPVAudioOutputControl* aAudioCtrl); - - /** - * Destructor. - */ - ~CAudioConfigCommand(); - - /** - * Method to set the playback volume to the specified value. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aNewVolume - * An input parameter to hold the value for the requested playback volume. - * - * @returns TInt - * Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt SetAudioVolumeL(TInt aVolume); - - /** - * Method to get the maximum valid value for the playback volume. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aMaxVolume - * An output parameter to hold the value for the maximum valid playback volume. - * Note that the parameter should not be used until the callback indicates that the - * method has completed. - * - * @returns TInt - * Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt GetMaxAudioVolumeL(TInt& aMaxVolume); - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler); - private: - MPVAudioOutputControl* iAudioCtrl; - TAudioConfigHandler* iAudioConfigHandler; - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/ccommserver.h --- a/vtprotocols/inc/ccommserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - -#ifndef CCOMMSERVER_H -#define CCOMMSERVER_H -NONSHARABLE_CLASS( CCommServer ) : public CBase, - public MCommServer - { - public: - MPVCommServerBase* iComm; - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/cdatasinkproxy.h --- a/vtprotocols/inc/cdatasinkproxy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,270 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef CDATASINKPROXY_H -#define CDATASINKPROXY_H -NONSHARABLE_CLASS( CPVDisplaySinkNodeProxy ) : public CBase, - public MVTVideoSource - { - public: //New - /** - * Constructor . - */ - CPVDisplaySinkNodeProxy(); - /** - * Set new supplier. - * @param aSupplier - */ - void SetSupplier(MPVDataSourceBase* aSupplier); - public: //From MVTVideoSource - /** - * Method called by a data sink to pass back an emptied buffer to the source - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data source actively requests a consumer ie a data sink - * to empty a buffer by calling the data sinks EmptyBufferL. - * When the data source gets this callback it knows that the buffer has been emptied and can be reused - * - * @param "aBuffer" - * The buffer that has been emptied by a data sink and is now available for reuse - */ - virtual void BufferEmptiedL(CMMFBuffer* aBuffer); - private: - MPVDataSourceBase* iSupplier; - }; - -NONSHARABLE_CLASS( CDisplaySinkProxy ) : public CBase, - public MPVDataSink, - public MPVVideoOutput - { - public: //From MPVPluginBase - /** - * This API returns multimedias type supported by the data source/sink - - * Audio, Video, Data etc. Each supported type is indicated by a MIME type structure. - * @return Multimedia types supported by the data source/sink. The reference - * is valid until the MPVPluginBase derived object is destroyed. - **/ - virtual const RArray& GetMultimediaTypesL() const; - /** - * This API is to allow for extensibility of the plugin interface. - * It allows a caller to ask for all UUIDs associated with a particular MIME type. - * If interfaces of the requested MIME type are found within the plugin, they are added - * to the UUIDs array. - * - * Also added to the UUIDs array will be all interfaces which have the requested MIME - * type as a base MIME type. This functionality can be turned off. - * - * @param aMimeType The MIME type of the desired interfaces - * @param aUuids An array to hold the discovered UUIDs - * @param aExactUuidsOnly Turns on/off the retrival of UUIDs with aMimeType as a base type - **/ - virtual void QueryUUID( const TPVMIMEType& aMimeType, RArray& aUuids, bool aExactUuidsOnly = false ); - /** - * This API is to allow for extensibility of the plugin interface. - * It allows a caller to ask for an instance of a particular interface object to be returned. - * The mechanism is analogous to the COM IUnknown method. The interfaces are identified with - * an interface ID that is a UUID as in DCE and a pointer to the interface object is - * returned if it is supported. Otherwise the returned pointer is NULL. - * @param aUuid The UUID of the desired interface - * @param aInterfacePtr The output pointer to the desired interface - **/ - virtual void QueryInterface( const TPVUuid& aUuid, TPVInterfacePtr& aInterfacePtr ); - /** - * This API is used to provide a timebase for plugins that deal with synchronized media data - **/ - virtual void SetTimebaseL(MPVSymbianTimebaseInterface* aTimebase); - public: //From MPVDataSinkBase - /** - * Method called by a MDataSource to request the data sink to empty aBuffer of data. - * - * This is a pure virtual function that each derived class must implement. - * This method is used when a data sink is passively waiting for requests from a supplier ie a data source - * to empty a buffer. The data sink must call the BufferEmptiedL member on aSupplier when it has emptied - * the buffer of it's data - the data sink can either make this callback synchronously or asynchronously. - * - * @param "aBuffer" - * The full buffer that needs emptying of it's data - * - * @param "aSupplier" - * The data source that supplied the data. The data sink needs this to make the BufferEmptiedL - * callback on aSupplier to indicate to the data source that the data sink has finished with the buffer. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data - */ - virtual void EmptyBufferL(CMMFBuffer* aBuffer, MPVDataSourceBase* aSupplier, TMediaId aMediaId); - /** - * Method called by a data source to pass back an filled buffer to the sink - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data sink actively requests a supplier ie a data source - * to fill a buffer by calling the data sources FillBufferL. - * When the data sink gets this callback it knows that the buffer has been filled and is ready to be emptied - * - * @param "aBuffer" - * The buffer that has been filled by a data source and is now available for processing - */ - virtual void BufferFilledL(CMMFBuffer* aBuffer); - /** - * Method to indicate whether the data sink can create a buffer. - * - * This is a pure virtual function that each derived class must implement. - * - * @return ETrue if the data sink can create a buffer else EFalse - */ - virtual TBool CanCreateSinkBuffer(); - /** - * Returns a buffer created by the data sink - * - * This is a pure virtual function that each derived class must implement. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data. - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the sink - * and should be used in preference to the source buffer provided the source buffer - * is also not a reference buffer. - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSinkBufferL(TMediaId aMediaId, TBool &aReference ); - /** - * Method to 'logon' the data sink to the same thread that sink will be consuming data in. - * - * This method may be required as the thread that the data sink was created in is not always - * the same thread that the data transfer will take place in. Therefore any thread specific - * initialisation needs to be performed in the SinkThreadLogon rather than in the creation - * of the data sink. - * - * This is a virtual function that a derrived data sink can implement if any thread specific - * initialisation is required and/or the data sink can create any asynchronous events. - * - * - * @param "aEventHandler" - * This is an MAsyncEventHandler to handle asynchronous events that occur during the - * transfer of multimedia data. The event handler must be in the same thread as the data transfer - * thread - hence the reason it is passed in the SinkThreadLogon as opposed to say the constructor. - * - * - * @return KErrNone if successful, otherwise a system wide error code. - */ - virtual TInt SinkThreadLogon( MAsyncEventHandler& aEventHandler ); - /** - * Method to 'logoff' the data sink from the same thread that sink consumes data in. - * - * This method may be required as the thread that the data sink is deleted in may not be - * the same thread that the data transfer took place in. Therefore any thread specific - * releasing of resources needs to be performed in the SinkThreadLogoff rather than in the destructor - * - * This is a virtual function that a derrived data sink can implement if any thread specific - * releasing of resources is required. - */ - virtual void SinkThreadLogoff(); - /** - * Method to 'prime' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific 'priming' is required - */ - virtual TInt SinkPrimeL(); - /** - * Method to 'play' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required prior to 'playing'ie the start of data transfer - */ - virtual TInt SinkPlayL(); - /** - * Method to 'pause' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required to 'pause' - */ - virtual TInt SinkPauseL(); - - /** - * Method to 'stop' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required to 'stop' - */ - virtual TInt SinkStopL(); - public: //From MPVVideoOutput - - /** - * Set the video frame format. This must be from the list of supported formats. - * @param "aFormat" A mime string describing the video frame format. - * @exception Can leave with one of the system wide error codes - **/ - virtual void SetFormatL(const TDesC8& aFormat); - - /** - * Set the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - **/ - virtual void SetVideoFrameSizeL(const TSize& aSize); - - /** - * Get the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - **/ - virtual void GetVideoFrameSizeL(TSize& aSize) const; - public: - /** - * Constructor. - */ - CDisplaySinkProxy(MVTVideoSink* aDisplaySink); - - /** - * ConstructL - */ - void ConstructL(); - - /** - * NewL - */ - static CDisplaySinkProxy* NewL(MVTVideoSink* aDisplaySink); - /** - * Get pointer object of data sink. - * @return member variant:iDisplaySink - */ - MVTVideoSink* DisplaySink() { return iDisplaySink; } - private: - MVTVideoSink* iDisplaySink; - CPVDisplaySinkNodeProxy* iDSNodeProxy; - - }; - -NONSHARABLE_CLASS( CAudioSinkProxy ) : public CBase, - public MVTAudioSink - { - public: - MPVDataSink* iAudioSink; - }; - -#endif -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/cdatasourceproxy.h --- a/vtprotocols/inc/cdatasourceproxy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,322 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef CDATASOURCEPROXY_H -#define CDATASOURCEPROXY_H -NONSHARABLE_CLASS( CPVCameraSourceNodeProxy ) : public CBase, - public MAsyncEventHandler, - public MVTVideoSink - { - public: //From MAsyncEventHandler - /** - * Send event to client. - * @param aEvent - */ - virtual TInt SendEventToClient(const TMMFEvent &aEvent); - public: //From MVTVideoSink - - /** - * Method called by a data source to pass back an filled buffer to the sink. - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data sink actively requests a supplier ie a data source - * to fill a buffer by calling the data sources FillBufferL. - * When the data sink gets this callback it knows that the buffer has been filled and is ready to be emptied - * - * @param "aBuffer" - * The buffer that has been filled by a data source and is now available for processing - */ - void BufferFilledL(CMMFBuffer* aBuffer); - - public: //New - /** - * Constructor. - */ - CPVCameraSourceNodeProxy(); - - /** - * Set consumer object. - * @param aConsumer new object - */ - void SetConsumer(MPVDataSinkBase* aConsumer); - private: - MPVDataSinkBase* iConsumer; - }; - -NONSHARABLE_CLASS( CVideoSourceProxy ) : public CBase, - public MPVDataSource, - public MPVVideoInput - { - public: //From MPVPluginBase - - /** - * This API returns multimedias type supported by the data source/sink - - * Audio, Video, Data etc. Each supported type is indicated by a MIME type structure. - * @return Multimedia types supported by the data source/sink. The reference - * is valid until the MPVPluginBase derived object is destroyed. - **/ - virtual const RArray& GetMultimediaTypesL() const; - - /** - * This API is to allow for extensibility of the plugin interface. - * It allows a caller to ask for all UUIDs associated with a particular MIME type. - * If interfaces of the requested MIME type are found within the plugin, they are added - * to the UUIDs array. - * - * Also added to the UUIDs array will be all interfaces which have the requested MIME - * type as a base MIME type. This functionality can be turned off. - * - * @param aMimeType The MIME type of the desired interfaces - * @param aUuids An array to hold the discovered UUIDs - * @param aExactUuidsOnly Turns on/off the retrival of UUIDs with aMimeType as a base type - **/ - virtual void QueryUUID( const TPVMIMEType& aMimeType, RArray& aUuids, bool aExactUuidsOnly = false ); - - /** - * This API is to allow for extensibility of the plugin interface. - * It allows a caller to ask for an instance of a particular interface object to be returned. - * The mechanism is analogous to the COM IUnknown method. The interfaces are identified with - * an interface ID that is a UUID as in DCE and a pointer to the interface object is - * returned if it is supported. Otherwise the returned pointer is NULL. - * @param aUuid The UUID of the desired interface - * @param aInterfacePtr The output pointer to the desired interface - **/ - virtual void QueryInterface( const TPVUuid& aUuid, TPVInterfacePtr& aInterfacePtr ); - - /** - * This API is used to provide a timebase for plugins that deal with synchronized media data - **/ - virtual void SetTimebaseL(MPVSymbianTimebaseInterface* aTimebase); - public: //From MPVDataSourceBase - - /** - * Method called by a MDataSink to request the data source to fill aBuffer with data. - * - * This is a pure virtual function that each derived class must implement. - * This method is used when a data source is passively waiting for requests from a consumer ie a data sink - * to fill a buffer. The data source must call the BufferFilledL member on aConsumer when it has filled - * the buffer with data - the data source can either make this callback synchronously or asynchronously. - * - * @param "aBuffer" - * The buffer that needs filling with data - * - * @param "aConsumer" - * The data sink that consumes the data. The data source needs this to make the BufferFilledL - * callback on aConsumer when the data source has completed filling the aBuffer. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - */ - virtual void FillBufferL(CMMFBuffer* aBuffer, MPVDataSinkBase* aConsumer, TMediaId /*aMediaId*/); - - /** - * Returns a buffer created by the data source. - * - * This is a pure virtual function that each derived class must implement. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the source - * and should be used in preference to the sink buffer provided the sink buffer - * is also not a reference buffer - * . - * @return The created buffer - */ - virtual CMMFBuffer *CreateSourceBufferL(TMediaId aMediaId, TBool &aReference); - - /** - * Returns a buffer created by the data source. - * - * This is a virtual function that a derived class can implement. - * This can be used in preference to the above CreateSourceBufferL method in cases where - * the source buffer creation has a dependancy on the sink buffer - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - * - * @param "aSinkBuffer" - * The sink buffer the nature of which may influence the creation of the source buffer - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the source - * and should be used in preference to the sink buffer provided the sink buffer is not a reference buffer - * . - * @return The created buffer - */ - virtual CMMFBuffer *CreateSourceBufferL(TMediaId aMediaId, CMMFBuffer &aSinkBuffer, TBool &aReference); - - /** - * Method to 'logon' the data source to the same thread that source will be supplying data in. - * - * This method may be required as the thread that the data source was created in is not always - * the same thread that the data transfer will take place in. Therefore any thread specific - * initialisation needs to be performed in the SourceThreadLogon rather than in the creation - * of the data source. - * - * This is a virtual function that a derrived data source can implement if any thread specific - * initialisation is required and/or the data source can create any asynchronous events. - * - * - * @param "aEventHandler" - * This is an MAsyncEventHandler to handle asynchronous events that occur during the - * transfer of multimedia data. The event handler must be in the same thread as the data transfer - * thread - hence the reason it is passed in the SourceThreadLogon as opposed to say the constructor. - * - * - * @return KErrNone if successful, otherwise a system wide error code. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ); - - /** - * Method to 'logoff' the data source from the same thread that source supplies data in. - * - * This method may be required as the thread that the data source is deleted in may not be - * the same thread that the data transfer took place in. Therefore any thread specific - * releasing of resources needs to be performed in the SourceThreadLogoff rather than in the destructor - * - * This is a virtual function that a derrived data source can implement if any thread specific - * releasing of resources is required. - */ - virtual void SourceThreadLogoff(); - - /** - * Method to 'prime' the data source. - * - * This is a virtual function that a derrived data source can implement if - * any data source specific 'priming' is required - */ - virtual TInt SourcePrimeL(); - - /** - * Method to 'play' the data source. - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required prior to 'playing'ie the start of data transfer - */ - virtual TInt SourcePlayL(); - - /** - * Method to 'pause' the data source. - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required to 'pause' - */ - virtual TInt SourcePauseL(); - - /** - * Method to 'stop' the data source. - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required to 'stop' - */ - virtual TInt SourceStopL(); - - /** - * Method called by a data sink to pass back an emptied buffer to the source - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data source actively requests a consumer ie a data sink - * to empty a buffer by calling the data sinks EmptyBufferL. - * When the data source gets this callback it knows that the buffer has been emptied and can be reused - * - * @param "aBuffer" - * The buffer that has been emptied by a data sink and is now available for reuse - */ - virtual void BufferEmptiedL(CMMFBuffer* aBuffer); - - /** - * Method to indicate whether the data source can create a buffer. - * - * This is a pure virtual function that each derived class must implement. - * - * @return ETrue if the data source can create a buffer else EFalse - */ - virtual TBool CanCreateSourceBuffer(); - public: //From MPVVideoInput - - /** - * Set the video frame format. This must be from the list of supported formats. - * @param "aFormat" The mime string describing the video frame format. - * @exception Can leave with one of the system wide error codes - */ - virtual void SetFormatL(const TDesC8& aFormat); - - /** - * Set the video frame rate. This must be within the range of supported frame rates - * for the current frame size. - * @param "aFrameRate" The video frame rate to set. - * @exception Can leave with one of the system wide error codes - */ - virtual void SetFrameRateL(TReal32 aFrameRate); - - /** - * Set the video frame size. - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - */ - virtual void SetVideoFrameSizeL(const TSize& aSize); - - /** - * Get the video frame size. - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - */ - virtual void GetVideoFrameSizeL(TSize& aSize) const; - public: //new - /** - * Constructor. - */ - CVideoSourceProxy(MVTVideoSource* aVideoSource); - /** - * ConstructL. - */ - void ConstructL( ); - - /** - * NewL. - */ - static CVideoSourceProxy* NewL(MVTVideoSource* aVideoSource); - - /** - * Get member variant. - * @return memeber variant:iVideoSource - */ - MVTVideoSource* VideoSource() { return iVideoSource; } - private: - MVTVideoSource* iVideoSource; - CPVCameraSourceNodeProxy* iCameraSourceNodeProxy; - }; - -NONSHARABLE_CLASS( CAudioSourceProxy ) : public CBase, - public MVTAudioSource - { - public: - MPVDataSource* iAudioSource; - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/ch324confighandler.h --- a/vtprotocols/inc/ch324confighandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef CH324ConfigHandler_H -#define CH324ConfigHandler_H -NONSHARABLE_CLASS( TH324ConfigHandler ) : public MPVH324MConfigSymbianObserver - { - public: - - /** - * Constructor. - */ - TH324ConfigHandler(MVtProtocolHandler* aProtocolHandler); - - /** - Handle an event that has been generated. - - @param aResponse The response to a previously issued command. - */ - virtual void MPVH324MConfigCommandCompletedL(const CPVCmdResponse& aResponse); - - /** - Handle an information event. - - @param aEvent - */ - virtual void MPVH324MConfigInformationalEventL(const CPVAsyncInformationalEvent& aEvent); - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CH324ConfigCommand ): public CBase, - public MVtH324ConfigCommand - { - public: - /** - * Destructor. - */ - ~CH324ConfigCommand(); - - /** - * Sets the vendor identification data. This does not cause the stack to issue a vendor identifiation request. - * Set to NULL to disable sending vendor id. If set to a valid parameter before Connect, it will cause the stack - * to automatically send it along with the TCS message. - * @param cc - * T35 Country code - * @param ext - * T35 Extension - * @param mc - * T35 Manufacturer code - * @param aProduct - * Product number - * @param aVersion - * Version number - **/ - virtual TInt SetVendorId(TUint8 cc, TUint8 ext, TUint32 mc, const TDesC8* aProduct, const TDesC8* aVersion); - - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is a request to the remote encoder to adjust its encoding in accordance with the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffCommand(TUint aLogicalChannel, TUint8 aTradeoff); - - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is an indication to the remote decoder that the local encoder has adjusted its encoding parameters - * according to the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffIndication(TUint aLogicalChannel, TUint8 aTradeoff); - - /** - * This API allows the user to specify the supported resolutions for video for transmit and receive. - * - **/ - virtual TInt SetSupportedResolutions( ); - /** - * This API allows the user to set options for fast call setup procedures - **/ - virtual TInt SetFastCsupOptions( ); - - /** - * Causes the protocol to send the specified user input to the remote terminal using - * control channel. The user input can be either DTMF ot Alphanumeric - * @param user_input A pointer to MVTUserInput - * @returns A unique command id for asynchronous completion - **/ - virtual TInt SendUserInputMessageL(MVTUserInput& user_input); - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler the observer for command status and unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler); - - /** - * Get member variant. - */ - MPVH324MConfig*& PVH324ConfigInterface() { return iH324Config; } - private: - MPVH324MConfig* iH324Config; - TH324ConfigHandler* iH324ConfigHandler; - }; -#endif -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/csessionhandler.h --- a/vtprotocols/inc/csessionhandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef CSESSIOHANDLER_H -#define CSESSIOHANDLER_H -NONSHARABLE_CLASS( TSessionHandler ) : public MPVCommandStatusObserver, - public MPVInformationalEventObserver, - public MPVErrorEventObserver - { - public: - - /** - Handle an event that has been generated. - - @param "aResponse" "The response to a previously issued command." - */ - virtual void CommandCompletedL(const CPVCmdResponse& aResponse); - - /** - * Handle an informational event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleInformationalEventL(const CPVAsyncInformationalEvent& aEvent); - - /** - * Handle an error event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleErrorEventL(const CPVAsyncErrorEvent& aEvent); - public: - /** - * Constructor. - */ - TSessionHandler(MVtProtocolHandler* aProtocolHandler); - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CSessionCommand ): public CBase, - public MVtSessionCommand - { - public: - /** - * Contructor. - */ - CSessionCommand(TSessionHandler* aSessionHandler, MPV2WaySymbianInterface* aPv2Way); - - /** - * Destructor. - */ - ~CSessionCommand(); - - /** - * This function is valid only in the EIdle state. It is a no-op when - * invoked in any other state. It causes the protocol to transition - * to the ESetup state. The terminal remains in the EInitializing state during - * the transition. - * - * - * @param aInitInfo - * A reference to a TVtInitInfo structure which set Mona on and off - * - * @leave This method can leave with one of the following error codes - * KPVErrInvalidState if invoked in the incorrect state - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt InitProtocolL(TVtInitInfo& aInitInfo); - - /** - * For an incoming track (MVTVideoSink) this function pauses sending - * media to the sink (output device) and stops the sink. It then does the protocol - * negotiations with the remote terminal to pause the logical channel for - * the specified track. - * - * For outgoing, it pauses the sending of media from the source and calls Stop() on the - * source. It also performs any necessary protocol negotiations with the remote terminal. - * EVtCommandPause will be sent to the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt PauseVideoL(MVTVideoSource& aDataSource); - virtual TInt PauseVideoL(MVTVideoSink& aDataSink); - virtual TInt PauseAudioL(MVTAudioSource& aAudioSource); - - /** - * Resume a previously paused incoming or outgoing track. For incoming, - * this function starts resumes playing out the media to the appropriate - * sink based on the current settings. For outgoing it resumes encoding - * and sending media from the source. - * - * EVtCommandResume will be invoked will be invoked on the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResumeVideoL(MVTVideoSource& aDataSource); - virtual TInt ResumeVideoL(MVTVideoSink& aDataSink); - virtual TInt ResumeAudioL(MVTAudioSource& aAudioSource); - - /** - * This function is valid only in the ESetup and EInitializing state. It is a - * no-op when invoked in the EIdle state and returns KPVErrInvalidState - * if invoked in any other state. - * - * It causes the protocol to transition back to the EIdle state. The - * terminal remains in the EResetting state during the transition. - * - * While resetting, the protocol de-allocates all resources resources that - * had been previously allocated. When it completes, ResetComplete is called - * and the protocol reverts to the EIdle state. - * - * @leave This method can leave with one of the following error codes - * KPVErrInvalidState if invoked in the incorrect state - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResetProtocolL(); - - /** - * This function can be invoked only in the ESetup state. The terminal starts connecting with the remote - * terminal based on the specified options and capabilities. - * The EVtCommandConnect command completion event will be passed to the observer - * when connect completes. - * Details about the negotiated session may be obtained by calling the GetSessionParamsL API. - * GetSessionParamsL may be called after call setup is started to get the list of available channels - * and their capabilities. - * Incoming tracks may be opened before ConnectL completes and will be indicated via the - * EVtIndicationIncommingTrack event. - * - * @param aComm - * An optional pointer to a comm server to provide comm source and sink end-points. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ConnectToProtocolL(MCommServer* aComm); - - /** - * Allows an application to provide a media source to be associated with a logical channel - * of communication with the peer. Sources should be added after the EVtIndicationOutgoingTrack - * indication is received for a newly established logical channel. The media type and - * channel id associated with the logical channel are specified as part of the indication. - * This function accepts a MVtVideoSource which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * Data sources could be of the following types: - * a)raw media sources like camera, microphone etc. - * b)sources of compressed data like file, gateway component etc. - * - * @param aChannelId - * Indicates the channel id to be associated with this source. - * @param aDataSource - * reference to the data source - * @leave This method can leave with one of the following error codes - * KErrNotSupported if the format of the sources/sinks is incomtible with what the SDK can handle - * KPVErrInvalidState if invoked in the incorrect state - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @return A unique command id for asynchronous completion - */ - virtual TInt AddVideoSourceL(const TUint aChannelId, MVTVideoSource &aDataSource); - virtual TInt AddAudioSourceL(const TUint aChannelId, MVTAudioSource &aDataSource); - - /** - * Allows an application to provide a media sink for rendering an incoming media bitstream in a - * logical channel of communication with the peer. - * AddDataSinkL can be called only for established incoming logical channels identified by a unique - * channel id. - * Regular incoming channels are established by the peer and are - * indicated using the EVtIndicationIncomingTrack indication. - * This function takes in PV extension to MVtVideoSink or MVtAudioSink which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * EVtCommandAddDataSink event is sent to the observer on completion of this call. - * - * @param aChannelId - * Indicates the channel id to be associated with this sink. - * @param aDataSink The data sink to be added - * - * @return A unique command id for asynchronous completion - **/ - virtual TInt AddVideoSinkL(const TUint aChannelId, MVTVideoSink &aDataSink); - virtual TInt AddAudioSinkL(const TUint aChannelId, MVTAudioSink &aDataSink); - - /** - * This API is to allow the user to cancel all pending requests. The current request being - * processed, if any, will also be aborted. - * EVtCommandCancelAllCommands will be passed to the command observer on completion. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt CancelAllCommandsL( ); - - /** - * The Disconnect call is valid only when invoked in the EConnecting, and - * EConnected states. It causes the terminal to transition to the - * EDisconnecting state. All the media tracks both incoming and outgoing - * will be closed on invoking Disconnect. On completion, the terminal - * goes to the ESetup state. - * - * It is a no-op when called in any other state. - * - * This is an asynchronous request. The EvtCommandDisconnect event will be - * sent to the observer when the request processing is complete. This - * is the only event the Phone application should expect after calling - * Disconnect. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt DisconnectFromProtocolL(); - - /** - * This API is to allow for extensibility of the protocol interface. - * It allows a caller to ask for an instance of a particular interface object to be returned. - * The mechanism is analogous to the COM IUnknown method. The interfaces are identified with - * an interface ID that is a UUID as in DCE and a pointer to the interface object is - * returned if it is supported. Otherwise the returned pointer is NULL. - * @param aType - * @param aProtocolCommand - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt GetProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*& aProtocolCommand); - - /** - * This APIis to be used to release an interface that was previously obtained using - * QueryInterfaceL. - * @param aType - * @param - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt DeleteProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand* aProtocolCommand); - public: - MPV2WaySymbianInterface *iPv2Way; - private: - CVideoSourceProxy* iVideoSource; - CDisplaySinkProxy* iDisplaySink; - TSessionHandler* iSessionHandler; - }; -#endif -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/cvideoconfighandler.h --- a/vtprotocols/inc/cvideoconfighandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef CVideoConfigHandler_H -#define CVideoConfigHandler_H -NONSHARABLE_CLASS( TVideoConfigHandler ): public MPvMp4H263EncExtensionSymbianObserver - { - public: - - /** - * Constructor. - */ - TVideoConfigHandler(MVtProtocolHandler* aProtocolHandler); - - /** - Handle an event that has been generated. - - @param aResponse The response to a previously issued command. - */ - virtual void MPvMp4H263EncExtensionCommandCompletedL(const CPVCmdResponse& aResponse); - - /** - Handle an information event. - - @param aEvent - */ - virtual void HandleMPvMp4H263EncExtensionInformationalEventL(const CPVAsyncInformationalEvent& aEvent); - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CVideoConfigCommand ) : public CBase, - public MVtVideoConfigCommand - { - public: - /** - * Destructor. - */ - ~CVideoConfigCommand(); - - /** - * Sets the I-Frame refresh rate of the encoded output. - * - * @param aIFrameInterval I-Frame rate in seconds per I-Frame - * @return True if successful, else false - */ - virtual TInt SetIntraFrameInterval(TUint32 aIFrameInterval); - - /** - * Requests the encoder to encode the next frame as an I-Frame. This menthod is valid - * only when the node is in EPVMFNodeStarted state. If successful, the next encoded - * frame will be an I-Frame. - * - * @return True for success, else false - */ - virtual TInt RequestNextIntraFrame(); - - /** - * Sets the frame rate of encoded output for the specified layer. - * @param aFrameRate Frame rate for the specified layer in frames per second. - * @return True if successful, else false. - */ - virtual TInt SetVideoFrameRate(TUint32 aFrameRate); - - /** - * This API allows the user to specify separate observers for the extension interface. - * - * @param aHandler the observer for unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler); - - /** - * Get member variant. - */ - MPvMp4H263EncExtensionInterfaceSymbian*& PVVideoEncoderInterface() { return iH263Encoder; } - private: - MPvMp4H263EncExtensionInterfaceSymbian* iH263Encoder; - TVideoConfigHandler* iVideoConfigHandler; - }; -#endif -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/cvtuserinput.h --- a/vtprotocols/inc/cvtuserinput.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef CVTUSERINPUT_H -#define CVTUSERINPUT_H -NONSHARABLE_CLASS( CVTUserInputDtmf ) : public CBase, - public MVTUserInput - { - public: - /** - * ConstructL. - */ - void ConstructL(TUint8 aTone); - /** - * NewL. - */ - static CVTUserInputDtmf* NewL(TUint8 aTone); - - /** - * Destructor. - */ - ~CVTUserInputDtmf(); - - /** - * Virtual function to return the user input type - **/ - virtual TUserInputType GetType(); - CPVUserInputDtmfSymbian* iUII; - }; - -NONSHARABLE_CLASS( CVTUserInputAlphanumeric ) : public CBase, - public MVTUserInput - { - public: - /** - * ConstructL. - */ - void ConstructL(TUint8 aTone); - /** - * NewL. - */ - static CVTUserInputAlphanumeric* NewL(TUint8 aTone); - - /** - * Destructor. - */ - ~CVTUserInputAlphanumeric(); - - /** - * Virtual function to return the user input type - **/ - virtual TUserInputType GetType(); - CPVUserInputAlphanumericSymbian* iUII; - }; -#endif -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/inc/mvtprotocolhandler.h --- a/vtprotocols/inc/mvtprotocolhandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1131 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#ifndef MVTENGMEDIAHANDLER_H -#define MVTENGMEDIAHANDLER_H - -// INCLUDES -#include -#include -#include -#include - -typedef TInt TVtCommandId; -typedef TInt TVtCommandStatus; -typedef TDesC8 TVtMIMEType; - -const TUid KVTUidYUVFrameBuffer = {0xFFFFFF0d}; -const TInt KVtUidDataSrcPrime = 0xFFFFFF08; -const TInt KVtUidDataSrcPlay = 0xFFFFFF09; -const TInt KVtUidDataSrcPause = 0xFFFFFF0A; -const TInt KVtUidDataSrcStop = 0xFFFFFF0B; - -_LIT8(KVtVideoMIMETypeH263, "/video/x-pv/compressed/h263"); -_LIT8(KVtVideoMIMETypeM4V, "/video/x-pv/compressed/m4v"); -_LIT8(KVtVideoMIMETypeH264, "/video/x-pv/compressed/h264"); -_LIT8(KVtAudioMIMETypeAMRIF2, "/audio/x-pv/compressed/amr/if2"); -_LIT8(KVtAudioMIMETypeAMRWBIF2, "/audio/x-pv/compressed/amrwb/if2"); -_LIT8(KVtVideoMIMETypeYUV420, "/video/x-pv/raw/yuv420"); - -enum TVt3G324MSupported - { - EVt3G324MMissing, - EVt3G324MSupported - }; - -enum TVtConfigType - { - EVtH324Config, - EVtVideoEncoderConfig - }; - -enum TVtCommandType { - EVtCommandInit, - EVtCommandGetSDKInfo, - EVtCommandGetProtocolState = 3, - EVtCommandReset, - EVtCommandAddDataSource = 6, - EVtCommandRemoveDataSource, - EVtCommandAddDataSink, - EVtCommandRemoveDataSink, - EVtCommandConnect, - EVtCommandDisconnect, - EVtCommandPause, - EVtCommandResume, - EVtCommandGetProtocolInterface =20, - EVtCommandDeleteProtocolInterface, - EVtCommandCancelAllCommands - }; - -enum TVtIndicationType - { - EVtIndicationVideoSpatialTamporalTradeOffCommand, - EVtIndicationVideoSpatialTamporalTradeOffIndication, - EVtIndicationUserInputCapability = 6, - EVtIndicationIncomingTrack = 41, - EVtIndicationOutgoingTrack, - EVtIndicationDisconnect, - EVtIndicationClosingTrack, - EVtIndicationCloseTrack, - EVtIndicationPauseTrack, - EVtIndicationResumeTrack - }; - -enum TVtMediaType - { - EVtAudio = 1, - EVtVideo, - EVtControl, - EVtData, - EVtUserInput, - EVtMediaNone - }; - -enum TVtAudioOutputControlCommand - { - EVtAudioOutputControlGetMaxVolume, - EVtAudioOutputControlGetVolume, - EVtAudioOutputControlSetVolume, - EVtAudioOutputControlGetBalance, - EVtAudioOutputControlSetBalance - }; - -const TUint8 EVtIncoming = 1; - -enum TUserInputType - { - EVtUiiDTFM, - EVtUiiAlphaNumeric - }; - -struct TVtInitInfo - { - TBool iAMRWBOn; - TBool iDisableMpeg4; - }; - -struct TVtIndicationEvent - { - public: - /** - * Constructor. - */ - TVtIndicationEvent(TInt aEventType, const TUint8 *aLocalBuffer) : iEventType(aEventType), iLocalBuffer(aLocalBuffer) - {} - public: - TInt iEventType; - const TUint8 *iLocalBuffer; - }; - -struct TVtCommandResponse - { - public: - /** - * Constructor. - */ - TVtCommandResponse(TVtCommandType aCmdType, TInt aCmdId, TInt iCmdStatus) : iCmdType(aCmdType), iCmdId(aCmdId), iCmdStatus(iCmdStatus) - {} - public: - TVtCommandType iCmdType; - TInt iCmdId; - TInt iCmdStatus; - }; - -struct TVtErrorEvent - { - public: - /** - * Constructor. - */ - TVtErrorEvent(TInt aEventType) : iEventType(aEventType) {} - public: - TInt iEventType; - }; - -struct TVtMMFDataBuffer - { - public: - /** - * Constructor. - */ - TVtMMFDataBuffer(CMMFBuffer* aMmfBuffer,TSize aFrameSize, TPtr8& aPtr) : iMmfBuffer(aMmfBuffer), iFrameSize(aFrameSize), iPtr(aPtr) {} - - /** - * Get the YUV frame size. - * @return The frame size, in pixels - */ - TSize GetFrameSize() {return iFrameSize;} - - /** - * Get MMF buffer. - * @return the MMF buffer - */ - CMMFBuffer* GetMMFBuffer() {return iMmfBuffer;} - - /** - * Get MMF buffer. - * @return the MMF buffer - */ - const CMMFBuffer* GetMMFBuffer() const {return iMmfBuffer;} - - /** - * @return Returns a reference to the data buffer - **/ - TPtr8& Data() {return iPtr;} - - /** - * @return Returns the frame size of the contained buffer. - **/ - const TSize GetFrameSize() const {return iFrameSize;} - - /** - * @return Returns a reference to the data buffer - **/ - const TPtr8& Data() const {return iPtr;} - private: - CMMFBuffer* iMmfBuffer; - TSize iFrameSize; - TPtr8& iPtr; - }; - -class MVTVideoInput - { - public: - - /** - * Set the video frame format. This must be from the list of supported formats. - * @param "aFormat" The mime string describing the video frame format. - * @exception Can leave with one of the system wide error codes - */ - virtual void SetFormatL(const TDesC8& aFormat) {} - - /** - * Set the video frame rate. This must be within the range of supported frame rates - * for the current frame size. - * @param "aFrameRate" The video frame rate to set. - * @exception Can leave with one of the system wide error codes - */ - virtual void SetFrameRateL(TReal32 aFrameRate) {} - - /** - * Set the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - */ - virtual void SetVideoFrameSizeL(const TSize& aSize) {} - - /** - * Get the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - */ - virtual void GetVideoFrameSizeL(TSize& aSize) const {} - - /** - * This API returns multimedias type supported by the data source/sink - - * Audio, Video, Data etc. Each supported type is indicated by a MIME type structure. - * @return - **/ - virtual const RArray& GetMultimediaTypesL() const {} - }; - -class MVTVideoOutput - { - public: - - /** - * Sets the data format using MIME string. - * @param aFormat The format as a MIME string. - **/ - virtual void SetFormatL(const TDesC8& aFormat) {} - - /** - * Set the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - **/ - virtual void SetVideoFrameSizeL(const TSize& aSize) {} - - /** - * Get the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - **/ - virtual void GetVideoFrameSizeL(TSize& aSize) const {} - - /** - * This API returns multimedias type supported by the data source/sink - - * Audio, Video, Data etc. Each supported type is indicated by a MIME type structure. - * @return - **/ - virtual const RArray& GetMultimediaTypesL() const {} - }; - -//This class is empty -class MVTAudioSource - { - }; - -//This class is empty -class MVTAudioSink - { - }; - -class MVTVideoSource; -class MVTVideoSink : public MVTVideoOutput - { - public: - /** - * Constructor. - */ - MVTVideoSink(TUid aType): iDataSinkType(aType) {} - - /** - * Method called by a data source to request the data sink to empty aBuffer of data. - * - * This is a pure virtual function that each derived class must implement. - * This method is used when a data sink is passively waiting for requests from a supplier ie a data source - * to empty a buffer. The data sink must call the BufferEmptiedL member on aSupplier when it has emptied - * the buffer of it's data - the data sink can either make this callback synchronously or asynchronously. - * - * @param "aBuffer" - * The full buffer that needs emptying of it's data - * - * @param "aSupplier" - * The data source that supplied the data. The data sink needs this to make the BufferEmptiedL - * callback on aSupplier to indicate to the data source that the data sink has finished with the buffer. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data - */ - virtual void EmptyBufferL( - TVtMMFDataBuffer aDataBuffer, - MVTVideoSource* aSupplier, - TMediaId aMediaId ) {} - - /** - * Method called by a data source to pass back an filled buffer to the sink - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data sink actively requests a supplier ie a data source - * to fill a buffer by calling the data sources FillBufferL. - * When the data sink gets this callback it knows that the buffer has been filled and is ready to be emptied - * - * @param "aBuffer" - * The buffer that has been filled by a data source and is now available for processing - */ - virtual void BufferFilledL( CMMFBuffer* aBuffer ) = 0; - - /** - * Method to indicate whether the data sink can create a buffer. - * - * This is a pure virtual function that each derived class must implement. - * - * @return ETrue if the data sink can create a buffer else EFalse - */ - virtual TBool CanCreateSinkBuffer() {return EFalse;} - - /** - * Returns a buffer created by the data sink - * - * This is a pure virtual function that each derived class must implement. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data. - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the sink - * and should be used in preference to the source buffer provided the source buffer - * is also not a reference buffer. - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSinkBufferL( - TMediaId aMediaId, - TBool &aReference ) {return NULL;} - - /** - * Method to 'logon' the data sink to the same thread that sink will be consuming data in. - * - * This method may be required as the thread that the data sink was created in is not always - * the same thread that the data transfer will take place in. Therefore any thread specific - * initialisation needs to be performed in the SinkThreadLogon rather than in the creation - * of the data sink. - * - * This is a virtual function that a derrived data sink can implement if any thread specific - * initialisation is required and/or the data sink can create any asynchronous events. - * - * - * @param "aEventHandler" - * This is an MAsyncEventHandler to handle asynchronous events that occur during the - * transfer of multimedia data. The event handler must be in the same thread as the data transfer - * thread - hence the reason it is passed in the SinkThreadLogon as opposed to say the constructor. - * - * - * @return KErrNone if successful, otherwise a system wide error code. - */ - virtual TInt SinkThreadLogon( MAsyncEventHandler& aEventHandler ) {return KErrNone;} - - /** - * Method to 'logoff' the data sink from the same thread that sink consumes data in. - * - * This method may be required as the thread that the data sink is deleted in may not be - * the same thread that the data transfer took place in. Therefore any thread specific - * releasing of resources needs to be performed in the SinkThreadLogoff rather than in the destructor - * - * This is a virtual function that a derrived data sink can implement if any thread specific - * releasing of resources is required. - */ - virtual void SinkThreadLogoff() {} - - /** - * Method to 'prime' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific 'priming' is required - */ - virtual TInt SinkPrimeL() {return 0;} - - /** - * Method to 'play' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required prior to 'playing'ie the start of data transfer - */ - virtual TInt SinkPlayL() {return 0;} - - /** - * Method to 'pause' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required to 'pause' - */ - virtual TInt SinkPauseL() {return 0;} - - /** - * Method to 'stop' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required to 'stop' - */ - virtual TInt SinkStopL() {return 0;} - private: - TUid iDataSinkType; - }; - -class MVTVideoSource : public MVTVideoInput - { - public: - - /** - * Constructor. - */ - MVTVideoSource(TUid aType): iDataSourceType(aType) {} - - /** - * Method called by a data sink to request the data source to fill aBuffer with data. - * - * This is a pure virtual function that each derived class must implement. - * This method is used when a data source is passively waiting for requests from a consumer ie a data sink - * to fill a buffer. The data source must call the BufferFilledL member on aConsumer when it has filled - * the buffer with data - the data source can either make this callback synchronously or asynchronously. - * - * @param "aBuffer" - * The buffer that needs filling with data - * - * @param "aConsumer" - * The data sink that consumes the data. The data source needs this to make the BufferFilledL - * callback on aConsumer when the data source has completed filling the aBuffer. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ) {} - - /** - * Method called by a data sink to pass back an emptied buffer to the source - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data source actively requests a consumer ie a data sink - * to empty a buffer by calling the data sinks EmptyBufferL. - * When the data source gets this callback it knows that the buffer has been emptied and can be reused - * - * @param "aBuffer" - * The buffer that has been emptied by a data sink and is now available for reuse - */ - virtual void BufferEmptiedL( CMMFBuffer* aBuffer ) = 0; - - /** - * Method to indicate whether the data source can create a buffer. - * - * This is a pure virtual function that each derived class must implement. - * - * @return ETrue if the data source can create a buffer else EFalse - */ - virtual TBool CanCreateSourceBuffer() {return EFalse;} - - /** - * Returns a buffer created by the data source - * - * This is a pure virtual function that each derived class must implement. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the source - * and should be used in preference to the sink buffer provided the sink buffer - * is also not a reference buffer - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSourceBufferL( - TMediaId aMediaId, - TBool &aReference ) {return NULL;} - - /** - * Returns a buffer created by the data source - * - * This is a virtual function that a derived class can implement. - * This can be used in preference to the above CreateSourceBufferL method in cases where - * the source buffer creation has a dependancy on the sink buffer - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - * - * @param "aSinkBuffer" - * The sink buffer the nature of which may influence the creation of the source buffer - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the source - * and should be used in preference to the sink buffer provided the sink buffer is not a reference buffer - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSourceBufferL( - TMediaId aMediaId, - CMMFBuffer& aSinkBuffer, - TBool &aReference ) {return NULL;} - - /** - * Method to 'logon' the data source to the same thread that source will be supplying data in. - * - * This method may be required as the thread that the data source was created in is not always - * the same thread that the data transfer will take place in. Therefore any thread specific - * initialisation needs to be performed in the SourceThreadLogon rather than in the creation - * of the data source. - * - * This is a virtual function that a derrived data source can implement if any thread specific - * initialisation is required and/or the data source can create any asynchronous events. - * - * - * @param "aEventHandler" - * This is an MAsyncEventHandler to handle asynchronous events that occur during the - * transfer of multimedia data. The event handler must be in the same thread as the data transfer - * thread - hence the reason it is passed in the SourceThreadLogon as opposed to say the constructor. - * - * - * @return KErrNone if successful, otherwise a system wide error code. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ) {return KErrNone;} - - /** - * Method to 'logoff' the data source from the same thread that source supplies data in. - * - * This method may be required as the thread that the data source is deleted in may not be - * the same thread that the data transfer took place in. Therefore any thread specific - * releasing of resources needs to be performed in the SourceThreadLogoff rather than in the destructor - * - * This is a virtual function that a derrived data source can implement if any thread specific - * releasing of resources is required. - */ - virtual void SourceThreadLogoff() {} - - /** - * Method to 'prime' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific 'priming' is required - */ - virtual TInt SourcePrimeL() {return 0;} - - /** - * Method to 'play' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required prior to 'playing'ie the start of data transfer - */ - virtual TInt SourcePlayL() {return 0;} - - /** - * Method to 'pause' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required to 'pause' - */ - virtual TInt SourcePauseL() {return 0;} - - /** - * Method to 'stop' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required to 'stop' - */ - virtual TInt SourceStopL() {return 0;} - private: - TUid iDataSourceType; - }; - -class MCommServer - { - }; - -class MVtProtocolCommand - { - public: - enum TVtProtocolState - { - EIdle, - EInitializing, - ESetup, - EConnecting, - EConnected, - EDisconnecting, - EResetting - }; - }; - -class MVtProtocolHandler - { - public: - - /** - * Handle an event that has been generated. - * - * @param "aResponse" "The response to a previously issued command." - */ - virtual void HandleSessionCommandEventL(const TVtCommandResponse& aResponse) = 0; - - /** - * Handle an informational event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleSessionInformationalEventL(const TVtIndicationEvent& aEvent) = 0; - - /** - * Handle an error event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleSessionErrorEventL(const TVtErrorEvent& aEvent) = 0; - - /** - * Signals completion of the audio output control command. - * @param aId The command id of the completed command. - * @param aCmd The command type. - * @param aContextData The context data passed in with the command. - * @param aStatus The command completion status. - **/ - virtual void HandleAudioOutputControlCommandComplete(TInt aId, TVtAudioOutputControlCommand aCmd, TAny *aContextData ,TInt aStatus) = 0; - /** - * Handle an event that has been generated. - * - * @param "aResponse" "The response to a previously issued command." - */ - virtual void HandleVideoEncoderCommandCompletedL(const TVtCommandResponse& aResponse) = 0; - - /** - * Handle an event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleVideoEncoderInformationalEventL(const TVtIndicationEvent& aEvent) = 0; - - /** - * Handle an event that has been generated. - * - * @param "aResponse" "The response to a previously issued command." - */ - virtual void HandleH324MConfigCommandCompletedL(const TVtCommandResponse& aResponse) = 0; - - /** - * Handle an event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleH324MConfigInformationalEventL(const TVtIndicationEvent& aEvent) = 0; - virtual ~MVtProtocolHandler() {} - }; - - -class MVtSessionCommand : public MVtProtocolCommand - { - public: - /** - * This function is valid only in the EIdle state. It is a no-op when - * invoked in any other state. It causes the protocol to transition - * to the ESetup state. The terminal remains in the EInitializing state during - * the transition. - * - * - * @param aInitInfo - * A reference to a TVtInitInfo structure which set Mona on and off - * - * @leave This method can leave with one of the following error codes - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt InitProtocolL(TVtInitInfo& aInitInfo) = 0; - - /** - * For an incoming track (MVTVideoSink) this function pauses sending - * media to the sink (output device) and stops the sink. It then does the protocol - * negotiations with the remote terminal to pause the logical channel for - * the specified track. - * - * For outgoing, it pauses the sending of media from the source and calls Stop() on the - * source. It also performs any necessary protocol negotiations with the remote terminal. - * EVtCommandPause will be sent to the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt PauseVideoL(MVTVideoSource& aDataSource) = 0; - virtual TInt PauseVideoL(MVTVideoSink& aDataSink) = 0; - virtual TInt PauseAudioL(MVTAudioSource& aAudioSource) = 0; - - /** - * Resume a previously paused incoming or outgoing track. For incoming, - * this function starts resumes playing out the media to the appropriate - * sink based on the current settings. For outgoing it resumes encoding - * and sending media from the source. - * EVtCommandResume will be invoked will be invoked on the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResumeVideoL(MVTVideoSource& aDataSource) = 0; - virtual TInt ResumeVideoL(MVTVideoSink& aDataSink) = 0; - virtual TInt ResumeAudioL(MVTAudioSource& aAudioSource) = 0; - - /** - * This function is valid only in the ESetup and EInitializing state. It is a - * no-op when invoked in the EIdle state - * - * It causes the protocol to transition back to the EIdle state. The - * terminal remains in the EResetting state during the transition. - * - * While resetting, the protocol de-allocates all resources resources that - * had been previously allocated. When it completes, ResetComplete is called - * and the protocol reverts to the EIdle state. - * - * @leave This method can leave with one of the following error codes - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResetProtocolL() = 0; - - /** - * This function can be invoked only in the ESetup state. The terminal starts connecting with the remote - * terminal based on the specified options and capabilities. - * The EVtCommandConnect command completion event will be passed to the observer - * when connect completes. - * Details about the negotiated session may be obtained by calling the GetSessionParamsL API. - * GetSessionParamsL may be called after call setup is started to get the list of available channels - * and their capabilities. - * Incoming tracks may be opened before ConnectL completes and will be indicated via the - * EVtIndicationIncommingTrack event. - * - * @param aComm - * An optional pointer to a comm server to provide comm source and sink end-points. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ConnectToProtocolL(MCommServer* aComm) = 0; - - /** - * Allows an application to provide a media source to be associated with a logical channel - * of communication with the peer. Sources should be added after the EVtIndicationOutgoingTrack - * indication is received for a newly established logical channel. The media type and - * channel id associated with the logical channel are specified as part of the indication. - * This function accepts a MVtVideoSource which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * Data sources could be of the following types: - * a)raw media sources like camera, microphone etc. - * b)sources of compressed data like file, gateway component etc. - * - * @param aChannelId - * Indicates the channel id to be associated with this source. - * @param aDataSource - * reference to the data source - * @leave This method can leave with one of the following error codes - * KErrNotSupported if the format of the sources/sinks is incomtible with what the SDK can handle - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @return A unique command id for asynchronous completion - */ - virtual TInt AddVideoSourceL(const TUint aChannelId, MVTVideoSource &aDataSource) = 0; - virtual TInt AddAudioSourceL(const TUint aChannelId, MVTAudioSource &aDataSource) = 0; - - /** - * Allows an application to provide a media sink for rendering an incoming media bitstream in a - * logical channel of communication with the peer. - * AddDataSinkL can be called only for established incoming logical channels identified by a unique - * channel id. - * Regular incoming channels are established by the peer and are - * indicated using the EVtIndicationIncomingTrack indication. - * This function takes in PV extension to MVtVideoSink or MVtAudioSink which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * EVtCommandAddDataSink event is sent to the observer on completion of this call. - * - * @param aChannelId - * Indicates the channel id to be associated with this sink. - * @param aDataSink The data sink to be added - * - * @return A unique command id for asynchronous completion - **/ - virtual TInt AddVideoSinkL(const TUint aChannelId, MVTVideoSink &aDataSink) = 0; - virtual TInt AddAudioSinkL(const TUint aChannelId, MVTAudioSink &aDataSink) = 0; - - /** - * This API is to allow the user to cancel all pending requests. The current request being - * processed, if any, will also be aborted. - * EVtCommandCancelAllCommands will be passed to the command observer on completion. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt CancelAllCommandsL( ) = 0; - - /** - * The Disconnect call is valid only when invoked in the EConnecting, and - * EConnected states. It causes the terminal to transition to the - * EDisconnecting state. All the media tracks both incoming and outgoing - * will be closed on invoking Disconnect. On completion, the terminal - * goes to the ESetup state. - * - * It is a no-op when called in any other state. - * - * This is an asynchronous request. The EvtCommandDisconnect event will be - * sent to the observer when the request processing is complete. This - * is the only event the Phone application should expect after calling - * Disconnect. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt DisconnectFromProtocolL() = 0; - - /** - * This API is to allow for extensibility of the protocol interface. - * It allows a caller to ask for an instance of a particular interface object to be returned. - * The mechanism is analogous to the COM IUnknown method. The interfaces are identified with - * an interface ID that is a UUID as in DCE and a pointer to the interface object is - * returned if it is supported. Otherwise the returned pointer is NULL. - * @param aType - * @param aProtocolCommand - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt GetProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*& aProtocolCommand) = 0; - - /** - * This APIis to be used to release an interface that was previously obtained using - * QueryInterfaceL. - * @param aType - * @param - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt DeleteProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*) = 0; - - /** - * Destructor. - */ - virtual ~MVtSessionCommand() {} - }; - -class MVTUserInput - { - public: - - /** - * @returns Returns the user input type. - **/ - virtual TUserInputType GetType() = 0; - virtual ~MVTUserInput() {} - }; - -class MVtH324ConfigCommand : public MVtProtocolCommand - { - public: - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler the observer for command status and unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler) = 0; - - /** - * Sets the vendor identification data. This does not cause the stack to issue a vendor identifiation request. - * Set to NULL to disable sending vendor id. If set to a valid parameter before Connect, it will cause the stack - * to automatically send it along with the TCS message. - * @param cc - * T35 Country code - * @param ext - * T35 Extension - * @param mc - * T35 Manufacturer code - * @param aProduct - * Product number - * @param aVersion - * Version number - **/ - virtual TInt SetVendorId(TUint8 cc, TUint8 ext, TUint32 mc, const TDesC8* aProduct, const TDesC8* aVersion) = 0; - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is a request to the remote encoder to adjust its encoding in accordance with the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffCommand(TUint aLogicalChannel, TUint8 aTradeoff)=0; - - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is an indication to the remote decoder that the local encoder has adjusted its encoding parameters - * according to the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffIndication(TUint aLogicalChannel, TUint8 aTradeoff)=0; - - /** - * This API allows the user to specify the supported resolutions for video for transmit and receive. - * - **/ - virtual TInt SetSupportedResolutions( ) = 0; - - /** - * This API allows the user to set options for fast call setup procedures - **/ - - virtual TInt SetFastCsupOptions( ) = 0; - - /** - * Causes the protocol to send the specified user input to the remote terminal using - * control channel. The user input can be either DTMF ot Alphanumeric - * @param user_input A pointer to MVTUserInput - * @returns A unique command id for asynchronous completion - **/ - virtual TInt SendUserInputMessageL(MVTUserInput& user_input) = 0; - }; - -class MVtVideoConfigCommand : public MVtProtocolCommand - { - public: - - /** - * This API allows the user to specify separate observers for the extension interface. - * - * @param aHandler the observer for unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler) = 0; - - /** - * Sets the I-Frame refresh rate of the encoded output. - * - * @param aIFrameInterval I-Frame rate in seconds per I-Frame - * @return True if successful, else false - */ - virtual TInt SetIntraFrameInterval(TUint32 aIFrameInterval) = 0; - - /** - * Requests the encoder to encode the next frame as an I-Frame. If successful, the next encoded - * frame will be an I-Frame. - * - * @return True for success, else false - */ - virtual TInt RequestNextIntraFrame() = 0; - - /** - * Sets the frame rate of encoded output for the specified layer. - * @param aFrameRate Frame rate for the specified layer in frames per second. - * @return True if successful, else false. - */ - virtual TInt SetVideoFrameRate(TUint32 aFrameRate) = 0; - }; - -class MVtAudioConfigCommand : public MVtProtocolCommand - { - public: - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler) = 0; - - /** - * Method to set the playback volume to the specified value. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aNewVolume - * An input parameter to hold the value for the requested playback volume. - * - * @returns Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt SetAudioVolumeL(TInt aVolume) = 0; - - /** - * Method to get the maximum valid value for the playback volume. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aMaxVolume - * An output parameter to hold the value for the maximum valid playback volume. - * Note that the parameter should not be used until the callback indicates that the - * method has completed. - * - * @returns Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt GetMaxAudioVolumeL(TInt& aMaxVolume) = 0; - }; - -class VTProtocolFactory - { - public: - - /** - * Create one instance. - */ - IMPORT_C static MVtSessionCommand* CreateSessionCommandL(MVtProtocolHandler* aProtocolHandler, TBool aEnableProxy, TVt3G324MSupported& a3G324MSupported); - - /** - * This function allows the application to delete an instance of a terminal - * and reclaim all allocated resources. A terminal should be deleted only in - * the EIdle state. An attempt to delete a terminal in any other state will - * result in unpredictable behavior. - * - * @param terminal the terminal to be deleted. - * - **/ - IMPORT_C static void DeleteSessionCommand( MVtSessionCommand* aSessionCommand ); - - /** - * Creates an instance of a DevSound audio data source. - * - * @param None - * - * @returns A pointer to the interface - **/ - IMPORT_C static MVTAudioSource* CreateAudioSource(); - - /** - * Deletes an instance of a DevSound audio data source - * that was previously created with CreateAudioSource(); - * - * @param aSource The audio data source to be deleted. - * - * @returns status - **/ - IMPORT_C static TInt DeletAudioSource(MVTAudioSource *aSource); - - /** - * Creates an instance of a DevSound audio data sink. - * - * @param None - * - * @returns A pointer to the interface - **/ - IMPORT_C static MVTAudioSink* CreateAudioSink(); - - /** - * Deletes an instance of a DevSound audio data sink - * that was previously created with CreateAudioSink(); - * - * @param The audio data sink to be deleted. - * - * @returns status - **/ - IMPORT_C static TInt DeleteAudioSink(MVTAudioSink *aSink); - - /** - * Creates an instance of a comm server of a particular name, to be used to - * initialize the terminal. - * - * - * @returns A pointer to a terminal or leaves if the type is invalid or the system is out of resources - **/ - IMPORT_C static MCommServer* CreateCommServerL(const TDesC & aName, TBool aEnableBitReversal=EFalse); - - /** - * This function allows the application to delete an instance of a comm server - * and reclaim all allocated resources. A comm server should be deleted only when the - * protocol is in the EIdle state. An attempt to delete a comm server in any other state - * could result in memory corruption within the protocol. This function will leave with - * KErrInUse if the comm server is still in use. However it will not check the state of the - * protocol that is using the comm server. - * - * @param aCommServer the comm server to be deleted. - * - * @returns a status code indicating success or failure - **/ - IMPORT_C static void DeleteCommServerL(MCommServer* aCommServer); - - /** - * Create instance. - * @param aUIITyep - * @param aTone - */ - IMPORT_C static MVTUserInput* CreateUserInputIndication(TUserInputType aUIIType, TUint8 aTone); - - /** - * Delete instance. - * @param aUII - */ - IMPORT_C static void DeleteUserInputIndication(MVTUserInput* aUII); - - /** - * - * @param aAudioSink - */ - IMPORT_C static MVtAudioConfigCommand* GetAudioConfigCommandL(MVTAudioSink* aAudioSink); - }; - -#endif -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/caudioconfighandler.cpp --- a/vtprotocols/src/caudioconfighandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include -#include "mvtprotocolhandler.h" -#include "caudioconfighandler.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// TAudioConfigHandler::TAudioConfigHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TAudioConfigHandler::TAudioConfigHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TAudioConfigHandler::TAudioConfigHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TAudioConfigHandler::TAudioConfigHandler>"))); - } - -// ----------------------------------------------------------------------------- -// TAudioConfigHandler::AudioOutputControlCommandComplete -// Signals completion of the audio output control command. -// ----------------------------------------------------------------------------- -// -void TAudioConfigHandler::AudioOutputControlCommandComplete(TPVCommandId aId - ,TPVAudioOutputControlCommand aCmd - ,TAny *aContextData - ,TInt aStatus) - { - __IF_DEBUG(Print(_L("VTProto: TAudioConfigHandler::AudioOutputControlCommandComplete<"))); - iProtocolHandler->HandleAudioOutputControlCommandComplete(aId, (TVtAudioOutputControlCommand)aCmd, aContextData, aStatus); - __IF_DEBUG(Print(_L("VTProto: TAudioConfigHandler::AudioOutputControlCommandComplete>"))); - } -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::CAudioConfigCommand -// Constructor. -// ----------------------------------------------------------------------------- -// -CAudioConfigCommand::CAudioConfigCommand(MPVAudioOutputControl* aAudioCtrl) : iAudioCtrl(aAudioCtrl) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::CAudioConfigCommand<"))); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::CAudioConfigCommand>"))); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::SetObserverL -// This API allows the user to specify observers for the 324m interface. -// ----------------------------------------------------------------------------- -// -void CAudioConfigCommand::SetObserverL(MVtProtocolHandler* aHandler) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetObserverL<"))); - iAudioConfigHandler = new (ELeave)TAudioConfigHandler(aHandler); - iAudioCtrl->SetAudioOutputControlObserver(iAudioConfigHandler); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetObserverL>"))); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::SetAudioVolumeL -// Method to set the playback volume to the specified value. -// ----------------------------------------------------------------------------- -// -TInt CAudioConfigCommand::SetAudioVolumeL(TInt aVolume) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetAudioVolumeL"))); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetAudioVolumeL aVolume %d"), aVolume)); - return iAudioCtrl->SetVolumeL(aVolume); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::GetMaxAudioVolumeL -// Method to get the maximum valid value for the playback volume. -// ----------------------------------------------------------------------------- -// -TInt CAudioConfigCommand::GetMaxAudioVolumeL(TInt& aMaxVolume) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::GetMaxAudioVolumeL"))); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::GetMaxAudioVolumeL aMaxVolume %d"), aMaxVolume)); - return iAudioCtrl->GetMaxVolumeL(aMaxVolume); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::~CAudioConfigCommand -// Destructor. -// ----------------------------------------------------------------------------- -// -CAudioConfigCommand::~CAudioConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::~CAudioConfigCommand>"))); - delete iAudioConfigHandler; - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::~CAudioConfigCommand"))); - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/cdatasinkproxy.cpp --- a/vtprotocols/src/cdatasinkproxy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include "mvtprotocolhandler.h" -#include "cdatasinkproxy.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// CPVDisplaySinkNodeProxy::SetSupplier -// Set new supplier . -// ----------------------------------------------------------------------------- -// -void CPVDisplaySinkNodeProxy::SetSupplier(MPVDataSourceBase* aSupplier) - { - __IF_DEBUG(Print(_L("VTProto: CPVDisplaySinkNodeProxy::SetSupplier<"))); - iSupplier = aSupplier; - __IF_DEBUG(Print( _L( "VTProto: CPVDisplaySinkNodeProxy::SetSupplier>" ) )); - } - -// ----------------------------------------------------------------------------- -// CPVDisplaySinkNodeProxy::BufferEmptiedL -// Method called by a data sink to pass back an emptied buffer to the source. -// ----------------------------------------------------------------------------- -// -void CPVDisplaySinkNodeProxy::BufferEmptiedL(CMMFBuffer* aBuffer) - { - __IF_DEBUG(Print( _L( "VTProto: CPVDisplaySinkNodeProxy::BufferEmptiedL<" ) )); - iSupplier->BufferEmptiedL(aBuffer); //call actually PV code - __IF_DEBUG(Print( _L( "VTProto: CPVDisplaySinkNodeProxy::BufferEmptiedL>" ) )); - } - -// ----------------------------------------------------------------------------- -// CPVDisplaySinkNodeProxy::CPVDisplaySinkNodeProxy -// Constructor. -// ----------------------------------------------------------------------------- -// -CPVDisplaySinkNodeProxy::CPVDisplaySinkNodeProxy() : MVTVideoSource(KNullUid) - { - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::CDisplaySinkProxy -// Constructor. -// ----------------------------------------------------------------------------- -// -CDisplaySinkProxy::CDisplaySinkProxy(MVTVideoSink* aDisplaySink) : MPVDataSink(KNullUid), iDisplaySink(aDisplaySink) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::CDisplaySinkProxy<" ) )); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::CDisplaySinkProxy iDisplaySink %d>" ), iDisplaySink)); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::ConstructL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::ConstructL() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::ConstructL<" ) )); - iDSNodeProxy = new (ELeave)CPVDisplaySinkNodeProxy(); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::ConstructL>" ) )); - } - - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::NewL -// ----------------------------------------------------------------------------- -// -CDisplaySinkProxy* CDisplaySinkProxy::NewL(MVTVideoSink* aDisplaySink) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::NewL<" ) )); - CDisplaySinkProxy* self = new (ELeave)CDisplaySinkProxy(aDisplaySink); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::NewL>" ) )); - return self; - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::QueryInterface -// This API is to allow for extensibility of the plugin interface. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::QueryInterface( const TPVUuid& aUuid, TPVInterfacePtr& aInterfacePtr ) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::QueryInterface<" ) )); - if ( aUuid == KPVUidVideoOutputInterface ) - { - MPVVideoInput* interfaceP = (MPVVideoInput*) this; - aInterfacePtr = (TPVInterfacePtr) interfaceP; - } - else - { - aInterfacePtr = NULL; - } - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::QueryInterface aInterfacePtr %d>" ), aInterfacePtr )); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::GetMultimediaTypesL -// This API returns multimedias type supported by the data source/sink. -// ----------------------------------------------------------------------------- -// -const RArray& CDisplaySinkProxy::GetMultimediaTypesL() const - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::GetMultimediaTypesL" ) )); - return iDisplaySink->GetMultimediaTypesL(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::QueryUUID -// This API is to allow for extensibility of the plugin interface. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::QueryUUID( const TPVMIMEType& aMimeType, RArray& aUuids, bool aExactUuidsOnly) - { - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SetTimebaseL -// This API is used to provide a timebase for plugins that deal with synchronized media data. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::SetTimebaseL(MPVSymbianTimebaseInterface* aTimebase) - { - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::EmptyBufferL -// Method called by a MDataSource to request the data sink to empty aBuffer of data. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::EmptyBufferL(CMMFBuffer *aBuffer, MPVDataSourceBase* aSupplier, TMediaId) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::EmptyBufferL<" ) )); - iDSNodeProxy->SetSupplier(aSupplier); - CPVMMFPointerBuffer& pvMMFBuffer = *static_cast< CPVMMFPointerBuffer* >( aBuffer ); - TVtMMFDataBuffer mmfDataBuffer(aBuffer, pvMMFBuffer.GetFrameSize(), static_cast(pvMMFBuffer.Data())); - iDisplaySink->EmptyBufferL(mmfDataBuffer, iDSNodeProxy, TMediaId()); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::EmptyBufferL>" ) )); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::BufferFilledL -// Method called by a data source to pass back an filled buffer to the sink. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::BufferFilledL(CMMFBuffer* aBuffer) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::BufferFilledL" ) )); - return iDisplaySink->BufferFilledL(aBuffer); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::CanCreateSinkBuffer -// Method to indicate whether the data sink can create a buffer. -// ----------------------------------------------------------------------------- -// -TBool CDisplaySinkProxy::CanCreateSinkBuffer() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::CanCreateSinkBuffer" ) )); - return iDisplaySink->CanCreateSinkBuffer(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::CreateSinkBufferL -// Returns a buffer created by the data sink -// ----------------------------------------------------------------------------- -// -CMMFBuffer* CDisplaySinkProxy::CreateSinkBufferL(TMediaId aMediaId, TBool &aReference ) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::CreateSinkBufferL" ) )); - return iDisplaySink->CreateSinkBufferL(aMediaId, aReference); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SinkThreadLogon -// Method to 'logon' the data sink to the same thread that sink will be consuming data in. -// ----------------------------------------------------------------------------- -// -TInt CDisplaySinkProxy::SinkThreadLogon( MAsyncEventHandler& aEventHandler ) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SinkThreadLogon" ) )); - return iDisplaySink->SinkThreadLogon(aEventHandler); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SinkThreadLogoff -// Method to 'logoff' the data sink from the same thread that sink consumes data in. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::SinkThreadLogoff() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SinkThreadLogoff" ) )); - iDisplaySink->SinkThreadLogoff(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SinkPrimeL -// Method to 'prime' the data sink. -// ----------------------------------------------------------------------------- -// -TInt CDisplaySinkProxy::SinkPrimeL() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SinkPrimeL" ) )); - return iDisplaySink->SinkPrimeL(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SinkPlayL -// Method to 'play' the data sink. -// ----------------------------------------------------------------------------- -// -TInt CDisplaySinkProxy::SinkPlayL() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SinkPlayL" ) )); - return iDisplaySink->SinkPlayL(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SinkPauseL -// Method to 'pause' the data sink. -// ----------------------------------------------------------------------------- -// -TInt CDisplaySinkProxy::SinkPauseL() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SinkPauseL" ) )); - return iDisplaySink->SinkPauseL(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SinkStopL -// Method to 'stop' the data sink. -// ----------------------------------------------------------------------------- -// -TInt CDisplaySinkProxy::SinkStopL() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SinkStopL" ) )); - return iDisplaySink->SinkStopL(); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SetFormatL -// Set the video frame format. This must be from the list of supported formats. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::SetFormatL(const TDesC8& aFormat) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SetFormatL" ) )); - iDisplaySink->SetFormatL(aFormat); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::SetVideoFrameSizeL -// Set the video frame size. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::SetVideoFrameSizeL(const TSize& aSize) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::SetVideoFrameSizeL" ) )); - iDisplaySink->SetVideoFrameSizeL(aSize); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::GetVideoFrameSizeL -// Get the video frame size. -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::GetVideoFrameSizeL(TSize& aSize) const - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::GetVideoFrameSizeL" ) )); - iDisplaySink->GetVideoFrameSizeL(aSize); - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/cdatasourceproxy.cpp --- a/vtprotocols/src/cdatasourceproxy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,334 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include "mvtprotocolhandler.h" -#include "cdatasourceproxy.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// CPVCameraSourceNodeProxy::CPVCameraSourceNodeProxy -// Constructor. -// ----------------------------------------------------------------------------- -// -CPVCameraSourceNodeProxy::CPVCameraSourceNodeProxy() : MVTVideoSink(KNullUid) - { - } - -// ----------------------------------------------------------------------------- -// CPVCameraSourceNodeProxy::SetConsumer -// Set consumer object. -// ----------------------------------------------------------------------------- -// -void CPVCameraSourceNodeProxy::SetConsumer(MPVDataSinkBase* aConsumer) - { - __IF_DEBUG(Print(_L("VTProto: CPVCameraSourceNodeProxy::SetConsumer<"))); - iConsumer = aConsumer; - __IF_DEBUG(Print(_L("VTProto: CPVCameraSourceNodeProxy::SetConsumer>"))); - } - -// ----------------------------------------------------------------------------- -// CPVCameraSourceNodeProxy::BufferFilledL -// Method called by a data source to pass back an filled buffer to the sink. -// ----------------------------------------------------------------------------- -// -void CPVCameraSourceNodeProxy::BufferFilledL(CMMFBuffer* aBuffer) - { - __IF_DEBUG(Print(_L("VTProto: CPVCameraSourceNodeProxy::BufferFilledL<"))); - iConsumer->BufferFilledL(aBuffer); - __IF_DEBUG(Print(_L("VTProto: CPVCameraSourceNodeProxy::BufferFilledL>"))); - } - -// ----------------------------------------------------------------------------- -// CPVCameraSourceNodeProxy::SendEventToClient -// Send event to client. -// ----------------------------------------------------------------------------- -// -TInt CPVCameraSourceNodeProxy::SendEventToClient(const TMMFEvent &aEvent) - { - __IF_DEBUG(Print(_L("VTProto: CPVCameraSourceNodeProxy::SendEventToClient<"))); - MAsyncEventHandler* eventHandler = dynamic_cast(iConsumer); - TInt result = eventHandler->SendEventToClient(aEvent); - __IF_DEBUG(Print(_L("VTProto: CPVCameraSourceNodeProxy::SendEventToClient>"))); - return result; - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::CVideoSourceProxy -// Constructor. -// ----------------------------------------------------------------------------- -// -CVideoSourceProxy::CVideoSourceProxy(MVTVideoSource* aDataSource) : MPVDataSource(KNullUid), iVideoSource(aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CVideoSourceProxy<"))); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CVideoSourceProxy iVideoSource %d>"), iVideoSource)); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::ConstructL -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::ConstructL() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::ConstructL<"))); - iCameraSourceNodeProxy = new (ELeave) CPVCameraSourceNodeProxy(); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::ConstructL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::NewL -// ----------------------------------------------------------------------------- -// -CVideoSourceProxy* CVideoSourceProxy::NewL(MVTVideoSource* aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::NewL<"))); - CVideoSourceProxy* self = new (ELeave)CVideoSourceProxy(aDataSource); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::NewL>"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::QueryInterface -// This API is to allow for extensibility of the plugin interface. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::QueryInterface( const TPVUuid& aUuid, TPVInterfacePtr& aInterfacePtr ) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::QueryInterface<"))); - if ( aUuid == KPVUidVideoInputInterface ) - { - MPVVideoInput* interfaceP = (MPVVideoInput*) this; - aInterfacePtr = (TPVInterfacePtr) interfaceP; - } - else - { - aInterfacePtr = NULL; - } - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::QueryInterface aInterfacePtr %d<"), aInterfacePtr)); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::GetMultimediaTypesL -// This API returns multimedias type supported by the data source/sink. -// ----------------------------------------------------------------------------- -// -const RArray& CVideoSourceProxy::GetMultimediaTypesL() const - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::GetMultimediaTypesL iVideoSource %d"), iVideoSource)); - const RArray& multimediaType = iVideoSource->GetMultimediaTypesL(); - return multimediaType; - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::QueryUUID -// This API is to allow for extensibility of the plugin interface. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::QueryUUID( const TPVMIMEType& aMimeType, RArray& aUuids, bool aExactUuidsOnly) - { - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SetTimebaseL -// This API is used to provide a timebase for plugins that deal with synchronized media data. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::SetTimebaseL(MPVSymbianTimebaseInterface* aTimebase) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SetTimebaseL<"))); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SetTimebaseL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::FillBufferL -// Method called by a MDataSink to request the data source to fill aBuffer with data. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::FillBufferL(CMMFBuffer* aBuffer, MPVDataSinkBase* aConsumer, TMediaId aMediaId ) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::FillBufferL<"))); - iCameraSourceNodeProxy->SetConsumer(aConsumer); - iVideoSource->FillBufferL(aBuffer, iCameraSourceNodeProxy, aMediaId); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::FillBufferL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::CreateSourceBufferL -// Returns a buffer created by the data source. -// ----------------------------------------------------------------------------- -// -CMMFBuffer* CVideoSourceProxy::CreateSourceBufferL(TMediaId aMediaId, TBool &aReference ) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CreateSourceBufferL"))); - return iVideoSource->CreateSourceBufferL(aMediaId, aReference); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::CreateSourceBufferL -// Returns a buffer created by the data source. -// ----------------------------------------------------------------------------- -// -CMMFBuffer* CVideoSourceProxy::CreateSourceBufferL(TMediaId aMediaId, CMMFBuffer &aSinkBuffer, TBool &aReference) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CreateSourceBufferL"))); - return iVideoSource->CreateSourceBufferL(aMediaId, aSinkBuffer, aReference); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SourceThreadLogon -// Method to 'logon' the data source to the same thread that source will be supplying data in. -// ----------------------------------------------------------------------------- -// -TInt CVideoSourceProxy::SourceThreadLogon( MAsyncEventHandler& aEventHandler ) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourceThreadLogon"))); - return iVideoSource->SourceThreadLogon(aEventHandler); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SourceThreadLogoff -// Method to 'logoff' the data source from the same thread that source supplies data in. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::SourceThreadLogoff() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourceThreadLogoff<"))); - iVideoSource->SourceThreadLogoff(); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourceThreadLogoff>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SourcePrimeL -// Method to 'prime' the data source. -// ----------------------------------------------------------------------------- -// -TInt CVideoSourceProxy::SourcePrimeL() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourcePrimeL<"))); - return iVideoSource->SourcePrimeL(); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SourcePlayL -// Method to 'play' the data source. -// ----------------------------------------------------------------------------- -// -TInt CVideoSourceProxy::SourcePlayL() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourcePlayL"))); - return iVideoSource->SourcePlayL(); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SourcePauseL -// Method to 'pause' the data source. -// ----------------------------------------------------------------------------- -// -TInt CVideoSourceProxy::SourcePauseL() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourcePauseL"))); - return iVideoSource->SourcePauseL(); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SourceStopL -// Method to 'stop' the data source. -// ----------------------------------------------------------------------------- -// -TInt CVideoSourceProxy::SourceStopL() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SourceStopL"))); - return iVideoSource->SourceStopL(); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::BufferEmptiedL -// Method called by a data sink to pass back an emptied buffer to the source. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::BufferEmptiedL(CMMFBuffer* aBuffer) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::BufferEmptiedL"))); - iVideoSource->BufferEmptiedL(aBuffer); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::CanCreateSourceBuffer -// Method to indicate whether the data source can create a buffer. -// ----------------------------------------------------------------------------- -// -TBool CVideoSourceProxy::CanCreateSourceBuffer() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CanCreateSourceBuffer"))); - return iVideoSource->CanCreateSourceBuffer(); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SetFormatL -// Set the video frame format. This must be from the list of supported formats. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::SetFormatL(const TDesC8& aFormat) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SetFormatL"))); - iVideoSource->SetFormatL(aFormat); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SetFrameRateL -// Set the video frame rate. This must be within the range of supported frame rates. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::SetFrameRateL(TReal32 aFrameRate) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SetFrameRateL"))); - iVideoSource->SetFrameRateL(aFrameRate); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::SetVideoFrameSizeL -// Set the video frame size. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::SetVideoFrameSizeL(const TSize& aSize) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SetVideoFrameSizeL <"))); - iVideoSource->SetVideoFrameSizeL(aSize); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::SetVideoFrameSizeL >"))); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::GetVideoFrameSizeL -// Get the video frame size. -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::GetVideoFrameSizeL(TSize& aSize) const - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::GetVideoFrameSizeL<"))); - iVideoSource->GetVideoFrameSizeL(aSize); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::GetVideoFrameSizeL>"))); - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/ch324confighandler.cpp --- a/vtprotocols/src/ch324confighandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include -#include "mvtprotocolhandler.h" -#include "ch324confighandler.h" -#include "cvtuserinput.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// Define image sizes. -// QCIF. -const TInt KVtProtoResolutionQCIFWidth = 176; -const TInt KVtProtoResolutionQCIFHeight = 144; - -// SQCIF. -const TInt KVtProtoResolutionSQCIFWidth = 128; -const TInt KVtProtoResolutionSQCIFHeight = 96; - -// ----------------------------------------------------------------------------- -// TH324ConfigHandler::TH324ConfigHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TH324ConfigHandler::TH324ConfigHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::TH324ConfigHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::TH324ConfigHandler>"))); - } - -// ----------------------------------------------------------------------------- -// TH324ConfigHandler::MPVH324MConfigCommandCompletedL -// Handle an event that has been generated. -// ----------------------------------------------------------------------------- -// -void TH324ConfigHandler::MPVH324MConfigCommandCompletedL(const CPVCmdResponse& aResponse) - { - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::MPVH324MConfigCommandCompletedL<"))); - TVtCommandType cmdType = (TVtCommandType)aResponse.GetCmdType(); - TInt cmdId = aResponse.GetCmdId(); - TInt cmdResponse = aResponse.GetCmdStatus(); - TVtCommandResponse commandRsp(cmdType, cmdId, cmdResponse); - iProtocolHandler->HandleH324MConfigCommandCompletedL(commandRsp); - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::MPVH324MConfigCommandCompletedL>"))); - } - -// ----------------------------------------------------------------------------- -// TH324ConfigHandler::MPVH324MConfigInformationalEventL -// Handle an information event. -// ----------------------------------------------------------------------------- -// -void TH324ConfigHandler::MPVH324MConfigInformationalEventL(const CPVAsyncInformationalEvent& aEvent) - { - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::MPVH324MConfigInformationalEventL<"))); - const TUint8* buffer = aEvent.GetLocalBuffer(); - TInt eventType = aEvent.GetEventType(); - TVtIndicationEvent vtEvent(eventType, buffer); - iProtocolHandler->HandleH324MConfigInformationalEventL(vtEvent); - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::MPVH324MConfigInformationalEventL>"))); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetVendorId -// Sets the vendor identification data. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SetVendorId(TUint8 cc, TUint8 ext, TUint32 mc, const TDesC8* aProduct, const TDesC8* aVersion) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetVendorId"))); - return iH324Config->SetVendor(cc, ext, mc, aProduct, aVersion); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SendVideoTemporalSpatialTradeoffCommand -// This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SendVideoTemporalSpatialTradeoffCommand(TUint aLogicalChannel, TUint8 aTradeoff) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendVideoTemporalSpatialTradeoffCommand"))); - return iH324Config->SendVideoTemporalSpatialTradeoffCommand(aLogicalChannel, aTradeoff); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SendVideoTemporalSpatialTradeoffIndication -// This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SendVideoTemporalSpatialTradeoffIndication(TUint aLogicalChannel, TUint8 aTradeoff) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendVideoTemporalSpatialTradeoffIndication"))); - return iH324Config->SendVideoTemporalSpatialTradeoffIndication(aLogicalChannel, aTradeoff); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetVideoResolutions -// This API allows the user to specify the supported resolutions for video for transmit and receive. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SetSupportedResolutions() - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetSupportedResolutions"))); - RArray resolutions; - TPVVideoResolutionRange qcif; - qcif.first.iWidth = KVtProtoResolutionQCIFWidth; - qcif.first.iHeight = KVtProtoResolutionQCIFHeight; - qcif.last.iWidth = KVtProtoResolutionQCIFWidth; - qcif.last.iHeight = KVtProtoResolutionQCIFHeight; - TInt err( resolutions.Append( qcif ) ); - if ( err == KErrNone ) - { - TPVVideoResolutionRange sqcif; - sqcif.first.iWidth = KVtProtoResolutionSQCIFWidth; - sqcif.first.iHeight = KVtProtoResolutionSQCIFHeight; - sqcif.last.iWidth = KVtProtoResolutionSQCIFWidth; - sqcif.last.iHeight = KVtProtoResolutionSQCIFHeight; - err = resolutions.Append( sqcif ); - if ( err == KErrNone ) - { - err = iH324Config->SetVideoResolutions( INCOMING, resolutions ); - } - } - resolutions.Close(); - - return err; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetFastCsupOptions -// This API allows the user to set options for fast call setup procedures. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SetFastCsupOptions( ) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetFastCsupOptions"))); - TPVH324FastCsupOptions fastCsupOptions; - fastCsupOptions.iEnableWnsrp = ETrue; - fastCsupOptions.iEnableMona = EFalse; - return iH324Config->SetFastCsupOptions(fastCsupOptions); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SendUserInputMessageL -// Causes the vt2way to send the specified user input to the remote terminal using -// control channel. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SendUserInputMessageL(MVTUserInput& user_input) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendUserInputMessageL<"))); - if (user_input.GetType() == EVtUiiDTFM) - { - CVTUserInputDtmf* dtmf = static_cast(&user_input); - return iH324Config->SendUserInputL(*dtmf->iUII); - } - else if (user_input.GetType() == EVtUiiAlphaNumeric) - { - CVTUserInputAlphanumeric* alphanumeric = static_cast(&user_input); - return iH324Config->SendUserInputL(*alphanumeric->iUII); - } - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendUserInputMessageL>"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetObserverL -// This API allows the user to specify observers for the 324m interface. -// ----------------------------------------------------------------------------- -// -void CH324ConfigCommand::SetObserverL(MVtProtocolHandler* aHandler) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetObserverL<"))); - iH324ConfigHandler = new (ELeave)TH324ConfigHandler(aHandler); - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetObserverL observer %d"), iH324ConfigHandler)); - iH324Config->SetObserver(iH324ConfigHandler); - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetObserverL>"))); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::~CH324ConfigCommand -// Destructor. -// ----------------------------------------------------------------------------- -// -CH324ConfigCommand::~CH324ConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::~CH324ConfigCommand<"))); - delete iH324ConfigHandler; - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::~CH324ConfigCommand>"))); - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/csessionhandler.cpp --- a/vtprotocols/src/csessionhandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,450 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include -#include -#include -#include -#include -#include "mvtprotocolhandler.h" -#include "cdatasinkproxy.h" -#include "cdatasourceproxy.h" -#include "csessionhandler.h" -#include "ccommserver.h" -#include "ch324confighandler.h" -#include "cvideoconfighandler.h" -#include "caudioconfighandler.h" - -#define DEBUG_CFG_BB_LOOPBACK 0 -#define DEBUG_CFG_PV_LOOPBACK 0 -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -const TInt KVtProtoMultiplexingDelay = 150; -const TInt EVtGet324CtrlInterface = 15; -const TInt EVtGetH263EncInterface = 24; -// ----------------------------------------------------------------------------- -// TSessionHandler::TSessionHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TSessionHandler::TSessionHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::TSessionHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::TSessionHandler>"))); - } - -// ----------------------------------------------------------------------------- -// TSessionHandler::CommandCompletedL -// Handle an event that has been generated. -// ----------------------------------------------------------------------------- -// -void TSessionHandler::CommandCompletedL(const CPVCmdResponse& aResponse) - { - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::CommandCompletedL<"))); - TVtCommandType cmdType = (TVtCommandType)aResponse.GetCmdType(); - TInt cmdId = (TInt)aResponse.GetCmdId(); - TInt cmdResponse = aResponse.GetCmdStatus(); - TVtCommandResponse commandRsp(cmdType, cmdId, cmdResponse); - iProtocolHandler->HandleSessionCommandEventL(commandRsp); - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::CommandCompletedL>"))); - } - -// ----------------------------------------------------------------------------- -// TSessionHandler::HandleInformationalEventL -// Handle an informational event that has been generated. -// ----------------------------------------------------------------------------- -// -void TSessionHandler::HandleInformationalEventL(const CPVAsyncInformationalEvent& aEvent) - { - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::HandleInformationalEventL<"))); - const TUint8* buffer = aEvent.GetLocalBuffer(); - TInt eventType = aEvent.GetEventType(); - TVtIndicationEvent vtEvent(eventType, buffer); - iProtocolHandler->HandleSessionInformationalEventL(vtEvent); - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::HandleInformationalEventL>"))); - } - -// ----------------------------------------------------------------------------- -// TSessionHandler::HandleErrorEventL -// Handle an error event that has been generated. -// ----------------------------------------------------------------------------- -// -void TSessionHandler::HandleErrorEventL(const CPVAsyncErrorEvent& aEvent) - { - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::HandleErrorEventL<"))); - TVtErrorEvent event(aEvent.GetEventType()); - iProtocolHandler->HandleSessionErrorEventL(event); - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::HandleErrorEventL>"))); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::CSessionCommand -// Constructor. -// ----------------------------------------------------------------------------- -// -CSessionCommand::CSessionCommand(TSessionHandler* aSessionHandler, MPV2WaySymbianInterface* aPv2Way) - : iPv2Way(aPv2Way), iSessionHandler(aSessionHandler) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::CSessionCommand<"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::CSessionCommand>"))); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::~CSessionComman -// Destructor. -// ----------------------------------------------------------------------------- -// -CSessionCommand::~CSessionCommand() - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::~CSessionCommand<"))); - delete iVideoSource; - delete iDisplaySink; - delete iSessionHandler; - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::~CSessionCommand>"))); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ConnectToProtocolL -// This function can be invoked only in the ESetup state. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ConnectToProtocolL(MCommServer* aComm) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL"))); - TPVConnectOptions connectOptions; - connectOptions.iLoopbackMode = PV_LOOPBACK_NONE; -#ifdef _DEBUG - if ( DEBUG_CFG_BB_LOOPBACK ) - { - connectOptions.iLoopbackMode = PV_LOOPBACK_COMM; - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL Loopback COMM"))); - } - else if ( DEBUG_CFG_PV_LOOPBACK ) - { - connectOptions.iLoopbackMode = PV_LOOPBACK_MUX; - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL Loopback MUX"))); - } - else - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL Loopback NONE"))); - } -#endif - CCommServer* commServer = static_cast(aComm); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL commServer %d"), commServer)); - return iPv2Way->ConnectL(connectOptions, commServer->iComm); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::DisconnectFromProtocolL -// The Disconnect call is valid only when invoked in the EConnecting, and -// EConnected states. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::DisconnectFromProtocolL() - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::DisconnectFromProtocolL"))); - return iPv2Way->DisconnectL(); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResetProtocolL -// This function is valid only in the ESetup and EInitializing state. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResetProtocolL() - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResetProtocolL"))); - return iPv2Way->ResetL(); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::InitProtocolL -// This function is valid only in the EIdle state. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::InitProtocolL(TVtInitInfo& aInitInfo) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::InitProtocolL"))); - CPV2WayInitInfo initInfo; - initInfo.iMultiplexingDelayMs = KVtProtoMultiplexingDelay; - - if (aInitInfo.iAMRWBOn) - { - initInfo.iIncomingAudioFormats. - Append((TDesC8 *)&KVtAudioMIMETypeAMRWBIF2); - - initInfo.iOutgoingAudioFormats. - Append((TDesC8 *)&KVtAudioMIMETypeAMRWBIF2); - } - - initInfo.iIncomingAudioFormats. - Append((TDesC8 *)&KVtAudioMIMETypeAMRIF2); - - initInfo.iOutgoingAudioFormats. - Append((TDesC8 *)&KVtAudioMIMETypeAMRIF2); - - initInfo.iIncomingVideoFormats. - Append( (TDesC8 *) &KVtVideoMIMETypeH264 ); - - initInfo.iOutgoingVideoFormats. - Append( (TDesC8 *) &KVtVideoMIMETypeH264 ); - - if (!aInitInfo.iDisableMpeg4) - { - initInfo.iIncomingVideoFormats. - Append((TDesC8 *)&KVtVideoMIMETypeM4V); - - initInfo.iOutgoingVideoFormats. - Append((TDesC8 *)&KVtVideoMIMETypeM4V); - } - - initInfo.iIncomingVideoFormats. - Append((TDesC8 *)&KVtVideoMIMETypeH263); - - initInfo.iOutgoingVideoFormats. - Append((TDesC8 *)&KVtVideoMIMETypeH263); - - return iPv2Way->InitL(initInfo); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddVideoSinkL -// Allows an application to provide a media sink for rendering an incoming media bitstream in a -// logical channel of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddVideoSinkL(const TUint aChannelId, MVTVideoSink& aDataSink) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSinkL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSinkL aChannelId %d"), aChannelId)); - iDisplaySink =CDisplaySinkProxy::NewL(&aDataSink); - return iPv2Way->AddDataSinkL(aChannelId, *iDisplaySink); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddVideoSourceL -// Allows an application to provide a media source to be associated with a logical channel -// of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddVideoSourceL(const TUint aChannelId, MVTVideoSource& aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSourceL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSourceL aChannelId %d"), aChannelId)); - iVideoSource = CVideoSourceProxy::NewL(&aDataSource); - return iPv2Way->AddDataSourceL(aChannelId, *iVideoSource); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddAudioSourceL -// Allows an application to provide a media source to be associated with a logical channel -// of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddAudioSourceL(const TUint aChannelId, MVTAudioSource &aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSourceL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSourceL aChannelId %d"), aChannelId)); - CAudioSourceProxy* audioSourceProxy = static_cast(&aDataSource); - return iPv2Way->AddDataSourceL(aChannelId, *(audioSourceProxy->iAudioSource)); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddAudioSinkL -// Allows an application to provide a media sink for rendering an incoming media bitstream in a -// logical channel of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddAudioSinkL(const TUint aChannelId, MVTAudioSink &aDataSink) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSinkL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSinkL aChannelId %d"), aChannelId)); - CAudioSinkProxy* audioSinkProxy = static_cast(&aDataSink); - return iPv2Way->AddDataSinkL(aChannelId, *(audioSinkProxy->iAudioSink)); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::PauseVideoL -// For an incoming track (MVTVideoSink) this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::PauseVideoL(MVTVideoSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::PauseVideoL"))); - if (&aTrack == iVideoSource->VideoSource()) - { - return iPv2Way->PauseL(*iVideoSource); - } - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::PauseVideoL -// For an incoming track (MVtVideoSink) this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::PauseVideoL(MVTVideoSink& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::PauseVideoL"))); - if (&aTrack == iDisplaySink->DisplaySink()) - { - return iPv2Way->PauseL(*iDisplaySink); - } - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::PauseAudioL -// For an incoming track (MVTAudioSource) this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::PauseAudioL(MVTAudioSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::PauseAudioL"))); - CAudioSourceProxy* audioSourceProxy = static_cast(&aTrack); - return iPv2Way->PauseL(*(audioSourceProxy->iAudioSource)); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResumeVideoL -// Resume a previously paused incoming or outgoing track. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResumeVideoL(MVTVideoSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResumeVideoL"))); - if (&aTrack == iVideoSource->VideoSource()) - { - return iPv2Way->ResumeL(*iVideoSource); - } - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResumeVideoL -// Resume a previously paused incoming or outgoing track. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResumeVideoL(MVTVideoSink& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResumeVideoL"))); - if (&aTrack == iDisplaySink->DisplaySink()) - { - return iPv2Way->ResumeL(*iDisplaySink); - } - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResumeAudioL -// Resume a previously paused incoming or outgoing track. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResumeAudioL(MVTAudioSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResumeAudioL"))); - CAudioSourceProxy* audioSourceProxy = static_cast(&aTrack); - return iPv2Way->ResumeL(*(audioSourceProxy->iAudioSource)); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::CancelAllCommandsL -// This API is to allow the user to cancel all pending requests. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::CancelAllCommandsL( ) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::CancelAllCommandsL"))); - return iPv2Way->CancelAllCommandsL(); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::GetProtocolInterfaceL -// This API is to allow for extensibility of the protocol interface. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::GetProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*& aProtocolCommand) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::GetProtocolInterfaceL<"))); - TInt commandId = 0; - if (aType == EVtH324Config) - { - CH324ConfigCommand* H324ConfigCommand = new (ELeave)CH324ConfigCommand(); - commandId = iPv2Way->QueryInterfaceL( - KPVUidH324ConfigInterface, - ( MPVInterface*& ) H324ConfigCommand->PVH324ConfigInterface(), - ( void* ) EVtGet324CtrlInterface ); - - aProtocolCommand = H324ConfigCommand; - } - else if (aType == EVtVideoEncoderConfig) - { - CVideoConfigCommand* videoConfigCommand = new (ELeave)CVideoConfigCommand(); - commandId = iPv2Way->QueryInterfaceL( - KPVUidVidEncConfigInterface, - ( MPVInterface*& ) videoConfigCommand->PVVideoEncoderInterface(), - ( void* ) EVtGetH263EncInterface ); - - aProtocolCommand = videoConfigCommand; - } - else - { - ; - } - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::GetProtocolInterfaceL aType %d, aProtocolCommand %d>"), aType, aProtocolCommand)); - return commandId; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::DeleteProtocolInterfaceL -// This APIis to be used to release an interface that was previously obtained using -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::DeleteProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand* aProtocolCommand) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::DeleteProtocolInterfaceL<"))); - TInt commandId = 0; - if (aType == EVtH324Config) - { - CH324ConfigCommand* H324ConfigCommand = static_cast(aProtocolCommand); - commandId = iPv2Way->ReleaseInterfaceL(H324ConfigCommand->PVH324ConfigInterface()); - delete H324ConfigCommand; - } - else if (aType == EVtVideoEncoderConfig) - { - CVideoConfigCommand* videoConfigCommand = static_cast(aProtocolCommand); - commandId = iPv2Way->ReleaseInterfaceL(videoConfigCommand->PVVideoEncoderInterface()); - delete videoConfigCommand; - } - else - { - ; - } - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::DeleteProtocolInterfaceL aType, aProtocolCommand %d>"), aType, aProtocolCommand)); - return commandId; - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/cvideoconfighandler.cpp --- a/vtprotocols/src/cvideoconfighandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include -#include "mvtprotocolhandler.h" -#include "cvideoconfighandler.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// TVideoConfigHandler::TVideoConfigHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TVideoConfigHandler::TVideoConfigHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::TVideoConfigHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::TVideoConfigHandler>"))); - } - -// ----------------------------------------------------------------------------- -// TVideoConfigHandler::MPvMp4H263EncExtensionCommandCompletedL -// Handle an event that has been generated. -// ----------------------------------------------------------------------------- -// -void TVideoConfigHandler::MPvMp4H263EncExtensionCommandCompletedL(const CPVCmdResponse& aResponse) - { - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::MPvMp4H263EncExtensionCommandCompletedL<"))); - TVtCommandType cmdType = (TVtCommandType)aResponse.GetCmdType(); - TInt cmdId = aResponse.GetCmdId(); - TInt cmdResponse = aResponse.GetCmdStatus(); - TVtCommandResponse commandRsp(cmdType, cmdId, cmdResponse); - iProtocolHandler->HandleVideoEncoderCommandCompletedL(commandRsp); - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::MPvMp4H263EncExtensionCommandCompletedL>"))); - } - -// ----------------------------------------------------------------------------- -// TVideoConfigHandler::HandleMPvMp4H263EncExtensionInformationalEventL -// Handle an information event. -// ----------------------------------------------------------------------------- -// -void TVideoConfigHandler::HandleMPvMp4H263EncExtensionInformationalEventL(const CPVAsyncInformationalEvent& aEvent) - { - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::HandleMPvMp4H263EncExtensionInformationalEventL<"))); - const TUint8* buffer = aEvent.GetLocalBuffer(); - TInt eventType = aEvent.GetEventType(); - TVtIndicationEvent vtEvent(eventType, buffer); - iProtocolHandler->HandleVideoEncoderInformationalEventL(vtEvent); - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::HandleMPvMp4H263EncExtensionInformationalEventL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::SetObserverL -// This API allows the user to specify separate observers for the extension interface. -// ----------------------------------------------------------------------------- -// -void CVideoConfigCommand::SetObserverL(MVtProtocolHandler* aHandler) - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetObserverL<"))); - iVideoConfigHandler = new (ELeave)TVideoConfigHandler(aHandler); - iH263Encoder->SetObserver(iVideoConfigHandler); - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetObserverL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::SetIntraFrameInterval -// Sets the I-Frame refresh rate of the encoded output. -// ----------------------------------------------------------------------------- -// -TInt CVideoConfigCommand::SetIntraFrameInterval(TUint32 aIFrameInterval) - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetIntraFrameInterval"))); - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetIntraFrameInterval aIFrameInterval %d"), aIFrameInterval)); - return iH263Encoder->SetIFrameInterval(aIFrameInterval); - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::RequestNextIntraFrame -// Requests the encoder to encode the next frame as an I-Frame. -// ----------------------------------------------------------------------------- -// -TInt CVideoConfigCommand::RequestNextIntraFrame() - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::RequestNextIntraFrame"))); - return iH263Encoder->RequestIFrame(); - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::SetVideoFrameRate -// Sets the frame rate of encoded output for the specified layer. -// ----------------------------------------------------------------------------- -// -TInt CVideoConfigCommand::SetVideoFrameRate(TUint32 aFrameRate) - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetVideoFrameRate"))); - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetVideoFrameRate aFrameRate %d"), aFrameRate)); - return iH263Encoder->SetOutputFrameRate(aFrameRate); - } - - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::~CVideoConfigCommand -// Destructor. -// ----------------------------------------------------------------------------- -// -CVideoConfigCommand::~CVideoConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::~CVideoConfigCommand"))); - delete iVideoConfigHandler; - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::~CVideoConfigCommand"))); - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/cvtuserinput.cpp --- a/vtprotocols/src/cvtuserinput.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include -#include "mvtprotocolhandler.h" -#include "cvtuserinput.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::ConstructL -// Constructor. -// ----------------------------------------------------------------------------- -// -void CVTUserInputDtmf::ConstructL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::ConstructL<"))); - iUII = CPVUserInputDtmfSymbian::NewL( aTone, 0 ); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::ConstructL>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::CVTUserInputDtmf -// Constructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputDtmf* CVTUserInputDtmf::NewL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::NewL<"))); - CVTUserInputDtmf* self = new (ELeave)CVTUserInputDtmf(); - CleanupStack::PushL(self); - self->ConstructL(aTone); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::NewL>"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::~CVTUserInputDtmf -// Destructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputDtmf::~CVTUserInputDtmf() - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::~CVTUserInputDtmf<"))); - delete iUII; - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::~CVTUserInputDtmf>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::GetType -// Virtual function to return the user input type -// ----------------------------------------------------------------------------- -// -TUserInputType CVTUserInputDtmf::GetType() - { - return EVtUiiDTFM; - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::ConstructL -// Constructor. -// ----------------------------------------------------------------------------- -// -void CVTUserInputAlphanumeric::ConstructL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::ConstructL<"))); - TBuf8<1> tone; - tone.Append( aTone ); - iUII = CPVUserInputAlphanumericSymbian::NewL( tone ); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::ConstructL>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputAlphanumeric::CVTUserInputAlphanumeric -// Constructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputAlphanumeric* CVTUserInputAlphanumeric::NewL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::NewL<"))); - CVTUserInputAlphanumeric* self = new (ELeave)CVTUserInputAlphanumeric(); - CleanupStack::PushL(self); - self->ConstructL(aTone); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::NewL>"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric -// Destructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric() - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric<"))); - delete iUII; - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputAlphanumeric::GetType -// Virtual function to return the user input type. -// ----------------------------------------------------------------------------- -// -TUserInputType CVTUserInputAlphanumeric::GetType() - { - return EVtUiiAlphaNumeric; - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocols/src/vtprotocolfactory.cpp --- a/vtprotocols/src/vtprotocolfactory.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +0,0 @@ -/* -* Copyright (c) 2004-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: -* -*/ - - -#include -#include -#include -#include -#include -#include "mvtprotocolhandler.h" -#include "cdatasourceproxy.h" -#include "cdatasinkproxy.h" -#include "csessionhandler.h" -#include "caudioconfighandler.h" -#include "cvtuserinput.h" -#include "ccommserver.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateSessionCommandL -// Create one instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtSessionCommand* VTProtocolFactory::CreateSessionCommandL(MVtProtocolHandler* aProtocolHandler, TBool aEnableProxy, TVt3G324MSupported& a3G324MSupported) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateSessionCommandL<"))); - a3G324MSupported = EVt3G324MSupported; - TSessionHandler * sessionHandler = new (ELeave)TSessionHandler(aProtocolHandler); - CleanupStack::PushL(sessionHandler); - MPV2WaySymbianInterface *pv2Way = CPV2WayFactory::CreateTerminalL(sessionHandler, sessionHandler, sessionHandler, aEnableProxy ); - CSessionCommand* sessionCommand = new (ELeave)CSessionCommand(sessionHandler, pv2Way); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateSessionCommandL sessionCommand %d>"), sessionCommand)); - return sessionCommand; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteSessionCommand -// This function allows the application to delete an instance of a terminal -// and reclaim all allocated resources. -// ----------------------------------------------------------------------------- -// -EXPORT_C void VTProtocolFactory::DeleteSessionCommand( MVtSessionCommand* aSessionCommand ) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteSessionCommand<"))); - CSessionCommand* sessionCommand = static_cast(aSessionCommand); - CPV2WayFactory::DeleteTerminal( sessionCommand->iPv2Way ); - delete aSessionCommand; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteSessionCommand>"))); - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateAudioSource -// Creates an instance of a DevSound audio data source. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVTAudioSource* VTProtocolFactory::CreateAudioSource() - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSource<"))); - TInt err( KErrNone ); - CAudioSourceProxy* audioSourceProxy = NULL; - TRAP (err, audioSourceProxy = new (ELeave) CAudioSourceProxy() ); - if (err != KErrNone) - { - return NULL; - } - audioSourceProxy->iAudioSource = CPVDevSoundAudioFactory::CreateDevSoundAudioDataSource(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSource audioSourceProxy %d>"), audioSourceProxy)); - return audioSourceProxy; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeletAudioSource -// Deletes an instance of a DevSound audio data source. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt VTProtocolFactory::DeletAudioSource(MVTAudioSource *aSource) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeletAudioSource<"))); - CAudioSourceProxy* audioSourceProxy = static_cast(aSource); - CPVDevSoundAudioFactory::DeleteDevSoundAudioDataSource(audioSourceProxy->iAudioSource); - delete aSource; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeletAudioSource>"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateAudioSink -// Creates an instance of a DevSound audio data sink. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVTAudioSink* VTProtocolFactory::CreateAudioSink() - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSink<"))); - TInt err( KErrNone ); - CAudioSinkProxy* audioSinkProxy = NULL; - TRAP(err, audioSinkProxy = new (ELeave) CAudioSinkProxy() ); - if (err != KErrNone) - { - return NULL; - } - audioSinkProxy->iAudioSink = CPVDevSoundAudioFactory::CreateDevSoundAudioDataSink(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSink audioSinkProxy %d>"), audioSinkProxy)); - return audioSinkProxy; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteAudioSink -// Deletes an instance of a DevSound audio data sink -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt VTProtocolFactory::DeleteAudioSink(MVTAudioSink *aSink) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteAudioSink<"))); - CAudioSinkProxy* audioSinkProxy = static_cast(aSink); - CPVDevSoundAudioFactory::DeleteDevSoundAudioDataSink(audioSinkProxy->iAudioSink); - delete aSink; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteAudioSink>"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateCommServerL -// Creates an instance of a comm server of a particular name, to be used to -// initialize the terminal. -// ----------------------------------------------------------------------------- -// -EXPORT_C MCommServer* VTProtocolFactory::CreateCommServerL(const TDesC & aName, TBool aEnableBitReversal) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateCommServerL<"))); - CCommServer* commServer = new (ELeave)CCommServer(); - CleanupStack::PushL(commServer); - commServer->iComm = CPVCommFactory::CreateCommServerL(aName, aEnableBitReversal); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateCommServerL commServer %d>"), commServer)); - return commServer; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteCommServerL -// This function allows the application to delete an instance of a comm server -// and reclaim all allocated resources. -// ----------------------------------------------------------------------------- -// -EXPORT_C void VTProtocolFactory::DeleteCommServerL(MCommServer* aCommServer) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteCommServerL<"))); - CCommServer* commServer = static_cast(aCommServer); - CPVCommFactory::DeleteCommServerL(commServer->iComm); - delete aCommServer; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteCommServerL>"))); - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateUserInputIndication -// Create instance . -// ----------------------------------------------------------------------------- -// -EXPORT_C MVTUserInput* VTProtocolFactory::CreateUserInputIndication(TUserInputType aUIIType, TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateUserInputIndication"))); - if (aUIIType == EVtUiiDTFM) - { - CVTUserInputDtmf* uii = CVTUserInputDtmf::NewL(aTone); - return uii; - } - else if (aUIIType == EVtUiiAlphaNumeric) - { - CVTUserInputAlphanumeric* uii = CVTUserInputAlphanumeric::NewL(aTone); - return uii; - } - else - { - return NULL; - } - - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteUserInputIndication -// Delete instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C void VTProtocolFactory::DeleteUserInputIndication(MVTUserInput* aUII) - { - delete aUII; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::GetAudioConfigCommandL -// Get one instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtAudioConfigCommand* VTProtocolFactory::GetAudioConfigCommandL(MVTAudioSink* aAudioSink) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::GetAudioConfigCommandL<"))); - CAudioSinkProxy* audioSinkProxy = static_cast(aAudioSink); - MPVAudioOutputControl* audioCtrl = CPVDevSoundAudioFactory::GetDevSoundAudioOutputControl( - audioSinkProxy->iAudioSink, ETrue ); - CAudioConfigCommand* audioConfigCommand = new (ELeave)CAudioConfigCommand(audioCtrl); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::GetAudioConfigCommandL audioConfigCommand %d>"), audioConfigCommand)); - return audioConfigCommand; - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/bwins/videotelprotou.def --- a/vtprotocolsstub/bwins/videotelprotou.def Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -EXPORTS - ?DeleteAudioSink@VTProtocolFactory@@SAHPAVMVTAudioSink@@@Z @ 1 NONAME ; int VTProtocolFactory::DeleteAudioSink(class MVTAudioSink *) - ?CreateAudioSink@VTProtocolFactory@@SAPAVMVTAudioSink@@XZ @ 2 NONAME ; class MVTAudioSink * VTProtocolFactory::CreateAudioSink(void) - ?CreateCommServerL@VTProtocolFactory@@SAPAVMCommServer@@ABVTDesC16@@H@Z @ 3 NONAME ; class MCommServer * VTProtocolFactory::CreateCommServerL(class TDesC16 const &, int) - ?CreateUserInputIndication@VTProtocolFactory@@SAPAVMVTUserInput@@W4TUserInputType@@E@Z @ 4 NONAME ; class MVTUserInput * VTProtocolFactory::CreateUserInputIndication(enum TUserInputType, unsigned char) - ?CreateSessionCommandL@VTProtocolFactory@@SAPAVMVtSessionCommand@@PAVMVtProtocolHandler@@HAAW4TVt3G324MSupported@@@Z @ 5 NONAME ; class MVtSessionCommand * VTProtocolFactory::CreateSessionCommandL(class MVtProtocolHandler *, int, enum TVt3G324MSupported &) - ?DeletAudioSource@VTProtocolFactory@@SAHPAVMVTAudioSource@@@Z @ 6 NONAME ; int VTProtocolFactory::DeletAudioSource(class MVTAudioSource *) - ?GetAudioConfigCommandL@VTProtocolFactory@@SAPAVMVtAudioConfigCommand@@PAVMVTAudioSink@@@Z @ 7 NONAME ; class MVtAudioConfigCommand * VTProtocolFactory::GetAudioConfigCommandL(class MVTAudioSink *) - ?CreateAudioSource@VTProtocolFactory@@SAPAVMVTAudioSource@@XZ @ 8 NONAME ; class MVTAudioSource * VTProtocolFactory::CreateAudioSource(void) - ?DeleteCommServerL@VTProtocolFactory@@SAXPAVMCommServer@@@Z @ 9 NONAME ; void VTProtocolFactory::DeleteCommServerL(class MCommServer *) - ?DeleteUserInputIndication@VTProtocolFactory@@SAXPAVMVTUserInput@@@Z @ 10 NONAME ; void VTProtocolFactory::DeleteUserInputIndication(class MVTUserInput *) - ?DeleteSessionCommand@VTProtocolFactory@@SAXPAVMVtSessionCommand@@@Z @ 11 NONAME ; void VTProtocolFactory::DeleteSessionCommand(class MVtSessionCommand *) - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/eabi/videotelprotou.def --- a/vtprotocolsstub/eabi/videotelprotou.def Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -EXPORTS - _ZN17VTProtocolFactory15CreateAudioSinkEv @ 1 NONAME - _ZN17VTProtocolFactory15DeleteAudioSinkEP12MVTAudioSink @ 2 NONAME - _ZN17VTProtocolFactory16DeletAudioSourceEP14MVTAudioSource @ 3 NONAME - _ZN17VTProtocolFactory17CreateAudioSourceEv @ 4 NONAME - _ZN17VTProtocolFactory17CreateCommServerLERK7TDesC16i @ 5 NONAME - _ZN17VTProtocolFactory17DeleteCommServerLEP11MCommServer @ 6 NONAME - _ZN17VTProtocolFactory20DeleteSessionCommandEP17MVtSessionCommand @ 7 NONAME - _ZN17VTProtocolFactory21CreateSessionCommandLEP18MVtProtocolHandleriR18TVt3G324MSupported @ 8 NONAME - _ZN17VTProtocolFactory22GetAudioConfigCommandLEP12MVTAudioSink @ 9 NONAME - _ZN17VTProtocolFactory25CreateUserInputIndicationE14TUserInputTypeh @ 10 NONAME - _ZN17VTProtocolFactory25DeleteUserInputIndicationEP12MVTUserInput @ 11 NONAME - diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/group/bld.inf --- a/vtprotocolsstub/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Telephony Protocol -* -*/ -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_TESTEXPORTS - -PRJ_EXPORTS - - -../inc/MVtProtocolHandler.h |../../inc/MVtProtocolHandler.h - - -PRJ_MMPFILES - -../Group/videotelproto.mmp - - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/group/videotelproto.mmp --- a/vtprotocolsstub/group/videotelproto.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2008 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: Video telephony protocol -* -*/ - -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -// default vendor id -VENDORID VID_DEFAULT - -TARGET videotelproto.dll -TARGETTYPE dll -UID 0x1000008d 0x20021182 - - -SOURCEPATH ../src - -SOURCE cdatasinkproxy.cpp -SOURCE cdatasourceproxy.cpp -SOURCE caudioconfighandler.cpp -SOURCE ch324confighandler.cpp -SOURCE csessionhandler.cpp -SOURCE cvideoconfighandler.cpp -SOURCE cvtuserinput.cpp -SOURCE vtprotocolfactory.cpp - -DOCUMENT ../../group/bld.inf - -USERINCLUDE ../inc/ - - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../inc -SYSTEMINCLUDE /epoc32/include/mmf/common -SYSTEMINCLUDE /epoc32/include/mmf/server - -LIBRARY euser.lib -LIBRARY ws32.lib - -LIBRARY commonengine.lib -LIBRARY MediaClientAudio.lib - - - -DEBUGLIBRARY vtlogger.lib - -LIBRARY MMFDevSound.lib - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/caudioconfighandler.h --- a/vtprotocolsstub/inc/caudioconfighandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2008 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: Audio configuration interface -* -*/ - -#ifndef CAUDIOCONFIGHANDLER_H -#define CAUDIOCONFIGHANDLER_H -NONSHARABLE_CLASS( TAudioConfigHandler ) - { - public: - /** - * Constructor. - */ - TAudioConfigHandler( MVtProtocolHandler* aProtocolHandler); - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CAudioConfigCommand ) : public CBase, - public MVtAudioConfigCommand - { - public: - - /** - * Constructor. - */ - CAudioConfigCommand(); - - /** - * Destructor. - */ - ~CAudioConfigCommand(); - - /** - * Method to set the playback volume to the specified value. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aNewVolume - * An input parameter to hold the value for the requested playback volume. - * - * @returns TInt - * Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt SetAudioVolumeL(TInt aVolume); - - /** - * Method to get the maximum valid value for the playback volume. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aMaxVolume - * An output parameter to hold the value for the maximum valid playback volume. - * Note that the parameter should not be used until the callback indicates that the - * method has completed. - * - * @returns TInt - * Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt GetMaxAudioVolumeL(TInt& aMaxVolume); - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler); - private: - TAudioConfigHandler* iAudioConfigHandler; - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/ccommserver.h --- a/vtprotocolsstub/inc/ccommserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2008 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: Comm server interface -* -*/ - -#ifndef CCOMMSERVER_H -#define CCOMMSERVER_H -NONSHARABLE_CLASS( CCommServer ) : public CBase, - public MCommServer - { - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/cdatasinkproxy.h --- a/vtprotocolsstub/inc/cdatasinkproxy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2008 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: Data Sink Proxy interface -* -*/ - -#ifndef CDATASINKPROXY_H -#define CDATASINKPROXY_H - -NONSHARABLE_CLASS( CDisplaySinkProxy ) : public CBase - { - public: - /** - * Constructor. - */ - CDisplaySinkProxy(MVTVideoSink* aDisplaySink); - - /** - * ConstructL - */ - void ConstructL(); - - /** - * NewL - */ - static CDisplaySinkProxy* NewL(MVTVideoSink* aDisplaySink); - /** - * Get pointer object of data sink. - * @return member variant:iDisplaySink - */ - MVTVideoSink* DisplaySink() { return iDisplaySink; } - private: - MVTVideoSink* iDisplaySink; - }; - -NONSHARABLE_CLASS( CAudioSinkProxy ) : public CBase, - public MVTAudioSink - { - }; - -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/cdatasourceproxy.h --- a/vtprotocolsstub/inc/cdatasourceproxy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2008 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: Data Source proxy interface -* -*/ - -#ifndef CDATASOURCEPROXY_H -#define CDATASOURCEPROXY_H - -NONSHARABLE_CLASS( CVideoSourceProxy ) : public CBase - { - public: //new - /** - * Constructor. - */ - CVideoSourceProxy(MVTVideoSource* aVideoSource); - /** - * ConstructL. - */ - void ConstructL( ); - - /** - * NewL. - */ - static CVideoSourceProxy* NewL(MVTVideoSource* aVideoSource); - - /** - * Get member variant. - * @return memeber variant:iVideoSource - */ - MVTVideoSource* VideoSource() { return iVideoSource; } - private: - MVTVideoSource* iVideoSource; - }; - -NONSHARABLE_CLASS( CAudioSourceProxy ) : public CBase, - public MVTAudioSource - { - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/ch324confighandler.h --- a/vtprotocolsstub/inc/ch324confighandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2008 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: H324M configuration interface -* -*/ - -#ifndef CH324ConfigHandler_H -#define CH324ConfigHandler_H -NONSHARABLE_CLASS( TH324ConfigHandler ) - { - public: - - /** - * Constructor. - */ - TH324ConfigHandler(MVtProtocolHandler* aProtocolHandler); - - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CH324ConfigCommand ): public CBase, - public MVtH324ConfigCommand - { - public: - /** - * Destructor. - */ - ~CH324ConfigCommand(); - - /** - * Sets the vendor identification data. This does not cause the stack to issue a vendor identifiation request. - * Set to NULL to disable sending vendor id. If set to a valid parameter before Connect, it will cause the stack - * to automatically send it along with the TCS message. - * @param cc - * T35 Country code - * @param ext - * T35 Extension - * @param mc - * T35 Manufacturer code - * @param aProduct - * Product number - * @param aVersion - * Version number - **/ - virtual TInt SetVendorId(TUint8 cc, TUint8 ext, TUint32 mc, const TDesC8* aProduct, const TDesC8* aVersion); - - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is a request to the remote encoder to adjust its encoding in accordance with the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffCommand(TUint aLogicalChannel, TUint8 aTradeoff); - - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is an indication to the remote decoder that the local encoder has adjusted its encoding parameters - * according to the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffIndication(TUint aLogicalChannel, TUint8 aTradeoff); - - /** - * This API allows the user to specify the supported resolutions for video for transmit and receive. - * - **/ - virtual TInt SetSupportedResolutions( ); - /** - * This API allows the user to set options for fast call setup procedures - **/ - virtual TInt SetFastCsupOptions( ); - - /** - * Causes the protocol to send the specified user input to the remote terminal using - * control channel. The user input can be either DTMF ot Alphanumeric - * @param user_input A pointer to MVTUserInput - * @returns A unique command id for asynchronous completion - **/ - virtual TInt SendUserInputMessageL(MVTUserInput& user_input); - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler the observer for command status and unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler); - - private: - TH324ConfigHandler* iH324ConfigHandler; - }; -#endif -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/csessionhandler.h --- a/vtprotocolsstub/inc/csessionhandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +0,0 @@ -/* -* Copyright (c) 2008 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: Session command interface -* -*/ - -#ifndef CSESSIOHANDLER_H -#define CSESSIOHANDLER_H -NONSHARABLE_CLASS( TSessionHandler ) - { - public: - /** - * Constructor. - */ - TSessionHandler(MVtProtocolHandler* aProtocolHandler); - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CSessionCommand ): public CBase, - public MVtSessionCommand - { - public: - /** - * Contructor. - */ - CSessionCommand(TSessionHandler* aSessionHandler); - - /** - * Destructor. - */ - ~CSessionCommand(); - - /** - * This function is valid only in the EIdle state. It is a no-op when - * invoked in any other state. It causes the protocol to transition - * to the ESetup state. The terminal remains in the EInitializing state during - * the transition. - * - * - * @param aInitInfo - * A reference to a TVtInitInfo structure which set Mona on and off - * - * @leave This method can leave with one of the following error codes - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt InitProtocolL(TVtInitInfo& aInitInfo); - - /** - * For an incoming track (MVTVideoSink) this function pauses sending - * media to the sink (output device) and stops the sink. It then does the protocol - * negotiations with the remote terminal to pause the logical channel for - * the specified track. - * - * For outgoing, it pauses the sending of media from the source and calls Stop() on the - * source. It also performs any necessary protocol negotiations with the remote terminal. - * EVtCommandPause will be sent to the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt PauseVideoL(MVTVideoSource& aDataSource); - virtual TInt PauseVideoL(MVTVideoSink& aDataSink); - virtual TInt PauseAudioL(MVTAudioSource& aAudioSource); - - /** - * Resume a previously paused incoming or outgoing track. For incoming, - * this function starts resumes playing out the media to the appropriate - * sink based on the current settings. For outgoing it resumes encoding - * and sending media from the source. - * - * EVtCommandResume will be invoked will be invoked on the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResumeVideoL(MVTVideoSource& aDataSource); - virtual TInt ResumeVideoL(MVTVideoSink& aDataSink); - virtual TInt ResumeAudioL(MVTAudioSource& aAudioSource); - - /** - * This function is valid only in the ESetup and EInitializing state. It is a - * no-op when invoked in the EIdle state - * - * It causes the protocol to transition back to the EIdle state. The - * terminal remains in the EResetting state during the transition. - * - * While resetting, the protocol de-allocates all resources resources that - * had been previously allocated. When it completes, ResetComplete is called - * and the protocol reverts to the EIdle state. - * - * @leave This method can leave with one of the following error codes - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResetProtocolL(); - - /** - * This function can be invoked only in the ESetup state. The terminal starts connecting with the remote - * terminal based on the specified options and capabilities. - * The EVtCommandConnect command completion event will be passed to the observer - * when connect completes. - * Details about the negotiated session may be obtained by calling the GetSessionParamsL API. - * GetSessionParamsL may be called after call setup is started to get the list of available channels - * and their capabilities. - * Incoming tracks may be opened before ConnectL completes and will be indicated via the - * EVtIndicationIncommingTrack event. - * - * @param aComm - * An optional pointer to a comm server to provide comm source and sink end-points. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ConnectToProtocolL(MCommServer* aComm); - - /** - * Allows an application to provide a media source to be associated with a logical channel - * of communication with the peer. Sources should be added after the EVtIndicationOutgoingTrack - * indication is received for a newly established logical channel. The media type and - * channel id associated with the logical channel are specified as part of the indication. - * This function accepts a MVtVideoSource which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * Data sources could be of the following types: - * a)raw media sources like camera, microphone etc. - * b)sources of compressed data like file, gateway component etc. - * - * @param aChannelId - * Indicates the channel id to be associated with this source. - * @param aDataSource - * reference to the data source - * @leave This method can leave with one of the following error codes - * KErrNotSupported if the format of the sources/sinks is incomtible with what the SDK can handle - * KPVErrInvalidState if invoked in the incorrect state - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @return A unique command id for asynchronous completion - */ - virtual TInt AddVideoSourceL(const TUint aChannelId, MVTVideoSource &aDataSource); - virtual TInt AddAudioSourceL(const TUint aChannelId, MVTAudioSource &aDataSource); - - /** - * Allows an application to provide a media sink for rendering an incoming media bitstream in a - * logical channel of communication with the peer. - * AddDataSinkL can be called only for established incoming logical channels identified by a unique - * channel id. - * Regular incoming channels are established by the peer and are - * indicated using the EVtIndicationIncomingTrack indication. - * This function takes in PV extension to MVtVideoSink or MVtAudioSink which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * EVtCommandAddDataSink event is sent to the observer on completion of this call. - * - * @param aChannelId - * Indicates the channel id to be associated with this sink. - * @param aDataSink The data sink to be added - * - * @return A unique command id for asynchronous completion - **/ - virtual TInt AddVideoSinkL(const TUint aChannelId, MVTVideoSink &aDataSink); - virtual TInt AddAudioSinkL(const TUint aChannelId, MVTAudioSink &aDataSink); - - /** - * This API is to allow the user to cancel all pending requests. The current request being - * processed, if any, will also be aborted. - * EVtCommandCancelAllCommands will be passed to the command observer on completion. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt CancelAllCommandsL( ); - - /** - * The Disconnect call is valid only when invoked in the EConnecting, and - * EConnected states. It causes the terminal to transition to the - * EDisconnecting state. All the media tracks both incoming and outgoing - * will be closed on invoking Disconnect. On completion, the terminal - * goes to the ESetup state. - * - * It is a no-op when called in any other state. - * - * This is an asynchronous request. The EvtCommandDisconnect event will be - * sent to the observer when the request processing is complete. This - * is the only event the Phone application should expect after calling - * Disconnect. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt DisconnectFromProtocolL(); - - /** - * This API is to allow for extensibility of the protocol interface. - * It allows a caller to ask for an instance of a particular interface object to be returned. - * The mechanism is analogous to the COM IUnknown method. The interfaces are identified with - * an interface ID that is a UUID as in DCE and a pointer to the interface object is - * returned if it is supported. Otherwise the returned pointer is NULL. - * @param aType - * @param aProtocolCommand - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt GetProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*& aProtocolCommand); - - /** - * This APIis to be used to release an interface that was previously obtained using - * QueryInterfaceL. - * @param aType - * @param - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt DeleteProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand* aProtocolCommand); - private: - CVideoSourceProxy* iVideoSource; - CDisplaySinkProxy* iDisplaySink; - TSessionHandler* iSessionHandler; - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/cvideoconfighandler.h --- a/vtprotocolsstub/inc/cvideoconfighandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2008 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: Video configuration interface -* -*/ - -#ifndef CVideoConfigHandler_H -#define CVideoConfigHandler_H -NONSHARABLE_CLASS( TVideoConfigHandler ) - { - public: - - /** - * Constructor. - */ - TVideoConfigHandler(MVtProtocolHandler* aProtocolHandler); - - private: - MVtProtocolHandler* iProtocolHandler; - }; - -NONSHARABLE_CLASS( CVideoConfigCommand ) : public CBase, - public MVtVideoConfigCommand - { - public: - /** - * Destructor. - */ - ~CVideoConfigCommand(); - - /** - * Sets the I-Frame refresh rate of the encoded output. - * - * @param aIFrameInterval I-Frame rate in seconds per I-Frame - * @return True if successful, else false - */ - virtual TInt SetIntraFrameInterval(TUint32 aIFrameInterval); - - /** - * Requests the encoder to encode the next frame as an I-Frame. This menthod is valid - * only when the node is in EPVMFNodeStarted state. If successful, the next encoded - * frame will be an I-Frame. - * - * @return True for success, else false - */ - virtual TInt RequestNextIntraFrame(); - - /** - * Sets the frame rate of encoded output for the specified layer. - * @param aFrameRate Frame rate for the specified layer in frames per second. - * @return True if successful, else false. - */ - virtual TInt SetVideoFrameRate(TUint32 aFrameRate); - - /** - * This API allows the user to specify separate observers for the extension interface. - * - * @param aHandler the observer for unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler); - - private: - TVideoConfigHandler* iVideoConfigHandler; - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/cvtuserinput.h --- a/vtprotocolsstub/inc/cvtuserinput.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2008 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: User input interface -* -*/ - -#ifndef CVTUSERINPUT_H -#define CVTUSERINPUT_H -NONSHARABLE_CLASS( CVTUserInputDtmf ) : public CBase, - public MVTUserInput - { - public: - /** - * ConstructL. - */ - void ConstructL(TUint8 aTone); - /** - * NewL. - */ - static CVTUserInputDtmf* NewL(TUint8 aTone); - - /** - * Destructor. - */ - ~CVTUserInputDtmf(); - - /** - * Virtual function to return the user input type - **/ - virtual TUserInputType GetType(); - }; - -NONSHARABLE_CLASS( CVTUserInputAlphanumeric ) : public CBase, - public MVTUserInput - { - public: - /** - * ConstructL. - */ - void ConstructL(TUint8 aTone); - /** - * NewL. - */ - static CVTUserInputAlphanumeric* NewL(TUint8 aTone); - - /** - * Destructor. - */ - ~CVTUserInputAlphanumeric(); - - /** - * Virtual function to return the user input type - **/ - virtual TUserInputType GetType(); - }; -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/inc/mvtprotocolhandler.h --- a/vtprotocolsstub/inc/mvtprotocolhandler.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1124 +0,0 @@ -/* -* Copyright (c) 2008 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: Video Telephony Protocol interface -* -*/ - -#ifndef MVTENGMEDIAHANDLER_H -#define MVTENGMEDIAHANDLER_H - -// INCLUDES -#include -#include -#include -#include - -typedef TInt TVtCommandId; -typedef TInt TVtCommandStatus; -typedef TDesC8 TVtMIMEType; - -const TUid KVTUidYUVFrameBuffer = {0xFFFFFF0d}; -const TInt KVtUidDataSrcPrime = 0xFFFFFF08; -const TInt KVtUidDataSrcPlay = 0xFFFFFF09; -const TInt KVtUidDataSrcPause = 0xFFFFFF0A; -const TInt KVtUidDataSrcStop = 0xFFFFFF0B; - -_LIT8(KVtVideoMIMETypeYUV420, "/video/x-pv/raw/yuv420"); - -enum TVt3G324MSupported - { - EVt3G324MMissing, - EVt3G324MSupported - }; - -enum TVtConfigType - { - EVtH324Config, - EVtVideoEncoderConfig - }; - -enum TVtCommandType { - EVtCommandInit, - EVtCommandGetSDKInfo, - EVtCommandGetProtocolState = 3, - EVtCommandReset, - EVtCommandAddDataSource = 6, - EVtCommandRemoveDataSource, - EVtCommandAddDataSink, - EVtCommandRemoveDataSink, - EVtCommandConnect, - EVtCommandDisconnect, - EVtCommandPause, - EVtCommandResume, - EVtCommandGetProtocolInterface =20, - EVtCommandDeleteProtocolInterface, - EVtCommandCancelAllCommands - }; - -enum TVtIndicationType - { - EVtIndicationVideoSpatialTamporalTradeOffCommand, - EVtIndicationVideoSpatialTamporalTradeOffIndication, - EVtIndicationUserInputCapability = 6, - EVtIndicationIncomingTrack = 41, - EVtIndicationOutgoingTrack, - EVtIndicationDisconnect, - EVtIndicationClosingTrack, - EVtIndicationCloseTrack, - EVtIndicationPauseTrack, - EVtIndicationResumeTrack - }; - -enum TVtMediaType - { - EVtAudio = 1, - EVtVideo, - EVtControl, - EVtData, - EVtUserInput, - EVtMediaNone - }; - -enum TVtAudioOutputControlCommand - { - EVtAudioOutputControlGetMaxVolume, - EVtAudioOutputControlGetVolume, - EVtAudioOutputControlSetVolume, - EVtAudioOutputControlGetBalance, - EVtAudioOutputControlSetBalance - }; - -const TUint8 EVtIncoming = 1; - -enum TUserInputType - { - EVtUiiDTFM, - EVtUiiAlphaNumeric - }; - -struct TVtInitInfo - { - TBool iAMRWBOn; - TBool iDisableMpeg4; - }; - -struct TVtIndicationEvent - { - public: - /** - * Constructor. - */ - TVtIndicationEvent(TInt aEventType, const TUint8 *aLocalBuffer) : iEventType(aEventType), iLocalBuffer(aLocalBuffer) - {} - public: - TInt iEventType; - const TUint8 *iLocalBuffer; - }; - -struct TVtCommandResponse - { - public: - /** - * Constructor. - */ - TVtCommandResponse(TVtCommandType aCmdType, TInt aCmdId, TInt iCmdStatus) : iCmdType(aCmdType), iCmdId(aCmdId), iCmdStatus(iCmdStatus) - {} - public: - TVtCommandType iCmdType; - TInt iCmdId; - TInt iCmdStatus; - }; - -struct TVtErrorEvent - { - public: - /** - * Constructor. - */ - TVtErrorEvent(TInt aEventType) : iEventType(aEventType) {} - public: - TInt iEventType; - }; - -struct TVtMMFDataBuffer - { - public: - /** - * Constructor. - */ - TVtMMFDataBuffer(CMMFBuffer* aMmfBuffer,TSize aFrameSize, TPtr8& aPtr) : iMmfBuffer(aMmfBuffer), iFrameSize(aFrameSize), iPtr(aPtr) {} - - /** - * Get the YUV frame size. - * @return The frame size, in pixels - */ - TSize GetFrameSize() {return iFrameSize;} - - /** - * Get MMF buffer. - * @return the MMF buffer - */ - CMMFBuffer* GetMMFBuffer() {return iMmfBuffer;} - - /** - * Get MMF buffer. - * @return the MMF buffer - */ - const CMMFBuffer* GetMMFBuffer() const {return iMmfBuffer;} - - /** - * @return Returns a reference to the data buffer - **/ - TPtr8& Data() {return iPtr;} - - /** - * @return Returns the frame size of the contained buffer. - **/ - const TSize GetFrameSize() const {return iFrameSize;} - - /** - * @return Returns a reference to the data buffer - **/ - const TPtr8& Data() const {return iPtr;} - private: - CMMFBuffer* iMmfBuffer; - TSize iFrameSize; - TPtr8& iPtr; - }; - -class MVTVideoInput - { - public: - - /** - * Set the video frame format. This must be from the list of supported formats. - * @param "aFormat" The mime string describing the video frame format. - * @exception Can leave with one of the system wide error codes - */ - virtual void SetFormatL(const TDesC8& aFormat) {} - - /** - * Set the video frame rate. This must be within the range of supported frame rates - * for the current frame size. - * @param "aFrameRate" The video frame rate to set. - * @exception Can leave with one of the system wide error codes - */ - virtual void SetFrameRateL(TReal32 aFrameRate) {} - - /** - * Set the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - */ - virtual void SetVideoFrameSizeL(const TSize& aSize) {} - - /** - * Get the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - */ - virtual void GetVideoFrameSizeL(TSize& aSize) const {} - - /** - * This API returns multimedias type supported by the data source/sink - - * Audio, Video, Data etc. Each supported type is indicated by a MIME type structure. - * @return - **/ - virtual const RArray& GetMultimediaTypesL() const {} - }; - -class MVTVideoOutput - { - public: - - /** - * Sets the data format using MIME string. - * @param aFormat The format as a MIME string. - **/ - virtual void SetFormatL(const TDesC8& aFormat) {} - - /** - * Set the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - **/ - virtual void SetVideoFrameSizeL(const TSize& aSize) {} - - /** - * Get the video frame size - * @param "aSize" The video frame size, in pixels - * @exception Can leave with one of the system wide error codes - **/ - virtual void GetVideoFrameSizeL(TSize& aSize) const {} - - /** - * This API returns multimedias type supported by the data source/sink - - * Audio, Video, Data etc. Each supported type is indicated by a MIME type structure. - * @return - **/ - virtual const RArray& GetMultimediaTypesL() const {} - }; - -//This class is empty -class MVTAudioSource - { - }; - -//This class is empty -class MVTAudioSink - { - }; - -class MVTVideoSource; -class MVTVideoSink : public MVTVideoOutput - { - public: - /** - * Constructor. - */ - MVTVideoSink(TUid aType): iDataSinkType(aType) {} - - /** - * Method called by a data source to request the data sink to empty aBuffer of data. - * - * This is a pure virtual function that each derived class must implement. - * This method is used when a data sink is passively waiting for requests from a supplier ie a data source - * to empty a buffer. The data sink must call the BufferEmptiedL member on aSupplier when it has emptied - * the buffer of it's data - the data sink can either make this callback synchronously or asynchronously. - * - * @param "aBuffer" - * The full buffer that needs emptying of it's data - * - * @param "aSupplier" - * The data source that supplied the data. The data sink needs this to make the BufferEmptiedL - * callback on aSupplier to indicate to the data source that the data sink has finished with the buffer. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data - */ - virtual void EmptyBufferL( - TVtMMFDataBuffer aDataBuffer, - MVTVideoSource* aSupplier, - TMediaId aMediaId ) {} - - /** - * Method called by a data source to pass back an filled buffer to the sink - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data sink actively requests a supplier ie a data source - * to fill a buffer by calling the data sources FillBufferL. - * When the data sink gets this callback it knows that the buffer has been filled and is ready to be emptied - * - * @param "aBuffer" - * The buffer that has been filled by a data source and is now available for processing - */ - virtual void BufferFilledL( CMMFBuffer* aBuffer ) = 0; - - /** - * Method to indicate whether the data sink can create a buffer. - * - * This is a pure virtual function that each derived class must implement. - * - * @return ETrue if the data sink can create a buffer else EFalse - */ - virtual TBool CanCreateSinkBuffer() {return EFalse;} - - /** - * Returns a buffer created by the data sink - * - * This is a pure virtual function that each derived class must implement. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data. - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the sink - * and should be used in preference to the source buffer provided the source buffer - * is also not a reference buffer. - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSinkBufferL( - TMediaId aMediaId, - TBool &aReference ) {return NULL;} - - /** - * Method to 'logon' the data sink to the same thread that sink will be consuming data in. - * - * This method may be required as the thread that the data sink was created in is not always - * the same thread that the data transfer will take place in. Therefore any thread specific - * initialisation needs to be performed in the SinkThreadLogon rather than in the creation - * of the data sink. - * - * This is a virtual function that a derrived data sink can implement if any thread specific - * initialisation is required and/or the data sink can create any asynchronous events. - * - * - * @param "aEventHandler" - * This is an MAsyncEventHandler to handle asynchronous events that occur during the - * transfer of multimedia data. The event handler must be in the same thread as the data transfer - * thread - hence the reason it is passed in the SinkThreadLogon as opposed to say the constructor. - * - * - * @return KErrNone if successful, otherwise a system wide error code. - */ - virtual TInt SinkThreadLogon( MAsyncEventHandler& aEventHandler ) {return KErrNone;} - - /** - * Method to 'logoff' the data sink from the same thread that sink consumes data in. - * - * This method may be required as the thread that the data sink is deleted in may not be - * the same thread that the data transfer took place in. Therefore any thread specific - * releasing of resources needs to be performed in the SinkThreadLogoff rather than in the destructor - * - * This is a virtual function that a derrived data sink can implement if any thread specific - * releasing of resources is required. - */ - virtual void SinkThreadLogoff() {} - - /** - * Method to 'prime' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific 'priming' is required - */ - virtual TInt SinkPrimeL() {return 0;} - - /** - * Method to 'play' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required prior to 'playing'ie the start of data transfer - */ - virtual TInt SinkPlayL() {return 0;} - - /** - * Method to 'pause' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required to 'pause' - */ - virtual TInt SinkPauseL() {return 0;} - - /** - * Method to 'stop' the data sink - * - * This is a virtual function that a derrived data sink can implement if - * any data sink specific action is required to 'stop' - */ - virtual TInt SinkStopL() {return 0;} - private: - TUid iDataSinkType; - }; - -class MVTVideoSource : public MVTVideoInput - { - public: - - /** - * Constructor. - */ - MVTVideoSource(TUid aType): iDataSourceType(aType) {} - - /** - * Method called by a data sink to request the data source to fill aBuffer with data. - * - * This is a pure virtual function that each derived class must implement. - * This method is used when a data source is passively waiting for requests from a consumer ie a data sink - * to fill a buffer. The data source must call the BufferFilledL member on aConsumer when it has filled - * the buffer with data - the data source can either make this callback synchronously or asynchronously. - * - * @param "aBuffer" - * The buffer that needs filling with data - * - * @param "aConsumer" - * The data sink that consumes the data. The data source needs this to make the BufferFilledL - * callback on aConsumer when the data source has completed filling the aBuffer. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - */ - virtual void FillBufferL( - CMMFBuffer* aBuffer, - MVTVideoSink* aConsumer, - TMediaId aMediaId ) {} - - /** - * Method called by a data sink to pass back an emptied buffer to the source - * - * This is a pure virtual function that each derived class must implement. - * This method is used as the callback when the data source actively requests a consumer ie a data sink - * to empty a buffer by calling the data sinks EmptyBufferL. - * When the data source gets this callback it knows that the buffer has been emptied and can be reused - * - * @param "aBuffer" - * The buffer that has been emptied by a data sink and is now available for reuse - */ - virtual void BufferEmptiedL( CMMFBuffer* aBuffer ) = 0; - - /** - * Method to indicate whether the data source can create a buffer. - * - * This is a pure virtual function that each derived class must implement. - * - * @return ETrue if the data source can create a buffer else EFalse - */ - virtual TBool CanCreateSourceBuffer() {return EFalse;} - - /** - * Returns a buffer created by the data source - * - * This is a pure virtual function that each derived class must implement. - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the source - * and should be used in preference to the sink buffer provided the sink buffer - * is also not a reference buffer - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSourceBufferL( - TMediaId aMediaId, - TBool &aReference ) {return NULL;} - - /** - * Returns a buffer created by the data source - * - * This is a virtual function that a derived class can implement. - * This can be used in preference to the above CreateSourceBufferL method in cases where - * the source buffer creation has a dependancy on the sink buffer - * - * @param "aMediaId" - * This identifies the type of media eg audio or video and the stream id. - * This parameter is required in cases where the source can supply data - * of more than one media type and/or multiple strams of data eg a multimedia file - * - * @param "aSinkBuffer" - * The sink buffer the nature of which may influence the creation of the source buffer - * - * @param "aReference" - * This must be written to by the method to indicate whether the created buffer is - * a 'reference' buffer. A 'reference' buffer is a buffer that is owned by the source - * and should be used in preference to the sink buffer provided the sink buffer is not a reference buffer - * . - * @return The created buffer - */ - virtual CMMFBuffer* CreateSourceBufferL( - TMediaId aMediaId, - CMMFBuffer& aSinkBuffer, - TBool &aReference ) {return NULL;} - - /** - * Method to 'logon' the data source to the same thread that source will be supplying data in. - * - * This method may be required as the thread that the data source was created in is not always - * the same thread that the data transfer will take place in. Therefore any thread specific - * initialisation needs to be performed in the SourceThreadLogon rather than in the creation - * of the data source. - * - * This is a virtual function that a derrived data source can implement if any thread specific - * initialisation is required and/or the data source can create any asynchronous events. - * - * - * @param "aEventHandler" - * This is an MAsyncEventHandler to handle asynchronous events that occur during the - * transfer of multimedia data. The event handler must be in the same thread as the data transfer - * thread - hence the reason it is passed in the SourceThreadLogon as opposed to say the constructor. - * - * - * @return KErrNone if successful, otherwise a system wide error code. - */ - virtual TInt SourceThreadLogon( MAsyncEventHandler& aEventHandler ) {return KErrNone;} - - /** - * Method to 'logoff' the data source from the same thread that source supplies data in. - * - * This method may be required as the thread that the data source is deleted in may not be - * the same thread that the data transfer took place in. Therefore any thread specific - * releasing of resources needs to be performed in the SourceThreadLogoff rather than in the destructor - * - * This is a virtual function that a derrived data source can implement if any thread specific - * releasing of resources is required. - */ - virtual void SourceThreadLogoff() {} - - /** - * Method to 'prime' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific 'priming' is required - */ - virtual TInt SourcePrimeL() {return 0;} - - /** - * Method to 'play' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required prior to 'playing'ie the start of data transfer - */ - virtual TInt SourcePlayL() {return 0;} - - /** - * Method to 'pause' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required to 'pause' - */ - virtual TInt SourcePauseL() {return 0;} - - /** - * Method to 'stop' the data source - * - * This is a virtual function that a derrived data source can implement if - * any data source specific action is required to 'stop' - */ - virtual TInt SourceStopL() {return 0;} - private: - TUid iDataSourceType; - }; - -class MCommServer - { - }; - -class MVtProtocolCommand - { - public: - enum TVtProtocolState - { - EIdle, - EInitializing, - ESetup, - EConnecting, - EConnected, - EDisconnecting, - EResetting - }; - }; - -class MVtProtocolHandler - { - public: - - /** - * Handle an event that has been generated. - * - * @param "aResponse" "The response to a previously issued command." - */ - virtual void HandleSessionCommandEventL(const TVtCommandResponse& aResponse) = 0; - - /** - * Handle an informational event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleSessionInformationalEventL(const TVtIndicationEvent& aEvent) = 0; - - /** - * Handle an error event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleSessionErrorEventL(const TVtErrorEvent& aEvent) = 0; - - /** - * Signals completion of the audio output control command. - * @param aId The command id of the completed command. - * @param aCmd The command type. - * @param aContextData The context data passed in with the command. - * @param aStatus The command completion status. - **/ - virtual void HandleAudioOutputControlCommandComplete(TInt aId, TVtAudioOutputControlCommand aCmd, TAny *aContextData ,TInt aStatus) = 0; - /** - * Handle an event that has been generated. - * - * @param "aResponse" "The response to a previously issued command." - */ - virtual void HandleVideoEncoderCommandCompletedL(const TVtCommandResponse& aResponse) = 0; - - /** - * Handle an event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleVideoEncoderInformationalEventL(const TVtIndicationEvent& aEvent) = 0; - - /** - * Handle an event that has been generated. - * - * @param "aResponse" "The response to a previously issued command." - */ - virtual void HandleH324MConfigCommandCompletedL(const TVtCommandResponse& aResponse) = 0; - - /** - * Handle an event that has been generated. - * - * @param "aEvent" "The event to be handled." - */ - virtual void HandleH324MConfigInformationalEventL(const TVtIndicationEvent& aEvent) = 0; - virtual ~MVtProtocolHandler() {} - }; - - -class MVtSessionCommand : public MVtProtocolCommand - { - public: - /** - * This function is valid only in the EIdle state. It is a no-op when - * invoked in any other state. It causes the protocol to transition - * to the ESetup state. The terminal remains in the EInitializing state during - * the transition. - * - * - * @param aInitInfo - * A reference to a TVtInitInfo structure which set Mona on and off - * - * @leave This method can leave with one of the following error codes - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt InitProtocolL(TVtInitInfo& aInitInfo) = 0; - - /** - * For an incoming track (MVTVideoSink) this function pauses sending - * media to the sink (output device) and stops the sink. It then does the protocol - * negotiations with the remote terminal to pause the logical channel for - * the specified track. - * - * For outgoing, it pauses the sending of media from the source and calls Stop() on the - * source. It also performs any necessary protocol negotiations with the remote terminal. - * EVtCommandPause will be sent to the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt PauseVideoL(MVTVideoSource& aDataSource) = 0; - virtual TInt PauseVideoL(MVTVideoSink& aDataSink) = 0; - virtual TInt PauseAudioL(MVTAudioSource& aAudioSource) = 0; - - /** - * Resume a previously paused incoming or outgoing track. For incoming, - * this function starts resumes playing out the media to the appropriate - * sink based on the current settings. For outgoing it resumes encoding - * and sending media from the source. - * EVtCommandResume will be invoked will be invoked on the observer when the processing completes. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResumeVideoL(MVTVideoSource& aDataSource) = 0; - virtual TInt ResumeVideoL(MVTVideoSink& aDataSink) = 0; - virtual TInt ResumeAudioL(MVTAudioSource& aAudioSource) = 0; - - /** - * This function is valid only in the ESetup and EInitializing state. It is a - * no-op when invoked in the EIdle state - * - * It causes the protocol to transition back to the EIdle state. The - * terminal remains in the EResetting state during the transition. - * - * While resetting, the protocol de-allocates all resources resources that - * had been previously allocated. When it completes, ResetComplete is called - * and the protocol reverts to the EIdle state. - * - * @leave This method can leave with one of the following error codes - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ResetProtocolL() = 0; - - /** - * This function can be invoked only in the ESetup state. The terminal starts connecting with the remote - * terminal based on the specified options and capabilities. - * The EVtCommandConnect command completion event will be passed to the observer - * when connect completes. - * Details about the negotiated session may be obtained by calling the GetSessionParamsL API. - * GetSessionParamsL may be called after call setup is started to get the list of available channels - * and their capabilities. - * Incoming tracks may be opened before ConnectL completes and will be indicated via the - * EVtIndicationIncommingTrack event. - * - * @param aComm - * An optional pointer to a comm server to provide comm source and sink end-points. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt ConnectToProtocolL(MCommServer* aComm) = 0; - - /** - * Allows an application to provide a media source to be associated with a logical channel - * of communication with the peer. Sources should be added after the EVtIndicationOutgoingTrack - * indication is received for a newly established logical channel. The media type and - * channel id associated with the logical channel are specified as part of the indication. - * This function accepts a MVtVideoSource which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * Data sources could be of the following types: - * a)raw media sources like camera, microphone etc. - * b)sources of compressed data like file, gateway component etc. - * - * @param aChannelId - * Indicates the channel id to be associated with this source. - * @param aDataSource - * reference to the data source - * @leave This method can leave with one of the following error codes - * KErrNotSupported if the format of the sources/sinks is incomtible with what the SDK can handle - * KErrNoMemory if the SDK failed to allocate memory during this operation - * @return A unique command id for asynchronous completion - */ - virtual TInt AddVideoSourceL(const TUint aChannelId, MVTVideoSource &aDataSource) = 0; - virtual TInt AddAudioSourceL(const TUint aChannelId, MVTAudioSource &aDataSource) = 0; - - /** - * Allows an application to provide a media sink for rendering an incoming media bitstream in a - * logical channel of communication with the peer. - * AddDataSinkL can be called only for established incoming logical channels identified by a unique - * channel id. - * Regular incoming channels are established by the peer and are - * indicated using the EVtIndicationIncomingTrack indication. - * This function takes in PV extension to MVtVideoSink or MVtAudioSink which provides additional functionality - * for advertizing capability and exposing configuration APIs. - * EVtCommandAddDataSink event is sent to the observer on completion of this call. - * - * @param aChannelId - * Indicates the channel id to be associated with this sink. - * @param aDataSink The data sink to be added - * - * @return A unique command id for asynchronous completion - **/ - virtual TInt AddVideoSinkL(const TUint aChannelId, MVTVideoSink &aDataSink) = 0; - virtual TInt AddAudioSinkL(const TUint aChannelId, MVTAudioSink &aDataSink) = 0; - - /** - * This API is to allow the user to cancel all pending requests. The current request being - * processed, if any, will also be aborted. - * EVtCommandCancelAllCommands will be passed to the command observer on completion. - * @returns A unique command id for asynchronous completion - **/ - virtual TInt CancelAllCommandsL( ) = 0; - - /** - * The Disconnect call is valid only when invoked in the EConnecting, and - * EConnected states. It causes the terminal to transition to the - * EDisconnecting state. All the media tracks both incoming and outgoing - * will be closed on invoking Disconnect. On completion, the terminal - * goes to the ESetup state. - * - * It is a no-op when called in any other state. - * - * This is an asynchronous request. The EvtCommandDisconnect event will be - * sent to the observer when the request processing is complete. This - * is the only event the Phone application should expect after calling - * Disconnect. - * - * @returns A unique command id for asynchronous completion - **/ - virtual TInt DisconnectFromProtocolL() = 0; - - /** - * This API is to allow for extensibility of the protocol interface. - * It allows a caller to ask for an instance of a particular interface object to be returned. - * The mechanism is analogous to the COM IUnknown method. The interfaces are identified with - * an interface ID that is a UUID as in DCE and a pointer to the interface object is - * returned if it is supported. Otherwise the returned pointer is NULL. - * @param aType - * @param aProtocolCommand - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt GetProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*& aProtocolCommand) = 0; - - /** - * This APIis to be used to release an interface that was previously obtained using - * QueryInterfaceL. - * @param aType - * @param - * @exception not_supported - * leaves if the specified interface id is not supported. - **/ - virtual TInt DeleteProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*) = 0; - - /** - * Destructor. - */ - virtual ~MVtSessionCommand() {} - }; - -class MVTUserInput - { - public: - - /** - * @returns Returns the user input type. - **/ - virtual TUserInputType GetType() = 0; - virtual ~MVTUserInput() {} - }; - -class MVtH324ConfigCommand : public MVtProtocolCommand - { - public: - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler the observer for command status and unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler) = 0; - - /** - * Sets the vendor identification data. This does not cause the stack to issue a vendor identifiation request. - * Set to NULL to disable sending vendor id. If set to a valid parameter before Connect, it will cause the stack - * to automatically send it along with the TCS message. - * @param cc - * T35 Country code - * @param ext - * T35 Extension - * @param mc - * T35 Manufacturer code - * @param aProduct - * Product number - * @param aVersion - * Version number - **/ - virtual TInt SetVendorId(TUint8 cc, TUint8 ext, TUint32 mc, const TDesC8* aProduct, const TDesC8* aVersion) = 0; - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is a request to the remote encoder to adjust its encoding in accordance with the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffCommand(TUint aLogicalChannel, TUint8 aTradeoff)=0; - - /** - * This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. - * It is an indication to the remote decoder that the local encoder has adjusted its encoding parameters - * according to the tradeoff value. - * A value of 0 indicates a high spatial resolution and a value of 31 indicates a high frame rate. - * The values from 0 to 31 indicate monotonically a higher frame rate. Actual values do not correspond - * to precise values of spatial resolution or frame rate. - * - **/ - virtual TInt SendVideoTemporalSpatialTradeoffIndication(TUint aLogicalChannel, TUint8 aTradeoff)=0; - - /** - * This API allows the user to specify the supported resolutions for video for transmit and receive. - * - **/ - virtual TInt SetSupportedResolutions( ) = 0; - - /** - * This API allows the user to set options for fast call setup procedures - **/ - - virtual TInt SetFastCsupOptions( ) = 0; - - /** - * Causes the protocol to send the specified user input to the remote terminal using - * control channel. The user input can be either DTMF ot Alphanumeric - * @param user_input A pointer to MVTUserInput - * @returns A unique command id for asynchronous completion - **/ - virtual TInt SendUserInputMessageL(MVTUserInput& user_input) = 0; - }; - -class MVtVideoConfigCommand : public MVtProtocolCommand - { - public: - - /** - * This API allows the user to specify separate observers for the extension interface. - * - * @param aHandler the observer for unsolicited informational events - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler) = 0; - - /** - * Sets the I-Frame refresh rate of the encoded output. - * - * @param aIFrameInterval I-Frame rate in seconds per I-Frame - * @return True if successful, else false - */ - virtual TInt SetIntraFrameInterval(TUint32 aIFrameInterval) = 0; - - /** - * Requests the encoder to encode the next frame as an I-Frame. If successful, the next encoded - * frame will be an I-Frame. - * - * @return True for success, else false - */ - virtual TInt RequestNextIntraFrame() = 0; - - /** - * Sets the frame rate of encoded output for the specified layer. - * @param aFrameRate Frame rate for the specified layer in frames per second. - * @return True if successful, else false. - */ - virtual TInt SetVideoFrameRate(TUint32 aFrameRate) = 0; - }; - -class MVtAudioConfigCommand : public MVtProtocolCommand - { - public: - - /** - * This API allows the user to specify observers for the 324m interface. - * - * @param aHandler - **/ - virtual void SetObserverL(MVtProtocolHandler* aHandler) = 0; - - /** - * Method to set the playback volume to the specified value. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aNewVolume - * An input parameter to hold the value for the requested playback volume. - * - * @returns Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt SetAudioVolumeL(TInt aVolume) = 0; - - /** - * Method to get the maximum valid value for the playback volume. - * - * This is a pure virtual function that each derived class must implement. - * It is also an asynchronous function which will be answered with a callback. - * - * @param aMaxVolume - * An output parameter to hold the value for the maximum valid playback volume. - * Note that the parameter should not be used until the callback indicates that the - * method has completed. - * - * @returns Returns a command ID that can be used to identify a command completion result with corresponding request. - */ - virtual TInt GetMaxAudioVolumeL(TInt& aMaxVolume) = 0; - }; - -class VTProtocolFactory - { - public: - - /** - * Create one instance. - */ - IMPORT_C static MVtSessionCommand* CreateSessionCommandL(MVtProtocolHandler* aProtocolHandler, TBool aEnableProxy, TVt3G324MSupported& a3G324MSupported); - - /** - * This function allows the application to delete an instance of a terminal - * and reclaim all allocated resources. A terminal should be deleted only in - * the EIdle state. An attempt to delete a terminal in any other state will - * result in unpredictable behavior. - * - * @param terminal the terminal to be deleted. - * - **/ - IMPORT_C static void DeleteSessionCommand( MVtSessionCommand* aSessionCommand ); - - /** - * Creates an instance of a DevSound audio data source. - * - * @param None - * - * @returns A pointer to the interface - **/ - IMPORT_C static MVTAudioSource* CreateAudioSource(); - - /** - * Deletes an instance of a DevSound audio data source - * that was previously created with CreateAudioSource(); - * - * @param aSource The audio data source to be deleted. - * - * @returns status - **/ - IMPORT_C static TInt DeletAudioSource(MVTAudioSource *aSource); - - /** - * Creates an instance of a DevSound audio data sink. - * - * @param None - * - * @returns A pointer to the interface - **/ - IMPORT_C static MVTAudioSink* CreateAudioSink(); - - /** - * Deletes an instance of a DevSound audio data sink - * that was previously created with CreateAudioSink(); - * - * @param The audio data sink to be deleted. - * - * @returns status - **/ - IMPORT_C static TInt DeleteAudioSink(MVTAudioSink *aSink); - - /** - * Creates an instance of a comm server of a particular name, to be used to - * initialize the terminal. - * - * - * @returns A pointer to a terminal or leaves if the type is invalid or the system is out of resources - **/ - IMPORT_C static MCommServer* CreateCommServerL(const TDesC & aName, TBool aEnableBitReversal=EFalse); - - /** - * This function allows the application to delete an instance of a comm server - * and reclaim all allocated resources. A comm server should be deleted only when the - * protocol is in the EIdle state. An attempt to delete a comm server in any other state - * could result in memory corruption within the protocol. This function will leave with - * KErrInUse if the comm server is still in use. However it will not check the state of the - * protocol that is using the comm server. - * - * @param aCommServer the comm server to be deleted. - * - * @returns a status code indicating success or failure - **/ - IMPORT_C static void DeleteCommServerL(MCommServer* aCommServer); - - /** - * Create instance. - * @param aUIITyep - * @param aTone - */ - IMPORT_C static MVTUserInput* CreateUserInputIndication(TUserInputType aUIIType, TUint8 aTone); - - /** - * Delete instance. - * @param aUII - */ - IMPORT_C static void DeleteUserInputIndication(MVTUserInput* aUII); - - /** - * - * @param aAudioSink - */ - IMPORT_C static MVtAudioConfigCommand* GetAudioConfigCommandL(MVTAudioSink* aAudioSink); - }; - -#endif -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/caudioconfighandler.cpp --- a/vtprotocolsstub/src/caudioconfighandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2008 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: Audio configuration implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "caudioconfighandler.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// TAudioConfigHandler::TAudioConfigHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TAudioConfigHandler::TAudioConfigHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TAudioConfigHandler::TAudioConfigHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TAudioConfigHandler::TAudioConfigHandler>"))); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::CAudioConfigCommand -// Constructor. -// ----------------------------------------------------------------------------- -// -CAudioConfigCommand::CAudioConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::CAudioConfigCommand<"))); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::CAudioConfigCommand>"))); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::SetObserverL -// This API allows the user to specify observers for the 324m interface. -// ----------------------------------------------------------------------------- -// -void CAudioConfigCommand::SetObserverL(MVtProtocolHandler* aHandler) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetObserverL<"))); - iAudioConfigHandler = new (ELeave)TAudioConfigHandler(aHandler); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetObserverL>"))); - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::SetAudioVolumeL -// Method to set the playback volume to the specified value. -// ----------------------------------------------------------------------------- -// -TInt CAudioConfigCommand::SetAudioVolumeL(TInt aVolume) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetAudioVolumeL"))); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::SetAudioVolumeL aVolume %d"), aVolume)); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::GetMaxAudioVolumeL -// Method to get the maximum valid value for the playback volume. -// ----------------------------------------------------------------------------- -// -TInt CAudioConfigCommand::GetMaxAudioVolumeL(TInt& aMaxVolume) - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::GetMaxAudioVolumeL"))); - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::GetMaxAudioVolumeL aMaxVolume %d"), aMaxVolume)); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CAudioConfigCommand::~CAudioConfigCommand -// Destructor. -// ----------------------------------------------------------------------------- -// -CAudioConfigCommand::~CAudioConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::~CAudioConfigCommand>"))); - delete iAudioConfigHandler; - __IF_DEBUG(Print(_L("VTProto: CAudioConfigCommand::~CAudioConfigCommand"))); - } -// End of File - \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/cdatasinkproxy.cpp --- a/vtprotocolsstub/src/cdatasinkproxy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* Copyright (c) 2008 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: Data sink proxy implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "cdatasinkproxy.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::CDisplaySinkProxy -// Constructor. -// ----------------------------------------------------------------------------- -// -CDisplaySinkProxy::CDisplaySinkProxy(MVTVideoSink* aDisplaySink) : iDisplaySink(aDisplaySink) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::CDisplaySinkProxy<" ) )); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::CDisplaySinkProxy iDisplaySink %d>" ), iDisplaySink)); - } - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::ConstructL -// ----------------------------------------------------------------------------- -// -void CDisplaySinkProxy::ConstructL() - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::ConstructL<" ) )); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::ConstructL>" ) )); - } - - -// ----------------------------------------------------------------------------- -// CDisplaySinkProxy::NewL -// ----------------------------------------------------------------------------- -// -CDisplaySinkProxy* CDisplaySinkProxy::NewL(MVTVideoSink* aDisplaySink) - { - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::NewL<" ) )); - CDisplaySinkProxy* self = new (ELeave)CDisplaySinkProxy(aDisplaySink); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - __IF_DEBUG(Print( _L( "VTProto: CDisplaySinkProxy::NewL>" ) )); - return self; - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/cdatasourceproxy.cpp --- a/vtprotocolsstub/src/cdatasourceproxy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2008 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: Data source proxy implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "cdatasourceproxy.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::CVideoSourceProxy -// Constructor. -// ----------------------------------------------------------------------------- -// -CVideoSourceProxy::CVideoSourceProxy(MVTVideoSource* aDataSource) : iVideoSource(aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CVideoSourceProxy<"))); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::CVideoSourceProxy iVideoSource %d>"), iVideoSource)); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::ConstructL -// ----------------------------------------------------------------------------- -// -void CVideoSourceProxy::ConstructL() - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::ConstructL<"))); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::ConstructL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoSourceProxy::NewL -// ----------------------------------------------------------------------------- -// -CVideoSourceProxy* CVideoSourceProxy::NewL(MVTVideoSource* aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::NewL<"))); - CVideoSourceProxy* self = new (ELeave)CVideoSourceProxy(aDataSource); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: CVideoSourceProxy::NewL>"))); - return self; - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/ch324confighandler.cpp --- a/vtprotocolsstub/src/ch324confighandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2008 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: H324 configuration implementation -* -*/ - - -#include "mvtprotocolhandler.h" -#include "ch324confighandler.h" -#include "cvtuserinput.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - - -// ----------------------------------------------------------------------------- -// TH324ConfigHandler::TH324ConfigHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TH324ConfigHandler::TH324ConfigHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::TH324ConfigHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TH324ConfigHandler::TH324ConfigHandler>"))); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetVendorId -// Sets the vendor identification data. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SetVendorId(TUint8 cc, TUint8 ext, TUint32 mc, const TDesC8* aProduct, const TDesC8* aVersion) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetVendorId"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SendVideoTemporalSpatialTradeoffCommand -// This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SendVideoTemporalSpatialTradeoffCommand(TUint aLogicalChannel, TUint8 aTradeoff) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendVideoTemporalSpatialTradeoffCommand"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SendVideoTemporalSpatialTradeoffIndication -// This API allows the user to send a videoTemporalSpatialTradeOff command to the peer. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SendVideoTemporalSpatialTradeoffIndication(TUint aLogicalChannel, TUint8 aTradeoff) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendVideoTemporalSpatialTradeoffIndication"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetVideoResolutions -// This API allows the user to specify the supported resolutions for video for transmit and receive. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SetSupportedResolutions() - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetSupportedResolutions"))); - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetFastCsupOptions -// This API allows the user to set options for fast call setup procedures. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SetFastCsupOptions( ) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetFastCsupOptions"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SendUserInputMessageL -// Causes the vt2way to send the specified user input to the remote terminal using -// control channel. -// ----------------------------------------------------------------------------- -// -TInt CH324ConfigCommand::SendUserInputMessageL(MVTUserInput& user_input) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendUserInputMessageL<"))); - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SendUserInputMessageL>"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::SetObserverL -// This API allows the user to specify observers for the 324m interface. -// ----------------------------------------------------------------------------- -// -void CH324ConfigCommand::SetObserverL(MVtProtocolHandler* aHandler) - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetObserverL<"))); - iH324ConfigHandler = new (ELeave)TH324ConfigHandler(aHandler); - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetObserverL observer %d"), iH324ConfigHandler)); - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::SetObserverL>"))); - } - -// ----------------------------------------------------------------------------- -// CH324ConfigCommand::~CH324ConfigCommand -// Destructor. -// ----------------------------------------------------------------------------- -// -CH324ConfigCommand::~CH324ConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::~CH324ConfigCommand<"))); - delete iH324ConfigHandler; - __IF_DEBUG(Print(_L("VTProto: CH324ConfigCommand::~CH324ConfigCommand>"))); - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/csessionhandler.cpp --- a/vtprotocolsstub/src/csessionhandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,314 +0,0 @@ -/* -* Copyright (c) 2008 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: Session command implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "cdatasinkproxy.h" -#include "cdatasourceproxy.h" -#include "csessionhandler.h" -#include "ccommserver.h" -#include "ch324confighandler.h" -#include "cvideoconfighandler.h" -#include "caudioconfighandler.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// TSessionHandler::TSessionHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TSessionHandler::TSessionHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::TSessionHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TSessionHandler::TSessionHandler>"))); - } - - -// ----------------------------------------------------------------------------- -// CSessionCommand::CSessionCommand -// Constructor. -// ----------------------------------------------------------------------------- -// -CSessionCommand::CSessionCommand(TSessionHandler* aSessionHandler) - : iSessionHandler(aSessionHandler) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::CSessionCommand<"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::CSessionCommand>"))); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::~CSessionComman -// Destructor. -// ----------------------------------------------------------------------------- -// -CSessionCommand::~CSessionCommand() - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::~CSessionCommand<"))); - delete iVideoSource; - delete iDisplaySink; - delete iSessionHandler; - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::~CSessionCommand>"))); - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ConnectToProtocolL -// This function can be invoked only in the ESetup state. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ConnectToProtocolL(MCommServer* aComm) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL"))); - CCommServer* commServer = static_cast(aComm); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ConnectToProtocolL commServer %d"), commServer)); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::DisconnectFromProtocolL -// The Disconnect call is valid only when invoked in the EConnecting, and -// EConnected states. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::DisconnectFromProtocolL() - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::DisconnectFromProtocolL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResetProtocolL -// This function is valid only in the ESetup and EInitializing state. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResetProtocolL() - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResetProtocolL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::InitProtocolL -// This function is valid only in the EIdle state. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::InitProtocolL(TVtInitInfo& aInitInfo) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::InitProtocolL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddVideoSinkL -// Allows an application to provide a media sink for rendering an incoming media bitstream in a -// logical channel of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddVideoSinkL(const TUint aChannelId, MVTVideoSink& aDataSink) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSinkL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSinkL aChannelId %d"), aChannelId)); - iDisplaySink =CDisplaySinkProxy::NewL(&aDataSink); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddVideoSourceL -// Allows an application to provide a media source to be associated with a logical channel -// of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddVideoSourceL(const TUint aChannelId, MVTVideoSource& aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSourceL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddVideoSourceL aChannelId %d"), aChannelId)); - iVideoSource = CVideoSourceProxy::NewL(&aDataSource); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddAudioSourceL -// Allows an application to provide a media source to be associated with a logical channel -// of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddAudioSourceL(const TUint aChannelId, MVTAudioSource &aDataSource) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSourceL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSourceL aChannelId %d"), aChannelId)); - CAudioSourceProxy* audioSourceProxy = static_cast(&aDataSource); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::AddAudioSinkL -// Allows an application to provide a media sink for rendering an incoming media bitstream in a -// logical channel of communication with the peer. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::AddAudioSinkL(const TUint aChannelId, MVTAudioSink &aDataSink) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSinkL"))); - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::AddAudioSinkL aChannelId %d"), aChannelId)); - CAudioSinkProxy* audioSinkProxy = static_cast(&aDataSink); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::PauseVideoL -// For an incoming track (MVTVideoSink) this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::PauseVideoL(MVTVideoSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::PauseVideoL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::PauseVideoL -// For an incoming track (MVtVideoSink) this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::PauseVideoL(MVTVideoSink& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::PauseVideoL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::PauseAudioL -// For an incoming track (MVTAudioSource) this function pauses sending -// media to the sink (output device) and stops the sink. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::PauseAudioL(MVTAudioSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::PauseAudioL"))); - CAudioSourceProxy* audioSourceProxy = static_cast(&aTrack); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResumeVideoL -// Resume a previously paused incoming or outgoing track. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResumeVideoL(MVTVideoSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResumeVideoL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResumeVideoL -// Resume a previously paused incoming or outgoing track. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResumeVideoL(MVTVideoSink& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResumeVideoL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::ResumeAudioL -// Resume a previously paused incoming or outgoing track. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::ResumeAudioL(MVTAudioSource& aTrack) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::ResumeAudioL"))); - CAudioSourceProxy* audioSourceProxy = static_cast(&aTrack); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::CancelAllCommandsL -// This API is to allow the user to cancel all pending requests. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::CancelAllCommandsL( ) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::CancelAllCommandsL"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::GetProtocolInterfaceL -// This API is to allow for extensibility of the protocol interface. -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::GetProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand*& aProtocolCommand) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::GetProtocolInterfaceL<"))); - TInt commandId = 0; - if (aType == EVtH324Config) - { - CH324ConfigCommand* H324ConfigCommand = new (ELeave)CH324ConfigCommand(); - - aProtocolCommand = H324ConfigCommand; - } - else if (aType == EVtVideoEncoderConfig) - { - CVideoConfigCommand* videoConfigCommand = new (ELeave)CVideoConfigCommand(); - - aProtocolCommand = videoConfigCommand; - } - else - { - ; - } - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::GetProtocolInterfaceL aType %d, aProtocolCommand %d>"), aType, aProtocolCommand)); - return commandId; - } - -// ----------------------------------------------------------------------------- -// CSessionCommand::DeleteProtocolInterfaceL -// This APIis to be used to release an interface that was previously obtained using -// ----------------------------------------------------------------------------- -// -TInt CSessionCommand::DeleteProtocolInterfaceL(TVtConfigType aType, MVtProtocolCommand* aProtocolCommand) - { - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::DeleteProtocolInterfaceL<"))); - TInt commandId = 0; - if (aType == EVtH324Config) - { - CH324ConfigCommand* H324ConfigCommand = static_cast(aProtocolCommand); - - delete H324ConfigCommand; - } - else if (aType == EVtVideoEncoderConfig) - { - CVideoConfigCommand* videoConfigCommand = static_cast(aProtocolCommand); - - delete videoConfigCommand; - } - else - { - ; - } - __IF_DEBUG(Print(_L("VTProto: CSessionCommand::DeleteProtocolInterfaceL aType, aProtocolCommand %d>"), aType, aProtocolCommand)); - return commandId; - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/cvideoconfighandler.cpp --- a/vtprotocolsstub/src/cvideoconfighandler.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2008 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: Video configuration implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "cvideoconfighandler.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// TVideoConfigHandler::TVideoConfigHandler -// Constructor. -// ----------------------------------------------------------------------------- -// -TVideoConfigHandler::TVideoConfigHandler(MVtProtocolHandler* aProtocolHandler) : iProtocolHandler(aProtocolHandler) - { - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::TVideoConfigHandler<"))); - __IF_DEBUG(Print(_L("VTProto: TVideoConfigHandler::TVideoConfigHandler>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::SetObserverL -// This API allows the user to specify separate observers for the extension interface. -// ----------------------------------------------------------------------------- -// -void CVideoConfigCommand::SetObserverL(MVtProtocolHandler* aHandler) - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetObserverL<"))); - iVideoConfigHandler = new (ELeave)TVideoConfigHandler(aHandler); - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetObserverL>"))); - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::SetIntraFrameInterval -// Sets the I-Frame refresh rate of the encoded output. -// ----------------------------------------------------------------------------- -// -TInt CVideoConfigCommand::SetIntraFrameInterval(TUint32 aIFrameInterval) - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetIntraFrameInterval"))); - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetIntraFrameInterval aIFrameInterval %d"), aIFrameInterval)); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::RequestNextIntraFrame -// Requests the encoder to encode the next frame as an I-Frame. -// ----------------------------------------------------------------------------- -// -TInt CVideoConfigCommand::RequestNextIntraFrame() - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::RequestNextIntraFrame"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::SetVideoFrameRate -// Sets the frame rate of encoded output for the specified layer. -// ----------------------------------------------------------------------------- -// -TInt CVideoConfigCommand::SetVideoFrameRate(TUint32 aFrameRate) - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetVideoFrameRate"))); - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::SetVideoFrameRate aFrameRate %d"), aFrameRate)); - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CVideoConfigCommand::~CVideoConfigCommand -// Destructor. -// ----------------------------------------------------------------------------- -// -CVideoConfigCommand::~CVideoConfigCommand() - { - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::~CVideoConfigCommand"))); - delete iVideoConfigHandler; - __IF_DEBUG(Print(_L("VTProto: CVideoConfigCommand::~CVideoConfigCommand"))); - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/cvtuserinput.cpp --- a/vtprotocolsstub/src/cvtuserinput.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -/* -* Copyright (c) 2008 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: VT User input implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "cvtuserinput.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::ConstructL -// Constructor. -// ----------------------------------------------------------------------------- -// -void CVTUserInputDtmf::ConstructL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::ConstructL<"))); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::ConstructL>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::CVTUserInputDtmf -// Constructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputDtmf* CVTUserInputDtmf::NewL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::NewL<"))); - CVTUserInputDtmf* self = new (ELeave)CVTUserInputDtmf(); - CleanupStack::PushL(self); - self->ConstructL(aTone); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::NewL>"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::~CVTUserInputDtmf -// Destructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputDtmf::~CVTUserInputDtmf() - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::~CVTUserInputDtmf<"))); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputDtmf::~CVTUserInputDtmf>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::GetType -// Virtual function to return the user input type -// ----------------------------------------------------------------------------- -// -TUserInputType CVTUserInputDtmf::GetType() - { - return EVtUiiDTFM; - } - -// ----------------------------------------------------------------------------- -// CVTUserInputDtmf::ConstructL -// Constructor. -// ----------------------------------------------------------------------------- -// -void CVTUserInputAlphanumeric::ConstructL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::ConstructL<"))); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::ConstructL>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputAlphanumeric::CVTUserInputAlphanumeric -// Constructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputAlphanumeric* CVTUserInputAlphanumeric::NewL(TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::NewL<"))); - CVTUserInputAlphanumeric* self = new (ELeave)CVTUserInputAlphanumeric(); - CleanupStack::PushL(self); - self->ConstructL(aTone); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::NewL>"))); - return self; - } - -// ----------------------------------------------------------------------------- -// CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric -// Destructor. -// ----------------------------------------------------------------------------- -// -CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric() - { - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric<"))); - __IF_DEBUG(Print(_L("VTProto: CVTUserInputAlphanumeric::~CVTUserInputAlphanumeric>"))); - } - -// ----------------------------------------------------------------------------- -// CVTUserInputAlphanumeric::GetType -// Virtual function to return the user input type. -// ----------------------------------------------------------------------------- -// -TUserInputType CVTUserInputAlphanumeric::GetType() - { - return EVtUiiAlphaNumeric; - } -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtprotocolsstub/src/vtprotocolfactory.cpp --- a/vtprotocolsstub/src/vtprotocolfactory.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2008 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: Protocol factory implementation -* -*/ - -#include "mvtprotocolhandler.h" -#include "cdatasourceproxy.h" -#include "cdatasinkproxy.h" -#include "csessionhandler.h" -#include "caudioconfighandler.h" -#include "cvtuserinput.h" -#include "ccommserver.h" - -#ifdef _DEBUG -# define __IF_DEBUG(t) {RDebug::t;} -#else -# define __IF_DEBUG(t) -#endif -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateSessionCommandL -// Create one instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtSessionCommand* VTProtocolFactory::CreateSessionCommandL(MVtProtocolHandler* aProtocolHandler, TBool aEnableProxy, TVt3G324MSupported& a3G324MSupported) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateSessionCommandL<"))); - a3G324MSupported = EVt3G324MMissing; - TSessionHandler * sessionHandler = new (ELeave)TSessionHandler(aProtocolHandler); - CleanupStack::PushL(sessionHandler); - CSessionCommand* sessionCommand = new (ELeave)CSessionCommand(sessionHandler); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateSessionCommandL sessionCommand %d>"), sessionCommand)); - return sessionCommand; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteSessionCommand -// This function allows the application to delete an instance of a terminal -// and reclaim all allocated resources. -// ----------------------------------------------------------------------------- -// -EXPORT_C void VTProtocolFactory::DeleteSessionCommand( MVtSessionCommand* aSessionCommand ) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteSessionCommand<"))); - CSessionCommand* sessionCommand = static_cast(aSessionCommand); - delete aSessionCommand; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteSessionCommand>"))); - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateAudioSource -// Creates an instance of a DevSound audio data source. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVTAudioSource* VTProtocolFactory::CreateAudioSource() - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSource<"))); - TInt err( KErrNone ); - CAudioSourceProxy* audioSourceProxy = NULL; - TRAP (err, audioSourceProxy = new (ELeave) CAudioSourceProxy() ); - if (err != KErrNone) - { - return NULL; - } - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSource audioSourceProxy %d>"), audioSourceProxy)); - return audioSourceProxy; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeletAudioSource -// Deletes an instance of a DevSound audio data source. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt VTProtocolFactory::DeletAudioSource(MVTAudioSource *aSource) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeletAudioSource<"))); - CAudioSourceProxy* audioSourceProxy = static_cast(aSource); - delete aSource; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeletAudioSource>"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateAudioSink -// Creates an instance of a DevSound audio data sink. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVTAudioSink* VTProtocolFactory::CreateAudioSink() - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSink<"))); - TInt err( KErrNone ); - CAudioSinkProxy* audioSinkProxy = NULL; - TRAP(err, audioSinkProxy = new (ELeave) CAudioSinkProxy() ); - if (err != KErrNone) - { - return NULL; - } - - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateAudioSink audioSinkProxy %d>"), audioSinkProxy)); - return audioSinkProxy; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteAudioSink -// Deletes an instance of a DevSound audio data sink -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt VTProtocolFactory::DeleteAudioSink(MVTAudioSink *aSink) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteAudioSink<"))); - CAudioSinkProxy* audioSinkProxy = static_cast(aSink); - delete aSink; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteAudioSink>"))); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateCommServerL -// Creates an instance of a comm server of a particular name, to be used to -// initialize the terminal. -// ----------------------------------------------------------------------------- -// -EXPORT_C MCommServer* VTProtocolFactory::CreateCommServerL(const TDesC & aName, TBool aEnableBitReversal) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateCommServerL<"))); - CCommServer* commServer = new (ELeave)CCommServer(); - CleanupStack::PushL(commServer); - CleanupStack::Pop(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateCommServerL commServer %d>"), commServer)); - return commServer; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteCommServerL -// This function allows the application to delete an instance of a comm server -// and reclaim all allocated resources. -// ----------------------------------------------------------------------------- -// -EXPORT_C void VTProtocolFactory::DeleteCommServerL(MCommServer* aCommServer) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteCommServerL<"))); - CCommServer* commServer = static_cast(aCommServer); - delete aCommServer; - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::DeleteCommServerL>"))); - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::CreateUserInputIndication -// Create instance . -// ----------------------------------------------------------------------------- -// -EXPORT_C MVTUserInput* VTProtocolFactory::CreateUserInputIndication(TUserInputType aUIIType, TUint8 aTone) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::CreateUserInputIndication"))); - if (aUIIType == EVtUiiDTFM) - { - CVTUserInputDtmf* uii = CVTUserInputDtmf::NewL(aTone); - return uii; - } - else if (aUIIType == EVtUiiAlphaNumeric) - { - CVTUserInputAlphanumeric* uii = CVTUserInputAlphanumeric::NewL(aTone); - return uii; - } - else - { - return NULL; - } - - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::DeleteUserInputIndication -// Delete instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C void VTProtocolFactory::DeleteUserInputIndication(MVTUserInput* aUII) - { - delete aUII; - } - -// ----------------------------------------------------------------------------- -// VTProtocolFactory::GetAudioConfigCommandL -// Get one instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C MVtAudioConfigCommand* VTProtocolFactory::GetAudioConfigCommandL(MVTAudioSink* aAudioSink) - { - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::GetAudioConfigCommandL<"))); - CAudioSinkProxy* audioSinkProxy = static_cast(aAudioSink); - CAudioConfigCommand* audioConfigCommand = new (ELeave)CAudioConfigCommand(); - __IF_DEBUG(Print(_L("VTProto: VTProtocolFactory::GetAudioConfigCommandL audioConfigCommand %d>"), audioConfigCommand)); - return audioConfigCommand; - } - -// end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/group/bld.inf --- a/vtuis/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Build information for Vtuis subsystem. -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -// Include components' bld.inf files -#include "../videotelui/group/bld.inf" - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/aif/videoteluiaif.rss --- a/vtuis/videotelui/aif/videoteluiaif.rss Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2004 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: AIF resource for Video Telephone. -* -*/ - - - -// INCLUDES -#include - - -// RESOURCE DEFINITIONS - -// ----------------------------------------------------------------------------- -// -// AIF_DATA -// Resource for AIF. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AIF_DATA - { - app_uid = 0x101F8681; - num_icons = 1; - hidden = KAppIsHidden; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/cenrep/keys_s60videotelephony.xls Binary file vtuis/videotelui/cenrep/keys_s60videotelephony.xls has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/conf/s60videotelephony.confml Binary file vtuis/videotelui/conf/s60videotelephony.confml has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/conf/s60videotelephony_102072D0.crml Binary file vtuis/videotelui/conf/s60videotelephony_102072D0.crml has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/conf/s60videotelephony_10281872.crml Binary file vtuis/videotelui/conf/s60videotelephony_10281872.crml has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/VtStartRecord.wav Binary file vtuis/videotelui/data/VtStartRecord.wav has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/VtStopRecord.wav Binary file vtuis/videotelui/data/VtStopRecord.wav has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/videotelui.rss --- a/vtuis/videotelui/data/videotelui.rss Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1913 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Resources for Video Telephone application. -* -*/ - - - -// RESOURCE IDENTIFIER -NAME VTUI - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "videotelui.hrh" - - -#include - -// CONSTANTS -#define KVtStartSoundFile "z:\\system\\sounds\\digital\\VtStartRecord.wav" -#define KVtStopSoundFile "z:\\system\\sounds\\digital\\VtStopRecord.wav" -// RESOURCE DEFINITIONS - -// ----------------------------------------------------------------------------- -// -// Resource file signature. -// -// ----------------------------------------------------------------------------- -// -RESOURCE RSS_SIGNATURE - { - } - -// ----------------------------------------------------------------------------- -// -// Default name of the document. No such document, so empty. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF - { - buf = ""; - } - -// ----------------------------------------------------------------------------- -// -// Application information. -// -// ----------------------------------------------------------------------------- -// -RESOURCE EIK_APP_INFO - { - status_pane = r_videotelui_status_pane; - menubar = r_videotelui_menubar; - cba = r_videotelui_softkeys_end_call; - custom_app_info_extension = r_videotelui_info_extension; - } -// ----------------------------------------------------------------------------- -// -// Info extension -// r_videotelui_info_extension -// -// ----------------------------------------------------------------------------- -// -RESOURCE EIK_APP_INFO_EXT r_videotelui_info_extension - { - popup_toolbar = r_videotelui_fixed _toolbar; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_localisable_app_info -// Captions for this application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE LOCALISABLE_APP_INFO r_videotelui_localisable_app_info - { - short_caption = qtn_apps_videophone_grid; - caption_and_icon = - CAPTION_AND_ICON_INFO - { - caption = qtn_apps_videophone_grid; -#ifdef __SCALABLE_ICONS - number_of_icons = 1; - - - icon_file = - "Z:"APP_BITMAP_DIR"\\videotelui_aif.mif"; -#else - number_of_icons = 1; - icon_file = - "Z:"APP_BITMAP_DIR"\\videotelui_aif.mbm"; - - -#endif // __SCALABLE_ICONS - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_status_pane -// Status pane for the application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE STATUS_PANE_APP_MODEL r_videotelui_status_pane - { - layout = R_AVKON_STATUS_PANE_LAYOUT_USUAL; - panes = - { - SPANE_PANE - { - id = EEikStatusPaneUidTitle; - type = EAknCtTitlePane; - resource = r_videotelui_title_pane; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_menubar -// Menubar for the application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_BAR r_videotelui_menubar - { - titles = - { - MENU_TITLE - { - menu_pane = r_videotelui_menu; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_ok_menubar -// Menubar for the application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_BAR r_videotelui_ok_menubar - { - titles = - { - MENU_TITLE - { - menu_pane = r_videotelui_ok_menu; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_menu -// Options menu for the application. This menu is opened when Options softkey -// is pressed. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_videotelui_menu - { - items = - { - MENU_ITEM // Enable - { - command = EVtUiCmdEnableMain; - txt = qtn_incal_enable_main_option; - cascade = r_videotelui_enable_menu; - }, - MENU_ITEM // Disable - { - command = EVtUiCmdDisableMain; - txt = qtn_incal_disable_main_option; - cascade = r_videotelui_disable_menu; - }, - MENU_ITEM // Use primary camera - { - command = EVtUiCmdUsePrimaryCamera; - txt = qtn_incal_camera_1_option; - }, - MENU_ITEM // Use secondary camera - { - command = EVtUiCmdUseSecondaryCamera; - txt = qtn_incal_camera_2_option; - }, - MENU_ITEM // Swap images places - { - command = EVtUiCmdSwapImagesPlaces; - txt = qtn_incal_swap_vt_images; - }, - MENU_ITEM // Snapshot - { - command = EVtUiCmdSnapshot; - txt = qtn_incal_snapshot_option; - }, - MENU_ITEM // Send DTMF - { - command = EVtUiCmdSendDTMF; - txt = qtn_incal_send_dtmf_tone_option; - }, - MENU_ITEM // Share file - { - command = EVtUiCmdShareObjectImage; - txt = qtn_incal_video_call_share_file; - }, - MENU_ITEM // Handset (deactivate loudspeaker) - { - command = EVtUiCmdDeactivateLoudspeaker; - txt = qtn_incal_deact_ihf_option; - }, - MENU_ITEM // Loudspeaker - { - command = EVtUiCmdActivateLoudspeaker; - txt = qtn_incal_act_ihf_option; - }, - MENU_ITEM // BT handsfree - { - command = EVtUiCmdActivateBT; - txt = qtn_incal_bt_handsfree_option; - }, - MENU_ITEM // Handset (deactivate BT) - { - command = EVtUiCmdDeactivateBT; - txt = qtn_incal_handset_option; - }, - MENU_ITEM // Video to voice - { - command = EVtUiCmdCreateVoice; - txt = qtn_incal_video_to_voice; - }, - MENU_ITEM - { - command = EVtUiCmdAdjustVideo; - txt = qtn_incal_video_adjust_option; - cascade = r_videotelui_video_adjust_menu; - }, - MENU_ITEM // Zoom - { - command = EVtUiCmdZoom; - txt = qtn_incal_zoom_own_video; - }, - MENU_ITEM // End active call - { - command = EVtUiCmdEndActiveCall; - txt = qtn_incal_drop_option; - }, - MENU_ITEM // Go to Idle - { - command = EVtUiCmdGoToIdle; -#ifdef RD_BOOT_CUSTOMIZABLE_AI - txt = qtn_incal_goto_idle; -#else - txt = qtn_incal_goto_active_idle; -#endif // RD_BOOT_CUSTOMIZABLE_AI - }, - MENU_ITEM // Help - { - command = EAknCmdHelp; - txt = qtn_options_help; - }, - MENU_ITEM // Exit - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_ok_menu -// Options menu for the application. This menu is opened when selection key -// is pressed. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_videotelui_ok_menu - { - items = - { - MENU_ITEM // Disable - { - command = EVtUiCmdDisableMain; - txt = qtn_incal_disable_main_option; - cascade = r_videotelui_disable_menu; - }, - MENU_ITEM // Snapshot - { - command = EVtUiCmdSnapshot; - txt = qtn_incal_snapshot_option; - }, - MENU_ITEM // End active call - { - command = EVtUiCmdEndActiveCall; - txt = qtn_incal_drop_option; - }, - MENU_ITEM // Use primary camera - { - command = EVtUiCmdUsePrimaryCamera; - txt = qtn_incal_camera_1_option; - }, - MENU_ITEM // Use secondary camera - { - command = EVtUiCmdUseSecondaryCamera; - txt = qtn_incal_camera_2_option; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_enable_menu -// "Enable" submenu for the application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_videotelui_enable_menu - { - items = - { - MENU_ITEM - { - command = EVtUiCmdEnableVideo; - txt = qtn_incal_change_video_option; - }, - MENU_ITEM - { - command = EVtUiCmdEnableAudio; - txt = qtn_incal_change_audio_option; - }, - MENU_ITEM - { - command = EVtUiCmdEnableBoth; - txt = qtn_incal_change_both_option; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_disable_menu -// "Disable" submenu for the application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_videotelui_disable_menu - { - items = - { - MENU_ITEM - { - command = EVtUiCmdDisableVideo; - txt = qtn_incal_change_video_option; - }, - MENU_ITEM - { - command = EVtUiCmdDisableAudio; - txt = qtn_incal_change_audio_option; - }, - MENU_ITEM - { - command = EVtUiCmdDisableBoth; - txt = qtn_incal_change_both_option; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_video_adjust_menu -// "Adjust video" submenu for the application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_videotelui_video_adjust_menu - { - items = - { - MENU_ITEM - { - command = EVtUiCmdAdjustVideoVideoQuality; - txt = qtn_incal_video_prefer_option; - }, - MENU_ITEM - { - command = EVtUiCmdAdjustVideoWhiteBalance; - txt = qtn_incal_video_white_balance_option; - }, - MENU_ITEM - { - command = EVtUiCmdAdjustVideoBrightness; - txt = qtn_incal_video_brightness_option; - }, - MENU_ITEM - { - command = EVtUiCmdAdjustVideoContrast; - txt = qtn_incal_video_contrast_option; - }, - MENU_ITEM - { - command = EVtUiCmdAdjustVideoColourTone; - txt = qtn_incal_video_colour_tone_option; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_enable_video -// Options & Enable video softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_enable_video - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdEnableVideo; - txt = qtn_incal_softk_enable_video; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_enable_audio -// Options & Enable audio softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_enable_audio - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdEnableAudio; - txt = qtn_incal_softk_enable_audio; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_handset_b -// Options & Handset both softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_handset_b - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdDeactivateLoudspeaker; - txt = qtn_incal_softk_handset; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_loudspeaker -// Options & Handset both softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_loudspeaker - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdActivateLoudspeaker; - txt = qtn_incal_softk_laudspek; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_bt_handsfree -// Options & Handset both softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_bt_handsfree - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdActivateBT; - txt = qtn_incal_softk_bt_handsfree; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_end_call -// Options & End call softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_end_call - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdEndActiveCall; - txt = qtn_incal_softk_end_this; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_capture_video -// Capture & Cancel video softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_capture_video - { - buttons = - { - CBA_BUTTON - { - id = EVtUiCmdCapture; - txt = qtn_softk_capture; - }, - CBA_BUTTON - { - id = EVtUiCmdCancelCapture; - txt = text_softkey_cancel; - }, - CBA_BUTTON - { - id = EVtUiCmdCapture; - txt = qtn_softk_capture; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_share_object_image -// Options & Stop image object sharing -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_share_object_image - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdStopSharingObjectImage; - txt = qtn_softk_disable_share; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_blank_dlg -// Blank dialog. -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_blank_dlg - { - flags = ( EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagFillAppClientRect | - EEikDialogFlagCbaButtons | - EEikDialogFlagWait ); - - buttons = r_videotelui_softkeys_empty; - - items = - { - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_blank_nowait_dlg -// Blank dialog, no wait flag. -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_blank_nowait_dlg - { - flags = ( EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagFillAppClientRect | - EEikDialogFlagCbaButtons ); - - buttons = r_videotelui_softkeys_empty; - - items = - { - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_empty -// -// Empty softkeys. Note that AVKON empty softkey -// resource can not be used, because flags are needed. -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_empty - { - flags = EAknCBAFlagRespondWhenInvisible; - - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - }, - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - }, - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - } - }; - } - - -// ----------------------------------------------------------------------------- -// -// r_videotelui_qtn_incal_muted_pane -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_incal_muted_pane - { - buf = qtn_incal_muted_pane; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_allow_video_query -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_allow_video_query - { - flags = - EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagCbaButtons | - EEikDialogFlagNotifyEsc ; - buttons = R_AVKON_SOFTKEYS_YES_NO; - items = - { - DLG_LINE - { - type = EAknCtQuery; - id = EGeneralQuery; - control = AVKON_CONFIRMATION_QUERY - { - layout = EConfirmationLayout; - label = ""; - }; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_switch_to_voice_query -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_create_voice_query - { - flags = EGeneralQueryFlags; - buttons = R_AVKON_SOFTKEYS_YES_NO; - items = - { - DLG_LINE - { - type = EAknCtQuery; - id = EGeneralQuery; - control = AVKON_CONFIRMATION_QUERY - { - layout = EConfirmationLayout; - }; - } - }; - } - -// --------------------------------------------------------- -// -// r_videotelui_qtn_send_video_image -// -// --------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_send_video_image - { - buf = qtn_incal_send_video_image; - } - -// --------------------------------------------------------- -// -// r_videotelui_qtn_call_number_video -// -// --------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_call_number_video - { - buf = qtn_call_number_video; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_title_pane -// It defines default title pane. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TITLE_PANE r_videotelui_title_pane - { - txt = " "; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_qtn_incal_waiting_image -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_incal_waiting_image - { - buf = qtn_incal_waiting_image; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_emergency_note -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_emergency_note - { - flags = EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagCbaButtons; - - buttons = R_AVKON_SOFTKEYS_CANCEL; - - items = - { - DLG_LINE - { - type = EAknCtNote; - id = EGeneralNote; - control = AVKON_NOTE - { - layout = EGeneralLayout; - }; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_information_note -// It defines note template for information notes. Text -// must be replaced to correct in code. Note does not have wait -// flag. -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_information_note - { - flags = - EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagCbaButtons; - items = - { - DLG_LINE - { - type = EAknCtNote; - id = EGeneralNote; - control = - AVKON_NOTE - { - layout = EGeneralLayout; - singular_label = " "; - plural_label = ""; - animation = R_QGN_NOTE_INFO_ANIM; - }; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_qtn_incal_close_camcorder -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_incal_close_camcorder - { - buf = qtn_incal_close_camcorder; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_bthf_connect_wait_note -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_videotelui_bthf_connect_wait_note - { - flags = EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagCbaButtons | - EEikDialogFlagWait; - - buttons = R_AVKON_SOFTKEYS_EMPTY; - - items = - { - DLG_LINE - { - type = EAknCtNote; - id = EGeneralNote; - control = AVKON_NOTE - { - layout = EWaitLayout; - singular_label = qtn_wait_connecting_to_bt; - plural_label = ""; - animation = R_QGN_GRAF_WAIT_BAR_ANIM; - }; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_qtn_bt_device_not_avail -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_bt_device_not_avail - { - buf = qtn_bt_device_not_avail; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_text_not_allowed -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_text_not_allowed - { - buf = text_not_allowed; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_text_call_not_allowed -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_text_call_not_allowed - { - buf = text_call_not_allowed; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_qtn_err_cam_swap -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_err_cam_swap - { - buf = qtn_err_cam_swap; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_qtn_query_create_voice_call -// -// -RESOURCE TBUF r_videotelui_qtn_query_create_voice_call - { - buf = qtn_query_create_voice_call; - } -//---------------------------------------------------- -// -// r_videotelui_qtn_err_unable_to_open_image -// -//---------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_err_unable_to_open_image - { - buf = qtn_tel_info_unable_open_image; - } - -//---------------------------------------------------- -// -// r_videotelui_qtn_incal_note_decoding_failed -// -//---------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_incal_note_decoding_failed - { - buf = qtn_incal_note_decoding_failed; - } - -//---------------------------------------------------- -// -// r_videotelui_qtn_err_drm_not_allowed -// -//---------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_err_drm_not_allowed - { - buf = qtn_drm_not_allowed; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_tooltip_zoom -// -// -RESOURCE TBUF r_videotelui_tooltip_zoom - { - buf = qtn_vt_tooltip_zoom; - } - -//---------------------------------------------------- -// -// r_image_load_wait_note -// Image initialization wait note. -// -//---------------------------------------------------- -// -RESOURCE DIALOG r_progress_decoding_image_wait_note - { - flags = EAknWaitNoteFlags; - buttons = R_AVKON_SOFTKEYS_EMPTY; - items= - { - DLG_LINE - { - type = EAknCtNote; - id = EGeneralNote; - control = AVKON_NOTE - { - layout = EWaitLayout; - animation = R_QGN_GRAF_WAIT_BAR_ANIM; - singular_label = qtn_vt_progress_decoding_image; - }; - } - }; - } - -//---------------------------------------------------- -// -// r_videotelui_context_options_cba_button -// Cba button resource for number entry. -// -//---------------------------------------------------- -// -RESOURCE CBA_BUTTON r_videotelui_context_options_cba_button - { - id=EAknSoftkeyContextOptions; - txt=text_softkey_empty; - } - -//---------------------------------------------------- -// -// r_videotelui_select_cba_button -// Empty cba button resource for toolbar. -// -//---------------------------------------------------- -// -RESOURCE CBA_BUTTON r_videotelui_select_cba_button - { - id = EAknSoftkeySelect; - txt= text_softkey_select; - } - -//---------------------------------------------------- -// -// r_videotelui_empty_cba_button -// Empty cba button resource for number entry. -// -//---------------------------------------------------- -// -RESOURCE CBA_BUTTON r_videotelui_empty_cba_button - { - id = EAknSoftkeyEmpty; - txt= text_softkey_empty; - } - -//---------------------------------------------------- -// -// r_videotelui_floating_toolbar -// Empty resource for floating toolbar. -// -//---------------------------------------------------- -// -RESOURCE AVKON_TOOLBAR r_videotelui_floating_toolbar - { - flags = KAknToolbarWithoutCba | KAknToolbarAlwaysFocusing | - KAknToolbarFlexiblePosition; - items = - { - }; - } - -//---------------------------------------------------- -// -// r_videotelui_fixed_toolbar -// Empty resource for fixed toolbar. -// -//---------------------------------------------------- -// -RESOURCE AVKON_TOOLBAR r_videotelui_fixed_toolbar - { - flags = KAknToolbarFixed; - items = - { - }; - } - -//---------------------------------------------------- -// -// r_videotelui_video_record_start_sound_path -// Path to a sound file to play when starting video recording -// -//---------------------------------------------------- -// -RESOURCE TBUF r_videotelui_video_record_start_sound_path - { - buf = KVtStartSoundFile; - } - - -//---------------------------------------------------- -// -// r_videotelui_video_record_stop_sound_path -// Path to a sound file to play when stopping video recording -// -//---------------------------------------------------- -// -RESOURCE TBUF r_videotelui_video_record_stop_sound_path - { - buf = KVtStopSoundFile; - } - -//---------------------------------------------------- -// -// r_disable_video_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_disable_video_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbVideoDisable; - //skinid = KAknsIIDQgnIndiTbVideoDisable; - } - -//---------------------------------------------------- -// -// r_enable_video_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_enable_video_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbVideo; - //skinid = KAknsIIDQgnIndiTbVideo; - } - -//---------------------------------------------------- -// -// r_mute_microphone_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_mute_microphone_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbMicrophoneMute; - //skinid = KAknsIIDQgnIndiTbMicrophoneMute; - } - -//---------------------------------------------------- -// -// r_unmute_microphone_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_unmute_microphone_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbMicrophoneUnmute; - //skinid = KAknsIIDQgnIndiTbMicrophoneUnmute; - } - -//---------------------------------------------------- -// -// r_primary_cam_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_primary_cam_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbCameraMain ; - //skinid = KAknsIIDQgnIndiTbCameraMain; - } - -//---------------------------------------------------- -// -// r_secondary_cam_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_secondary_cam_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbCameraSecondary; - //skinid = KAknsIIDQgnIndiTbCameraSecondary; - } - -//---------------------------------------------------- -// -// r_zoom_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_zoom_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbZoom; - //skinid = KAknsIIDQgnIndiTbZoom; - } - -//---------------------------------------------------- -// -// r_share_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_swap_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbSwapImages; - //skinid = KAknsIIDQgnIndiTbSwapImages; - } - -//---------------------------------------------------- -// -// r_share_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_share_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbGallery; - //skinid = KAknsIIDQgnIndiTbGallery; - } - -//---------------------------------------------------- -// -// r_handset_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_handset_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbHandset; - //skinid = KAknsIIDQgnIndiTbHandset; - } - -//---------------------------------------------------- -// -// r_ihf_on_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_ihf_on_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbIhfOn; - //skinid = KAknsIIDQgnIndiTbIhfOn; - } - -//---------------------------------------------------- -// -// r_bt_hf_button_state_extension -// -//---------------------------------------------------- -// -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_bt_hf_button_state_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiTbBthf; - //skinid = KAknsIIDQgnIndiTbBthf; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_toggle_video_button -// This button disables and enables video. -// This button has two states. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_toggle_video_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE // disable video button (0) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_video_disable; - bmpmask = EMbmVideoteluiQgn_indi_tb_video_disable_mask; - helptxt = qtn_vt_tooltip_disable_video; - extension = r_disable_video_button_state_extension; - }, - AVKON_BUTTON_STATE // disable video button (dummy state) (1) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_video_disable; - bmpmask = EMbmVideoteluiQgn_indi_tb_video_disable_mask; - extension = r_disable_video_button_state_extension; - }, - AVKON_BUTTON_STATE // enable video button (2) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_video; - bmpmask = EMbmVideoteluiQgn_indi_tb_video_mask; - helptxt = qtn_vt_tooltip_enable_video; - extension = r_enable_video_button_state_extension; - }, - AVKON_BUTTON_STATE // enable video button (dummy state) (3) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_video; - bmpmask = EMbmVideoteluiQgn_indi_tb_video_mask; - extension = r_enable_video_button_state_extension; - } - }; - } -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_toggle_microphone_button -// This button mutes and unmutes microphone. -// This button has two states. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_toggle_microphone_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE // mute mic button (0) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_microphone_mute; - bmpmask = EMbmVideoteluiQgn_indi_tb_microphone_mute_mask; - helptxt = qtn_vt_tooltip_mute_microphone; - extension = r_mute_microphone_button_state_extension; - }, - AVKON_BUTTON_STATE // mute mic button (dummy state) (1) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_microphone_mute; - bmpmask = EMbmVideoteluiQgn_indi_tb_microphone_mute_mask; - extension = r_mute_microphone_button_state_extension; - }, - AVKON_BUTTON_STATE // unmute mic button (2) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_microphone_unmute; - bmpmask = EMbmVideoteluiQgn_indi_tb_microphone_unmute_mask; - helptxt = qtn_vt_tooltip_unmute_microphone; - extension = r_unmute_microphone_button_state_extension; - }, - AVKON_BUTTON_STATE // unmute mic button (dummy state) (3) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_microphone_unmute; - bmpmask = EMbmVideoteluiQgn_indi_tb_microphone_unmute_mask; - extension = r_unmute_microphone_button_state_extension; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_toggle_camera_button -// This button changes used camera between primary and secondary. -// This button has two states. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_toggle_camera_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE // primary camera button (0) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_camera_main; - bmpmask = EMbmVideoteluiQgn_indi_tb_camera_main_mask; - helptxt = qtn_vt_tooltip_primary_cam; - extension = r_primary_cam_button_state_extension; - }, - AVKON_BUTTON_STATE // primary camera button (dummy state) (1) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_camera_main; - bmpmask = EMbmVideoteluiQgn_indi_tb_camera_main_mask; - extension = r_primary_cam_button_state_extension; - }, - AVKON_BUTTON_STATE // secondary camera button (2) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_camera_secondary; - bmpmask = EMbmVideoteluiQgn_indi_tb_camera_secondary_mask; - helptxt = qtn_vt_tooltip_secondary_cam; - extension = r_secondary_cam_button_state_extension; - }, - AVKON_BUTTON_STATE // secondary camera button (dummy state) (3) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_camera_secondary; - bmpmask = EMbmVideoteluiQgn_indi_tb_camera_secondary_mask; - extension = r_secondary_cam_button_state_extension; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_swap_images_button -// This button swaps images -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_swap_images_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_swap_images; - bmpmask = EMbmVideoteluiQgn_indi_tb_swap_images_mask; - helptxt = qtn_vt_tooltip_swap_images; - extension = r_swap_button_state_extension; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_activate_zoom_mode_button -// This button activates zoom mode. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_activate_zoom_mode_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_zoom; - bmpmask = EMbmVideoteluiQgn_indi_tb_zoom_mask; - helptxt = qtn_vt_tooltip_zoom; - extension = r_zoom_button_state_extension; - }, - AVKON_BUTTON_STATE - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_zoom; - bmpmask = EMbmVideoteluiQgn_indi_tb_zoom_mask; - flags = KAknButtonStateHasLatchedFrame; - helptxt = qtn_vt_tooltip_zoom; - extension = r_zoom_button_state_extension; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_share_file_button -// This button starts the file sharing. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_share_file_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_gallery; - bmpmask = EMbmVideoteluiQgn_indi_tb_gallery_mask; - helptxt = qtn_vt_tooltip_share; - extension = r_share_button_state_extension; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_snapshot_button -// This button sets capture mode on. -// -// ----------------------------------------------------------------------------- -// -/* Not in use currently -RESOURCE AVKON_BUTTON r_avkonbutton_snapshot_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_cams_tb_capture; - bmpmask = EMbmVideoteluiQgn_indi_cams_tb_capture_mask; - helptxt = qtn_vt_tooltip_send_snapshot; - //extension is also needed here - } - }; - } -*/ - - -// ----------------------------------------------------------------------------- -// -// r_mini_dialer_editor -// This is a resource for a hidden focused editor for minidialer (touch input). -// -// ----------------------------------------------------------------------------- -// -RESOURCE SECRETED r_mini_dialer_editor - { - num_letters=255; - } - -//---------------------------------------------------- -// -// video preference options -// -//---------------------------------------------------- -// -RESOURCE TBUF r_videotelui_qtn_incal_normal_list_option - { - buf = qtn_incal_normal_list_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_details_list_option - { - buf = qtn_incal_details_list_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_motion_list_option - { - buf = qtn_incal_motion_list_option; - } - -//---------------------------------------------------- -// -// white balance options -// -//---------------------------------------------------- -RESOURCE TBUF r_videotelui_qtn_incal_automatic_option - { - buf = qtn_incal_automatic_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_sunny_option - { - buf = qtn_incal_sunny_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_cloudy_option - { - buf = qtn_incal_cloudy_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_incandescent_option - { - buf = qtn_incal_incandescent_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_fluorescent_option - { - buf = qtn_incal_fluorescent_option; - } - -//---------------------------------------------------- -// -// colour tone options -// -//---------------------------------------------------- -RESOURCE TBUF r_videotelui_qtn_incal_ct_normal_option - { - buf = qtn_incal_ct_normal_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_sepia_option - { - buf = qtn_incal_sepia_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_b_and_w_option - { - buf = qtn_incal_b_and_w_option; - } - -RESOURCE TBUF r_videotelui_qtn_incal_negative_option - { - buf = qtn_incal_negative_option; - } - -// --------------------------------------------------------- -// r_videotelui_white_balance_setting_page -// White balance item array for setting page -// -// --------------------------------------------------------- -// -RESOURCE AVKON_SETTING_PAGE r_videotelui_white_balance_setting_page - { - label = qtn_incal_video_white_balance_option; - softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL; - type = EAknSetListBox; - editor_resource_id = r_videotelui_transparent_setting_listbox; - } - -// --------------------------------------------------------- -// r_videotelui_color_tone_setting_page -// White balance item array for setting page -// -// --------------------------------------------------------- -// -RESOURCE AVKON_SETTING_PAGE r_videotelui_color_tone_setting_page - { - label = qtn_incal_video_colour_tone_option; - softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL; - type = EAknSetListBox; - editor_resource_id = r_videotelui_transparent_setting_listbox; - } - -//---------------------------------------------------- -// -// r_videotelui_transparent_setting_listbox -// Listbox for transparent setting page -// -//---------------------------------------------------- -// -RESOURCE LISTBOX r_videotelui_transparent_setting_listbox - { - flags = 0x0001; - } - -// --------------------------------------------------------- -// r_videotelui_video_quality_array -// Item array for the selection list dialog -// -// --------------------------------------------------------- -// -RESOURCE ARRAY r_videotelui_video_quality_array - { - items = - { - LBUF - { - txt = qtn_incal_normal_list_option; - }, - LBUF - { - txt = qtn_incal_details_list_option; - }, - LBUF - { - txt = qtn_incal_motion_list_option; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_select_cancel -// Videoquality softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_select_cancel - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeySelect; - txt= text_softkey_select; - }, - CBA_BUTTON - { - id = EAknSoftkeyCancel; - txt = text_softkey_cancel; - }, - CBA_BUTTON - { - id = EAknSoftkeySelect; - txt= text_softkey_select; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_empty_dialerexit -// Dialer softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_empty_dialerexit - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - }, - CBA_BUTTON - { - id = EVtUiDialerExit; - txt = text_softkey_back; - }, - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -//r_videotelui_softkeys_empty_active_command -// Dialer softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_empty_active_command - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - }, - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - }, - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_avkonbutton_audio_routing_button -// This button changes audio routing. -// -// ----------------------------------------------------------------------------- -// -RESOURCE AVKON_BUTTON r_avkonbutton_audio_routing_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE // Deactivate loudspeaker (0) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_handset; - bmpmask = EMbmVideoteluiQgn_indi_tb_handset_mask; - helptxt = qtn_vt_tooltip_audio_handset; - extension = r_handset_button_state_extension; - }, - AVKON_BUTTON_STATE // Deactivate loudspeaker (dummy state) (1) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_handset; - bmpmask = EMbmVideoteluiQgn_indi_tb_handset_mask; - extension = r_handset_button_state_extension; - }, - AVKON_BUTTON_STATE // Deactivate bthf == Activate loudspkr (2) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_ihf_on; - bmpmask = EMbmVideoteluiQgn_indi_tb_ihf_on_mask; - helptxt = qtn_vt_tooltip_audio_loudspeaker; - extension = r_ihf_on_button_state_extension; - }, - AVKON_BUTTON_STATE // Deactivate bthf (dummy state) (3) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_ihf_on; - bmpmask = EMbmVideoteluiQgn_indi_tb_ihf_on_mask; - extension = r_ihf_on_button_state_extension; - }, - AVKON_BUTTON_STATE // Activate loudspeaker (4) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_ihf_on; - bmpmask = EMbmVideoteluiQgn_indi_tb_ihf_on_mask; - helptxt = qtn_vt_tooltip_audio_loudspeaker; - extension = r_ihf_on_button_state_extension; - }, - AVKON_BUTTON_STATE // Activate loudspeaker (dummy state) (5) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_ihf_on; - bmpmask = EMbmVideoteluiQgn_indi_tb_ihf_on_mask; - extension = r_ihf_on_button_state_extension; - }, - AVKON_BUTTON_STATE // Activate bt hf (6) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_bthf; - bmpmask = EMbmVideoteluiQgn_indi_tb_bthf_mask; - helptxt = qtn_vt_tooltip_audio_bthf; - extension = r_bt_hf_button_state_extension; - }, - AVKON_BUTTON_STATE // Activate bt hf (dummy state) (7) - { - bmpfile = "Z:"APP_BITMAP_DIR"\\videotelui.mif"; - bmpid = EMbmVideoteluiQgn_indi_tb_bthf; - bmpmask = EMbmVideoteluiQgn_indi_tb_bthf_mask; - extension = r_bt_hf_button_state_extension; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_videotelui_softkeys_dialer -// Options & Dialer open softkeys -// -// ----------------------------------------------------------------------------- -// -RESOURCE CBA r_videotelui_softkeys_dialer - { - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EVtUiCmdSendDTMF; - txt = qtn_incal_softk_dialer; - }, - CBA_BUTTON - { - id = EAknSoftkeyContextOptions; - txt = text_softkey_empty; - } - }; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/videotelui_caption.rss --- a/vtuis/videotelui/data/videotelui_caption.rss Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2004 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: Captions for Video Telephone application. -* -*/ - - - -// INCLUDES -#include -#include "videotelui.loc" - -// RESOURCE DEFINITIONS - -// ----------------------------------------------------------------------------- -// -// CAPTION_DATA -// Captions for Video Telephone application. -// -// ----------------------------------------------------------------------------- -// -RESOURCE CAPTION_DATA - { - caption = qtn_apps_videophone_grid; - shortcaption = qtn_apps_videophone_grid; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/videotelui_reg.rss --- a/vtuis/videotelui/data/videotelui_reg.rss Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2004 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: Registration file for Video Telephone application. -* -*/ - - -#include -#include -#include - -UID2 KUidAppRegistrationResourceFile -UID3 0x101F8681 // application UID - -RESOURCE APP_REGISTRATION_INFO - { - app_file = "videotelui"; - hidden = KAppIsHidden; - localisable_resource_file = - APP_RESOURCE_DIR"\\videotelui"; - localisable_resource_id = R_VIDEOTELUI_LOCALISABLE_APP_INFO; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/videotelui_stub.SIS Binary file vtuis/videotelui/data/videotelui_stub.SIS has changed diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/data/videotelui_stub.pkg --- a/vtuis/videotelui/data/videotelui_stub.pkg Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -; -; Copyright (c) 2009 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: -; -; Languages -&EN - -; Header -#{"videotelui"}, (0x101F8681), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\videotelui.exe" -""-"z:\resource\apps\videotelui.rsc" -""-"z:\resource\apps\videotelui_aif.mif" -""-"z:\resource\apps\videotelui.mif" -""-"z:\private\10003a3f\import\apps\videotelui_reg.rsc" \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/bld.inf --- a/vtuis/videotelui/group/bld.inf Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Build information for Video Telephone application. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../inc/VideoTelephonyVariant.hrh |../../../inc/videotelephonyvariant.hrh -../inc/VideoTelephonyInternalCRKeys.h |../../../inc/videotelephonyinternalcrkeys.h -../data/videotelui_stub.SIS /epoc32/data/z/system/install/videotelui_stub.sis - -// Export LOC file -../loc/videotelui.loc APP_LAYER_LOC_EXPORT_PATH(videotelui.loc) - -// Export IBY files -../rom/videotelui.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videotelui.iby) -../rom/videoteluiResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(videoteluiresources.iby) - -// Generic configuration interface for component cenrep settings - -../conf/s60videotelephony.confml APP_LAYER_CONFML(s60videotelephony.confml) -../conf/s60videotelephony_102072D0.crml APP_LAYER_CRML(s60videotelephony_102072d0.crml) -../conf/s60videotelephony_10281872.crml APP_LAYER_CRML(s60videotelephony_10281872.crml) - - -#if defined ( RD_VT_RTF ) -../Data/VtStartRecord.wav /epoc32/release/winscw/urel/z/system/sounds/digital/VtStartRecord.wav -../Data/VtStartRecord.wav /epoc32/release/winscw/udeb/z/system/sounds/digital/VtStartRecord.wav -../Data/VtStartRecord.wav /epoc32/release/armv5/urel/z/system/sounds/digital/VtStartRecord.wav -../Data/VtStartRecord.wav /epoc32/release/armv5/udeb/z/system/sounds/digital/VtStartRecord.wav - -../Data/VtStopRecord.wav /epoc32/release/winscw/urel/z/system/sounds/digital/VtStopRecord.wav -../Data/VtStopRecord.wav /epoc32/release/winscw/udeb/z/system/sounds/digital/VtStopRecord.wav -../Data/VtStopRecord.wav /epoc32/release/armv5/urel/z/system/sounds/digital/VtStopRecord.wav -../Data/VtStopRecord.wav /epoc32/release/armv5/udeb/z/system/sounds/digital/VtStopRecord.wav -#endif //RD_VT_RTF - -PRJ_EXTENSIONS -START EXTENSION s60/mifconv - OPTION TARGETFILE videotelui.mif - OPTION HEADERFILE videotelui.mbg - OPTION SOURCES \ - -c8,8 qgn_graf_call_video_out_bg -c8 qgn_indi_call_video_blind_in -c8 qgn_indi_call_video_blind_out \ - /1 qgn_graf_zoom_area -c8,1 qgn_indi_zoom_dir -c8 qgn_indi_zoom_min \ - -c8 qgn_indi_zoom_max -8 qgn_indi_call_video_blind_in_mask_icon -8 qgn_indi_call_video_blind_out_mask_icon \ - -c8,8 qgn_indi_tb_camera_main -c8,8 qgn_indi_tb_camera_secondary -c8,8 qgn_indi_tb_gallery \ - -c8,8 qgn_indi_tb_microphone_mute -c8,8 qgn_indi_tb_microphone_unmute -c8,8 qgn_indi_tb_swap_images \ - -c8,8 qgn_indi_tb_video -c8,8 qgn_indi_tb_video_disable -c8,8 qgn_indi_tb_zoom \ - -c8,8 qgn_indi_cams_tb_capture -c8,8 qgn_indi_tb_ihf_on -c8,8 qgn_indi_tb_handset \ - -c8,8 qgn_indi_tb_bthf -END - -START EXTENSION s60/mifconv - OPTION TARGETFILE videotelui_aif.mif - OPTION SOURCES -c8,8 qgn_menu_call_video -END - - - -PRJ_MMPFILES -/* -gnumakefile ../group/videotelui_icons_dc.mk -#ifdef __SCALABLE_ICONS -gnumakefile ../group/videotelui_icons_aif_scalable_dc.mk -#else -gnumakefile ../group/videotelui_icons_aif_bitmaps_dc.mk -#endif -*/ -../group/videotelui.mmp - - - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui.mmp --- a/vtuis/videotelui/group/videotelui.mmp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,249 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Project specification for Video Telephone application. -* -*/ - - -#include -#include - -// Capability assignment. -CAPABILITY CAP_APPLICATION MultiMediaDD NetworkControl CommDD - -// Assign Vendor ID. -VENDORID VID_DEFAULT - -TARGET videotelui.exe -TARGETTYPE exe -EPOCSTACKSIZE 0x5000 -EPOCHEAPSIZE 0x190000 0x500000 -UID 0x100039CE 0x101F8681 - -SOURCEPATH ../src -SOURCE CVtUiApp.cpp -SOURCE CVtUiAppUi.cpp -SOURCE CVtUiDoc.cpp -SOURCE CVtUiMainControl.cpp -SOURCE CVtUiContextControl.cpp -SOURCE CVtUiNaviPane.cpp -SOURCE CVtUiNaviPaneControl.cpp -SOURCE VtUiLayout.cpp -SOURCE VtUiUtility.cpp -SOURCE VtUiPanic.cpp -SOURCE CVtUiBlankControl.cpp -SOURCE CVtUiBlankDialog.cpp -SOURCE CVtUiExecuteCmdDialog.cpp -SOURCE CVtUiMutedControl.cpp -SOURCE CVtUiZoomControl.cpp -SOURCE CVtUiAllowVideoDialog.cpp -SOURCE CVtUiActiveExec.cpp -SOURCE CVtUiActivateBtHfDialog.cpp -SOURCE TVtUiCallParameters.cpp -SOURCE CVtUiNumberEntryActivationControl.cpp -SOURCE CVtUiBitmapManager.cpp - -SOURCE tvtuiappstatebase.cpp -SOURCE tvtuistatestarting.cpp -SOURCE tvtuistaterunning.cpp -SOURCE tvtuistateresetting.cpp -SOURCE cvtuiappshutter.cpp -SOURCE cvtuivideocontrolbase.cpp -SOURCE cvtuidtmfbuffer.cpp -SOURCE CVtUiRemoteVideoControl.cpp - -// COMMAND FW -SOURCEPATH ../src/commands -SOURCE cvtuicmdbase.cpp -SOURCE cvtuifeaturecmdbase.cpp -SOURCE cvtuicmdcontext.cpp -SOURCE cvtuicmdvalidationactionbase.cpp -SOURCE cvtuicmdvalidatorbase.cpp -SOURCE cvtuicommandpolicymanager.cpp -SOURCE cvtuiprimarycmdpolicy.cpp -SOURCE cvtuicommandmanager.cpp -SOURCE tvtuimediastate.cpp -SOURCE tvtuiaudiostate.cpp -SOURCE tvtuilocalvariation.cpp -SOURCE tvtuistates.cpp -SOURCE cvtuicommandmodifybase.cpp -SOURCE cvtuicmdcustomvalidationactionbase.cpp -SOURCE cvtuicmdstatecheckaction.cpp -SOURCE cvtuiexecutioncontext.cpp -SOURCE tVtuifeaturevariation.cpp - -// FEATURE FW -SOURCEPATH ../src/features -SOURCE cvtuifeaturebase.cpp -SOURCE cvtuifeaturemanager.cpp - -SOURCEPATH ../src/features/toolbar -SOURCE cvtuitoolbarbase.cpp -SOURCE cvtuitoolbarcontext.cpp -SOURCE cvtuihidetoolbaritemaction.cpp -SOURCE tvtuitoolbarcommanditerator.cpp -SOURCE cvtuitoolbarskmodifier.cpp -SOURCE cvtuitoolbarbutton.cpp -SOURCE cvtuitoolbarcmdpolicy.cpp -SOURCE cvtuifloatingtoolbar.cpp -SOURCE cvtuifixedtoolbar.cpp - - -SOURCEPATH ../src/features/menu -SOURCE cvtuimenus.cpp -SOURCE cvtuimenucontext.cpp -SOURCE cvtuimenuitemdimmeraction.cpp -SOURCE tvtuimenucommanditerator.cpp - -SOURCEPATH ../src/features/softkey -SOURCE cvtuisoftkeys.cpp -SOURCE cvtuisoftkeycontext.cpp -SOURCE cvtuisoftkeyvalidationaction.cpp -SOURCE cvtuisoftkeysetting.cpp - - -SOURCEPATH ../src/features/numberentry -SOURCE cvtuinumberentry.cpp -SOURCE CVtUiNumberEntryControl.cpp - -SOURCEPATH ../src/features/prefs -SOURCE cvtuitransparentsettingpage.cpp -SOURCE cvtuiprefsettinglistbase.cpp -SOURCE cvtuiwhitebalance.cpp -SOURCE cvtuicolortone.cpp -SOURCE cvtuivideoquality.cpp -SOURCE cvtuiprefpopupbase.cpp -SOURCE cvtuiprefsliderbase.cpp -SOURCE cvtuibrightness.cpp -SOURCE cvtuibrightnesspopup.cpp -SOURCE cvtuicontrast.cpp -SOURCE cvtuicontrastpopup.cpp - -SOURCEPATH ../src/features/dialer -SOURCE cvtuidialer.cpp -SOURCE cvtuidialervideocontrol.cpp -SOURCE cvtuidialercontainer.cpp -SOURCE cvtuicmdopendialer.cpp -SOURCE cvtuicmdclosedialer.cpp -SOURCE cvtuidialerskmodifier.cpp - -// COMPONENT MANAGER FW -SOURCEPATH ../src/compman -SOURCE cvtuicomponentmanager.cpp -SOURCE tvtuicomponentstate.cpp -SOURCE tvtuiblocklists.cpp - -// SLIDERS -SOURCEPATH ../src/sliders -SOURCE cvtuipopupbase.cpp -SOURCE cvtuisliderbase.cpp - -// VOLUME SLIDER -SOURCEPATH ../src/features/volume -SOURCE cvtuivolume.cpp -SOURCE cvtuivolumepopup.cpp -SOURCE cvtuivolumecontrol.cpp - -// ZOOM SLIDER -SOURCEPATH ../src/features/zoom -SOURCE cvtuizoom.cpp -SOURCE cvtuizoompopup.cpp - -SOURCEPATH ../data - -START RESOURCE videotelui.rss -HEADER -TARGETPATH APP_RESOURCE_DIR -LANGUAGE_IDS -END - -START RESOURCE videotelui_reg.rss -DEPENDS videotelui.rsg -TARGETPATH /private/10003a3f/apps -END - -USERINCLUDE ../inc -USERINCLUDE ../inc/commands -USERINCLUDE ../inc/features -USERINCLUDE ../inc/compman -USERINCLUDE ../inc/features/softkey -USERINCLUDE ../inc/features/menu -USERINCLUDE ../inc/features/toolbar -USERINCLUDE ../inc/features/numberentry -USERINCLUDE ../inc/features/prefs -USERINCLUDE ../inc/features/dialer -USERINCLUDE ../inc/features/volume -USERINCLUDE ../inc/features/zoom -USERINCLUDE ../inc/sliders -USERINCLUDE ../loc - -SYSTEMINCLUDE ../../../inc -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY apparc.lib -LIBRARY cone.lib -LIBRARY eikcore.lib -LIBRARY ws32.lib -LIBRARY eikcoctl.lib -LIBRARY apgrfx.lib -LIBRARY fbscli.lib -LIBRARY eikdlg.lib -LIBRARY gdi.lib -LIBRARY bitgdi.lib -LIBRARY egul.lib -LIBRARY ecom.lib - -LIBRARY aknlayout.lib -LIBRARY aknlayout2.lib -LIBRARY avkon.lib -LIBRARY aknskins.lib -LIBRARY aknnotify.lib - -LIBRARY hlplch.lib -LIBRARY featmgr.lib -LIBRARY commonengine.lib -LIBRARY centralrepository.lib - - -LIBRARY videoteleng.lib -DEBUGLIBRARY vtlogger.lib - -LIBRARY phoneclient.lib - -LIBRARY cdlengine.lib -LIBRARY aknicon.lib -LIBRARY aknlayout2scalable.lib - -LIBRARY mgfetch.lib -LIBRARY bafl.lib -LIBRARY caf.lib -LIBRARY cafutils.lib -LIBRARY eikctl.lib -LIBRARY fepbase.lib - -LIBRARY remconinterfacebase.lib -LIBRARY remconcoreapi.lib - -LIBRARY dialer.lib - -LIBRARY gfxtrans.lib - -SOURCEPATH ../loc -DOCUMENT videotelui.loc - -SOURCEPATH ../inc -DOCUMENT videotelui.hrh - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui_icons.mk --- a/vtuis/videotelui/group/videotelui_icons.mk Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -# -# Copyright (c) 2004 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: Makefile to generate icon file for Video -# Telephone application. -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z -else -ZDIR=\epoc32\data\z -endif - -TARGETDIR=$(ZDIR)\system\apps\videotelui -HEADERDIR=\epoc32\include -ICONTARGETFILENAME=$(TARGETDIR)\videotelui.mif -HEADERFILENAME=$(HEADERDIR)\videotelui.mbg - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- - -RESOURCE : - mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \ - /c8,8 qgn_graf_call_video_out_bg.bmp \ - /c8 qgn_indi_call_video_blind_in.bmp \ - /c8 qgn_indi_call_video_blind_out.bmp \ - /1 qgn_graf_zoom_area.bmp \ - /c8,1 qgn_indi_zoom_dir.bmp \ - /c8 qgn_indi_zoom_min.bmp \ - /c8 qgn_indi_zoom_max.bmp \ - /8 qgn_indi_call_video_blind_in_mask_icon.bmp \ - /8 qgn_indi_call_video_blind_out_mask_icon.bmp \ - /c8 qgn_indi_tb_camera_main.bmp \ - /c8 qgn_indi_tb_camera_secondary.bmp \ - /c8 qgn_indi_tb_gallery.bmp \ - /c8 qgn_indi_tb_microphone_mute.bmp \ - /c8 qgn_indi_tb_microphone_unmute.bmp \ - /c8 qgn_indi_tb_swap_images.bmp \ - /c8 qgn_indi_tb_video.bmp \ - /c8 qgn_indi_tb_video_disable.bmp \ - /c8 qgn_indi_tb_zoom.bmp \ - /c8 qgn_indi_cams_tb_capture.bmp \ - /c8 qgn_indi_tb_ihf_on.bmp \ - /c8 qgn_indi_tb_handset.bmp \ - /c8 qgn_indi_tb_bthf.bmp - - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(HEADERFILENAME)&& \ - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing - -# End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui_icons_aif_bitmaps.mk --- a/vtuis/videotelui/group/videotelui_icons_aif_bitmaps.mk Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -# -# Copyright (c) 2004-2005 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: Makefile to generate AIF icons for bitmap version. -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z -else -ZDIR=\epoc32\data\z -endif - -TARGETDIR=$(ZDIR)\system\apps\videotelui -ICONTARGETFILENAME=$(TARGETDIR)\videotelui_aif.mbm - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- - -RESOURCE : - mifconv $(ICONTARGETFILENAME) \ - /c8,8 qgn_menu_call_video_lst.bmp - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui_icons_aif_bitmaps_dc.mk --- a/vtuis/videotelui/group/videotelui_icons_aif_bitmaps_dc.mk Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -# -# Copyright (c) 2004-2005 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: Makefile to generate AIF icons for bitmap version. -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z -else -ZDIR=\epoc32\data\z -endif - -TARGETDIR=$(ZDIR)\resource\apps -ICONTARGETFILENAME=$(TARGETDIR)\videotelui_aif.mbm - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- - -RESOURCE : - mifconv $(ICONTARGETFILENAME) \ - /c8,8 qgn_menu_call_video_lst.bmp - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui_icons_aif_scalable.mk --- a/vtuis/videotelui/group/videotelui_icons_aif_scalable.mk Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -# -# Copyright (c) 2004-2005 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: Makefile to generate AIF icons for scalable version. -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z -else -ZDIR=\epoc32\data\z -endif - -TARGETDIR=$(ZDIR)\system\apps\videotelui -ICONTARGETFILENAME=$(TARGETDIR)\videotelui_aif.mif - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- - -RESOURCE : - mifconv $(ICONTARGETFILENAME) \ - /c8,8 qgn_menu_call_video.svg - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui_icons_aif_scalable_dc.mk --- a/vtuis/videotelui/group/videotelui_icons_aif_scalable_dc.mk Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -# -# Copyright (c) 2004-2005 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: Makefile to generate AIF icons for scalable version. -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z -else -ZDIR=\epoc32\data\z -endif - -TARGETDIR=$(ZDIR)\resource\apps -ICONTARGETFILENAME=$(TARGETDIR)\videotelui_aif.mif - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- - -RESOURCE : - mifconv $(ICONTARGETFILENAME) \ - /c8,8 qgn_menu_call_video.svg - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/group/videotelui_icons_dc.mk --- a/vtuis/videotelui/group/videotelui_icons_dc.mk Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -# -# Copyright (c) 2004-2005 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: Makefile to generate icon file for Video -# Telephone application. -# - -ifeq (WINS,$(findstring WINS, $(PLATFORM))) -ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z -else -ZDIR=\epoc32\data\z -endif - -TARGETDIR=$(ZDIR)\resource\apps -HEADERDIR=\epoc32\include -ICONTARGETFILENAME=$(TARGETDIR)\videotelui.mif -HEADERFILENAME=$(HEADERDIR)\videotelui.mbg - -do_nothing : - @rem do_nothing - -MAKMAKE : do_nothing - -BLD : do_nothing - -CLEAN : do_nothing - -LIB : do_nothing - -CLEANLIB : do_nothing - -# ---------------------------------------------------------------------------- -# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by -# MifConv if the mask detph is defined. -# -# NOTE 2: Usually, source paths should not be included in the bitmap -# definitions. MifConv searches for the icons in all icon directories in a -# predefined order, which is currently \s60\icons, \s60\bitmaps2. -# The directory \s60\icons is included in the search only if the feature flag -# __SCALABLE_ICONS is defined. -# ---------------------------------------------------------------------------- -RESOURCE : - mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \ - /c8,8 qgn_graf_call_video_out_bg.bmp \ - /c8 qgn_indi_call_video_blind_in.bmp \ - /c8 qgn_indi_call_video_blind_out.bmp \ - /1 qgn_graf_zoom_area.bmp \ - /c8,1 qgn_indi_zoom_dir.bmp \ - /c8 qgn_indi_zoom_min.bmp \ - /c8 qgn_indi_zoom_max.bmp \ - /8 qgn_indi_call_video_blind_in_mask_icon.bmp \ - /8 qgn_indi_call_video_blind_out_mask_icon.bmp \ - /c8,8 qgn_indi_tb_camera_main.bmp \ - /c8,8 qgn_indi_tb_camera_secondary.bmp \ - /c8,8 qgn_indi_tb_gallery.bmp \ - /c8,8 qgn_indi_tb_microphone_mute.bmp \ - /c8,8 qgn_indi_tb_microphone_unmute.bmp \ - /c8,8 qgn_indi_tb_swap_images.bmp \ - /c8,8 qgn_indi_tb_video.bmp \ - /c8,8 qgn_indi_tb_video_disable.bmp \ - /c8,8 qgn_indi_tb_zoom.bmp \ - /c8,8 qgn_indi_cams_tb_capture.bmp \ - /c8,8 qgn_indi_tb_ihf_on.bmp \ - /c8,8 qgn_indi_tb_handset.bmp \ - /c8,8 qgn_indi_tb_bthf.bmp - - -FREEZE : do_nothing - -SAVESPACE : do_nothing - -RELEASABLES : - @echo $(HEADERFILENAME)&& \ - @echo $(ICONTARGETFILENAME) - -FINAL : do_nothing - -# End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiActivateBtHfDialog.h --- a/vtuis/videotelui/inc/CVtUiActivateBtHfDialog.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* Copyright (c) 2004 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: Bluetooth HF activation dialog for Video Telephone application. -* -*/ - - - -#ifndef CVTUIACTIVATEBTHFDIALOG_H -#define CVTUIACTIVATEBTHFDIALOG_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -class MVtEngCommandHandler; -class MVtUiEngineCommandManager; - -// CLASS DECLARATION - -/** -* Bluetooth HF activation dialog for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiActivateBtHfDialog - : public CAknWaitDialog, - private MVtEngCommandObserver - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aSelfPtr optional pointer to itself. - * @param aError optional pointer to error code variable. - * @param aCommandHandler command handler. - * @param aCommandManager command manager. - */ - CVtUiActivateBtHfDialog( - CEikDialog** aSelfPtr, - TInt* aError, - MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager ); - - /** - * Destructor. - */ - ~CVtUiActivateBtHfDialog(); - - public: // New functions - - /** - * Executes bluetooth activation dialog. - */ - void ExecuteDialogLD(); - - protected: // Functions from base classes - - /** - * @see CEikDialog::PostLayoutDynInitL. - */ - virtual void PostLayoutDynInitL(); - - private: - - /** - * @see MVtEngCommandObserver::HandleVTCommandPerformedL. - */ - virtual void HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ); - - private: - - // Reference to command handler. - MVtEngCommandHandler& iCommandHandler; - - // Reference to command manager. - MVtUiEngineCommandManager& iCommandManager; - - // ETrue if command is performed. - TBool iCommandPerformed; - - // Pointer to error code variable. - TInt* iError; - - // Audio routing setting. - TPckgBuf< MVtEngAudio::TVtEngRoutingSetting > iAudioRouting; - - }; - -#endif // CVTUIACTIVATEBTHFDIALOG_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiActiveExec.h --- a/vtuis/videotelui/inc/CVtUiActiveExec.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* Copyright (c) 2004 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: Asynchronous execution class for Video Telephone application. -* -*/ - - - -#ifndef CVTUIACTIVEEXEC_H -#define CVTUIACTIVEEXEC_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CVtUiActiveExec; - -// CLASS DECLARATION - -/** -* Interface for asynchronous execution. -* -* @since Series 60 2.6 -*/ -class MVtUiActiveExec - { - public: // New functions - - /** - * Starts execution of a command. - * @param aActiveExec active executor. - * @param aState state based on which execution can be started. - * @param aNextState next state. - * @param aRequest request status, which should be used if operation is - * asynchronous. - * @return ETrue if operation was synchronous, otherwise EFalse. - */ - virtual TBool ActiveExecExecuteL( - CVtUiActiveExec& aActiveExec, - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ) = 0; - - /** - * Decide whether to continue or not. - * @param aActiveExec active executor. - * @param aState current state, should be updated to new state. - * @param aError error code. - * @return ETrue if continued, EFalse if stopped. - */ - virtual TBool ActiveExecContinue( - CVtUiActiveExec& aActiveExec, - TInt& aState, - const TInt aError ) = 0; - - /** - * Cancels operation of specific state. - * @param aActiveExec active executor. - * @param aState state. - */ - virtual void ActiveExecCancel( - CVtUiActiveExec& aActiveExec, - const TInt aState ) = 0; - - /** - * Informs that operation has been finished. - * @param aActiveExec active executor. - * @param aInitialState initial state. - */ - virtual void ActiveExecDone( - CVtUiActiveExec& aActiveExec, - const TInt aInitialState ) = 0; - - }; - -/** -* Asynchronous execution class for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiActiveExec - : public CActive - { - public: // Constructors and destructor - - /** - * Constructor. - * @param aPriority priority of the active object. - */ - CVtUiActiveExec( - const TInt aPriority ); - - /** - * Destructor. - */ - ~CVtUiActiveExec(); - - public: // New functions - - /** - * Starts execution. - * @param aStartState initial state. - * @param aExec executor. - */ - void Start( - TInt aStartState, - MVtUiActiveExec& aExec ); - - /** - * Initial state of currently - * active operation. - * - * @return initial state, or KErrNotFound if no operation ongoing. - */ - TInt InitialState() const; - - /** - * Returns request status. - * @return request status. - */ - TInt RequestStatus() const; - - public: // Functions from base classes - - /** - * @see CActive::RunL. - */ - virtual void RunL(); - - /** - * @see CActive::DoCancel. - */ - virtual void DoCancel(); - - /** - * @see CActive::RunError. - */ - virtual TInt RunError( TInt aError ); - - private: - - // Ref to active executor. - MVtUiActiveExec* iActiveExec; - - // Initial state. - TInt iInitialState; - - // Current state. - TInt iCurrentState; - - // Next state. - TInt iNextState; - - }; - -#endif // CVTUIACTIVEEXEC_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiAllowVideoDialog.h --- a/vtuis/videotelui/inc/CVtUiAllowVideoDialog.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2004 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: 'Allow video image' query for Video Telephone application. -* -*/ - - - -#ifndef CVTUIALLOWVIDEODIALOG_H -#define CVTUIALLOWVIDEODIALOG_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* 'Allow video image' query for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiAllowVideoDialog - : public CAknQueryDialog - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aSelfPtr optional pointer to itself. - * @param aTone tone to be played. - */ - CVtUiAllowVideoDialog( - CEikDialog** aSelfPtr, - const TTone& aTone ); - - /** - * Destructor. - */ - ~CVtUiAllowVideoDialog(); - - public: // New functions - - /** - * Enumerates different results which - * can be completed to request status. - */ - enum TResult - { - // Query was canceled. - EQueryCanceled = 1, - // Query was dismissed due to timeout. - EQueryDismissedTimeout, - // User denied video sending. - EUserDenied, - // User allowed video sending. - EUserAllowed - }; - - /** - * Runs dialog. - * @param aStatus request status. - */ - void ExecuteDialogLD( - TRequestStatus& aStatus ); - - protected: // Functions from base classes - - /** - * @see CAknQueryDialog::PostLayoutDynInitL. - */ - virtual void PostLayoutDynInitL(); - - /** - * @see CAknQueryDialog::OkToExitL. - */ - virtual TBool OkToExitL( TInt aCommand ); - - private: - - /** - * Callback function. Called when this query - * is dismissed. - * @param aAny pointer to instance of this class. - * @return KErrNone. - */ - static TInt DoDismissDialogTimeoutL( TAny* aAny ); - - private: - - // Pointer to pointer to this instance. - CEikDialog** iSelfPtr; - - // Timer for dismissing the query after timeout. - CPeriodic* iQueryTimer; - - // Request status. - TRequestStatus* iRequestStatus; - - }; - -#endif // CVTUIALLOWVIDEODIALOG_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiApp.h --- a/vtuis/videotelui/inc/CVtUiApp.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2004 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: Application class for Video Telephone application. -* -*/ - - - -#ifndef CVTUIAPP_H -#define CVTUIAPP_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Application class for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiApp - : public CAknApplication - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - CVtUiApp(); - - public: // Functions from base classes - - /** - * From CAknApplication, creates document instance. - * @return document instance. - */ - virtual CApaDocument* CreateDocumentL(); - - /** - * From CAknApplication, returns UID of the application. - * @return UID of the application. - */ - virtual TUid AppDllUid() const; - - }; - -#endif // CVTUIAPP_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiAppUi.h --- a/vtuis/videotelui/inc/CVtUiAppUi.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1469 +0,0 @@ -/* -* Copyright (c) 2004-2008 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: Application UI class for Video Telephone application. -* -*/ - - - -#ifndef CVTUIAPPUI_H -#define CVTUIAPPUI_H - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "CVtUiActiveExec.h" -#include "tvtuilocalvariation.h" -#include "tvtuiappstatebase.h" - - -// FORWARD DECLARATION -class CVtUiBlankControl; -class CAknNavigationControlContainer; -class CAknTitlePane; -class CVtEngModel; -class MVtUiVideoWindow; -class CRepository; -class CAknQueryDialog; -class CAknProgressDialog; -class TVtUiStates; -class CVtUiCommandManager; -class CVtUiComponentManager; -class CVtUiFeatureManager; // TOOLBAR MOD -class MVtUiNumberSource; -class CVtUiMainControl; -class CVtUiContextControl; -class CVtUiBitmapManager; -class CVtUiVolumeControl; -class CAknIncallBubble; -class CVtUiRemoteVideoControl; - -// CLASS DECLARATION - -/** -* Application UI class for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiAppUi - : public CAknAppUi, - protected MVtUiActiveExec, - public MVtUiStateContext, - public MProgressDialogCallback - { - public: - - // Rendering modes - enum TRenderingMode - { - ERenderingModeDefault, - ERenderingModeDialer - }; - - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtUiAppUi(); - - /** - * Symbian constructor. - */ - void ConstructL(); - - /** - * C++ destructor. - */ - ~CVtUiAppUi(); - - public: // New functions - - /* - * This function decides possibility of swapimg image places. - */ - TBool CanSwapImagePlaces(); - - /* - * Switches status pane between flat and normal one. - */ - void SwitchLayoutToFlatStatusPaneL( TBool aSwitch ); - - /** - * Refreshes all. - */ - void RefreshL(); - - /** - * Refreshes navi pane. - */ - void RefreshNaviPaneL(); - - /** - * Refreshes softkeys. - */ - void RefreshSoftkeysL(); - - /** - * Refreshes menu. - */ - void RefreshMenuL(); - - /** - * Refresh zoom popup - */ - void RefreshZoomPopupL(); - - /** - * Stop brightness or Contrast - */ - void StopBrightnessOrContrast(); - /** - * Refreshes blind flags. - */ - void RefreshBlind(); - - /** - * Refreshes synchronisation. - */ - void RefreshSynchronise(); - - /** - * Opens number entry. - * @return ETrue if number entry opened. - */ - TBool OpenNumberEntryL(); - - /** - * Handles EKeyPhoneSend presses - */ - TKeyResponse HandlePhoneSendKeyL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * Returns pointer to cba. - */ - CEikButtonGroupContainer* GetCba(); - - /** - * Sets zoom mode. - * @param aEnableZoomMode Etrue if zoom mode is on. - * EFalse otherwise. - * @param aIsPermanent ETrue if zoomindicator's timeout - * should be ignored. EFalse otherwise.. - */ - void SetZoomModeL( const TBool aEnableZoomMode, - const TBool aIsPermanent = EFalse ); - - /** - * Checks if command is active. - * @param aCommand Command id. - * @return Etrue if command is active - * EFalse otherwise. - */ - TBool IsActiveCommand( TInt aCommand ) const; - - TVtUiAppStateBase& State(); - - /** - * Returns reference to bitmap manager. - */ - CVtUiBitmapManager& BitmapManager(); - - /** - * Sets given zoom step, if it allowed. - * @param aZoomStep New zoom step to be set. - */ - void SetZoomFactorL( TInt aZoomStep ); - - public: // Functions from base classes - - /** - * From CAknAppUi, handles window server events. - * @param aEvent event. - * @param aDestination destination control. - */ - virtual void HandleWsEventL( - const TWsEvent& aEvent, - CCoeControl* aDestination ); - - /** - * From CAknAppUi, processes commands. - * @param aCommand the identifier of the command to be handled. - */ - virtual void ProcessCommandL( - TInt aCommand ); - - /** - * From CAknAppUi, handles commands. - * @param aCommand the identifier of the command to be handled. - */ - virtual void HandleCommandL( - TInt aCommand ); - - /** - * From CAknAppUi, handles dynamic initialisation of menu panes. - * @param aResourceId the resource identifier for the pane. - * @param aMenuPane the menu pane corresponding to the resource. - */ - virtual void DynInitMenuPaneL( - TInt aResourceId, - CEikMenuPane* aMenuPane ); - - /** - * From CAknAppUi, handles key events. - * @param aKeyEvent event to be handled. - * @param aType type of the key event. - * @return response code (EKeyWasConsumed, EKeyWasNotConsumed) - */ - virtual TKeyResponse HandleKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * From CAknAppUi, handles resouce changes. - * @param aType type of resource change. - */ - virtual void HandleResourceChangeL( TInt aType ); - - /** - * From CAknAppUi, handles foreground status changes. - * @param aForeground ETrue if foreground. - */ - virtual void HandleForegroundEventL( TBool aForeground ); - - /** - * Returns a pointer to CEikonEnv. - */ - CEikonEnv* GetEikonEnv(); - - protected: // Functions from base classes - - /** - * From CAknAppUi, returns help context. - * @return help context. - */ - virtual CArrayFix* HelpContextL() const; - - /** - * @see MVtUiActiveExec::ActiveExecExecuteL. - */ - virtual TBool ActiveExecExecuteL( - CVtUiActiveExec& aActiveExec, - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ); - - /** - * @see MVtUiActiveExec::ActiveExecContinue. - */ - virtual TBool ActiveExecContinue( - CVtUiActiveExec& aActiveExec, - TInt& aState, - const TInt aError ); - - /** - * @see MVtUiActiveExec::ActiveExecCancel. - */ - virtual void ActiveExecCancel( - CVtUiActiveExec& aActiveExec, - const TInt aState ); - - /** - * @see MVtUiActiveExec::ActiveExecDone. - */ - virtual void ActiveExecDone( - CVtUiActiveExec& aActiveExec, - const TInt aInitialState ); - - public: // from MVtUiStateContext - - /** @see MVtUiStateContext::StartupPhase1L */ - virtual void StartupPhase1L(); - - /** @see MVtUiStateContext::ShutdownL */ - virtual void ShutdownL(); - - /** @see MVtUiStateContext::StartupPhase2L */ - virtual void StartupPhase2L(); - - /** @see MVtUiStateContext::ChangeApplicationFocus */ - virtual void ChangeApplicationFocus( const TBool aForeground ); - - /** @see MVtUiStateContext::ChangeState */ - virtual void ChangeState( TVtUiAppStateBase* aState ); - - /** @see MVtUiStateContext::StartTone */ - virtual void StartDtmfTone( const TChar& aTone ); - - /** @see MVtUiStateContext::StopTone */ - virtual void StopDtmfTone(); - - /** @see MVtUiStateContext::Model */ - virtual CVtEngModel& Model(); - - /** @see MVtUiStateContext::VideoTelephonyVariation */ - virtual const TVtUiVideoTelephonyVariation& - VideoTelephonyVariation() const; - - /** @see MVtUiStateContext::NumberSource*/ - virtual MVtUiNumberSource* NumberSource() const; - - /** @see MVtUiStateContext::RefreshL */ - virtual void RefreshL( const TInt aRefreshFlags ); - - /** @see MVtUiStateContext::DoExecuteCmdL */ - virtual void DoExecuteCmdL( - const TVtEngCommandId aCommand, - TDesC8* aParams ); - - /** @see MVtUiStateContext::DoHandleLayoutChangedL */ - virtual void DoHandleLayoutChangedL(); - - /** From MVtUiShutterObserver via MVtUiStateContext - * Exits the application. - */ - virtual void HandleShutdownReady(); - - /** - * Gets reference to context control. - * @return reference to context control. - */ - CVtUiContextControl& ContextControl(); - - /** - * Gets reference to main control. - * @return reference to main control. - */ - CVtUiMainControl& MainControl(); - - /** - * Gets reference to remote video control. - * @return reference to remote video control. - */ - CVtUiRemoteVideoControl& RemoteVideoControl(); - - /** - * Switches viewfinder to main pane if it is currently in context - * pane. - */ - void SwitchViewFinderToMainPaneL( TBool aUpdateState = ETrue ); - - /** - * Switches viewfinder to context pane if it is currently in main - * pane. - */ - void SwitchViewFinderToContextPaneL( TBool aUpdateState = ETrue ); - - /** - * Restores viewfinder back to pane where it was prior to calling the - * switch ViewFinderToMainPane() or ViewFinderToContextPane() methods. - */ - void RestoreViewFinderL(); - - /* - * Updates volume to the Video Telephone engine. - */ - void CmdUpdateVolumeL( MVtEngAudio::TVtEngOutputVolume aVolume ); - - /** - * Increases "command activating" ref.count and adds cleanup item - * to decrease it. Refreshes commands in case of first increment from - * zero. When PopAndDestroy() is called, cleanup decreases reference - * count and if it reduces back to zero command refresh is again done. - */ - void EnableCommandActivatingAndCleanupPushL(); - - private: // from MProgressDialogCallback - - /** - * @see MProgressDialogCallback::DialogDismissedL - */ - void DialogDismissedL( TInt aButtonId ); - - private: - - // COMMAND HANDLING - - /** - * Checks if command is allowed. - * @param aCommand command identifier. - * @return ETrue if allowed, EFalse otherwise. - */ - TBool IsCommandAllowedL( const TInt aCommand ); - - /** - * Refreshes iDisabledFlags. - */ - void RefreshDisabledFlagsL(); - - /** - * Refreshes camera option availability. - * @param aUsePrimaryCameraNotAllowed it will be updated to ETrue if - * it is not allowed to activate primary camera. - * @param aUseSecondaryCameraNotAllowed it will be updated to ETrue if - * it is not allowed to activate secondary camera. - */ - void RefreshCameraOptionAvailability( - TBool& aUsePrimaryCameraNotAllowed, - TBool& aUseSecondaryCameraNotAllowed ); - - /** - * Enables capture mode. - */ - void CmdSnapshotL(); - - /** - * Freezes outgoing video image. - */ - void CmdCaptureL(); - - /** - * Disables capture mode. - */ - void CmdCancelCaptureL(); - - - /** - * Enables video. - */ - void CmdEnableVideoL(); - - /** - * Enables audio (unmute microphone). - */ - void CmdEnableAudioL(); - - /** - * Disables video. - */ - void CmdDisableVideoL(); - - /** - * Disables audio (mute microphone). - */ - void CmdDisableAudioL(); - - /** - * Activates Bluetooth handsfree. - */ - void CmdActivateBtL(); - - /** - * Deactivates Bluetooth handsfree. - */ - void CmdDeactivateBtL(); - - /** - * Activates loudspeaker. - */ - void CmdActivateLoudspeakerL(); - - /** - * Deactivates loudspeaker. - */ - void CmdDeactivateLoudspeakerL(); - - /** - * Ends active call. - */ - void CmdEndActiveCallL(); - - /** - * Swaps images places. - */ - void CmdSwapImagesPlacesL(); - - /** - * Switches used camera. - * @param aPrimaryCamera ETrue if primary camera is to be selected, - * EFalse if secondary camera is to be selected. - */ - void CmdUseCameraL( const TBool aPrimaryCamera ); - - /** - * Launches help application. - */ - void CmdHelpL(); - - /** - * Prepare exiting the application. - */ - void PrepareExitL(); - - /** - * Updates zoom step to Video Telephone engine. - */ - void CmdUpdateZoomL(); - - /** - * Dials emergency call. - */ - void CmdDialEmergencyL(); - - /** - * Goes to Idle. - */ - void CmdGoToIdleL(); - - /** - * Initialize image sharing. - */ - void CmdInitializeShareImageL( TBool& aNeedRefresh ); - - /** - * Start sharing image. - */ - void CmdShareImageL(); - - /** - * Stops sharing image. - */ - void CmdStopShareImageL( TBool& aNeedRefresh ); - - /** - * Handles change in call waiting state. - * @param aIsWaiting The state of call waiting. - */ - void HandleWaitingStateChange( TBool aIsWaiting ); - - // STATE TRANSITIONS - - /** - * @see MVtUiActiveExec::ActiveExecExecuteL. - */ - TBool ActiveExecInitExecuteL( - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ); - - /** - * @see MVtUiActiveExec::ActiveExecContinue. - */ - TBool ActiveExecInitContinue( - TInt& aState, - const TInt aError ); - - /** - * @see MVtUiActiveExec::ActiveExecCancel. - */ - void ActiveExecInitCancel( - const TInt aState ); - - /** - * @see MVtUiActiveExec::ActiveExecDone. - */ - void ActiveExecInitDone( - const TInt aInitialState ); - - /** - * Executes command taking no parameters. - * @param aCommand command to be performed. - * @param aRequest request status. - */ - void ActiveExecInitExecuteCommandL( - const TVtEngCommandId aCommand, - TRequestStatus& aRequest ); - - /** - * Executes command taking no parameters. - * @param aCommand command to be performed. - * @param aParam command parameters. - * @param aRequest request status. - */ - template < class T > - void ActiveExecInitExecuteCommandL( - const TVtEngCommandId aCommand, - T& aParam, - TRequestStatus& aRequest ); - - /** - * Executes 'prepare camera' command. - * @param aSource source to be prepared. - * @param aRequest request status. - */ - void ActiveExecInitPrepareCameraL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ); - - /** - * Executes 'set source' command. - * @param aSource source to be selected. - * @param aRequest request status. - */ - void ActiveExecInitSetSourceL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ); - - /** - * Executes prepare viewfinder command. - * @param aRequest request status to be completed when finished. - */ - void ActiveExecInitPrepareViewFinderL( - TRequestStatus& aRequest ); - - /** - * Executes prepare remote render command. - * @param aRequest request status to be completed when finished. - */ - void ActiveExecInitPrepareRemoteRenderL( - TRequestStatus& aRequest ); - - - /** - * Executes command taking no parameters. - * @param aCommand command to be performed. - * @param aRequest request status. - */ - void ActiveExecCmdExecuteCommandL( - const TVtEngCommandId aCommand, - TRequestStatus& aRequest ); - - /** - * Executes 'set source' command. - * @param aSource source to be selected. - * @param aRequest request status. - */ - void ActiveExecCmdSetSourceL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ); - - /** - * Executes 'prepare camera' command. - * @param aSource source to be selected. - * @param aRequest request status. - */ - void ActiveExecCmdPrepareCameraL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ); - - - /** - * Determines main control options. - * @param aRemoteVideo for remote video. - * @return rendering options. - */ - TVtEngRenderingOptions - DetermineMainControlOptions( TBool aRemoteVideo ); - - /** - * Determines context control options. - * @return rendering options. - */ - TVtEngRenderingOptions DetermineContextControlOptions(); - - /** - * Determines dialer control options. - * @return rendering options. - */ - TVtEngRenderingOptions DetermineDialerControlOptions(); - - /** - * Determines main control DSA options. - * @param aRemoteVideo for remote video. - * @return rendering options. - */ - TVtEngRenderingOptionsDSA - DetermineMainControlOptionsDSA( TBool aRemoteVideo ); - - /** - * Determines context control DSA options. - * @return rendering options. - */ - TVtEngRenderingOptionsDSA DetermineContextControlOptionsDSA(); - - /** - * Determines dialer control DSA options. - * @return rendering options. - */ - TVtEngRenderingOptionsDSA DetermineDialerControlOptionsDSA(); - - /** - * Determines main control DP options. - * @param aRemoteVideo for remote video. - * @return rendering options. - */ - TVtEngRenderingOptionsDP - DetermineMainControlOptionsDP( TBool aRemoteVideo ); - - /** - * Determines context control DP options. - * @return rendering options. - */ - TVtEngRenderingOptionsDP DetermineContextControlOptionsDP(); - - /** - * Determines dialer control DP options. - * @return rendering options. - */ - TVtEngRenderingOptionsDP DetermineDialerControlOptionsDP(); - - /** - * Determines remote video control options. - * @return rendering options. - */ - TVtEngRenderingOptionsNGA - DetermineRemoteVideoControlOptionsNGA(); - - // SYNCHRONOUS / BLOCKING EXECUTION: - - /** - * Performs a command without any parameters. - * @param aCommand command to be performed. - */ - void ExecuteCmdL( const TVtEngCommandId aCommand ); - - /** - * Performs a command with a parameter. - * @param aCommmand command to be performed. - * @param aParam parameter. - */ - template< class T > - void ExecuteCmdL( - const TVtEngCommandId aCommand, - T& aParam ); - - // ASYNCHRONOUS EXECUTION: - - /** - * Performs a command without any parameters. - * @param aDialogPtr pointer to which returned value is stored. - * @param aCommand command to be performed. - * @param aStatus request status. - * @return dialog. - */ - CEikDialog* ExecuteCmdAsyncL( - CEikDialog** aDialogPtr, - const TVtEngCommandId aCommand, - TRequestStatus& aStatus ); - - /** - * Performs a command with a parameter. - * @param aDialogPtr pointer to which returned value is stored. - * @param aCommmand command to be performed. - * @param aParam parameter. - * @param aStatus request status. - * @return dialog. - */ - template< class T > - CEikDialog* ExecuteCmdAsyncL( - CEikDialog** aDialogPtr, - const TVtEngCommandId aCommand, - T& aParam, - TRequestStatus& aStatus ); - - /** - * Performs a command. - * @param aDialogPtr pointer to which returned value is stored. - * @param aCommand command. - * @param aParams parameter, optional. - * @param aStatus request status. - * @return dialog. - */ - CEikDialog* DoExecuteCmdAsyncL( - CEikDialog** aDialogPtr, - const TVtEngCommandId aCommand, - TDesC8* aParams, - TRequestStatus& aStatus ); - - /** - * Executes command in TRAP harnness. - * @param aCommand command identifier. - * @param aParam optional, parameters. - * @return error code. - */ - TInt Execute( const TVtEngCommandId aCommand, TDesC8* aParam ); - - // EVENT HANDLING - - /** - * Handles foreground changed events. - * @param aIsForeground ETrue if foreground, EFalse otherwise. - */ - void HandleForegroundChangedL( - TBool aIsForeground ); - - /** - * Handles engine reset. - */ - void HandleEngineResetL(); - - /** - * Handles successful answer operation. - */ - void HandleAnswerL(); - - /** - * Stops waiting image text showing. - */ - void StopWaitingImage(); - - /** - * Stops white balance showing. - */ - void StopWhiteBalanceOrColortone(); - - /** - * Handles layout changes basically calling HandleLayoutChangedL - * in trap harness. - * @return error code. - */ - TInt HandleLayoutChanged(); - - /** - * Handles layout changes. - */ - void HandleLayoutChangedL(); - - /** - * Handles video frame. - * @param aLocal local frame if ETrue, EFalse if remote. - * @param aBitmap frame, ownership not transferred. - */ - void HandleVideoFrameL( - const TBool aLocal, - CFbsBitmap* aBitmap ); - - void SetVideoFrame( - const TBool aLocal, - CFbsBitmap* aBitmap ); - - /** - * Handles video call details. - * @param aCallID call id. - * @param aCallName call name. - * @param aIsPeerAddressAvailable is peer address available. - */ - void HandleVideoCallDetailsL( - const TInt aCallId, - const TDesC& aCallName, - const TBool aIsPeerAddressAvailable ); - - /** - * Checks if it's time to bring this application - * to the foreground. - */ - void CheckBringToForeground(); - - /** - * Checks if it's time to send this application - * to the background. - */ - void CheckSendToBackground(); - - /** - * Handles remote problem. - */ - void HandleVideoFrameRemoteProblemL(); - - /** - * Handles local problem. - */ - void HandleVideoFrameLocalProblemL(); - - /** - * Set a new remote video layout. - */ - void ChangeRemoteVideoLayoutL(); - - /** - * Show image initialization progress dialog. - */ - void ShowImageInitializeProgressL(); - - /** - * Hide image initialization progress dialog. - */ - void HideImageInitializeProgressL(); - - /** - * Sets SQCif usage. - * @param aUseSQCif SQCif is used. - */ - void RemoteVideoIsSQCif( TBool aUseSQCif ); - - /** - * Sets SQCif usage to control. - * @param aUseSQCif SQCif is used. - */ - void ControlUsesSQCif( TBool aUseSQCif ); - - /** - * Checks if beating needs to be started. - * @param aCallDurationEnabled call duration enabled status. - */ - void CheckBeatL( const TBool aCallDurationEnabled ); - - /** - * Handles heart beats. - */ - void HandleBeat(); - - // UTILITY METHODS - - /** - * Informs the user that camera is reserved by another application. - */ - void ShowCameraInUseNoteL() const; - - /** - * Informs the user that the selected operation is not allowed. - */ - void ShowNotAllowedNoteL() const; - - /** - * Informs the user that it is not allowed to create normal call. - */ - void ShowCallNotAllowedNoteL() const; - - /** - * Informs the user that the other camera is not usable. - */ - void ShowOtherCameraNotUsableNoteL() const; - - /** - * Informs the user that image loading failed. - */ - void ShowUnableToOpenNoteL() const; - - /** - * Informs the user that error happened during image decoding. - * Note: Cannot be constant because DoExecuteL() is used for - * calling this method. - */ - void ShowImageDecodingErrorNoteL(); - - /** - * Informs the user that image is DRM protected and cannot be opened. - */ - void ShowDRMNotAllowedNoteL() const; - - /** - * Sets softkeys. - * @param aSoftkeyResourceId softkey resource id. - */ - void SetSoftkeysL( const TInt aSoftkeyResourceId ); - - /** - * Sets application hidden from fast swap window. - * @param aHidden ETrue if to be hidden, EFalse if visible. - */ - void SetHiddenL( const TBool aHidden ); - - /** - * Updates title pane to show call index. - * @param aCallId call id. - */ - void SetCallIdL( const TInt aCallId ); - - /** - * Updates title pane to show name. - * @param aName name to be displayed in title pane. - * @return ETrue if succeeded, EFalse if not enough memory. - */ - TBool SetCallNameL( const TDesC& aName ); - - /** - * Brings Telephone application to the foreground. - */ - void BringTelephoneToForeground(); - - /** - * Returns window group identifier of the principal - * telephone application. - * @return window group id or 0 if failed. - */ - TInt TelephoneApplicationWgId(); - - /** - * Returns ETrue if number entry should be shown to the user. - * This can be called only after ReadTelephonyVariant has - * been called. - * @return ETrue if number entry should be shown to the user. - */ - inline TBool ShowNumberEntry() const; - - /** - * Checks if active idle is enabled. - * @return ETrue if active idle is enabled. - */ - TBool IsActiveIdleEnabledL() const; - - /** - * Checks engine functionality. - */ - void CheckEngineFunctionality(); - - /** - * Returns navi pane. - * @return navi pane instance. Ownership not transferred. - */ - inline CAknNavigationControlContainer* NaviPaneL(); - - /** - * Returns title pane. - * @return title pane instance. Ownership not transferred. - */ - inline CAknTitlePane* TitlePaneL(); - - /** - * Pushes item to cleanup stack to update softkeys. - */ - inline void CleanupPushRefreshL(); - - /** - * Pushes item to cleanup stack to enable blind status setting. - */ - inline void CleanupPushEnableBlindL(); - - /** - * Callback function to refresh navi pane and softkeys. - * @param aAny pointer to an instance of this class. - */ - static void DoRefresh( TAny* aAny ); - - /** - * Callback function to enable blind status checking. - * @param aAny pointer to an instance of this class. - */ - static void DoEnableBlindSetting( TAny* aAny ); - - /** - * Callback function to disable command activation - * state. - * @param aAny pointer to an instance of this class. - */ - static void DoDisableCommandActivating( TAny* aAny ); - - /** - * Decreases command activation ref.count and refreshes - * states if count gets zero. - */ - void HandleCommandDeactivationL(); - - /** - * Callback function to handle exit timeout. - * @param aAny pointer to instance of this class. - * @return KErrNone always. - */ - static TInt DoHandleExitTimeout( TAny* aAny ); - - /** - * Callback function to exit. - * @param aAny pointer to instance of this class. - * @return KErrNone always. - */ - static TInt DoExit( TAny* aAny ); - - /** - * Checks whether viewfinder is currently in main pane. - * @return ETrue if viewfinder is in main pane. - */ - TBool IsViewFinderInMainPane() const; - -public: - /** - * Checks whether viewfinder is currently in context pane. - * @return ETrue if viewfinder is in context pane. - */ - TBool IsViewFinderInContextPane() const; -private: - /** - * Updates context pane icon - */ - void UpdateContextPaneIconL(); - - /** - * Enables or disables the incall bubble. - */ - void SetIncallBubbleAllowedInUsualL( TBool aAllowed ); - - /** - * Shows progress dialog using given resource. - */ - void ShowProgressDialogL( TInt aResourceId, - MProgressDialogCallback* aCallback = NULL ); - - /** - * Hides (completes) progress dialog. - */ - void HideProgressDialogL(); - - /** - * Static async callback for switching viewfinder to MainPane, also - * starts image sharing. - */ - static TInt AsyncViewFinderToMainPaneAndShare( TAny* aPtr ); - - /** - * Static async callback for starting image share. - */ - static TInt AsyncShare( TAny* aPtr ); - - /** - * Static async callback for showing error note and resharing image. - */ - static TInt AsyncShowErrorAndRestartShare( TAny* aPtr ); - - /** - * Static async callback for handling layout change. - */ - static TInt DelayedHandleLayoutChanged( TAny* aPtr ); - - /** - * Gets current camera orientations for primary and secondary camera. - */ - void GetCameraOrientations(); - - /** - * Sets initial camera orientation. - */ - void SetInitialCameraOrientationL(); - - /** - * Sets current camera orientation. - */ - void SetCameraOrientationL(); - - /** - * Updates engine states. - */ - void RefreshStatesL(); - - /** - * Starts video preference feature specified by command id. - */ - void CmdAdjustVideoL( TInt aCommand ); - - /** - * AppUi has been initialized and its current state is EVtUiAppUiAnswered. - * Do any other needed initilization here e.g. start features. - */ - void AppUiInitDoneDoPostInitL(); - - /* - * This function decides how the wsevent should be handled - * if zoom mode is on. - * @param aEvent window server event. - * @return ETrue if caller function should return, EFalse otherwise. - */ - TBool ProcessWsEventIfZoomModeIsActiveL( const TWsEvent& aEvent ); - - /* - * This function hides the brightness, contrast, volume slider if their mode is on. - */ - void StopSliders(); - - /** - * Does pre handling to key events, especially for Zoom in and Zoom out - * HW keys. - * @param aEvent event. - */ - TBool PreHandleKeyEventL( const TWsEvent& aEvent ); - - /** - * Calls SimulateKeyEventL() for stored zoom key event. - */ - void SimulateStoredKeyEventL( const TEventCode aEventCode ); - - /** - * Stores zoom key event. If there is different zoom key event - * already stored, keyup event is sent for that event before - * new event is stored. - */ - void StoreKeyEventL( const TKeyEvent& aKeyEvent ); - - /** - * Callback function that calls TryToStartTb function - */ - static TInt DoTryToStartTbL( TAny* aAny ); - - /* - * Tries to start toolbar. Toolbar is started if - * option menus is not visible. - */ - void TryToStartTbL(); - - /* - * Update video prefrence - */ - void UpdateVBSettingL(); - - - /** - * Sets current rendering mode (i.e. default or dialer) - */ - void SetRenderingModeL( const TRenderingMode aMode, - MVtUiVideoWindow* aDownlink ); - - /** - * Updates rendering parameters. - */ - void UpdateRenderingParametersL(); - - /* - * Media state has been changed - */ - void MediaStateChangedL(); - - /* - * Updates volume slider - */ - void RefreshVolumeL(); - - /* - * Adjusts volume up or down one step. - */ - void AdjustVolumeL( TRemConCoreApiOperationId aOperationId ); - - private: - - // Pointer to stored downlink window. - MVtUiVideoWindow* iStoredDownlinkWindow; - - // Current rendering mode - TRenderingMode iRenderingMode; - - // Command framework instance - CVtUiCommandManager* iCommandManager; - - // Inner class. - class CInstance; - - // Model instance. Exists only while there is a video call. - CInstance* iInstance; - - // Inner class to observe all events. - class CEventObserver; - - // Inner class for verifying media gallery objects - class CVtUiAppUiMGVerifier; - - // Owned event observer. - CEventObserver* iEventObserver; - - // Owned blank control for reset & shutdown. - CVtUiBlankControl* iBlankControl; - - /** - * Enumerates disabled flags: - * EDisabledVideo - video disabled, - * EDisabledAudio - audio disabled, - * EVideoOptionsDisabled - video options disabled. - */ - enum TDisabledFlags - { - EDisabledVideo = 1, - EDisabledAudio = 2, - EVideoOptionsDisabled = 4 - }; - - // The Ihf Note id. - TInt iIhfNoteId; - - // Flags for disabled. Sum of subset of TDisabledFlags. - TInt iDisabledFlags; - - // Current softkey resource id. - TInt iCurrentSoftkeys; - - // Telephony variant. - TVtUiVideoTelephonyVariation iVTVariation; - - // Window group id of this application. - TInt iThisApplicationWgId; - - // Window group id of eikon server. - TInt iEikonServerWgId; - - // Window group id for AknCapServer - TInt iAknCapServerWgId; - - // Window group id for Akn Notifier Server - TInt iAknNfyServerWgId; - - // Owned active executor for initialisation / uninitialisation. - CVtUiActiveExec* iActiveExec; - - // Owned current dialog on execution. - CEikDialog* iExecDialog; - - // Owned blank dialog. - CEikDialog* iExecBlankDialog; - - // Reference to request status. - TRequestStatus* iShutdownRequest; - - // Owned active executor for command execution. - CVtUiActiveExec* iCmdActiveExec; - - // Owned current dialog on command execution. - CEikDialog* iCmdExecDialog; - - // Owned blank dialog on command execution. - CEikDialog* iCmdExecBlankDialog; - - - // Owned timer for making sure that - // the application is terminated in time. - CPeriodic* iExitTimer; - - // DTMF tone, used as parameter to KVtEngStartDtmfTone. - TPckgBuf< TChar > iDtmfTone; - - // Pointer to uplink window. - MVtUiVideoWindow* iUplinkWindow; - - // Pointer to downlink window. - MVtUiVideoWindow* iDownlinkWindow; - - // Query dialog for switching to voice call - CAknQueryDialog* iCreateVoiceCallDlg; - - // Progress dialog shown when initializing - CAknProgressDialog* iProgressDlg; - - // ASync callback. - CAsyncCallBack* iAsyncCallback; - - // Async callback for layout change - CAsyncCallBack* iLayoutChangeCallback; - - // Camera orientation for primary camera - MVtEngMedia::TCameraOrientation iPrimaryCameraOrientation; - - // Camera orientation for secondary camera - MVtEngMedia::TCameraOrientation iSecondaryCameraOrientation; - - // Currently used camera orientation - MVtEngMedia::TCameraOrientation iCurrentCameraOrientation; - - // Current loudspeaker volume - TInt iLoudspeakerVolume; - - // Current handset volume - TInt iHandsetVolume; - - // Ui states (media, audio, boolean variables) - TVtUiStates* iUiStates; - - // Component manager instance - CVtUiComponentManager* iComponentManager; - - // Feature manager instance - CVtUiFeatureManager* iFeatureManager; - - // Pointer to cba - CEikButtonGroupContainer* iCba; - - // Active number source - MVtUiNumberSource* iNumberSource; - - TVtUiAppStateBase* iState; - - // Stored zoom key event - TKeyEvent iStoredKeyEvent; - - // ETrue if incoming call is waiting call - TBool iIsWaitingCallState; - - // ETrue if key event has been stored - TBool iIsStoredKeyEvent; - - // Timer for starting the toolbar - CPeriodic* iTbPeriodic; - - // Owned volume control class for adjusting - // engine side volume - CVtUiVolumeControl* iVolCtrl; - - private: // Friend classes - - // Inner class. - friend class CInstance; - - // Inner class. - friend class CEventObserver; - - private: - - // Class for active command handling - class TActiveCommand - { - - public: - - /** - * Constructor. - * @param aActiveCommands array of command ids. - * @param aCommand command id. - */ - TActiveCommand( RArray< TInt >& aActiveCommands, TInt aCommandId ); - - /** - * Destructor - */ - ~TActiveCommand(); - - /** - * Adds command to active commands - */ - void OpenL(); - - private: - - /** - * Removes command from active commands - */ - void Close(); - - private: - - // Reference to array of active command ids. - RArray< TInt >& iActiveCommands; - - // Command id. - const TInt iCommandId; - - }; - - - private: - // Active command ids. - RArray< TInt > iActiveCommands; - // The last time swap image operation occured. - TTime iLastSwapTime; - // Incall bubble. - CAknIncallBubble* iIncallBubble; - //This flag is used to check if orientation changed before some action - //Currently is only used for prepare remote render and start remote render - TBool iIsLandScapeOrientation; - //flag indicates layoutchang session - TBool iLayoutChg; - //save cmd for later use - TInt iDelayedCmd; - }; - -#endif // CVTUIAPPUI_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiBitmapManager.h --- a/vtuis/videotelui/inc/CVtUiBitmapManager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,188 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Bitmap manager for Video Telephone application. -* -*/ - - - -#ifndef CVTUIBITMAPMANAGER_H -#define CVTUIBITMAPMANAGER_H - -// INCLUDES -#include -#include -#include "videotelui.hrh" - -// DATA TYPES - -/** -* Type definition for bitmap pool identifier. -* Zero is reserved as invalid identifier. -*/ -typedef TInt TVtUiBitmapPoolId; - -// FORWARD DECLARATION -class CFbsBitmap; - -// CLASS DECLARATION - -/** -* Bitmap manager for Video Telephone application. -* @since Series 60 2.8 -*/ -class CVtUiBitmapManager - : public CBase - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CVtUiBitmapManager(); - - /** - * Destructor. - */ - ~CVtUiBitmapManager(); - - public: // New functions - - /** - * Adds bitmaps to the pool. - * @param aBitmapId bitmap identifier. - * @param aBitmapMaskId bitmap mask identifier, - * KErrNotFound if no mask. - * @param aExpectDefaultColor ETrue if default color is to be expected. - * @return bitmap pool identifier. - */ - TVtUiBitmapPoolId AddBitmapsL( - TVtUiBitmapId aBitmapId, - TVtUiBitmapId aBitmapMaskId, - TBool aExpectDefaultColor ); - - /** - * Adds bitmap to the pool.Note that this bitmap does not have mask. - * @param aBitmapId bitmap identifier. - * @param aExpectDefaultColor ETrue if default color is to be expected. - * @return bitmap pool identifier. - */ - TVtUiBitmapPoolId AddBitmapL( - TVtUiBitmapId aBitmapId, - TBool aExpectDefaultColor ); - - /** - * Removes bitmap from the pool. - * @param aId bitmap pool identifier. - */ - void RemoveBitmap( TVtUiBitmapPoolId aId ); - - /** - * Sets size of the specified bitmap. This method must be - * called before bitmap is used. - * - * @param aId bitmap pool identifier. - * @param aSize size of the bitmap. - */ - void SetSize( - TVtUiBitmapPoolId aId, - const TSize& aSize ); - - /** - * Sets size and default color of the specified bitmap. - * This method must be called before bitmap is used. - * - * @param aId bitmap pool identifier. - * @param aSize size of the bitmap. - * @param aDefaultColor default color of the bitmap. - */ - void SetSizeAndColor( - TVtUiBitmapPoolId aId, - const TSize& aSize, - const TRgb& aDefaultColor ); - - /** - * Sets aspect ratio preservation status. - * @param aId bitmap pool identifier. - * @param aPreserve ETrue if aspect ration is to be preserved. - */ - void SetAspectRatio( - TVtUiBitmapPoolId aId, - TBool aPreserve ); - - /** - * This method is called to inform that bitmap is required. - * @param aId bitmap pool identifier. - */ - void RequireBitmap( TVtUiBitmapPoolId aId ); - - /** - * Gets bitmap & its mask. - * @param aId bitmap pool identifier. - * @param aBitmap it will be updated to hold bitmap pointer, - * or NULL if bitmap is not available. This pointer - * must not be kept any longer than absolutely required. - * @param aBitmapMask it will be updated to hold bitmap mask pointer, - * or NULL if bitmap mask is not available. This pointer - * must not be kept any longer than absolutely required. - */ - void GetBitmaps( - TVtUiBitmapPoolId aId, - CFbsBitmap*& aBitmap, - CFbsBitmap*& aBitmapMask ); - - /** - * Gets bitmap & its mask. - * @param aId bitmap pool identifier. - * @param aBitmap it will be updated to hold bitmap pointer, - * or NULL if bitmap is not available. This pointer - * must not be kept any longer than absolutely required. - */ - void GetBitmap( - TVtUiBitmapPoolId aId, - CFbsBitmap*& aBitmap ); - - /** - * Invalidates bitmaps. This is called on theme / layout change. - */ - void InvalidateBitmaps(); - - private: - - // Inner class. - class CBitmapInfo; - - /** - * Finds bitmap based on pool identifier. - * @param aId bitmap pool identifier. - * @return KErrNotFound if not found, or index to array. - */ - TInt Find( TVtUiBitmapPoolId aId ) const; - - private: - - // Owned array of bitmap information instances. - RPointerArray< CBitmapInfo > iBitmapArray; - - // Bitmap pool identifier used to generate bitmaps. - TVtUiBitmapPoolId iBitmapId; - - // Temporary instance for getting bitmap file name. - TFileName iTmpFileName; - - }; - -#endif // CVTUIBITMAPMANAGER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiBlankControl.h --- a/vtuis/videotelui/inc/CVtUiBlankControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2004 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: Blank control for Video Telephone application. -* -*/ - - - -#ifndef CVTUIBLANKCONTROL_H -#define CVTUIBLANKCONTROL_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Blank control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiBlankControl - : public CCoeControl - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtUiBlankControl(); - - /** - * Symbian constructor. - * @param aRect control rectangle. - */ - void ConstructL( const TRect& aRect ); - - /** - * C++ destructor. - */ - ~CVtUiBlankControl(); - - public: // New functions - - /** - * Sets blanker active / inactive. - * @param aStatus ETrue if to be activated. - */ - void SetActive( TBool aStatus ); - - protected: // Functions from base classes - - /** - * From CCoeControl, handles key events. - * @param aKeyEvent key event. - * @param aType type of event. - */ - virtual TKeyResponse OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * From CCoeControl, draws the control. - * @param aRect area to be drawn. - */ - virtual void Draw( const TRect& aRect ) const; - - /** - * From CCoeControl, handles size changes. - */ - virtual void SizeChanged(); - - /** - * From CCoeControl, handles position changes. - */ - virtual void PositionChanged(); - - private: - - // ETrue if blanker is active. - TBool iBlankerActive; - - }; - -#endif // CVTUIBLANKCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiBlankDialog.h --- a/vtuis/videotelui/inc/CVtUiBlankDialog.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2004 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: Blank dialog for Video Telephone application. -* -*/ - - - -#ifndef CVTUIBLANKDIALOG_H -#define CVTUIBLANKDIALOG_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Blank dialog for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiBlankDialog - : public CEikDialog - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aSelfPtr optional pointer to itself. - */ - CVtUiBlankDialog( CEikDialog** aSelfPtr ); - - /** - * Destructor. If a pointer was passed in constructor, - * it will be cleared here. - */ - ~CVtUiBlankDialog(); - - public: // New functions - - /** - * Executes blank dialog, no wait flag set. - */ - void ExecuteDialogNoWaitLD(); - - /** - * Executes blank dialog. - * @param aRequest request status, optional. - */ - void ExecuteDialogLD( - TRequestStatus* aRequest ); - - protected: // New functions - - /** - * Completes dialog with error. - * Note: this method will delete the dialog. - * @param aError error code. - */ - void Complete( const TInt aError ); - - protected: // Functions from base classes - - /** - * @see CEikDialog::PreLayoutDynInitL. - */ - void PreLayoutDynInitL(); - - /** - * @see CEikDialog::PostLayoutDynInitL. - */ - void PostLayoutDynInitL(); - - /** - * @see CEikDialog::OkToExitL. - */ - TBool OkToExitL( TInt aButtonId ); - - /** - * @see CEikDialog::Draw. - */ - void Draw( const TRect& aRect ) const; - - private: - - // Pointer to itself. - CEikDialog** iSelfPtr; - - // Error code. - TInt* iError; - - // Request status. - TRequestStatus* iRequest; - }; - -#endif // CVTUIBLANKDIALOG_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiContextControl.h --- a/vtuis/videotelui/inc/CVtUiContextControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Context pane control for Video Telephone application. -* -*/ - - - -#ifndef CVTUICONTEXTCONTROL_H -#define CVTUICONTEXTCONTROL_H - -// INCLUDES -#include -#include "cvtuivideocontrolbase.h" - -// FORWARDS -class CVtUiAppUi; -class TVtUiStates; - -/** -* Context pane control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiContextControl : public CVtUiVideoControlBase, - public MAknWsEventObserver - { - - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aBitmapManager bitmap manager. - * @param aLargeViewfinder ETrue if large viewfinder wanted. - * @param aAppUi application UI. - * @param aUiStates UI states. - */ - static CVtUiContextControl* NewL( - CVtUiBitmapManager& aBitmapManager, - CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates ); - - /** - * C++ destructor. - */ - ~CVtUiContextControl(); - - /** - * LayoutRemoteVideo - */ - void LayoutRemoteVideo(); - - public: // from CCoeControl - - /** - * @see CCoeControl::HandlePointerEventL - */ - void HandlePointerEventL( const TPointerEvent& aPointerEvent ); - - private: // from CVtUiVideoControlBase - - /** - * @see CVtUiVideoControlBase::HandleSizeChanged - */ - void HandleSizeChanged(); - - /** - * @see CVtUiVideoControlBase::DrawColoredBackground - */ - void DrawColoredBackground( CWindowGc& aGc ) const; - - /** - * @see CVtUiVideoControlBase::StreamBlitPosition - */ - TPoint StreamBlitPosition() const; - - /** - * @see CVtUiVideoControlBase::StreamBlitPosition - */ - TRect StreamClippingRect() const; - - /** - * @see CVtUiVideoControlBase::BlindImage - */ - CFbsBitmap* BlindImage() const; - - /** - * @see CVtUiVideoControlBase::BlindMask - */ - CFbsBitmap* BlindMask() const; - - /** - * @see CVtUiVideoControlBase::BlindBlitPosition - */ - TPoint BlindBlitPosition() const; - - public: // from MAknWsEventObserver - - /** - * @see MAknWsEventObserver::HandleWsEventL - */ - void HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* aDestination ); - - private: - - /** - * C++ constructor. - */ - CVtUiContextControl( - CVtUiBitmapManager& aBitmapManager, - CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates ); - - /** - * Symbian constructor. - */ - void ConstructL(); - - private: - - // Background icon identifier. - TVtUiBitmapPoolId iBackgroundId; - - // Blind icon identifier. - TVtUiBitmapPoolId iBlindId; - - // Blind icon mask identifier. - TVtUiBitmapPoolId iBlindMaskId; - - // Reference to application UI. - CVtUiAppUi& iAppUi; - - // Reference to UI states. - TVtUiStates& iUiStates; - - // Background bitmap layout. - TAknLayoutRect iBackGround; - - // Blind icon rect - TRect iBlindRect; - - // Stream rect - TRect iStreamRect; - - // ETrue if it is ok to swap images on button up - TBool iOkToSwapOnButtonUp; - - }; - -#endif // CVTUICONTEXTCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiDoc.h --- a/vtuis/videotelui/inc/CVtUiDoc.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2004 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: Document class for Video Telephone application. -* -*/ - - - -#ifndef CVTUIDOC_H -#define CVTUIDOC_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Document class for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiDoc - : public CAknDocument - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aApp application instance. - */ - CVtUiDoc( CEikApplication& aApp ); - - public: // Functions from base classes - - /** - * From CAknDocument, creates application UI instance. - * @return application UI instance. - */ - virtual CEikAppUi* CreateAppUiL(); - - /** - * From CAknDocument, updates task name. - * @param aWgName window group name instance. - */ - virtual void UpdateTaskNameL( CApaWindowGroupName* aWgName ); - - }; - -#endif // CVTUIDOC_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiExecuteCmdDialog.h --- a/vtuis/videotelui/inc/CVtUiExecuteCmdDialog.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2004 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: Dialog for command execution for Video Telephone application. -* -*/ - - - -#ifndef CVTUIEXECUTECMDDIALOG_H -#define CVTUIEXECUTECMDDIALOG_H - -// INCLUDES -#include "CVtUiBlankDialog.h" -#include - -// FORWARD DECLARATIONS -class MVtEngCommandHandler; -class MVtUiEngineCommandManager; - -// CLASS DECLARATION - -/** -* Dialog for command execution for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiExecuteCmdDialog - : public CVtUiBlankDialog, - private MVtEngCommandObserver - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aSelfPtr optional pointer to itself. - * @param aCommandHandler command handler. - * @param aCommandManager command manager. - */ - CVtUiExecuteCmdDialog( - CEikDialog** aSelfPtr, - MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager ); - - /** - * Destructor. - */ - ~CVtUiExecuteCmdDialog(); - - public: // New functions - - /** - * Executes command dialog. - * @param aCommandId command identifier. - * @param aParams parameters. - * @param aRequest request status, optional. - */ - void ExecuteCmdLD( - const TVtEngCommandId aCommandId, - TDesC8* aParams, - TRequestStatus* aRequest ); - - protected: // Functions from base classes - - /** - * @see CVtUiBlankDialog::PostLayoutDynInitL. - */ - void PostLayoutDynInitL(); - - private: - - /** - * @see MVtEngCommandObserver::HandleVTCommandPerformedL. - */ - virtual void HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ); - - /** - * Handles execution failure. - * @param aResult error code. - */ - void HandleExecuteFailed( TInt aResult ); - - private: - - // Inner class. - class CActiveCmd; - - // Friend. - friend class CActiveCmd; - - // Ref to command handler. - MVtEngCommandHandler& iCommandHandler; - - // Ref to command manager. - MVtUiEngineCommandManager& iCommandManager; - - // Command to be executed. - TVtEngCommandId iCommand; - - // Owned parameters. - HBufC8* iCommandParams; - - // ETrue if command has been completed. - TBool iCommandCompleted; - - // Owned active object to perform the command. - CActiveCmd* iActiveCmd; - - }; - -#endif // CVTUIEXECUTECMDDIALOG_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiMainControl.h --- a/vtuis/videotelui/inc/CVtUiMainControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Main pane control for Video Telephone application. -* -*/ - - - -#ifndef CVTUIMAINCONTROL_H -#define CVTUIMAINCONTROL_H - -// INCLUDES -#include "cvtuivideocontrolbase.h" - -// CLASS DECLARATION -class TVtUiStates; -class TAknTextLineLayout; - -/** -* Main pane control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiMainControl : public CVtUiVideoControlBase - { - - public: // Constructors and destructor - - /** - * Constructor. - * @param aBitmapManager bitmap manager. - * @param aUiStates Ui states class. - */ - static CVtUiMainControl* NewL( CVtUiBitmapManager& aBitmapManager, - TVtUiStates& aUiStates ); - - /** - * C++ destructor. - */ - ~CVtUiMainControl(); - - public: // New functions. - - /** - * Sets SQCif mode on/off. - * @param aIsSupported whether on/off - */ - void SupportSQCif( TBool aIsSupported ); - - /** - * LayoutRemoteVideo - */ - void LayoutRemoteVideo(); - - private: // from CVtUiVideoControlBase - - /** - * @see CVtUiContextControl::HandleSizeChanged - */ - void HandleSizeChanged(); - - /** - * @see CVtUiContextControl::DrawWaitingText - */ - TBool DrawWaitingText( CWindowGc& aGc ) const; - - /** - * @see CVtUiContextControl::StreamBlitPosition - */ - TPoint StreamBlitPosition() const; - - /** - * @see CVtUiContextControl::StreamClippingRect - */ - TRect StreamClippingRect() const; - - /** - * @see CVtUiContextControl::BlindImage - */ - CFbsBitmap* BlindImage() const; - - /** - * @see CVtUiContextControl::BlindMask - */ - CFbsBitmap* BlindMask() const; - - /** - * @see CVtUiContextControl::BlindBlitPosition - */ - TPoint BlindBlitPosition() const; - - /** - * @see CVtUiContextControl::WaitingTextLayout - */ - TAknTextLineLayout WaitingTextLayout( TInt aLine ); - - private: - - /** - * Private constructor. - */ - CVtUiMainControl( CVtUiBitmapManager& aBitmapManager, - TVtUiStates& aUiStates ); - - /** - * C++ constructor. - * @param aBitmapManager bitmap manager. - */ - CVtUiMainControl(); - - /** - * Symbian constructor. - */ - void ConstructL(); - - private: - - // Background layout. - TAknLayoutRect iBackgroundLayout; - - // Blind icon identifier. - TVtUiBitmapPoolId iBlindId; - - // Blind icon mask identifier. - TVtUiBitmapPoolId iBlindMaskId; - - // Blind icon layout. - TAknLayoutRect iBlindLayout; - - // Stream layout. - TAknLayoutRect iStreamLayoutRect; - - // ETrue if sqcif is used in remote video. - TBool iSQCifRemote; - - // reference to uistates - TVtUiStates& iUiStates; - - }; - -#endif // CVTUIMAINCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiMutedControl.h --- a/vtuis/videotelui/inc/CVtUiMutedControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2004 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: Navi pane control for Video Telephone application. -* -*/ - - - -#ifndef CVTUIMUTEDCONTROL_H -#define CVTUIMUTEDCONTROL_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** -* Navi pane control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiMutedControl - : public CCoeControl - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CVtUiMutedControl(); - - /** - * Symbian constructor. - */ - void ConstructL(); - - /** - * C++ destructor. - */ - ~CVtUiMutedControl(); - - public: // Functions from base classes - - /** - * From CCoeControl, handles resource change. - * @param aType type of change. - */ - virtual void HandleResourceChange( - TInt aType ); - - protected: // Functions from base classes - - /** - * From CCoeControl, draws the control. - * @param aRect area to be drawn. - */ - virtual void Draw( const TRect& aRect ) const; - - /** - * From CCoeControl, handles size changes. - */ - virtual void SizeChanged(); - - /** - * From CCoeControl, handles position changes. - */ - virtual void PositionChanged(); - - /** - * From CCoeControl, returns amount of component controls. - * @return amount of component controls. - */ - virtual TInt CountComponentControls() const; - - /** - * From CCoeControl, returns specified control. - * @param aIndex index of control. - * @return control. - */ - virtual CCoeControl* ComponentControl( - TInt aIndex ) const; - - private: - - // Owned muted label. - CEikLabel* iMutedLabel; - - }; - -#endif // CVTUIMUTEDCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiNaviPane.h --- a/vtuis/videotelui/inc/CVtUiNaviPane.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Controller for navi pane for Video Telephone application. -* -*/ - - - -#ifndef CVTUINAVIPANE_H -#define CVTUINAVIPANE_H - -// INCLUDES -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CAknNavigationControlContainer; -class CAknNavigationDecorator; -class CVtUiNaviPaneControl; -class CVtUiAppUi; - -// CONSTANTS - -// Minimum volume. -const TInt KVtUiVolumeMinimum = 0; - -// Maximum volume. -const TInt KVtUiVolumeMaximum = 10; - -// CLASS DECLARATION - -/** -* Controller for navi pane for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiNaviPane : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aNaviPane reference to navipane. - * @param aAppUi application UI. - */ - static CVtUiNaviPane* NewL( - CAknNavigationControlContainer& aNaviPane, - CVtUiAppUi& aAppUi ); - - /** - * C++ destructor. - */ - ~CVtUiNaviPane(); - - public: // New functions - - /** - * Updates current speaker. - * @param aLoudspeaker Loudspeaker if ETrue, handset otherwise. - */ - void SetCurrentSpeaker( - const TBool aLoudspeaker ); - - /** - * Changes muted status. - * @param aStatus status. - */ - void SetMuted( - const TBool aStatus ); - - /** - * Updates call duration. - * @param aDuration current duration. - * @param aEnabled ETrue if call duration enabled. - */ - void SetCallDuration( - const TTimeIntervalSeconds& aDuration, - const TBool aEnabled ); - - /** - * Commits changes. This method should be called after above - * Set* methods to make sure that display is up to date. - */ - void CommitL(); - - /** - * Gets speaker volume. - * @param aLoudspeaker ETrue if loudspeaker, EFalse if handset. - * @param aValue it will be updated to contain volume of the speaker. - */ - void GetSpeakerVolume( - const TBool aLoudspeaker, - TInt& aValue ) const; - - /** - * Handles resource changes. - * @param aType type of change. - */ - void HandleResourceChange( - TInt aType ); - - protected: // From base classes - - /** - * Called by CActive when operation needs to be canceled. - */ - void DoCancel(); - - /** - * Called by CActiveScheduler when operation has been - * finished. - */ - void RunL(); - - private: - - /** - * C++ constructor. - * @param aNaviPane navipane instance. - * @param aAppUi application UI. - */ - CVtUiNaviPane( - CAknNavigationControlContainer& aNaviPane, - CVtUiAppUi& aAppUi ); - - /** - * Symbian constructor. - */ - void ConstructL(); - - /** - * Pushes indicators after timeout. - */ - void PushAfterTimeout(); - - /** - * Pushes new decorator to navi pane replacing the - * previous one. - * @param aNew new to replace the old one. - */ - void PushL( CAknNavigationDecorator* aNew ); - - /** - * Returns indicator that should be used currently. - * @return indicator to be shown. - */ - CAknNavigationDecorator* DefaultIndicator() const; - - private: - - // Slider types in navipane - enum TSliderControlType - { - ENone, - EZoom, // Zoom control visible - EVolume // Volume control visible - }; - - - // Holds current slider type - TSliderControlType iSliderType; - - // Ref to navi pane. - CAknNavigationControlContainer& iNaviPane; - - // Ref to top navi pane element. - CAknNavigationDecorator* iCurrent; - - // Owned controller for call duration - CAknNavigationDecorator* iMainIndicators; - - // Reference to navi pane control. - CVtUiNaviPaneControl* iNaviPaneControl; - - // Owned muted indicator. - CAknNavigationDecorator* iMutedIndicator; - - // Owned timer instance. - RTimer iTimer; - - // ETrue if call duration was enabled. - TBool iOldCallDurationEnabled; - - // ETrue if call duration is enabled. - TBool iCallDurationEnabled; - - // ETrue if loudspeaker, EFalse if handset. - TBool iLoudspeaker; - - // Old microphone status. - TBool iOldMicrophoneMuted; - - // ETrue if microphone is muted. - TBool iMicrophoneMuted; - - // Reference to application UI. - CVtUiAppUi& iAppUi; - }; - -#endif // CVtUiNaviPane_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiNaviPaneControl.h --- a/vtuis/videotelui/inc/CVtUiNaviPaneControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Navi pane control for Video Telephone application. -* -*/ - - - -#ifndef CVTUINAVIPANECONTROL_H -#define CVTUINAVIPANECONTROL_H - -// INCLUDES -#include -#include - -// CONSTANTS - -// Maximum length of call duration buffer. -const TInt KVtUiCallDurationBufferLength = 16; - -// FORWARD DECLARATIONS -class CVtUiNaviPane; - -// CLASS DECLARATION - -/** -* Navi pane control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiNaviPaneControl - : public CCoeControl - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aNaviPane eference to navipane. - */ - CVtUiNaviPaneControl( CVtUiNaviPane& aNaviPane ); - - /** - * Symbian constructor. - */ - void ConstructL(); - - /** - * C++ destructor. - */ - ~CVtUiNaviPaneControl(); - - public: // New functions - - /** - * Sets call duration. - * @param aDuration call duration. - * @param aEnabled ETrue if enabled. - */ - void SetCallDuration( - const TTimeIntervalSeconds& aDuration, - const TBool aEnabled ); - - /** - * Updates screen to reflect changes. - */ - void CommitL(); - - protected: // Functions from base classes - - /** - * From CCoeControl, draws the control. - * @param aRect area to be drawn. - */ - virtual void Draw( const TRect& aRect ) const; - - /** - * From CCoeControl, handles size changes. - */ - virtual void SizeChanged(); - - /** - * From CCoeControl, handles position changes. - */ - virtual void PositionChanged(); - - private: - - /** - * Gets call duration text. - * @return reference to text. - */ - const TDesC& GetCallDurationText() const; - - /** - * Appends character to the buffer. - * @param aBuffer buffer. - * @param aChar character. - */ - static void AppendChar( - TDes& aBuffer, - const TChar& aChar ); - - /** - * Appends a number to the buffer. - * @param aBuffer buffer. - * @param aNumber number, 0 .. 99. - */ - static void AppendNum( - TDes& aBuffer, - const TInt aNumber ); - - private: - - // Call duration layout. - TAknLayoutText iCallDurationLayout; - - // ETrue if call duration is enabled. - TBool iCallDurationEnabled; - - // Duration in seconds. - TTimeIntervalSeconds iCallDuration; - - // Buffer for call duration. - mutable TBuf< KVtUiCallDurationBufferLength > iCallDurationBuffer; - - // Current speaker, ETrue if loudspeaker, EFalse if handset. - TBool iLoudspeaker; - - // Reference to navipane. - CVtUiNaviPane& iNaviPane; - - }; - -#endif // CVTUINAVIPANECONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiNumberEntryActivationControl.h --- a/vtuis/videotelui/inc/CVtUiNumberEntryActivationControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2004 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: Number entry activation control for -* Video Telephone application. -* -*/ - - - -#ifndef CVTUINUMBERENTRYACTIVATIONCONTROL_H -#define CVTUINUMBERENTRYACTIVATIONCONTROL_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CVtUiAppUi; - -// CLASS DECLARATION - -/** -* Number entry activation control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiNumberEntryActivationControl - : public CCoeControl - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aAppUi application ui. - */ - CVtUiNumberEntryActivationControl( CVtUiAppUi& aAppUi ); - - /** - * Symbian constructor. - * @param aRect initial area. - */ - void ConstructL( const TRect& aRect ); - - /** - * C++ destructor. - */ - ~CVtUiNumberEntryActivationControl(); - - public: // Functions from base classes - - /** - * @see CCoeControl::SizeChanged. - */ - virtual void SizeChanged(); - - /** - * @see CCoeControl::PositionChanged. - */ - virtual void PositionChanged(); - - /** - * @see CCoeControl::Draw. - */ - virtual void Draw( const TRect& aRect ) const; - - /** - * @see CCoeControl::OfferKeyEventL. - */ - virtual TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - - public: // New functions - - /** - * Set control's activation status. - * @param aIsActive ETrue if key events should - * be handled oterherwise EFalse. - */ - void SetActive( TBool aIsActive ); - - private: - - /** - * Checks if event should open number entry. - * @param aKeyEvent event. - * @param aDtmfTone event as character tone. - * @return ETrue if number entry should be opened. - */ - static TBool IsNumericEvent( - const TKeyEvent& aKeyEvent, - TChar& aDtmfTone ); - - private: - - // Reference to application ui. - CVtUiAppUi& iAppUi; - - // ETrue if this control has been added to stack. - TBool iAddedToStack; - - // ETrue if key events should be handled oterherwise EFalse. - TBool iIsActive; - - }; - -#endif // CVTUINUMBERENTRYACTIVATIONCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiRemoteVideoControl.h --- a/vtuis/videotelui/inc/CVtUiRemoteVideoControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* 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: class for Remote Video Control. -* -*/ - -#ifndef CVTUIREMOTEVIDEOCONTROL_H_ -#define CVTUIREMOTEVIDEOCONTROL_H_ - -#include -#include - -class CVtUiVideoControlBase; -class CVtUiAppUi; - -/** - * CVtUiRemoteVideoControl - * - * Remote Video control. - * - * @since S60 v5.0 - */ -class CVtUiRemoteVideoControl : public CCoeControl, - public MAknWsEventObserver - { -public: - - /** - * Static Constructor. - */ - static CVtUiRemoteVideoControl* NewL(CVtUiAppUi& aAppUi); - - RWindow& GetRWindow(); - - /** - * Destructor - */ - ~CVtUiRemoteVideoControl(); - -protected: - - /** - * Constructor - */ - CVtUiRemoteVideoControl(CVtUiAppUi& aAppUi); - - /** - * 2nd constructor - */ - void ConstructL(); - -public: // from CCoeControl - - /** - * @see CCoeControl::HandlePointerEventL - */ - void HandlePointerEventL( const TPointerEvent& aPointerEvent ); - -public: // from MAknWsEventObserver - - /** - * @see MAknWsEventObserver::HandleWsEventL - */ - void HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* aDestination ); - -protected: // virtual methods - - /** - * The size changed method. If you need to do special handling after the - * control's size has changed, overwrite this method. - */ - virtual void HandleSizeChanged(); - -private: // from CCoeControl - /** - * @see CCoeControl::Draw - */ - void Draw( const TRect& aRect ) const; - - /** - * @see CCoeControl::SizeChanged - */ - void SizeChanged(); - - /** - * @see CCoeControl::PositionChanged - */ - void PositionChanged(); - - /** - * The draw method. - */ - void DoDraw( CWindowGc& aGc ) const; - -private: - - // Reference to application UI. - CVtUiAppUi& iAppUi; - - - }; - -#endif /*CVTUIREMOTEVIDEOCONTROL_H_*/ diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/CVtUiZoomControl.h --- a/vtuis/videotelui/inc/CVtUiZoomControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Navi pane zoom indicator control for -* Video Telephone application. -* -*/ - - - -#ifndef CVTUIZOOMCONTROL_H -#define CVTUIZOOMCONTROL_H - -// INCLUDES -#include -#include -#include "CVtUiBitmapManager.h" - -// CLASS DECLARATION - -/** -* Navi pane zoom indicator control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiZoomControl - : public CCoeControl - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aBitmapManager bitmap manager. - */ - CVtUiZoomControl( CVtUiBitmapManager& aBitmapManager ); - - /** - * Symbian constructor. - */ - void ConstructL(); - - /** - * C++ destructor. - */ - ~CVtUiZoomControl(); - - public: // New functions - - /** - * Sets zoom parameters. - * @param aStepCount amount of steps, 0 if zooming disabled. - * @param aCurrentStep current step, 0 .. aStepCount. - */ - void SetZoomParams( - const TInt aStepCount, - const TInt aCurrentStep ); - - /** - * Commits changes. - */ - void CommitL(); - - /** - * Returns ETrue if zooming is enabled. - * @return ETrue if enabled. - */ - TBool IsZoomEnabled() const; - - /** - * Gets zoom parameters. - * @param aStepCount amount of steps, 0 if zooming disabled. - * @param aCurrentStep current step, 0 .. aStepCount. - */ - void GetZoomParams( - TInt& aStepCount, - TInt& aCurrentStep ) const; - - /** - * Updates zoom. This method should be called periodically during zooming. - * @return ETrue if zoom step was updated. - */ - TBool UpdateZoomL(); - - /** - * Stops zoom. - */ - void StopZoom(); - - public: // Functions from base classes - - /** - * From CCoeControl, handles key events. - * @param aKeyEvent key event. - * @param aType type of event. - * @return response indicating if key was consumed. - */ - virtual TKeyResponse OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * From CCoeControl, handles resource change. - * @param aType type of change. - */ - virtual void HandleResourceChange( - TInt aType ); - - protected: // Functions from base classes - - /** - * From CCoeControl, draws the control. - * @param aRect area to be drawn. - */ - virtual void Draw( const TRect& aRect ) const; - - /** - * From CCoeControl, handles size changes. - */ - virtual void SizeChanged(); - - /** - * From CCoeControl, handles position changes. - */ - virtual void PositionChanged(); - - private: - - /** - * Calculates amount of steps to be shown. - * @param aFullSteps amount of full steps. - * @param aPartialStep partial steps, 0 .. 255. - */ - void DetermineSteps( - TInt& aFullSteps, - TInt& aPartialStep ) const; - - /** - * Generates zoom mask bitmap. - * @param aAreaBitmap maximum bitmap, ownership not transferred. - * @param aPartial partial amount. - * @param aRow area row number. - * @param aRowSize size of the row. - * @return ETrue if successful, EFalse otherwise. - */ - TBool GenerateZoomMaskBitmap( - CFbsBitmap* aMaskBitmap, - const TInt aPartial, - const TInt aRow, - const TSize& aRowSize ) const; - - /** - * Generates zoom mask bitmap. - * @param aAreaBitmap maximum bitmap, ownership not transferred. - * @param aPartial partial amount. - * @param aRow area row number. - * @param aRowSize size of the row. - */ - void DoGenerateZoomMaskBitmap( - CFbsBitmap* aMaskBitmap, - const TInt aPartial, - const TInt aRow, - const TSize& aRowSize ) const; - - /** - * Creates bitmaps. - * @return error code. - */ - TInt CreateBitmaps(); - - /** - * Creates bitmaps. - */ - void CreateBitmapsL(); - - /** - * Returns size of the temporary bitmaps. - * @return size of the temporary bitmaps. - */ - TSize SizeOfBitmap() const; - - /** - * Gets position and source rect. - * @param aPosition it will contain position. - * @param aSourceRect it will contain source rectangle. - * @param aZoomStep zoom step. - */ - void GetPositionAndRect( - TPoint& aPosition, - TRect& aSourceRect, - const TInt aZoomStep ) const; - - private: - - // Inner class. - class CBitmap; - - // Reference to bitmap manager. - CVtUiBitmapManager& iBitmapManager; - - // Zoom direction bitmap identifier. - TVtUiBitmapPoolId iZoomDirId; - - // Zoom area bitmap identifier. - TVtUiBitmapPoolId iZoomAreaId; - - // Zoom min bitmap identifier. - TVtUiBitmapPoolId iZoomMinId; - - // Zoom max bitmap identifier. - TVtUiBitmapPoolId iZoomMaxId; - - // Zoom pane rectangle. - TRect iZoomPaneRect; - - // Zoom direction layout. - TAknLayoutRect iZoomDirLayout; - - // Zoom area layout. - TAknLayoutRect iZoomAreaLayout; - - // Current step, 0 .. iMaxZoomStep. - TInt iCurrentZoomStep; - - // Maximum step. - TInt iMaxZoomStep; - - // Used partial value used in iZoomMaskBitmap - // generation. - mutable TInt iZoomMaskPartial; - - // Used row value used in iZoomMaskBitmap - // generation. - mutable TInt iZoomMaskRow; - - // Owned partial soft mask. - CBitmap* iZoomPartialMask; - - // Owned partial shade (soft mask). - CBitmap* iZoomPartialShade; - - // Owned partial shade mask. - CBitmap* iZoomPartialShadeMask; - - // Zoom direction +1 or -1. 0 if no - // zoom ongoing. - TInt iZoomDirection; - - // Zoom step at the start of zooming. - TInt iZoomStepStart; - - // Start time of zooming. - TTime iZoomStartTime; - - }; - -#endif // CVTUIZOOMCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/MVtUiEngineCommandManager.h --- a/vtuis/videotelui/inc/MVtUiEngineCommandManager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2004 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: Command manager class for Video Telephone application. -* -*/ - - - -#ifndef MVTUICOMMANDMANAGER_H -#define MVTUICOMMANDMANAGER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MVtEngCommandObserver; - -// CLASS DECLARATION - -/** -* Command manager class for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class MVtUiEngineCommandManager - { - public: // New functions - - /** - * Adds observer. - * @param aObserver observer to be added. - */ - virtual void AddObserverL( MVtEngCommandObserver& aObserver ) = 0; - - /** - * Removes observer. - * @param aObserver observer to be removed. - */ - virtual void RemoveObserver( MVtEngCommandObserver& aObserver ) = 0; - - }; - -#endif // MVTUICOMMANDMANAGER_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/MVtUiVideoWindow.h --- a/vtuis/videotelui/inc/MVtUiVideoWindow.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2004 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: Interface for controlling a video window -* for Video Telephone application. -* -*/ - - - -#ifndef MVTUIVIDEOWINDOW_H -#define MVTUIVIDEOWINDOW_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CFbsBitmap; - -// CLASS DECLARATION - -/** -* Interface for controlling a video window (uplink / downlink) for Video -* Telephone application. -* -* @since Series 60 2.6 -*/ -class MVtUiVideoWindow - { - public: // New functions - - /** - * Resets blind, stream bitmap and waiting image statuses. - */ - virtual void Reset() = 0; - - /** - * Changes blind status. - * @param aStatus new status, ETrue - on, EFalse - off. - */ - virtual void SetBlind( TBool aStatus ) = 0; - - /** - * Sets stream bitmap. - * @param aStreamBitmap bitmap. Ownership not transferred. - */ - virtual void SetStreamBitmap( CFbsBitmap* aStreamBitmap ) = 0; - - /** - * Sets stream bitmap for reserve, when Draw() routine is called. - * (e.g. when opening and closing menu) - * @param aStreamBitmap bitmap. Ownership not transferred. - */ - virtual void SetStreamBitmapReserve( CFbsBitmap* aStreamBitmap ) = 0; - - /** - * Sets waiting image status. - * @param aShowWaitingText ETrue if waiting text should be shown. - */ - virtual void SetWaiting( TBool aShowWaitingText ) = 0; - - /** - * Redraws image. - */ - virtual void Redraw() = 0; - - /** - * Set remote video control - */ - virtual void SetRemoteVideoControl( CCoeControl* aRemoteControl ) = 0; - - /** - * Layout the postion and the size of the remote video control - */ - virtual void LayoutRemoteVideo() = 0; - - /** - * Returns pointer to remote video control or NULL if no remote video control is present. - */ - virtual CCoeControl * RemoteVideoControl() = 0; - - }; - -#endif // CVTUICONTEXTCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/TVtUiCallParameters.h --- a/vtuis/videotelui/inc/TVtUiCallParameters.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* Copyright (c) 2004 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: Call parameters class for Video Telephone application. -* -*/ - - - -#ifndef TVTUICALLPARAMETERS_H -#define TVTUICALLPARAMETERS_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Call parameters for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class TVtUiCallParameters - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - TVtUiCallParameters(); - - public: // New functions - - /** - * Resets parameters. - */ - void Reset(); - - /** - * Sets audio status. - * @param aEnabled ETrue if audio enabled, EFalse if disabled. - */ - void SetAudioStatus( const TBool aEnabled ); - - /** - * Gets audio status. - * @param aEnabled It will equal to ETrue if audio enabled, - * EFalse if disabled. - * @return error code, - * KErrNone if audio status has been set, - * KErrNotFound if not. - */ - TInt GetAudioStatus( TBool& aEnabled ) const; - - /** - * Sets video status. - * @param aEnabled enabled status. - */ - void SetVideoStatus( const TBool aEnabled ); - - /** - * Gets video status. - * @param aEnabled It will equal to ETrue if video enabled, - * EFalse if disabled. - * @return error code, - * KErrNone if video status has been set, - * KErrNotFound if not. - */ - TInt GetVideoStatus( TBool& aEnabled ); - - /** - * Sets selected camera. - * @param aPrimary ETrue if primary, EFalse if secondary. - */ - void SetSelectedCamera( const TBool aPrimary ); - - /** - * Gets selected camera. - * @param aPrimary It will equal to ETrue if primary has been selected, - * EFalse if secondary. - * @return error code, - * KErrNone if selected camera has been set, - * KErrNotFound if not. - */ - TInt GetSelectedCamera( TBool& aPrimary ); - - private: - - // Current flags. - TInt iFlags; - - }; - -#endif // TVTUICALLPARAMETERS_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/VideoTelephonyInternalCRKeys.h --- a/vtuis/videotelui/inc/VideoTelephonyInternalCRKeys.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2005-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: Video Telephony internal Central Repository keys -* -*/ - - -#ifndef VIDEOTELEPHONYINTERNALCRKEYS_H -#define VIDEOTELEPHONYINTERNALCRKEYS_H - -#include - -/** -* Video Telephony Variation API -* Keys under this category are used in defining video telephony variation. -*/ -const TUid KCRUidVTVariation = {0x102072D0}; - -/** -* Video Telephony Local Variation Flags. Values are defined in -* VideoTelephonyVariant.hrh. -*/ -const TUint32 KVTLocalVariationFlags = 0x00000001; - -/** -* Video Telephony Configuration API -* Keys under this category are used for configuring video call behaviour. -* @since S60 3.1 -*/ -const TUid KCRUidVTConfiguration = {0x10281872}; - -/** -* This key controls minimum, normal and maximum frame rate for video encoder. -* Integer values in the string are between 0 and 31 separated by space. -* Example for key value is "5 10 5". -*/ -const TUint32 KVTVideoFrameRates = 0x00000001; - -/** -* Defines layout (screen orientation) used by Video Telephone application -* per active camera. Each camera has one of the following configurations: -* 1) "LS" = Landscape -* 2) "PR" = Portrait -* 3) "OL" = Obey device layout (normal operation) -* Camera values are: -* 1) "C1" = VT primary camera (inwards) -* 2) "C2" = VT secondary camera (outwards) -* Example value (portrait for cam1, landscape for cam2): C1:PR C2:LS -*/ -const TUint32 KVTCameraLayout = 0x00000002; - -/** -* Lists implementation UIDs for MPEG4, H.263 and H.264 encoders for video -* telephony in hexadecimal separated by space -*/ -const TUint32 KVTVideoEncoderUIDs = 0x00000003; - -/** -* Lists implementation UIDs for MPEG4, H.263 and H.264 decoders for video -* telephony in hexadecimal separated by space -*/ -const TUint32 KVTVideoDecoderUIDs = 0x00000004; - -/** -* Lists implementation UIDs for AMR-NB and future audio encoders for video -* telephony (in hex, separated by space) -*/ -const TUint32 KVTAudioEncoderUIDs = 0x00000005; - -/** -* Lists implementation UIDs for AMR-NB and future audio decoders for video -* telephony (in hex, separated by space) -*/ -const TUint32 KVTAudioDecoderUIDs = 0x00000006; - -/** -* Lists processing delay for MPEG4, H.263 and H.264 encoders for video -* telephony in unsigned 32-bit integers separated by space -*/ -const TUint32 KVTVideoEncoderDelay = 0x00000007; - -/** -* Lists processing delay for MPEG4, H.263 and H.264 decoders for video -* telephony in unsigned 32-bit integers separated by space -*/ -const TUint32 KVTVideoDecoderDelay = 0x00000008; - -/** -* Lists processing delay for AMR-NB and future audio encoders for video -* telephony (in unsigned 32-bit integers, separated by space) -*/ -const TUint32 KVTAudioEncoderDelay = 0x00000009; - -/** -* Lists processing delay for AMR-NB and future audio decoders for video -* telephony (in unsigned 32-bit integers, separated by space) -*/ -const TUint32 KVTAudioDecoderDelay = 0x0000000A; - -/* -* Defines number of toolbar buttons. Three buttons is minimum -* and seven is maximum. -*/ -const TUint32 KVTToolbarCommands = 0x0000000B; - -#endif // VIDEOTELEPHONYINTERNALCRKEYS_H - -// End of file \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/VideoTelephonyVariant.hrh --- a/vtuis/videotelui/inc/VideoTelephonyVariant.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2005 - 2008 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: Bit flag definitions for VT local variation. -* -*/ - - -#ifndef VIDEOTELEPHONYVARIANT_HRH -#define VIDEOTELEPHONYVARIANT_HRH - - -/** -* KVTLVFlagScalingMethodENearest defines whether the video image is -* scaled using Nearest algorithm, which is fast, but quality is low. -* When the flag is set ENearest is used. -* @since S60 v2.8 -*/ -#define KVTLVFlagScalingMethodENearest 0x00000001 - -/** -* KVTLVFlagScalingMethodEBilinear defines whether the video image is -* scaled using Bilinear algorithm, which offers the best quality, but in a -* slow way. When the flag is set Bilinear is used. -* @since S60 v2.8 -*/ -#define KVTLVFlagScalingMethodEBilinear 0x00000002 - -/** -* KVTLVFlagEnableBitReversal defines if bit order should be -* reversed in PV. -* When the flag is set bit order is reversed. -*/ -#define KVTLVFlagEnableBitReversal 0x00000004 - -/** -* KVTLVFlagEnableAMR_WB defines if AMR wideband is supported in video calls. -* @since S60 v5.0 -*/ -#define KVTLVFlagEnableAMR_WB 0x00000008 - -/** -* KVTLVFlagSupportMpeg4 defines whether the PV should support Mepg4. -* @since S60 v5.0 -*/ -#define KVTLVFlagDisableMpeg4 0x00000010 - -#endif // VIDEOTELEPHONYVARIANT_HRH - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/VtUiLayout.h --- a/vtuis/videotelui/inc/VtUiLayout.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Layout related accessory methods for Video Telephone -* application. -* -*/ - - - -#ifndef VTUILAYOUT_H -#define VTUILAYOUT_H - -// INCLUDES -#include "videotelui.hrh" -#include -#include - -// FORWARD DECLARATIONS -class TAknsItemID; - -// CLASS DECLARATION - -/** -* Layout related accessory methods for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class VtUiLayout - { - public: // New functions - - /** - * Returns application window rectangle. - * @param aRect rectangle to be filled. - */ - static void GetApplicationParentRect( - TRect& aRect ); - - // ELEMENTS RELATIVE TO APPLICATION WINDOW: - - /** - * Returns main pane layout. - * @param aLayout main pane layout. - */ - static void GetMainPaneLayout( - TAknWindowLineLayout& aLayout ); - - // ELEMENTS RELATIVE TO APPLICATION WINDOW: - - /** - * Returns layout for uplink video stream background. - * @param aLayout layout of qgn_graf_call_video_out_bg. - */ - static void GetFirstWindowBackgroundLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Returns layout for uplink video stream. - * @param aLayout layout of uplink video stream relative. - */ - static void GetFirstWindowStreamLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Returns layout of uplink video disabled icon. - * @param aLayout layout of qgn_indi_call_video_blind_out. - */ - static void GetFirstWindowStreamDisabledIconLayout( - TAknWindowLineLayout& aLayout ); - - // ELEMENTS RELATIVE TO MAIN PANE: - - /** - * Returns layout of background rectangle. - * @param aLayout layout of background rectangle. - */ - static void GetSecondWindowBackgroundLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Returns layout of downlink video stream. - * @param aLayout layout of downlink video stream. - * @param aUseSQCif ETrue if SQCIF layout is to be used. - */ - static void GetSecondWindowStreamLayout( - TAknWindowLineLayout& aLayout, - TBool aIsToolbar, - TBool aIsSubQCIF = EFalse ); - - /** - * Returns layout of downlink video stream (the whole picture). - * @param aLayout layout of downlink video stream. - * @param aUseSQCif ETrue if SQCIF layout is to be used. - */ - static void GetSecondWindowStreamWholeLayout( - TAknWindowLineLayout& aLayout, - TBool aIsToolbaraIsToolbar, - TBool aIsSubQCIF = EFalse ); - - /** - * Returns layout of downlink video disabled icon. - * @param aLayout layout of qgn_indi_call_video_blind_in. - */ - static void GetSecondWindowDisabledIconLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Returns layout of waiting text. - * @param aLayout layout. - * @param aFirstLine ETrue if first line, EFalse if second. - */ - static void GetSecondWindowWaitingTextLayout( - TAknTextLineLayout& aLayout, - const TBool aFirstLine ); - - /** - * Returns number entry area layout. - * @param aLayout layout. - */ - static void GetNumberEntryAreaLayout( - TAknWindowLineLayout& aLayout ); - - // ELEMENTS RELATIVE TO NAVI PANE: - - /** - * Returns layout of audio routing indicator. - * @param aLayoutlayout of qgn_indi__[muted]. - */ - static void GetAudioRoutingIconLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Returns layout of call duration text. - * @param aLayout layout of call duration text. - */ - static void GetCallDurationTextLayout( - TAknTextLineLayout& aLayout ); - - /** - * Returns layout of muted text. - * @param aLayout layout of muted text. - */ - static void GetMutedTextLayout( - TAknTextLineLayout& aLayout ); - - /** - * Gets zooming pane layout. - * @param aLayout layout of zooming pane. - */ - static void GetZoomPaneLayout( - TAknWindowLineLayout& aLayout ); - - // ELEMENTS RELATIVE TO ZOOMING PANE: - - /** - * Gets zoom direction icon layout. - * @param aLayout layout of zoom direction icon. - */ - static void GetZoomDirLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Gets zoom area layout. - * @param aLayout layout of zoom area. - */ - static void GetZoomAreaLayout( - TAknWindowLineLayout& aLayout ); - - /** - * Gets zoom step layout. - * @param aLayout layout of a zoom step. - * @param aZoomStep zoom step, 1 .. 11. - */ - static void GetZoomStepLayout( - TAknWindowLineLayout& aLayout, - TInt aZoomStep ); - - // OTHER UTILITY METHODS - - /** - * Returns skin identifier corresponding to the bitmap. - * - * @param aId identifier of the bitmap. - * @return skin identifier or KAknsIIDNone if no skin for this bitmap. - */ - static TAknsItemID MapBitmapToSkinId( TVtUiBitmapId aId ); - - /** - * Determines color skin identifier corresponding to the bitmap. - * - * @param aId bitmap identifier. - * @param aColorId it will contain color skin id. - * @param aColorIndex it will contain color index. - * @return ETrue if bitmap has color skin, EFalse otherwise. - */ - static TBool MapBitmapToColorId( - TVtUiBitmapId aId, - TAknsItemID& aColorId, - TInt& aColorIndex ); - - /** - * Resolves file name and index from bitmap identifier. - * @param aId bitmap identifier. - * @param aFileName it will contain the name of the file. - * @param aIndex it will contain the index. - */ - static void Resolve( - TVtUiBitmapId aId, - TFileName& aFileName, - TInt& aIndex ); - - /** - * Can be used for checking current orientation. - * @return ETrue if current application orientation is landscape, - * EFalse otherwise. - */ - static TBool IsLandscapeOrientation(); - - }; - -#endif // VTUILAYOUT_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/VtUiPanic.h --- a/vtuis/videotelui/inc/VtUiPanic.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2004 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: Panic methods and reasons for Video Telephone application. -* -*/ - - - -#ifndef VTUIPANIC_H -#define VTUIPANIC_H - -// INCLUDES -#include - -// DATA TYPES - -/** -* Enumerates all panic reasons. -*/ -enum TVtUiPanicReason - { - // Invalid index passed to VtUiLayout::Resolve. - EVtUiPanicInvalidBitmapId = 10, - // Invalid bitmap file in VtUiLayout::Resolve. - EVtUiPanicInvalidBitmapFile = 11, - // Reset must not fail. - EVtUiPanicResetFailed = 12, - // Communication not supported. - EVtUiPanicCommsNotSupported = 13, - // EIKON server handle not found. - EVtUiPanicEikonServerNotFound = 14, - // Prepare view finder not supported. - EVtUiPanicPrepareViewFinderNotSupported = 15, - // Prepare remote render not supported. - EVtUiPanicPrepareRemoteRenderNotSupported = 16, - // Mismatch in bitmap file names. - EVtUiPanicMismatchInBitmapFileNames = 17, - // Default color requirement mismatch. - EVtUiPanicDefaultColorRequireMismatch = 18, - // Application shutdown has timeouted. - EVtUiPanicApplicationShutdownTimeout = 100, - // Engine functionality does not match with required. - EVtUiPanicEngineFunctionalityAssert = 101, - // Renderer instance is not available - EVtUiPanicRendererNotFound = 200, - // Values out of range - EVtUiPanicOutOfRange = 300 - }; - -// CLASS DECLARATION - -/** -* Panic methods and reasons for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class VtUiPanic - { - public: // New functions - - /** - * Panics this process. - * @param aReason reason of panic. - */ - static void Panic( - TVtUiPanicReason aReason ); - - }; - -#endif // VTUIPANIC_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/VtUiUtility.h --- a/vtuis/videotelui/inc/VtUiUtility.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2004 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: Utility methods for Video Telephone application. -* -*/ - - - -#ifndef VTUIUTILITY_H -#define VTUIUTILITY_H - -// INCLUDES -#include -#include -#include -#include - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Utility methods for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class VtUiUtility - { - public: // New functions - - /** - * Enumerates audio routing masks. - */ - enum TAudioRoutingMask - { - // Deactivate loudspeaker. - EDeactivateLoudspeaker = (1<<0), - // Activate loudspeaker. - EActivateLoudspeaker = (1<<1), - // Deactivate BT handsfree. - EDeactivateBtHandsfree = (1<<2), - // Activate BT handsfree. - EActivateBtHandsfree = (1<<3) - }; - - /** - * Gets audio routing availabilities. - * @param aAudio audio instance. - * @param aAvailable availability bitmap. - */ - static void GetAudioRoutingAvailability( - MVtEngAudio& aAudio, - TInt& aAvailable ); - - /** - * Gets outgoing media state. - * @param aMedia media instance. - * @param aAvailable availability bitmap. - */ - static void GetOutgoingMediaState( - MVtEngMedia& aMedia, - TInt& aAvailable ); - - /** - * Gets incoming media state. - * @param aMedia media instance. - * @param aAvailable availability bitmap. - */ - static void GetIncomingMediaState( - MVtEngMedia& aMedia, - TInt& aAvailable ); - - /** - * Checks if media has still image. - * @param aMedia media instance. - * @return ETrue if media has still image. - */ - static TBool HasStillImage( - MVtEngMedia& aMedia ); - - /** - * Gets freeze's current status. - * @param aMedia media instance. - * @return ETrue if active provider is frozen, EFalse otherwise. - */ - static TBool GetFreezeState( - MVtEngMedia& aMedia ); - - /** - * Checks if freeze is supported. - * @param aMedia media instance. - * @return ETrue if freeze is supported. - */ - static TBool IsFreezeSupported( - MVtEngMedia& aMedia ); - - /** - * Gets current local video quality setting. - * @param aMedia media instance. - * @param aVideoQuality Current local video quality settings. - */ - static void GetVideoQuality( - MVtEngMedia& aMedia, - MVtEngMedia::TVideoQuality& aVideoQuality ); - /** - * Gets current object sharing state. - * @param aMedia media instance. - * @param aShareObjectState contains current object sharing state on - * return. - */ - static void GetObjectSharingState( MVtEngMedia& aMedia, - MVtEngMedia::TShareObjectState& aShareObjectState ); - - /** - * Checks if zooming is allowed. - * @param aMedia media instance. - * @return ETrue if allowed, EFalse otherwise. - */ - static TBool IsZoomAllowed( - MVtEngMedia& aMedia ); - - /** - * Checks if the device has cameras currently attached. - * @param aMedia media instance. - * @return ETrue if there are cameras available. - */ - static TBool HasCameras( MVtEngMedia& aMedia ); - - /** - * Checks if the key event is DTMF enabled. - * @param aKeyEvent The key event. - * @param aDtmfTone DTMF tone character. - * @return ETrue if this event is DTMF event. - */ - static TBool IsDTMFEvent( const TKeyEvent& aKeyEvent, - TChar& aDtmfTone ); - - /** - * Checks if the character is DTMF enabled. - * @param aChar The character. - * @return ETrue if this character is DTMF character. - */ - static TBool IsDTMFCharacter( const TChar aChar ); - - private: - - /** - * Checks if audio routing is available. - * @param aAudio audio instance. - * @param aCurrent current speaker. - * @param aSource source speaker. - * @param aTarget target speaker. - */ - static TBool IsAudioRoutingAvailable( - MVtEngAudio& aAudio, - const MVtEngAudio::TAudioRoutingState aCurrent, - const MVtEngAudio::TAudioRoutingState aSource, - const MVtEngAudio::TAudioRoutingState aTarget ); - - }; - -#endif // VTUIUTILITY_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicmdbase.h --- a/vtuis/videotelui/inc/commands/cvtuicmdbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 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: UI command bases class definition. -* -*/ - - -#ifndef C_VTUICMDBASE_H -#define C_VTUICMDBASE_H - -#include - -/** - * CVtUiCmdBase - * - * Base class for UI commands. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCmdBase ) : public CBase - { - -public: // public methods - - /** - * Returns command id. - * - * @return This command's id. - */ - TInt CommandId() const; - -public: // public abstract methods - - /** - * Execute command - * - */ - virtual void HandleL() = 0; - - /** - * Returns ETrue if command is enabled. - * - * @return ETrue if this command is enabled (can be executed), EFalse - * otherwise. - */ - virtual TBool IsEnabled() const = 0; - -public: // public static methods - - /** - * Key comparing function type definition. - */ - typedef TInt ( *TKeyOrder ) ( const TInt*, const CVtUiCmdBase& ); - - /** - * Returns linear order object for ordered array inserting. - * - * @return TLinearOrder instance for searching and inserting CVtUiCmdBase - * based objects into RArray. - */ - static TLinearOrder< CVtUiCmdBase > LinearOrder(); - - /** - * Returns linear order object for ordered array inserting. - * - * @return Pointer to key comparaing function, that can be used in - * FindInOrder() method call. - */ - static TKeyOrder KeyOrder(); - -protected: - - /** - * C++ constructor. - * - * @aCommandId Id of this command. - * - */ - CVtUiCmdBase( TInt aCommandId ); - -protected: - - // Command id - const TInt iCommandId; - - }; - -#endif // C_VTUICMDBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicmdcontext.h --- a/vtuis/videotelui/inc/commands/cvtuicmdcontext.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 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: Command context base class definition. -* -*/ - - -#ifndef C_VTUICMDCONTEXT_H -#define C_VTUICMDCONTEXT_H - -#include - -#include "tvtuicmdcontexttype.h" - -class CVtUiCmdValidatorBase; -class CVtUiCmdValidationActionBase; -class MVtUiCommandManager; -class CVtUiCmdCustomValidationActionBase; - -/** - * CVtUiCmdContext - * - * Command context base class. This class defines context in which commands - * will be validated. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCmdContext ) : public CBase - { - -public: // public methods - - /** - * C++ destructor. - */ - ~CVtUiCmdContext(); - - /** - * Returns reference priority. - * - * @return Validator priority. - */ - TInt ReferencePriority() const; - - /** - * Returns context type. - * - * @return Context type. - */ - TVtUiCmdContextType ContextType() const; - - /** - * Adds validator to context. - * - * @param aValidator Validator reference to be added into this context. - * @return KErrNone if validator supports this context and adding succeeded. - * KErrNotSupported if validator does not support this context. - * Other system wide error code that may happen during add. - */ - TInt AddValidator( CVtUiCmdValidatorBase& aValidator ); - - /** - * Removes validator to context. - * - * @param aValidator Constant validator reference to be removed from this - * context. - * @return Validator priority. - */ - void RemoveValidator( const CVtUiCmdValidatorBase& aValidator ); - -public: // pure virtual methods - - /** - * Do validation. - * - * @param aAction Action to be validated. - */ - virtual void ValidateL( CVtUiCmdValidationActionBase& aAction ) = 0; - -protected: - - /** - * C++ constructor - */ - CVtUiCmdContext( MVtUiCommandManager& aCommandManager, - TVtUiCmdContextType aCtxType, TInt aReferencePriority ); - - /** - * Validates menu items. - */ - void ValidateMenuItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * Validates softkey items. - */ - void ValidateSoftkeyItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * Validates toolbar items. - */ - void ValidateToolbarItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * Custom action validation. - */ - void CustomValidationL( CVtUiCmdCustomValidationActionBase& aAction ); - - /** - * Registers command context to command policy manager. - */ - void RegisterCommandContextL(); - - /** - * Unregisters command context from command policy manager. - */ - void UnregisterCommandContext(); - -protected: // data - - // Reference to policy manager (for cleanup) - MVtUiCommandManager& iCommandManager; - -private: // data - - // Validator list (ordered by priority) - RPointerArray< CVtUiCmdValidatorBase > iValidators; - - // Validator priority - const TInt iReferencePriority; - - // Context type. - const TVtUiCmdContextType iContextType; - - }; - -#endif // C_VTUICMDCONTEXT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicmdcustomvalidationactionbase.h --- a/vtuis/videotelui/inc/commands/cvtuicmdcustomvalidationactionbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 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: Custom command validation action class definition. -* -*/ - - -#ifndef C_VTUICMDCUSTOMVALIDATIONACTIONBASE_H -#define C_VTUICMDCUSTOMVALIDATIONACTIONBASE_H - -#include - -#include "cvtuicmdvalidationactionbase.h" - -/** - * CVtUiCmdCustomValidationActionBase - * - * Custom command validation action base class. This class is an extension to - * command validation action and defines new attribute Type ID that is used - * for defining type of the custom validation action. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCmdCustomValidationActionBase ) - : public CVtUiCmdValidationActionBase - { - -public: // typedefs - - // Custom type id type definition. - typedef TInt TCustomTypeId; - -public: - - /** - * Returns custom type id. - * @return Custom type id. - */ - TCustomTypeId CustomTypeId() const; - -protected: // new protected methods - - /** - * C++ constructor. - */ - CVtUiCmdCustomValidationActionBase( TCustomTypeId aCustomTypeId ); - -private: // data - - // Custom type id. - const TCustomTypeId iCustomTypeId; - - }; - -#endif // C_VTUICMDCUSTOMVALIDATIONACTIONBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicmdstatecheckaction.h --- a/vtuis/videotelui/inc/commands/cvtuicmdstatecheckaction.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 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: Command state check action. -* -*/ - - -#ifndef C_VTUICMDSTATECHECKACTION_H -#define C_VTUICMDSTATECHECKACTION_H - -#include "cvtuicmdcustomvalidationactionbase.h" - -/** - * CVtUiCmdStateCheckAction - * - * Custom validation action that concludes whether or not a command is allowed. - * Command validness is checked from its current state. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCmdStateCheckAction ) -: public CVtUiCmdCustomValidationActionBase - { - -public: - - /** - * Static constructor. - * - * @return Pointer to newly created instance of CVtUiCmdStateCheckAction. - */ - static CVtUiCmdStateCheckAction* NewL(); - - /** - * Sets command to be checked. - * - * @param aCommandId Id of command to be checked. - */ - void SetCommand( TInt aCommandId ); - - /** - * Sets command to be checked. - * - * @return ETrue is command set with SetCommand() is allowed to be - * executed. - */ - TBool IsCommandAllowed() const; - -public: // from CVtUiCmdValidationActionBase - - /** - * @see CVtUiCmdValidationActionBase::ProcessL - */ - void ProcessL( const MVtUiCmdValidatorCallBack& aCallBack ); - -private: - - /** - * C++ constructor. - */ - CVtUiCmdStateCheckAction(); - -private: // data - - // Id of command to be checked - TInt iCommandId; - - // ETrue if command defined by iCommandId is allowed - TBool iIsCommandAllowed; - - }; - -#endif // C_VTUICMDSTATECHECKACTION_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicmdvalidationactionbase.h --- a/vtuis/videotelui/inc/commands/cvtuicmdvalidationactionbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 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: Command validation action base class definition. -* -*/ - - -#ifndef C_VTUICMDVALIDATIONACTIONBASE_H -#define C_VTUICMDVALIDATIONACTIONBASE_H - -#include - -class CVtUiCmdValidatorBase; -class MVtUiCmdValidatorCallBack; - -/** - * CVtUiCmdValidationActionBase - * - * Command validation action base class. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCmdValidationActionBase ) : public CBase - { - -public: // public methods - - /** - * C++ destructor. - */ - ~CVtUiCmdValidationActionBase(); - - /** - * Called when validation process is about to begin. Resets internal - * variables. - */ - virtual void BeginProcess(); - - /** - * Called when validation process has finished. - */ - virtual void EndProcess(); - -public: // pure virtual methods - - /** - * Execute validation process. - * - * @param aCallBack Action validation callback routine that will be called - * for every item to be validated. - */ - virtual void ProcessL( const MVtUiCmdValidatorCallBack& aCallBack ) = 0; - -protected: - - /** - * Mark command handled. - * - * @param aCommandId Id of command that was handled. - */ - void CommandHandledL( TInt aCommandId ); - - /** - * Check whether command is already handled or not. - * - * @param aCommandId Id of command to be checked. - * @return ETrue if command was already handler, EFalse otherwise. - */ - TBool IsCommandHandled( TInt aCommandId ) const; - -private: // data - - // Array of handled commands. - RArray< TInt > iHandledCommands; - - }; - -#endif // C_VTUICMDVALIDATIONACTIONBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicmdvalidatorbase.h --- a/vtuis/videotelui/inc/commands/cvtuicmdvalidatorbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* Copyright (c) 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: Base class for command validators. -* -*/ - - -#ifndef C_VTUICMDVALIDATORBASE_H -#define C_VTUICMDVALIDATORBASE_H - -#include - -#include "tvtuicmdcontexttype.h" - -class CVtUiCmdValidationActionBase; -class CVtUiCmdCustomValidationActionBase; - -/** - * CVtUiCmdValidatorBase - * - * Base class for all validators. Validator implementations validate commands - * and other properties (like softkey resource IDs) on context basis. E.g. - * primary validator will validate commands in all contexts, while toolbar - * validator will do fine tuning for commands only in menu context, so that - * commands that are visible in toolbar are not shown in menu. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCmdValidatorBase ) : public CBase - { - -public: // public methods - - /** - * Returns validator priority. - * - * @return Validator priority. - */ - TInt Priority() const; - -public: // pure virtual methods - - /** - * Validates menu items. - * - * @param aAction Reference to validation action. - * @param aReferencePriority Context reference priority. - */ - virtual void ValidateMenuItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ) = 0; - - /** - * Validates softkey items. - * - * @param aAction Reference to validation action. - * @param aReferencePriority Context reference priority. - */ - virtual void ValidateSoftkeyItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ) = 0; - - /** - * Validates toolbar items. - * - * @param aAction Reference to validation action. - * @param aReferencePriority Context reference priority. - */ - virtual void ValidateToolbarItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ) = 0; - - /** - * Custom validation. - * - * @param aAction Reference to custom validation action. - * @param aReferencePriority Context reference priority. - */ - virtual void CustomValidationL( CVtUiCmdCustomValidationActionBase& aAction, - TInt aReferencePriority ) = 0; - - /** - * Query for context validation. - * - * @param aCtxType Command context type. - * @return ETrue if this instance validates given context type, EFalse - * otherwise. - */ - virtual TBool ValidatesContext( const TVtUiCmdContextType& aCtxType ) - const = 0; - -protected: - - /** - * C++ constructor - * - * @param aPriority Validator priority. - */ - CVtUiCmdValidatorBase( TInt aPriority ); - -private: // data - - // Validator priority - const TInt iPriority; - - }; - -#endif // C_VTUICMDVALIDATORBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicommandmanager.h --- a/vtuis/videotelui/inc/commands/cvtuicommandmanager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,231 +0,0 @@ -/* -* Copyright (c) 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: Command manager class definition. -* -*/ - - -#ifndef C_VTUICOMMANDMANAGER_H -#define C_VTUICOMMANDMANAGER_H - -#include "mvtuicommandmanager.h" -#include "mvtuicommandui.h" -#include "tvtuilocalvariation.h" -#include "CVtUiAppUi.h" - -class TVtUiStates; -class CVtUiCommandPolicyManager; -class CVtUiPrimaryCmdPolicy; -class CVtUiCmdStateCheckAction; -class CVtUiExecutionContext; - -/** - * CVtUiCommandManager - * - * Acts as a proxy for Command UIs and Validators. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCommandManager ) : public CBase, - public MVtUiCommandManager, public MVtUiCommandUi - { - -public: - - /** - * Static constructor. - * - * @param aUiStates Constant reference to UI states object. - */ - static CVtUiCommandManager* NewL( const TVtUiStates& aUiStates, - CVtUiAppUi& aAppUi ); - - /** - * Destructor. - */ - ~CVtUiCommandManager(); - -public: - - /** - * Constant reference to UI states. - * - * @return Constant reference to UI states object. - */ - const TVtUiStates& UiStates() const; - - /** - * Constant reference to VT local variation. - * - * @return Constant reference to VT local variation object. - */ - const TVtUiVideoTelephonyVariation& VideoTelephonyVariation() const; - - /** - * Handles command. - * - * @param aCommandId Id of command to be handled. If given command is not - * found, command will be silently ignored. - */ - void HandleCommandL( TInt aCommandId ); - - /** - * Constant reference to CVtUiAppUi states. - * - * @return Constant reference to UI states object. - */ - const CVtUiAppUi& AppUi() const; - - -public: // from MVtUiCommandManager - - /** - * @see MVtUiCommandManager::AddCommandUi - */ - TInt AddCommandUi( MVtUiCommandUi& aCommandUi ); - - /** - * @see MVtUiCommandManager::RemoveCommandUi - */ - void RemoveCommandUi( MVtUiCommandUi& aCommandUi ); - - /** - * @see MVtUiCommandManager::ValidateMenuItemsL - */ - void ValidateMenuItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * @see MVtUiCommandManager::ValidateSoftkeyItemsL - */ - void ValidateSoftkeyItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * @see MVtUiCommandManager::ValidateToolbarItemsL - */ - void ValidateToolbarItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * @see MVtUiCommandManager::IsCommandAllowedL - */ - TBool IsCommandAllowedL( TInt aCommandId ); - - /** - * @see MVtUiCommandManager::RegisterCommandContext - */ - TInt RegisterCommandContext( CVtUiCmdContext& aContext ); - - /** - * @see MVtUiCommandManager::UnregisterCommandContext - */ - void UnregisterCommandContext( CVtUiCmdContext& aContext ); - - /** - * @see MVtUiCommandManager::AddValidator - */ - TInt AddValidator( CVtUiCmdValidatorBase& aValidator ); - - /** - * @see MVtUiCommandManager::RemoveValidator - */ - void RemoveValidator( CVtUiCmdValidatorBase& aValidator ); - - /** - * @see MVtUiCommandManager::RefreshL - */ - void RefreshL(); - - /** - * @see MVtUiCommandManager::AddCommandModifier - */ - TInt AddCommandModifier( CVtUiCommandModifyBase& aModifier ); - - /** - * @see MVtUiCommandManager::RemoveCommandModifier - */ - void RemoveCommandModifier( CVtUiCommandModifyBase& aModifier ); - - /** - * @see MVtUiCommandManager::RegisterCommandL - */ - void RegisterCommandL( CVtUiCmdBase& aCommand ); - - /** - * @see MVtUiCommandManager::UnregisterCommand - */ - void UnregisterCommand( const CVtUiCmdBase& aCommand ); - -private: - - /** - * Constructor. - */ - CVtUiCommandManager( const TVtUiStates& aUiStates, CVtUiAppUi& aAppUi ); - - /** - * Symbian OS constructor. - * @param aModel Engine model. - */ - void ConstructL(); - - /** - * Called when a new command modifier is added - */ - TInt CommandModifierAdded( CVtUiCommandModifyBase& aModifier ); - - /** - * Called when a command modifier is removed - */ - void CommandModifierRemoved( CVtUiCommandModifyBase& aModifier ); - - /** - * Called when a new command ui is added - */ - TInt CommandUiAdded( MVtUiCommandUi& aCommandUi ); - - /** - * Called when a command ui is removed - */ - void CommandUiRemoved( MVtUiCommandUi& aCommandUi ); - -private: - - // Commands Uis - RPointerArray< MVtUiCommandUi > iCommandUis; - - // Command modifiers - RPointerArray< CVtUiCommandModifyBase > iCommandModifiers; - - // Registered commands - RPointerArray< CVtUiCmdBase > iCommands; - - // Command policy manager instance - CVtUiCommandPolicyManager* iCmdPolicyMgr; - - // Reference to UI states instance - const TVtUiStates& iUiStates; - - // Reference to VT local variation - TVtUiVideoTelephonyVariation iVtVariation; - - // Command state validation action - CVtUiCmdStateCheckAction* iCmdStateCheckAction; - - // Execution context (for command state validation) - CVtUiExecutionContext* iExecutionContext; - - // Reference to appui - const CVtUiAppUi& iAppUi; - }; - -#endif // C_VTUICOMMANDMANAGER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicommandmodifybase.h --- a/vtuis/videotelui/inc/commands/cvtuicommandmodifybase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 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: Command modifier base class definition. -* -*/ - - -#ifndef C_VTUICOMMANDMODIFYBASE_H -#define C_VTUICOMMANDMODIFYBASE_H - -#include - -#include "mvtuicommandsetting.h" - -/** - * CVtUiCommandModifyBase - * - * Command modifier base class. Command modifiers can be used for modifying - * different command sets. E.g. in toolbar and number entry a command modifiers - * are being used for modifying softkeys. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCommandModifyBase ) : public CBase - { - -public: // static methods - - /** - * Returns TLinearOrder<> for priority ordering. - */ - static TLinearOrder< CVtUiCommandModifyBase > PriorityOrder(); - -private: // static methods - - /** - * Priority ordering function. - */ - static TInt PriorityOrderFunc( const CVtUiCommandModifyBase& aM1, - const CVtUiCommandModifyBase& aM2 ); - -public: // pure virtual methods - - /** - * Modifies command set. - */ - virtual void ModifyCommandsL( MVtUiCommandSetting& aCommandSettings ) = 0; - - /** - * Returns ETrue if this modifier supports given command set type. - */ - virtual TBool Supports( MVtUiCommandSetting::Type aType ) const = 0; - -protected: - - /** - * Constructor - */ - CVtUiCommandModifyBase( TInt aPriority ); - -private: - - // Modifier priority - const TInt iPriority; - - }; - -#endif // C_VTUICOMMANDMODIFYBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicommandpolicymanager.h --- a/vtuis/videotelui/inc/commands/cvtuicommandpolicymanager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* Copyright (c) 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: Command policy manager class definition. -* -*/ - - -#ifndef C_VTUICOMMANDPOLICYMANAGER_H -#define C_VTUICOMMANDPOLICYMANAGER_H - -#include - -#include "tvtuicmdcontexttype.h" - -class CVtUiCmdContext; -class CVtUiCmdValidatorBase; -class CVtUiCmdValidationActionBase; -class CVtUiCmdCustomValidationActionBase; -class CVtUiCommandManager; -class CVtUiPrimaryCmdPolicy; - -/** - * CVtUiCommandPolicyManager - * - * Contains pointers to all registered command contexts and commnd policy - * instances. When validation is required, calls proper methods in proper - * context for registered validators in validator priority order. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiCommandPolicyManager ) : public CBase - { - -public: // public methods - - /** - * Static constructor. - * - * @param aCmdManager Constant reference to command manager instance. - * @return Newly created instance of CVtUiCommandPolicyManager class. - */ - static CVtUiCommandPolicyManager* - NewL( const CVtUiCommandManager& aCmdManager ); - - /** - * C++ destructor. - */ - ~CVtUiCommandPolicyManager(); - - /** - * Registers command context. - * - * @param aContext Reference to command context to be registered. - * @return KErrNone if registration succeeded. - */ - TInt RegisterCommandContext( CVtUiCmdContext& aContext ); - - /** - * Unregisters command context. - * - * @param aContext Constant reference to command context to be unregistered. - */ - void UnregisterCommandContext( CVtUiCmdContext& aContext ); - - /** - * Adds validator to policy manager and registered contexts. - * - * @param aValidator Reference to validator to be added. - * @return KErrNone if add succeeded. - */ - TInt AddValidator( CVtUiCmdValidatorBase& aValidator ); - - /** - * Removes validator from policy manager and registered contexts. - * - * @param aValidator Constant reference to validator to be removed. - */ - void RemoveValidator( CVtUiCmdValidatorBase& aValidator ); - - /** - * Validates menu items for given action. - * - * @param aAction Reference to validation action to be carried on menu - * commmands. - */ - void ValidateMenuItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * Validates softkey items for given action. - * - * @param aAction Reference to validation action to be carried on softkeys. - */ - void ValidateSoftkeyItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * Validates toolbar items for given action. - * - * @param aAction Reference to validation action to be carried on toolbar - * commands. - */ - void ValidateToolbarItemsL( CVtUiCmdValidationActionBase& aAction ); - - /** - * Custom validation for given action. - * - * @param Reference to custom validation action to be carried. - */ - void CustomValidateL( CVtUiCmdCustomValidationActionBase& aAction ); - -private: - - /** - * Constructor - */ - CVtUiCommandPolicyManager( const CVtUiCommandManager& aCmdManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Called when RegisterCommandContext() succeeds. - */ - void CommandContextRegistered( CVtUiCmdContext& aContext ); - - /** - * Called when UnregisterCommandContext() succeeds. - */ - void CommandContextUnregistered( CVtUiCmdContext& aContext ); - - /** - * Called when AddValidator() succeeds. - */ - void ValidatorAdded( CVtUiCmdValidatorBase& aValidator ); - - /** - * Called when RemoveValidator() succeeds. - */ - void ValidatorRemoved( CVtUiCmdValidatorBase& aValidator ); - - /** - * Returns command context by type. - */ - CVtUiCmdContext* FindCommandContextByType( - TVtUiCmdContextType aContextType ); - - /** - * Called from different validation routines. - */ - void ValidateL( TVtUiCmdContextType aContextType, - CVtUiCmdValidationActionBase& aAction ); - -private: // data - - // Context list (ordered by context type) - RPointerArray< CVtUiCmdContext > iContexts; - - // Validator list - RPointerArray< CVtUiCmdValidatorBase > iValidators; - - // Reference to command manager - const CVtUiCommandManager& iCommandManager; - - // Primary command policy, always exists. - CVtUiPrimaryCmdPolicy* iPrimaryCommandPolicy; - - }; - -#endif // C_VTUICOMMANDPOLICYMANAGER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicommandsetting.h --- a/vtuis/videotelui/inc/commands/cvtuicommandsetting.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 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: Command settings class definition. -* -*/ - - -#ifndef C_VTUICOMMANDSETTING_H -#define C_VTUICOMMANDSETTING_H - -#include - -#include "mvtuicommandsetting.h" - -class CVtUiCommandModifyBase; - -/** - * CVtUiCommandSetting - * - * Template commmand setting class that takes command setting action as a - * templated parameter. - * - * @since S60 v3.2 - */ -template < typename ACTION > -class CVtUiCommandSetting : public CBase, public MVtUiCommandSetting - { - -public: - - /** - * Destructor - */ - ~CVtUiCommandSetting(); - - /** - * Defines commands. - * - * @param aAction Action related to commands to be defined. - */ - void DefineCommandsL( const ACTION& aAction ); - - /** - * Adds new modifer - * - * @param aModifier Reference to modifier to be added to this setting - * instance. - * @return KErrNone if modifier could be added, KErrAlreadyExists if same - * modifier is already added or KErrArgument if another modifier with - * same priority is already added. - */ - TInt AddModifier( CVtUiCommandModifyBase& aModifier ); - - /** - * Removes modifier - * - * @param aModifier Constant reference to modifier to be removed. - */ - void RemoveModifier( CVtUiCommandModifyBase& aModifier ); - - /** - * Return command type - * - * @return Type of commands this setting class instance is defining. - */ - Type CommandType() const; - - /** - * Returns reference to action - * - * @return Constant reference to action that is related to this command - * definition process. - */ - const ACTION& Action(); - -protected: - - /** - * Constructor - */ - CVtUiCommandSetting( Type aCommandType ); - -private: - - // Modifiers - RPointerArray< CVtUiCommandModifyBase > iModifiers; - - // Command type - const Type iCommandType; - - // Stored action - const ACTION* iAction; - - }; - -#include "cvtuicommandsetting.inl" - -#endif // C_VTUICOMMANDSETTING_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuicommandsetting.inl --- a/vtuis/videotelui/inc/commands/cvtuicommandsetting.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* Copyright (c) 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: Command setting inline methods. -* -*/ - - -#include - -#include "cvtuicommandmodifybase.h" - -// ======== LOCAL FUNCTIONS ======== - -static const TInt KVtUiModifierArrayGranularity = 1; - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::~CVtUiCommandSetting -// --------------------------------------------------------------------------- -// -template < typename A > -CVtUiCommandSetting< A >::~CVtUiCommandSetting() - { - iModifiers.Reset(); - } - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::CVtUiCommandSetting -// --------------------------------------------------------------------------- -// -template < typename A > -CVtUiCommandSetting< A >::CVtUiCommandSetting( Type aCommandType ) : - iModifiers( KVtUiModifierArrayGranularity ), iCommandType( aCommandType ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::DefineCommandsL -// --------------------------------------------------------------------------- -// -template < typename A > -void CVtUiCommandSetting< A >::DefineCommandsL( const A& aAction ) - { - __VTPRINTENTER( "CmdSet< A >.DefineCommandsL" ) - iAction = &aAction; - if ( iModifiers.Count() > 0 ) - { - iModifiers[ iModifiers.Count() - 1 ]->ModifyCommandsL( *this ); - } - else - { - DoDefineCommandsL(); - } - iAction = NULL; - __VTPRINTEXIT( "CmdSet< A >.DefineCommandsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::AddModifier -// --------------------------------------------------------------------------- -// -template < typename A > -TInt CVtUiCommandSetting< A >::AddModifier( - CVtUiCommandModifyBase& aModifier ) - { - __VTPRINTENTER( "CmdSet< A >.AddModifier" ) - TInt result( KErrNone ); - if ( aModifier.Supports( iCommandType ) ) - { - TInt idx( iModifiers.FindInOrder( &aModifier, - CVtUiCommandModifyBase::PriorityOrder() ) ); - if ( idx == KErrNotFound ) - { - result = iModifiers.InsertInOrder( &aModifier, - CVtUiCommandModifyBase::PriorityOrder() ); - } - else - { - if ( iModifiers[ idx ] != &aModifier ) - { - // Priorities match, but instance is not same -> argument - // is not valid - result = KErrArgument; - } - } - } - __VTPRINTEXITR( "CmdSet< A >.AddModifier %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::RemoveModifier -// --------------------------------------------------------------------------- -// -template < typename A > -void CVtUiCommandSetting< A >::RemoveModifier( - CVtUiCommandModifyBase& aModifier ) - { - __VTPRINTENTER( "CmdSet< A >.RemoveModifier" ) - TInt idx( iModifiers.FindInOrder( &aModifier, - CVtUiCommandModifyBase::PriorityOrder() ) ); - - if ( idx != KErrNotFound ) - { - iModifiers.Remove( idx ); - } - __VTPRINTEXIT( "CmdSet< A >.RemoveModifier" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::CommandType -// --------------------------------------------------------------------------- -// -template < typename A > -MVtUiCommandSetting::Type CVtUiCommandSetting< A >::CommandType() const - { - return iCommandType; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandSetting< A >::Action -// --------------------------------------------------------------------------- -// -template < typename A > -const A& CVtUiCommandSetting< A >::Action() - { - return *iAction; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuiexecutioncontext.h --- a/vtuis/videotelui/inc/commands/cvtuiexecutioncontext.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 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: Execution context class definition. -* -*/ - - -#ifndef C_VTUIEXECUTIONCONTEXT_H -#define C_VTUIEXECUTIONCONTEXT_H - -#include "cvtuicmdcontext.h" - -/** - * CVtUiExecutionContext - * - * Command execution context. This context is used for checking whether or not - * a command is allowed to be performed. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiExecutionContext ) : public CVtUiCmdContext - { - -public: // public methods - - /** - * C++ destructor. - */ - ~CVtUiExecutionContext(); - - /** - * Static constructor. - * - * @param aCommandManager Reference to command manager. - * @return Newly created instance of CVtUiExecutionContext class. - */ - static CVtUiExecutionContext* NewL( MVtUiCommandManager& aCommandManager ); - -public: // from CVtUiCmdContext - - /** - * @see CVtUiCmdContext::ValidateL - */ - void ValidateL( CVtUiCmdValidationActionBase& aAction ); - -private: - - /** - * C++ constructor - */ - CVtUiExecutionContext( MVtUiCommandManager& aCommandManager ); - - /** - * 2nd constructor, may leave. - */ - void ConstructL(); - -private: // data - - }; - -#endif // C_VTUIEXECUTIONCONTEXT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuifeaturecmdbase.h --- a/vtuis/videotelui/inc/commands/cvtuifeaturecmdbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 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: Feature based UI command base class definition. -* -*/ - - -#ifndef C_VTUIFEATURECMDBASE_H -#define C_VTUIFEATURECMDBASE_H - -#include "cvtuicmdbase.h" - -class MVtUiFeature; - -/** - * CVtUiCmdBase - * - * Base class for all UI commands that are feature based. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiFeatureCmdBase ) : public CVtUiCmdBase - { - -public: // from CVtUiCmdBase - - /** - * @see CVtUiCmdBase::HandleL - */ - void HandleL(); - - /** - * @see CVtUiCmdBase::IsEnabled - */ - TBool IsEnabled() const; - -protected: - - /** - * C++ constructor. - * - * @aFeature Reference to a feature this command refers to. - * @aCommandId Id of this command. - * - */ - CVtUiFeatureCmdBase( MVtUiFeature& aFeature, TInt aCommandId ); - -protected: - - // Reference to command feature - MVtUiFeature& iFeature; - - }; - -#endif // C_VTUIFEATURECMDBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/cvtuiprimarycmdpolicy.h --- a/vtuis/videotelui/inc/commands/cvtuiprimarycmdpolicy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 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: Primary command policy class definition. -* -*/ - - -#ifndef C_VTUIPRIMARYCMDPOLICY_H -#define C_VTUIPRIMARYCMDPOLICY_H - -#include - -#include "tvtuicmdpolicypriority.h" -#include "cvtuicmdvalidatorbase.h" -#include "tvtuilocalvariation.h" - -class CVtUiCmdValidationActionBase; -class TVtUiStates; -class CVtUiAppUi; -/** - * CVtUiPrimaryCmdPolicy - * - * Primary policy is the highest priority policy. It does the basic validation, - * results of which can be modified by the lower priority validators. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiPrimaryCmdPolicy ) : public CVtUiCmdValidatorBase - { - -public: // public methods - - /** - * Static constructor. - * - * @param aUiStates Constant reference to UI states object. - * @return Newly created instace of CVtUiPrimaryCmdPolicy class. - */ - static CVtUiPrimaryCmdPolicy* NewL( const TVtUiStates& aUiStates, - const CVtUiAppUi& aAppUi ); - - /** - * Destructor - */ - ~CVtUiPrimaryCmdPolicy(); - -public: // from CVtUiCmdValidatorBase - - /** - * @see CVtUiCmdValidatorBase::ValidateMenuItemsL - */ - void ValidateMenuItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::ValidateSoftkeyItemsL - */ - void ValidateSoftkeyItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::ValidateToolbarItemsL - */ - void ValidateToolbarItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::CustomValidationL - */ - void CustomValidationL( CVtUiCmdCustomValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::ValidatesContext - */ - TBool ValidatesContext( const TVtUiCmdContextType& aCtxType ) - const; - -private: - - /** - * C++ constructor - */ - CVtUiPrimaryCmdPolicy( const TVtUiStates& aUiStates, - const CVtUiAppUi& aAppUi ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Callback for menu validation. - */ - TBool ValidateMenuCommand( TInt aCommandId ) const; - - /** - * Callback for softkey resource id validation. - */ - TBool ValidateSoftkey( TInt aResourceId ) const; - - /** - * Callback for toolbar command validation. - */ - TBool ValidateToolbarCommand( TInt aCommandId ) const; - - /** - * Callback for command state validation. - */ - TBool ValidateCommandState( TInt aCommandId ) const; - - /** - * Callback for command validation. - */ - TBool ValidateCommand( TInt aCommandId, TBool& aHandled ) const; - -private: // data - - // UI states - const TVtUiStates& iUiStates; - - // Active idle local variation - TBool iAIEnabled; - - // Reference to appui - const CVtUiAppUi& iAppUi; - - }; - -#endif // C_VTUIPRIMARYCMDPOLICY_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/mvtuicommanditerator.h --- a/vtuis/videotelui/inc/commands/mvtuicommanditerator.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 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: Command iterator API definition. -* -*/ - - -#ifndef M_VTUICOMMANDITERATOR_H -#define M_VTUICOMMANDITERATOR_H - -#include - -/** - * MVtUiCommandIterator - * - * API for iterating through set of commands. - * - * @since S60 v3.2 - */ -class MVtUiCommandIterator - { - -public: - - /** - * Returns ETrue if the iteration has more elements - * - * @return ETrue if iteration contains more commands (i.e. call to Next() - * will return a valid command), EFalse otherwise. - */ - virtual TBool HasNext() const = 0; - - /** - * Returns the next command in the iteration. - * - * @return Next command in the iteration. - */ - virtual TInt Next() = 0; - - }; - -#endif // M_VTUICOMMANDITERATOR_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/mvtuicommandmanager.h --- a/vtuis/videotelui/inc/commands/mvtuicommandmanager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +0,0 @@ -/* -* Copyright (c) 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: Command manager API definition. -* -*/ - - -#ifndef M_VTUICOMMANDMANAGER_H -#define M_VTUICOMMANDMANAGER_H - -#include - -class CEikMenuPane; -class CVtUiCmdContext; -class CVtUiCmdValidatorBase; -class CVtUiCmdValidationActionBase; -class MVtUiCommandUi; -class CVtUiCommandModifyBase; -class CVtUiCmdCustomValidationActionBase; -class CVtUiCmdBase; - -/** - * MVtUiCommandManager - * - * Command manager API for other components. Command manager holds command UI - * instances and does command validation for all registered commands. - * - * @since S60 v3.2 - */ -class MVtUiCommandManager - { - -public: - - /** - * Adds new command ui to command manager. - * @param aCommandUi Reference to command ui to be added. - * @return KErrNone if command ui was added successfully. - */ - virtual TInt AddCommandUi( MVtUiCommandUi& aCommandUi ) = 0; - - /** - * Removes command ui from command manager. - * @param aCommandUi Constant reference to command ui to be removed. - * - */ - virtual void RemoveCommandUi( MVtUiCommandUi& aCommandUi ) = 0; - - /** - * Validate menu items in given manu pane. - * - * @param aAction Reference to action to be carried on all menu commands. - */ - virtual void ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction ) = 0; - - /** - * Validate softkeys. - * - * @param aAction Reference to action to be carried on all softkeys. - */ - virtual void ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& aAction ) = 0; - - /** - * Validate toolbar buttons. - * - * @param aAction Reference to action to be carried on all toolbar commands. - */ - virtual void ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& aAction ) = 0; - - /** - * Validate command. - * - * @param aCommandId Id of command that is being checked. - * @return ETrue if command can be executed, EFalse otherwise. - */ - virtual TBool IsCommandAllowedL( TInt aCommandId ) = 0; - - /** - * Registers command context. - * - * @param aContext Reference to command context to be registered. - * @return KErrNone if registration succeeded. - */ - virtual TInt RegisterCommandContext( CVtUiCmdContext& aContext ) = 0; - - /** - * Unregisters command context. - * - * @param aContext Reference to command context to be unregistered. - */ - virtual void UnregisterCommandContext( CVtUiCmdContext& aContext ) = 0; - - /** - * Adds validator to policy manager and registered contexts. - * - * @param aValidator Reference to validator to be added. - * @return KErrNone if registration succeeded. - */ - virtual TInt AddValidator( CVtUiCmdValidatorBase& aValidator ) = 0; - - /** - * Removes validator from policy manager and registered contexts. - * - * @param aValidator Constant reference to validator to be removed. - */ - virtual void RemoveValidator( CVtUiCmdValidatorBase& aValidator ) = 0; - - /** - * Refresh command uis. - */ - virtual void RefreshL() = 0; - - /** - * Add new command modifier. - * - * @param aModifier Reference to command modifier to be added to every - * registered command setting. - * @return KErrNone if modifier could be added, KErrAlreadyExists if same - * modifier is already added or KErrArgument if another modifier with - * same priority is already added. - */ - virtual TInt AddCommandModifier( CVtUiCommandModifyBase& aModifier ) = 0; - - /** - * Remove command modifier. - * - * @param aModifier Reference to command modifier to be removed from every - * registered command setting. - */ - virtual void RemoveCommandModifier( CVtUiCommandModifyBase& aModifier ) = 0; - - /** - * Registers new command to command manager. - * - * @param aCommand Reference to command to be registered. - */ - virtual void RegisterCommandL( CVtUiCmdBase& aCommand ) = 0; - - /** - * Unregisters command from command manager. - * - * @param aCommand Constant reference to command to be unregistered. - */ - virtual void UnregisterCommand( const CVtUiCmdBase& aCommand ) = 0; - - }; - -#endif // M_VTUICOMMANDMANAGER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/mvtuicommandsetting.h --- a/vtuis/videotelui/inc/commands/mvtuicommandsetting.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 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: Command iterator API definition. -* -*/ - - -#ifndef M_VTUICOMMANDSETTING_H -#define M_VTUICOMMANDSETTING_H - -#include - -/** - * MVtUiCommandSetting - * - * Command Setting API. - * - * @since S60 v3.2 - */ -class MVtUiCommandSetting - { - -public: - - /** - * Command types. - */ - enum Type - { - /** Softkeys */ - ECommandTypeSoftkeys - }; - -public: // pure virtual methods - - /** - * Does the base command definition. If no modifiers are registered, then - * this method is called from DefineCommandsL(), otherwise this method may - * be called by the modifier, but it is not required to do so. - */ - virtual void DoDefineCommandsL() = 0; - - }; - - -#endif // M_VTUICOMMANDSETTING_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/mvtuicommandui.h --- a/vtuis/videotelui/inc/commands/mvtuicommandui.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* Copyright (c) 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: Command UI API definition. -* -*/ - - -#ifndef M_VTUICOMMANDUI_H -#define M_VTUICOMMANDUI_H - -#include - -class CVtUiCommandModifyBase; - -/** - * MVtUiCommandUi - * - * Command UI API. Defines methods for adding/removing command modifiers and - * method to refresh related command UI. - * - * @since S60 v3.2 - */ -class MVtUiCommandUi - { - -public: - - /** - * Refresh command ui. - */ - virtual void RefreshL() = 0; - - /** - * Add new command modifier. - * - * @param aModifier Reference to modifier to be added to this command ui. - * @return KErrNone if modifier could be added, KErrAlreadyExists if same - * modifier is already added or KErrArgument if another modifier with - * same priority is already added. - */ - virtual TInt AddCommandModifier( CVtUiCommandModifyBase& aModifier ) = 0; - - /** - * Remove command modifier. - * - * @param aModifier Reference to modifier to be removed from this command - * ui. - */ - virtual void RemoveCommandModifier( CVtUiCommandModifyBase& aModifier ) = 0; - - }; - -#endif // M_VTUICOMMANDUI_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tVtuifeaturevariation.h --- a/vtuis/videotelui/inc/commands/tVtuifeaturevariation.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -/* -* Copyright (c) 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: Video Telephone feature variation class definition. -* -*/ - - -#ifndef T_VTUIFEATUREVARIATION_H -#define T_VTUIFEATUREVARIATION_H - -#include -#include - -/** - * TVtUiVariationBase - * - * Base class for feature variation classes. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiFeatureVariationBase ) - { - -public: - - /** - * Returns variation feature ID. - */ - virtual TUint32 FeatureId() const = 0; - -protected: - - /** - * Return whether or not feature is supported by Featuremanager. - * @return ETrue if feature is supported by Featuremanager. - */ - virtual TBool IsFeatureSupported( const TUint32 aId) const; - - }; - -/** - * TVtUiHelpVariation - * - * Help variation class. Uses Featuremanager to verify if feture is - * supported. This class should be instanced only once and same instance - * should be passesd as reference to modules that need this feature variation - * information. - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiHelpVariation ) : public TVtUiFeatureVariationBase - { - -public: - - /** - * Return whether or help variation is supported. - * - * @return ETrue if help supported. - */ - TBool IsHelpSupported() const; - -private: // from TVtUiFeatureVariationBase - - TUint32 FeatureId() const; - - }; -/** - * TVtUiDPVariation - * - * Display Post (DP) variation class. Uses Featuremanager to verify if feture is - * supported. This class should be instanced only once and same instance - * should be passesd as reference to modules that need this feature variation - * information. - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiDPVariation ) : public TVtUiFeatureVariationBase - { - -public: - - /** - * Return whether or DP variation is supported. - * - * @return ETrue if DP supported. - */ - TBool IsDPSupported() const; - -private: // from TVtUiFeatureVariationBase - - TUint32 FeatureId() const; - - }; -/** - * TVtUiBTVariation - * - * BlueTooth (BT) variation class. Uses Featuremanager to verify if feture is - * supported. This class should be instanced only once and same instance - * should be passesd as reference to modules that need this feature variation - * information. - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiBTVariation ) : public TVtUiFeatureVariationBase - { - -public: - - /** - * Return whether or BT variation is supported. - * - * @return ETrue if BT supported. - */ - TBool IsBTSupported() const; - -private: // from TVtUiFeatureVariationBase - - TUint32 FeatureId() const; - - }; -/** - * TVtUiSideVolumeKeysVariation - * - * Side volume keys variation class. Uses Featuremanager to verify if feture is - * supported. This class should be instanced only once and same instance - * should be passesd as reference to modules that need this feature variation - * information. - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiSideVolumeKeysVariation ) : public TVtUiFeatureVariationBase - { - -public: - - /** - * Return whether or Side volume keys variation is supported. - * - * @return ETrue if Side volume keys supported. - */ - TBool IsSideVolumeKeysSupported() const; - -private: // from TVtUiFeatureVariationBase - - TUint32 FeatureId() const; - - }; -/** - * TVtUiActiveIdleFetManVariation - * - * Active Idle feature manager variation class. Uses Featuremanager to verify if feture is - * supported. This class should be instanced only once and same instance - * should be passesd as reference to modules that need this feature variation - * information. - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiActiveIdleFetManVariation ) : public TVtUiFeatureVariationBase - { - -public: - - /** - * Return whether or Acvtive Idle variation is supported. - * - * @return ETrue if Acvtive Idle supported. - */ - TBool IsActiveIdleFetManSupported() const; - -private: // from TVtUiFeatureVariationBase - - TUint32 FeatureId() const; - - }; -#endif // T_VTUIFEATUREVARIATION_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtflagcontainer.h --- a/vtuis/videotelui/inc/commands/tvtflagcontainer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* Copyright (c) 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: Flag container class definition. -* -*/ - - -#ifndef T_VTFLAGCONTAINER_H -#define T_VTFLAGCONTAINER_H - -#include - -/** - * TVtFlagContainer - * - * Flag container is a class that holds maximum of 32 different flags. Also - * contains methods for setting, clearing and getting the flag state. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtFlagContainer ) - { -public: - - /** - * Constructor. - */ - inline TVtFlagContainer(); - -protected: - - /** - * Clears all flags. - */ - inline void Clear(); - - /** - * Tests flag. - */ - inline TBool IsFlag( TUint32 aFlags ) const; - - /** - * Sets flag(s). - */ - inline void SetFlag( TUint32 aFlags ); - - /** - * Clears flag(s). - */ - inline void ClearFlag( TUint32 aFlags ); - - /** - * Gets flag value. - */ - inline TUint32 Value() const; - - /** - * Sets flag value. - */ - inline void SetValue( TUint32 aValue ); - -private: - - // Current flags - TUint32 iFlags; - - }; - -/** - * TVtUpdateableFlagContainer - * - * A flag container with Update() method that can be called to get - * flags updated in one pass. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUpdateableFlagContainer ) : public TVtFlagContainer - { -public: - - /** - * Issues flag updation. - */ - inline void Update(); - -private: - - /** - * Called when flags needs to be updated (as a result to call Update()). - */ - virtual void UpdateFlags() = 0; - - }; - -#include "tvtflagcontainer.inl" - -#endif // T_VTFLAGCONTAINER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtflagcontainer.inl --- a/vtuis/videotelui/inc/commands/tvtflagcontainer.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 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: Flag container class inline methods. -* -*/ - - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::TVtFlagContainer -// ----------------------------------------------------------------------------- -// -TVtFlagContainer::TVtFlagContainer() - { - Clear(); - } - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::Clear -// ----------------------------------------------------------------------------- -// -void TVtFlagContainer::Clear() - { - iFlags = 0; - } - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::IsFlag -// ----------------------------------------------------------------------------- -// -TBool TVtFlagContainer::IsFlag( TUint32 aFlags ) const - { - return ( iFlags & aFlags ); - } - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::SetFlag -// ----------------------------------------------------------------------------- -// -void TVtFlagContainer::SetFlag( TUint32 aFlags ) - { - iFlags |= aFlags; - } - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::ClearFlag -// ----------------------------------------------------------------------------- -// -void TVtFlagContainer::ClearFlag( TUint32 aFlags ) - { - iFlags &= ~aFlags; - } - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::Value -// ----------------------------------------------------------------------------- -// -TUint32 TVtFlagContainer::Value() const - { - return iFlags; - } - -// ----------------------------------------------------------------------------- -// TVtFlagContainer::SetValue -// ----------------------------------------------------------------------------- -// -void TVtFlagContainer::SetValue( TUint32 aValue ) - { - iFlags = aValue; - } - -// ----------------------------------------------------------------------------- -// TVtUpdateableFlagContainer::Update -// ----------------------------------------------------------------------------- -// -void TVtUpdateableFlagContainer::Update() - { - Clear(); - UpdateFlags(); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuiaudiostate.h --- a/vtuis/videotelui/inc/commands/tvtuiaudiostate.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 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: Audio state class definition. -* -*/ - - -#ifndef T_VTUIAUDIOSTATE_H -#define T_VTUIAUDIOSTATE_H - -#include - -#include "tvtflagcontainer.h" - -class CVtEngModel; - -/** - * TVtUiAudioState - * - * Contains status information about video telephony audio. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiAudioState ) : public TVtUpdateableFlagContainer - { -public: - - /** - * Constructor - * - * @param aModel Reference to VT engine model. - */ - inline TVtUiAudioState( CVtEngModel& aModel ); - - /** - * Return whether audio is enabled or not. - * - * @return ETrue if audio is enabled EFalse otherwise. - */ - inline TBool IsAudio() const; - - /** - * Return whether BT handsfree can be activated or not. - * - * @return ETrue if BT handsfree can be activated EFalse otherwise. - */ - inline TBool CanActivateBtHf() const; - - /** - * Return whether BT handsfree can be deactivated or not. - * - * @return ETrue if BT handsfree can be deactivated EFalse otherwise. - */ - inline TBool CanDeactivateBtHf() const; - - /** - * Return whether loudspeaker can be activated or not. - * - * @return ETrue if loudpseaker can be activated EFalse otherwise. - */ - inline TBool CanActivateLoudspeaker() const; - - /** - * Return whether loudspeaker can be deactivated or not. - * - * @return ETrue if loudspeaker can be deactivated EFalse otherwise. - */ - inline TBool CanDeactivateLoudspeaker() const; - - /** - * Return whether or not audio is permanently stopped. - * - * @return ETrue if audio is permanently stopped. - */ - inline TBool IsAudioPermanentlyStopped() const; - -private: // from TVtUpdateableFlagContainer - - /** - * @see TVtUpdateableFlagContainer::UpdateFlags - */ - void UpdateFlags(); - -private: - - // Enumeration for audio state flags. - enum TFlags - { - /** Is set if audio is currently enabled. */ - EIsAudio = ( 1<<0 ), - /** Is set if BT handsfree can be activated. */ - ECanActivateBtHf = ( 1<<1 ), - /** Is set if BT handsfree can be deactivated. */ - ECanDeactivateBtHf = ( 1<<2 ), - /** Is set if loudspeaker can be activated. */ - ECanActivateLoudspeaker = ( 1<<3 ), - /** Is set if loudspeaker can be deactivated. */ - ECanDeactivateLoudspeaker = ( 1<<4 ), - /** Set if audio is permanently stopped */ - EIsAudioPermanentlyStopped = ( 1<<5 ) - }; - - // Reference to engine model instance - CVtEngModel& iModel; - - }; - -#include "tvtuiaudiostate.inl" - -#endif // T_VTUIAUDIOSTATE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuiaudiostate.inl --- a/vtuis/videotelui/inc/commands/tvtuiaudiostate.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* -* Copyright (c) 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: Audio state class inline methods. -* -*/ - - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::TVtUiAudioState -// ----------------------------------------------------------------------------- -// -TVtUiAudioState::TVtUiAudioState( CVtEngModel& aModel ) -: iModel( aModel ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::IsAudio -// ----------------------------------------------------------------------------- -// -TBool TVtUiAudioState::IsAudio() const - { - return IsFlag( EIsAudio ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::CanActivateBtHf -// ----------------------------------------------------------------------------- -// -TBool TVtUiAudioState::CanActivateBtHf() const - { - return IsFlag( ECanActivateBtHf ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::CanDeactivateBtHf -// ----------------------------------------------------------------------------- -// -TBool TVtUiAudioState::CanDeactivateBtHf() const - { - return IsFlag( ECanDeactivateBtHf ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::CanActivateLoudspeaker -// ----------------------------------------------------------------------------- -// -TBool TVtUiAudioState::CanActivateLoudspeaker() const - { - return IsFlag( ECanActivateLoudspeaker ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::CanDeactivateLoudspeaker -// ----------------------------------------------------------------------------- -// -TBool TVtUiAudioState::CanDeactivateLoudspeaker() const - { - return IsFlag( ECanDeactivateLoudspeaker ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsAudioPermanentlyStopped -// ----------------------------------------------------------------------------- -// -TBool TVtUiAudioState::IsAudioPermanentlyStopped() const - { - return IsFlag( EIsAudioPermanentlyStopped ); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuicmdcontexttype.h --- a/vtuis/videotelui/inc/commands/tvtuicmdcontexttype.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 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: Command context types. -* -*/ - - -#ifndef T_VTUICMDCONTEXTTYPE_H -#define T_VTUICMDCONTEXTTYPE_H - -/** - * Command context types - * - * @since S60 3.2 - */ -enum TVtUiCmdContextType - { - /** Context type not defined yet */ - EVtUiCmdContextTypeUndefined = 0, - - /** Context type menu */ - EVtUiCmdContextTypeMenu, - - /** Context type softkey */ - EVtUiCmdContextTypeSoftkey, - - /** Context type toolbar */ - EVtUiCmdContextTypeToolbar, - - /** Context type execution */ - EVtUiCmdContextTypeExecution, - - /** Context type number entry */ - EVtUiCmdContextTypeNumberEntry - - }; - -#endif // T_VTUICMDCONTEXTTYPE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuicmdpolicypriority.h --- a/vtuis/videotelui/inc/commands/tvtuicmdpolicypriority.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 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: Command policy priorities. -* -*/ - - -#ifndef T_VTUICMDPOLICYPRIORITY_H -#define T_VTUICMDPOLICYPRIORITY_H - -/** - * Command priority enumeration - * - * @since S60 3.2 - */ -enum TVtUiCmdPolicyPriority - { - /** Undefined priority value */ - EVtUiCmdPolicyPriorityUndefined = 0, - - /** Lowest possible priority */ - EVtUiCmdPolicyPriorityLowest = 1, - - /** Number entry policy priority */ - EVtUiCmdPolicyPriorityNumberEntry, - - /** Menu policy priority */ - EVtUiCmdPolicyPriorityMenu = 100, - - /** Softkey policy priority */ - EVtUiCmdPolicyPrioritySoftkey = 200, - - /** Toolbar policy priority */ - EVtUiCmdPolicyPriorityToolbar = 300, - - /** Primary policy priority, must be highest */ - EVtUiCmdPolicyPriorityPrimary, - - /** Highest possible priority */ - EVtUiCmdPolicyPriorityHighest = EVtUiCmdPolicyPriorityPrimary - - }; - -#endif // T_VTUICMDPOLICYPRIORITY_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuicmdvalidatorcallback.h --- a/vtuis/videotelui/inc/commands/tvtuicmdvalidatorcallback.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 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: Command validator callback class definition. -* -*/ - - -#ifndef T_VTUICMDVALIDATORCALLBACK_H -#define T_VTUICMDVALIDATORCALLBACK_H - -#include - -/** - * MVtUiCmdValidatorCallBack - * - * Command validator callback API. - * - * @since S60 v3.2 - */ -class MVtUiCmdValidatorCallBack - { - -public: - - /** - * Invokes callback call. - */ - virtual TBool Call( TInt ) const = 0; - - }; - -/** - * TVtUiCmdValidatorCallBack - * - * Validator callback wrapper to maintain type safety. Also allows use of - * different types of instances for invocation of callback. - * - * @since S60 v3.2 - */ -template < class T > -NONSHARABLE_CLASS( TVtUiCmdValidatorCallBack ) -: public MVtUiCmdValidatorCallBack - { - - // Callback method type definition - typedef TBool ( T::*TCallBackMethod )( TInt ) const; - -public: - - /** - * Constructor - * - * @param aInstance Instance on which callback method will be called. - * @param aMethod Callback method to be called. - */ - TVtUiCmdValidatorCallBack( const T& aInstance, TCallBackMethod aMethod ); - - /** - * Executes callback. - * - * @param aParameter Callback parameter, e.g. command Id or resource Id. - * @return Callback result. - */ - TBool Call( TInt aParameter ) const; - -private: - - // Instance from which callback method will be invoke - const T* iInstance; - - // Callback method pointer - TCallBackMethod iMethod; - - }; - -#include "tvtuicmdvalidatorcallback.inl" - -#endif // T_VTUICMDVALIDATORCALLBACK_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuicmdvalidatorcallback.inl --- a/vtuis/videotelui/inc/commands/tvtuicmdvalidatorcallback.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 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: Command validator callback class inline methods. -* -*/ - - -// ----------------------------------------------------------------------------- -// TVtUiCmdValidatorCallBack< T >::TVtUiCmdValidatorCallBack -// ----------------------------------------------------------------------------- -// -template < class T > -TVtUiCmdValidatorCallBack< T >::TVtUiCmdValidatorCallBack( - const T& aInstance, TCallBackMethod aMethod ) - : iInstance( &aInstance ), iMethod( aMethod ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiCmdValidatorCallBack< T >::Call -// ----------------------------------------------------------------------------- -// -template < class T > -TBool TVtUiCmdValidatorCallBack< T >::Call( TInt aCommandId ) const - { - return ( iInstance->*iMethod )( aCommandId ); - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuicommandmodifierpriority.h --- a/vtuis/videotelui/inc/commands/tvtuicommandmodifierpriority.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* 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: Command modifier priorities. -* -*/ - - -#ifndef VTUICOMMANDMODIFIERPRIORITIES_H -#define VTUICOMMANDMODIFIERPRIORITIES_H - -/** - * Enumerates Modifier priorities - * - * @since S60 3.2 - */ -enum TVtUiCmdModifierPriority - { - /** Undefined priority value */ - EVtUiCmdModifierPriorityUndefined = 0, - - /** Lowest possible priority */ - EVtUiCmdModifierPriorityLowest = 1, - - /** Menu Modifier priority */ - EVtUiCmdModifierPriorityToolbar = 100, - - /** Menu Modifier priority */ - EVtUiCmdModifierPriorityNumberEntry = 101, - - /** Highest possible priority */ - EVtUiCmdModifierPriorityHighest = 500, - }; - -#endif // VTUICOMMANDMODIFIERPRIORITIES_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuilocalvariation.h --- a/vtuis/videotelui/inc/commands/tvtuilocalvariation.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,231 +0,0 @@ -/* -* Copyright (c) 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: Video Telephone local variation class definition. -* -*/ - - -#ifndef T_VTUILOCALVARIATION_H -#define T_VTUILOCALVARIATION_H - -#include - -#include "tvtflagcontainer.h" - -// User selectable Call answer status values -const TInt KAllwaysQuery = 0; -const TInt KAllwaysAllow = 2; -const TInt KNumberOfTbButtons = 6; - -/** - * TVtUiVariationBase - * - * Base class for local variation classes. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiVariationBase ) : public TVtFlagContainer - { -public: - - /** - * Reads variations from central reposityory. - * and set default value in case error - */ - virtual void ReadL( const TInt adefault = -1 ); - -protected: - - /** - * Returns UID of the repository to be read. - */ - virtual const TUid& Uid() const = 0; - - /** - * ID of the key inside repository to be read. - */ - virtual TUint32 Key() const = 0; - - /** - * Gets key value. - */ - virtual TUint32 ReceiveValue() const; - - }; - -/** - * TVtUiVideoTelephonyVariation - * - * Video Telephony variation class. Reads VT local variation flags from the - * CenRep and contains methods to query flag states. This class should be - * instanced only once and same instance should be passesd as reference to - * modules that need this local variation information. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiVideoTelephonyVariation ) : public TVtUiVariationBase - { - -public: - - /** - * Return whether or not ScalingMethodENearest is set in local variation. - * - * @return ETrue if ScalingMethodENearest local variation flag is set, - * EFalse otherwise. - */ - inline TBool IsScalingMethodENearest() const; - - /** - * Return whether or not ScalingMethodEBilinear is set in local variation. - * - * @return ETrue if ScalingMethodEBilinear local variation flag is set, - * EFalse otherwise. - */ - inline TBool IsScalingMethodEBilinear() const; - - /** - * Return whether or not EnableBitReversal is set in local variation. - * - * @return ETrue if EnableBitReversal local variation flag is set, EFalse - * otherwise. - */ - inline TBool IsEnableBitReversal() const; - -private: // from TVtUiVariationBase - - /** - * @see TVtUiVariationBase::Uid - */ - const TUid& Uid() const; - - /** - * @see TVtUiVariationBase::Key - */ - TUint32 Key() const; - }; - -/** - * TVtUiActiveIdleVariation - * - * Active Idle variation class. Reads AI local variation flags from the - * CenRep and contains methods to query flag states. This class should be - * instanced only once and same instance should be passesd as reference to - * modules that need this local variation information. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiActiveIdleVariation ) : public TVtUiVariationBase - { - -public: - /** - * Return whether or not active idle is enabled in local variation. - * - * @return ETrue if active idle is enabled in local variation. - */ - TBool IsActiveIdleEnabled(); - -private: // from TVtUiVariationBase - - /** - * @see TVtUiVariationBase::Uid - */ - const TUid& Uid() const; - - /** - * @see TVtUiVariationBase::Key - */ - TUint32 Key() const; - -private: - }; - -/** - * TVtUiGsMuteVariation - * - * General settings (Gs) variation class. Reads GS local variation flags from the - * CenRep and contains methods to query flag states and values. This class should be - * instanced only once and same instance should be passesd as reference to - * modules that need this local variation information. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiGsMuteVariation ) : public TVtUiVariationBase - { - -public: - - /** - * Returns Gs mute state value from CanRep. - * - * @return Gs mute state value. - */ - TUint32 GsMuteState(); - -private: // from TVtUiVariationBase - - /** - * @see TVtUiVariationBase::Uid - */ - const TUid& Uid() const; - - /** - * @see TVtUiVariationBase::Key - */ - TUint32 Key() const; - -private: - }; - -/** - * TVtUiToolbarVariation - * - * Toolbar variation class. Reads TB local variation flags from the - * CenRep and contains methods to query flag states and values. This class should be - * instanced only once and same instance should be passesd as reference to - * modules that need this local variation information. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiToolbarVariation ) : public TVtUiVariationBase - { - -public: - /** - * Returns number of toolbar buttons from CanRep. - * - * @return number of toolbar buttons. - */ - TUint32 NumberOfButtons(); - -private: // from TVtUiVariationBase - - /** - * @see TVtUiVariationBase::Uid - */ - const TUid& Uid() const; - - /** - * @see TVtUiVariationBase::Key - */ - TUint32 Key() const; - -private: - }; - - -#include "tvtuilocalvariation.inl" - -#endif // T_VTUILOCALVARIATION_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuilocalvariation.inl --- a/vtuis/videotelui/inc/commands/tvtuilocalvariation.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 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: Video Telephone local variation class inline methods. -* -*/ - - -#include "VideoTelephonyVariant.hrh" - -// TVtUiVideoTelephonyVariation - -// ----------------------------------------------------------------------------- -// TVtUiVideoTelephonyVariation::IsScalingMethodENearest -// ----------------------------------------------------------------------------- -// -TBool TVtUiVideoTelephonyVariation::IsScalingMethodENearest() const - { - return IsFlag( KVTLVFlagScalingMethodENearest ); - } - -// ----------------------------------------------------------------------------- -// TVtUiVideoTelephonyVariation::IsScalingMethodEBilinear -// ----------------------------------------------------------------------------- -// -TBool TVtUiVideoTelephonyVariation::IsScalingMethodEBilinear() const - { - return IsFlag( KVTLVFlagScalingMethodEBilinear ); - } - -// ----------------------------------------------------------------------------- -// TVtUiVideoTelephonyVariation::IsEnableBitReversal -// ----------------------------------------------------------------------------- -// -TBool TVtUiVideoTelephonyVariation::IsEnableBitReversal() const - { - return IsFlag( KVTLVFlagEnableBitReversal ); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuimediastate.h --- a/vtuis/videotelui/inc/commands/tvtuimediastate.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,216 +0,0 @@ -/* -* Copyright (c) 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: Media state class definition. -* -*/ - - -#ifndef T_VTUIMEDIASTATE_H -#define T_VTUIMEDIASTATE_H - -#include - -#include "tvtflagcontainer.h" - -class MVtEngMedia; -class MVtEngCommandHandler; - -/** - * TVtUiMediaState - * - * Contains information about media's (video) current status. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiMediaState ) : public TVtUpdateableFlagContainer - { -public: - - /** - * Constructor. - * - * @param aMedia Reference to VT engine media object. - * @param aCommandHandler Reference to command handler object. - */ - inline TVtUiMediaState( MVtEngMedia& aMedia, - MVtEngCommandHandler& aCommandHandler ); - - /** - * Return whether or not video is being sent. - * - * @return ETrue if video is being sent. - */ - inline TBool IsVideo() const; - - /** - * Return whether or not any camera is available in device. - * - * @return ETrue if any camera is available in device. - */ - inline TBool HasCamera() const; - - /** - * Return whether or not freeze is supported for active video source. - * - * @return ETrue if freeze is supported for active video source. - */ - inline TBool IsFreezeSupported() const; - - /** - * Return whether or not active video source is frozen. - * - * @return ETrue if video is frozen. - */ - inline TBool IsFrozen() const; - - /** - * Return whether or not share is active. - * - * @return ETrue if still image is being shared. - */ - inline TBool IsSharing() const; - - /** - * Return whether or not sharing is being initialized. - * - * @return ETrue if still image sharing is being initialized. - */ - inline TBool IsInitializingShare() const; - - /** - * Return whether or not primary camera is being used by VT. - * - * @return ETrue if primary camera is being used. - */ - inline TBool IsPrimaryCameraInUse() const; - - /** - * Return whether or not secondary camera is being used by VT. - * - * @return ETrue if secondary camera is being used. - */ - inline TBool IsSecondaryCameraInUse() const; - - /** - * Return whether or not it is possible to share. - * - * @return ETrue if sharing is not allowed. - */ - inline TBool IsNotAbleToShare() const; - - /** - * Return whether or not device has primary camera. - * - * @return ETrue if primary camera is available. - */ - inline TBool HasPrimaryCamera() const; - - /** - * Return whether or not device has secondary camera. - * - * @return ETrue if secondary camera is available. - */ - inline TBool HasSecondaryCamera() const; - - /** - * Return whether or not active video source supports contrast setting. - * - * @return ETrue if contrast settingis allowed. - */ - inline TBool IsContrastSupported() const; - - /** - * Return whether or not active video source supports white balance setting. - * - * @return ETrue if white balance setting is allowed. - */ - inline TBool IsWhiteBalanceSupported() const; - - /** - * Return whether or not active video source supports color tone setting. - * - * @return ETrue if colour tone setting is allowed. - */ - inline TBool IsColorToneSupported() const; - - /** - * Return whether or not active video source supports brightness setting. - * - * @return ETrue if brightness setting is allowed. - */ - inline TBool IsBrightnessSupported() const; - - /** - * Return whether or not video is permanently stopped. - * - * @return ETrue if video is permanently stopped. - */ - inline TBool IsVideoPermanentlyStopped() const; - -private: // from TVtUpdateableFlagContainer - - /** - * @see TVtUpdateableFlagContainer::UpdateFlags - */ - void UpdateFlags(); - -private: - - // Enumeration for media state flags. - enum TFlags - { - /** Set if video is currently enabled. */ - EIsVideo = ( 1<<0 ), - /** Set if device has any cameras */ - EHasCamera = ( 1<<1 ), - /** Set if current active video source supports freezing */ - EIsFreezeSupported = ( 1<<2 ), - /** Set if current active video source is frozen */ - EIsFrozen = ( 1<<3 ), - /** Set if sharing is active */ - EIsSharing = ( 1<<4 ), - /** Set if sharing is being initialized */ - EIsInitializingShare = ( 1<<5 ), - /** Set if device's primary camera is being used by VT application */ - EIsPrimaryCameraInUse = ( 1<<6 ), - /** Set if device's secondary camera is being used by VT application */ - EIsSecondaryCameraInUse = ( 1<<7 ), - /** Set if it is not possible to share */ - EIsNotAbleToShare = ( 1<<8 ), - /** Set if device has primary camera */ - EHasPrimaryCamera = ( 1<<9 ), - /** Set if device has secondary camera */ - EHasSecondaryCamera = ( 1<<10 ), - /** Set if current video source supports contrast setting */ - EIsContrastSupported = ( 1<<11 ), - /** Set if current video source supports white balance setting */ - EIsWhiteBalanceSupported = ( 1<<12 ), - /** Set if current video source supports color tone setting */ - EIsColorToneSupported = ( 1<<13 ), - /** Set if current video source supports brightness setting */ - EIsBrightnessSupported = ( 1<<14 ), - /** Set if video is permanently stopped*/ - EIsVideoPermanentlyStopped = ( 1<<15 ) - }; - - // Reference to engine media instance. - MVtEngMedia& iMedia; - - // Reference to engine command handler instance. - MVtEngCommandHandler& iCommandHandler; - }; - -#include "tvtuimediastate.inl" - -#endif // T_VTUIMEDIASTATE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuimediastate.inl --- a/vtuis/videotelui/inc/commands/tvtuimediastate.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -/* -* Copyright (c) 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: Media state class inline methods. -* -*/ - - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::TVtUiMediaState -// ----------------------------------------------------------------------------- -// -TVtUiMediaState::TVtUiMediaState( MVtEngMedia& aMedia, - MVtEngCommandHandler& aCommandHandler ) - : iMedia( aMedia ), iCommandHandler( aCommandHandler ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsVideo -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsVideo() const - { - return IsFlag( EIsVideo ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::HasCamera -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::HasCamera() const - { - return IsFlag( EHasCamera ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsFreezeSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsFreezeSupported() const - { - return IsFlag( EIsFreezeSupported ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsFrozen -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsFrozen() const - { - return IsFlag( EIsFrozen ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsSharing -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsSharing() const - { - return IsFlag( EIsSharing ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsInitializingShare -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsInitializingShare() const - { - return IsFlag( EIsInitializingShare ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsPrimaryCameraInUse -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsPrimaryCameraInUse() const - { - return IsFlag( EIsPrimaryCameraInUse ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsSecondaryCameraInUse -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsSecondaryCameraInUse() const - { - return IsFlag( EIsSecondaryCameraInUse ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsNotAbleToShare -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsNotAbleToShare() const - { - return IsFlag( EIsNotAbleToShare ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::HasPrimaryCamera -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::HasPrimaryCamera() const - { - return IsFlag( EHasPrimaryCamera ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::HasSecondaryCamera -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::HasSecondaryCamera() const - { - return IsFlag( EHasSecondaryCamera ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsContrastSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsContrastSupported() const - { - return IsFlag( EIsContrastSupported ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsWhiteBalanceSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsWhiteBalanceSupported() const - { - return IsFlag( EIsWhiteBalanceSupported ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsColorToneSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsColorToneSupported() const - { - return IsFlag( EIsColorToneSupported ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsBrightnessSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsBrightnessSupported() const - { - return IsFlag( EIsBrightnessSupported ); - } - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::IsVideoPermanentlyStopped -// ----------------------------------------------------------------------------- -// -TBool TVtUiMediaState::IsVideoPermanentlyStopped() const - { - return IsFlag( EIsVideoPermanentlyStopped ); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuistates.h --- a/vtuis/videotelui/inc/commands/tvtuistates.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,679 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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: UI states class definition. -* -*/ - - -#ifndef T_VTUISTATES_H -#define T_VTUISTATES_H - -#include - -#include "tvtuimediastate.h" -#include "tvtuiaudiostate.h" - -class CVtEngModel; -class MVtEngCameraPreferences; - -/** - * TVtUiStates - * - * Contains information about Application UI's current status. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiStates ) : public TVtFlagContainer - { - -public: // enumerations - - /** - * Application execution state (will be set by the app state classes) - */ - enum TVtUiExecState - { - EExecStateStarting, - EExecStateRunning, - EExecStateResetting, - EExecStateFinalized - }; - -public: - - /** - * Constructor. - */ - TVtUiStates( CVtEngModel& aModel ); - - /** - * Updates UI states. - */ - void Update(); - - /** - * Return whether or not ColorToneSetting - * is supported by current camera. - * - * @return ETrue if at least one color tone setting is available, - * EFalse otherwise. - */ - TBool IsColorToneSettingAvailable() const; - - /** - * Return whether or not WhiteBalanceSetting - * is supported by current camera. - * - * @return ETrue if at least one white balance setting is available, - * EFalse otherwise. - */ - TBool IsWhiteBalanceSettingAvailable() const; - - /** - * Return whether or not ontrast setting - * is supported by current camera. - * - * @return ETrue if at contrast setting is available, - * EFalse otherwise. - */ - TBool IsContrastSettingAvailable() const; - - /** - * Return whether or not brightness setting - * is supported by current camera. - * - * @return ETrue if brightness setting is available, - * EFalse otherwise. - */ - TBool IsBrightnessSettingAvailable() const; - - /** - * Returns reference to media state object - * - * @return Reference to media state object. - */ - inline const TVtUiMediaState& MediaState() const; - - /** - * Returns reference to audio state object - * - * @return Reference to audio state object. - */ - inline const TVtUiAudioState& AudioState() const; - - /** - * Sets or clears EIsCLIReceived - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetCLIReceived( TBool aSet ); - - /** - * Check if EIsCLIReceived is set - * - * @return ETrue if EIsCLIReceived is set EFalse otherwise - */ - inline TBool IsCLIReceived() const; - - /** - * Sets or clears EIsLayoutChangeNeeded - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetLayoutChangeNeeded( TBool aSet ); - - /** - * Check if EIsLayoutChangeNeeded is set - * - * @return ETrue if EIsLayoutChangeNeeded is set EFalse otherwise - */ - inline TBool IsLayoutChangeNeeded() const; - - /** - * Sets or clears EIsBlankControlAdded - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetBlankControlAdded( TBool aSet ); - - /** - * Check if EIsBlankControlAdded is set - * - * @return ETrue if EIsBlankControlAdded is set EFalse otherwise - */ - inline TBool IsBlankControlAdded() const; - - /** - * Sets or clears EIsLaunchOkOptionsMenu - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetLaunchOkOptionsMenu( TBool aSet ); - - /** - * Check if EIsLaunchOkOptionsMenu is set - * - * @return ETrue if EIsLaunchOkOptionsMenu is set EFalse otherwise - */ - inline TBool IsLaunchOkOptionsMenu() const; - - /** - * Sets or clears EIsDeviceLockOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetDeviceLockOn( TBool aSet ); - - /** - * Check if EIsDeviceLockOn is set - * - * @return ETrue if EIsDeviceLockOn is set EFalse otherwise - */ - inline TBool IsDeviceLockOn() const; - - /** - * Sets or clears EDetailsReceived - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetDetailsReceived( TBool aSet ); - - /** - * Check if EDetailsReceived is set - * - * @return ETrue if EDetailsReceived is set EFalse otherwise - */ - inline TBool IsDetailsReceived() const; - - /** - * Sets or clears EWaitingForFirstFrame - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetWaitingForFirstFrame( TBool aSet ); - - /** - * Check if EWaitingForFirstFrame is set - * - * @return ETrue if EWaitingForFirstFrame is set EFalse otherwise - */ - inline TBool IsWaitingForFirstFrame() const; - - /** - * Sets or clears EUseSQCif - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetUseSQCif( TBool aSet ); - - /** - * Check if EUseSQCif is set - * - * @return ETrue if EUseSQCif is set EFalse otherwise - */ - inline TBool IsUseSQCif() const; - - /** - * Sets or clears EIsViewFindersInitialPlaceContextPane - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetViewFindersInitialPlaceContextPane( TBool aSet ); - - /** - * Check if EIsViewFindersInitialPlaceContextPane is set - * - * @return ETrue if EIsViewFindersInitialPlaceContextPane is set EFalse - * otherwise - */ - inline TBool IsViewFindersInitialPlaceContextPane() const; - - /** - * Sets or clears EViewFinderToMainPane - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetViewFinderToMainPane( TBool aSet ); - - /** - * Check if EViewFinderToMainPane is set - * - * @return ETrue if EViewFinderToMainPane is set EFalse otherwise - */ - inline TBool IsViewFinderToMainPane() const; - - /** - * Sets or clears EIsCaptureModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetCaptureModeOn( TBool aSet ); - - /** - * Check if EIsCaptureModeOn is set - * - * @return ETrue if EIsCaptureModeOn is set EFalse otherwise - */ - inline TBool IsCaptureModeOn() const; - - /** - * Sets or clears EIsThisApplicationForeground - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetThisApplicationForeground( TBool aSet ); - - /** - * Check if EIsThisApplicationForeground is set - * - * @return ETrue if EIsThisApplicationForeground is set EFalse otherwise - */ - inline TBool IsThisApplicationForeground() const; - - /** - * Sets or clears EIsDisableBlindSetting - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetDisableBlindSetting( TBool aSet ); - - /** - * Check if EIsDisableBlindSetting is set - * - * @return ETrue if EIsDisableBlindSetting is set EFalse otherwise - */ - inline TBool IsDisableBlindSetting() const; - - /** - * Sets or clears EExecShowCameraInUse - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetExecShowCameraInUse( TBool aSet ); - - /** - * Check if EExecShowCameraInUse is set - * - * @return ETrue if EExecShowCameraInUse is set EFalse otherwise - */ - inline TBool IsExecShowCameraInUse() const; - - /** - * Check if EIsZoomModeOn is set - * - * @return ETrue if EIsZoomModeOn is set EFalse otherwise - */ - inline TBool IsZoomModeOn() const; - - /** - * Sets or clears EIsZoomModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetZoomModeOn( TBool aSet ); - - /** - * Check if EIsWhiteBalanceModeOn is set - * - * @return ETrue if EIsWhiteBalanceModeOn is set EFalse otherwise - */ - inline TBool IsWhiteBalanceModeOn() const; - - /** - * Sets or clears EIsWhiteBalanceModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetWhiteBalanceModeOn( TBool aSet ); - - /** - * Check if EIsColorToneModeOn is set - * - * @return ETrue if EIsColorToneModeOn is set EFalse otherwise - */ - inline TBool IsColorToneModeOn() const; - - /** - * Sets or clears EIsColorToneModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetColorToneModeOn( TBool aSet ); - - /** - * Check if EBrightnessModeOn is set - * - * @return ETrue if EBrightnessModeOn is set EFalse otherwise - */ - inline TBool IsBrightnessModeOn() const; - - /** - * Sets or clears EBrightnessModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetBrightnessModeOn( TBool aSet ); - - /** - * Check if EContrastModeOn is set - * - * @return ETrue if EContrastModeOn is set EFalse otherwise - */ - inline TBool IsContrastModeOn() const; - - /** - * Sets or clears EContrastModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetContrastModeOn( TBool aSet ); - - /** - * Sets or clears EIsNumberEntryOpen - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetIsNumberEntryOpen( TBool aSet ); - - /** - * Check if EIsNumberEntryOpen is set - * - * @return ETrue if EIsNumberEntryOpen is set EFalse otherwise - */ - inline TBool IsNumberEntryOpen() const; - - /** - * Sets or clears EIsToolbarAvailable - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetIsToolbarAvailable( TBool aSet ); - - /** - * Check if IsToolbarAvailable is set - * - * @return ETrue if IsToolbarAvailable is set EFalse otherwise - */ - inline TBool IsToolbarAvailable() const; - - /** - * Sets or clears EIsWaitingCall - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetWaitingCall( TBool aSet ); - - /** - * Check if there is waiting video/voice call. - * - * @return ETrue if waiting call is ongoing, EFalse otherwise - */ - inline TBool IsWaitingCall() const; - - /** - * Sets or clears EIsSelectingShare - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetSelectingShare( TBool aSet ); - - /** - * Check if user is selecting file to be shared. - * - * @return ETrue if user is selecting file, EFalse otherwise - */ - inline TBool IsSelectingShare() const; - - /** - * Sets or clears EIsDialerOpen - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetIsDialerOpen( TBool aSet ); - - /** - * Check if video DTMF dialer is open. - * - * @return ETrue if dialer is open, EFalse otherwise - */ - inline TBool IsDialerOpen() const; - - /** - * Sets or clears EIsFixedToolbarVisible - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetIsFixedToolbarVisible( TBool aSet ); - - /** - * Check if fixed toolbar is visible. - * - * @return ETrue iftoolbar is visible, EFalse otherwise - */ - inline TBool IsFixedToolbarVisible() const; - - /** - * Sets or clears EIsDialerActivating - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetIsDialerActivating( TBool aSet ); - - /** - * Check if dialer is being activated - * - * @return ETrue if dialer is being activated, EFalse otherwise - */ - inline TBool IsDialerActivating() const; - - /** - * Adjusts command activating reference count - * - * @param aSet ETrue if setting will be increased, EFalse if - * decreased. - */ - void SetIsCommandActivating( TBool aSet ); - - /** - * Check if command activating ref.count is greater than zero - * - * @return ETrue if any command is being activated, EFalse otherwise - */ - inline TBool IsCommandActivating() const; - - /** - * Check if EIsVolumeModeOn is set - * - * @return ETrue if EIsVolumeModeOn is set EFalse otherwise - */ - inline TBool IsVolumeModeOn() const; - - /** - * Sets or clears EIsVolumeModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetVolumeModeOn( TBool aSet ); - - /** - * Check if EIsVideoQualityModeOn is set - * - * @return ETrue if EIsVideoQualityModeOn is set EFalse otherwise - */ - inline TBool IsVideoQualityModeOn() const; - - /** - * Sets or clears EIsVideoQualityModeOn - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - - inline void SetVideoQualityModeOn( TBool aSet ); - /** - * Sets or clears EIsFloatingToolbarVisible - * - * @param aSet ETrue if setting will be set, EFalse otherwise. - */ - inline void SetIsFloatingToolbarVisible( TBool aSet ); - - /** - * Check if floating toolbar is visible. - * - * @return ETrue iftoolbar is visible, EFalse otherwise - */ - inline TBool IsFloatingToolbarVisible() const; - - /** - * Returns application's execution state. - * @return Application's current execution state. - */ - TVtUiExecState ExecState() const; - -private: // methods to be accessed only by certain classes (see friends) - - /** - * Sets application's execution state. - * @param aState Application's new execution state. - */ - void SetExecState( const TVtUiExecState aState ); - -private: - - // Enumeration for ui state flags. - enum TFlags - { - /** Set if CLI is received */ - EIsCLIReceived = ( 1<<0 ), - - /** Set if layout change is needed */ - EIsLayoutChangeNeeded = ( 1<<1 ), - - /** Set if blank control has been added to control stack */ - EIsBlankControlAdded = ( 1<<2 ), - - /** Set if launch ok in options menu */ - EIsLaunchOkOptionsMenu = ( 1<<3 ), - - /** Set if device lock is on */ - EIsDeviceLockOn = ( 1<<4 ), - - /** Set if details have been received */ - EDetailsReceived = ( 1<<5 ), - - /** Set if waiting for first frame */ - EWaitingForFirstFrame = ( 1<<6 ), - - /** Set if SQCIF is being used */ - EUseSQCif = ( 1 << 7 ), - - /** Set if images was in context pane before freeze, unset if not */ - EViewFindersInitialPlaceContextPane = ( 1<<8 ), - - /** Set if viewfinder has to be moved to mainpane, when imageshare is - ready */ - EViewFinderToMainPane = ( 1<<9 ), - - /** Set if capture mode is on, unset if off */ - EIsCaptureModeOn = ( 1<<10 ), - - /** Set if application on foreground */ - EIsThisApplicationForeground = ( 1<<11 ), - - /** Set if blind setting should be temporarily disabled. - This is used in preventing blind bitmap from flashing - while operations involving multiple engine commands/events - take place (e.g. 'Swap image places' and layout switch). */ - EIsDisableBlindSetting = ( 1<<12 ), - - /** Set if camera in use note should be shown. */ - EExecShowCameraInUse = ( 1<<13 ), - - /** Set if zooming slider indicators is shown in navi pane. - Toolbar also dims other toolbar controls except zoom - mode control.*/ - EIsZoomModeOn = ( 1<<14 ), - - /** Set if contrast mode is on, unset if off */ - EIsContrastModeOn = ( 1<<15 ), - - /** Set if brightness mode is on, unset if off */ - EIsBrightnessModeOn = ( 1<<16 ), - - /** Set if number entry is open in UI (do not use this flag in new code) - */ - EIsNumberEntryOpen = ( 1<<17 ), - - /** Set if toolbar is available in UI */ - EIsToolbarAvailable = ( 1<<18 ), - - /** Set if waiting call exists */ - EIsWaitingCall = ( 1<<19 ), - - /** Set if initializing share */ - EIsSelectingShare = ( 1<<20 ), - - /** Set if initializing share */ - EIsDialerOpen = ( 1<<21 ), - - /** Set if white balance mode is on, unset if off */ - EIsWhiteBalanceModeOn = ( 1<<22 ), - - /** Set if color tone mode is on, unset if off */ - EIsColorToneModeOn = ( 1 << 23 ), - - /** Set if fixed toolar is visible, unset if not */ - EIsFixedToolbarVisible = ( 1 << 24 ), - - /** Set if dialer is being activated, unset if not */ - EIsDialerActivating = ( 1 << 25 ), - - /** Set if volume mode is on, unset if off */ - EIsVolumeModeOn = ( 1 << 26 ), - - /** Set if floating toolar is visible, unset if not */ - EIsFloatingToolbarVisible = ( 1 << 27 ), - - /** Set if video quality mode is on, unset if not */ - EIsVideoQualityModeOn = ( 1 << 28 ) - }; - - // Engine media state - TVtUiMediaState iMediaState; - - // Engine audio state - TVtUiAudioState iAudioState; - - // Refrence to engine - CVtEngModel& iModel; - - // Refrence to camera prefrences - MVtEngCameraPreferences* iCameraPref; - - // Application execution state - TVtUiExecState iExecState; - - // Reference count of command activating. Enables command to be set - // active several times and action to take only when count is reset - // back to zer0. - TUint iCommandActivatingRefCount; - -private: // friends - - friend class TVtUiAppStateBase; - - }; - -#include "tvtuistates.inl" - -#endif // T_VTUISTATES_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/commands/tvtuistates.inl --- a/vtuis/videotelui/inc/commands/tvtuistates.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,596 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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: UI states class inline methods. -* -*/ - - -// ----------------------------------------------------------------------------- -// TVtUiStates::MediaState -// ----------------------------------------------------------------------------- -// -const TVtUiMediaState& TVtUiStates::MediaState() const - { - return iMediaState; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::AudioState -// ----------------------------------------------------------------------------- -// -const TVtUiAudioState& TVtUiStates::AudioState() const - { - return iAudioState; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetCLIReceived -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetCLIReceived( TBool aSet ) - { - aSet ? SetFlag( EIsCLIReceived ) : ClearFlag( EIsCLIReceived ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsCLIReceived -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsCLIReceived() const - { - return IsFlag( EIsCLIReceived ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetLayoutChangeNeeded -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetLayoutChangeNeeded( TBool aSet ) - { - aSet ? SetFlag( EIsLayoutChangeNeeded ) : - ClearFlag( EIsLayoutChangeNeeded ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsLayoutChangeNeeded -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsLayoutChangeNeeded() const - { - return IsFlag( EIsLayoutChangeNeeded ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetBlankControlAdded -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetBlankControlAdded( TBool aSet ) - { - aSet ? SetFlag( EIsBlankControlAdded ) : - ClearFlag( EIsBlankControlAdded ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsBlankControlAdded -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsBlankControlAdded() const - { - return IsFlag( EIsBlankControlAdded ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetLaunchOkOptionsMenu -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetLaunchOkOptionsMenu( TBool aSet ) - { - aSet ? SetFlag( EIsLaunchOkOptionsMenu ) : - ClearFlag( EIsLaunchOkOptionsMenu ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsLaunchOkOptionsMenu -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsLaunchOkOptionsMenu() const - { - return IsFlag( EIsLaunchOkOptionsMenu ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetDeviceLockOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetDeviceLockOn( TBool aSet ) - { - aSet ? SetFlag( EIsDeviceLockOn ) : - ClearFlag( EIsDeviceLockOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsDeviceLockOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsDeviceLockOn() const - { - return IsFlag( EIsDeviceLockOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetDetailsReceived -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetDetailsReceived( TBool aSet ) - { - aSet ? SetFlag( EDetailsReceived ) : - ClearFlag( EDetailsReceived ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsDetailsReceived -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsDetailsReceived() const - { - return IsFlag( EDetailsReceived ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetWaitingForFirstFrame -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetWaitingForFirstFrame( TBool aSet ) - { - aSet ? SetFlag( EWaitingForFirstFrame ) : - ClearFlag( EWaitingForFirstFrame ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsWaitingForFirstFrame -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsWaitingForFirstFrame() const - { - return IsFlag( EWaitingForFirstFrame ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetUseSQCif -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetUseSQCif( TBool aSet ) - { - aSet ? SetFlag( EUseSQCif ) : - ClearFlag( EUseSQCif ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsUseSQCif -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsUseSQCif() const - { - return IsFlag( EUseSQCif ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetViewFindersInitialPlaceContextPane -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetViewFindersInitialPlaceContextPane( TBool aSet ) - { - aSet ? SetFlag( EViewFindersInitialPlaceContextPane ) : - ClearFlag( EViewFindersInitialPlaceContextPane ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsViewFindersInitialPlaceContextPane -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsViewFindersInitialPlaceContextPane() const - { - return IsFlag( EViewFindersInitialPlaceContextPane ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetViewFinderToMainPane -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetViewFinderToMainPane( TBool aSet ) - { - aSet ? SetFlag( EViewFinderToMainPane ) : - ClearFlag( EViewFinderToMainPane ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsViewFinderToMainPane -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsViewFinderToMainPane() const - { - return IsFlag( EViewFinderToMainPane ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetCaptureModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetCaptureModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsCaptureModeOn ) : - ClearFlag( EIsCaptureModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsCaptureModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsCaptureModeOn() const - { - return IsFlag( EIsCaptureModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetThisApplicationForeground -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetThisApplicationForeground( TBool aSet ) - { - aSet ? SetFlag( EIsThisApplicationForeground ) : - ClearFlag( EIsThisApplicationForeground ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsThisApplicationForeground -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsThisApplicationForeground() const - { - return IsFlag( EIsThisApplicationForeground ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetDisableBlindSetting -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetDisableBlindSetting( TBool aSet ) - { - aSet ? SetFlag( EIsDisableBlindSetting ) : - ClearFlag( EIsDisableBlindSetting ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsDisableBlindSetting -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsDisableBlindSetting() const - { - return IsFlag( EIsDisableBlindSetting ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetExecShowCameraInUse -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetExecShowCameraInUse( TBool aSet ) - { - aSet ? SetFlag( EExecShowCameraInUse ) : - ClearFlag( EExecShowCameraInUse ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsExecShowCameraInUse -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsExecShowCameraInUse() const - { - return IsFlag( EExecShowCameraInUse ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsZoomModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsZoomModeOn() const - { - return IsFlag( EIsZoomModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetZoomModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetZoomModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsZoomModeOn ) : - ClearFlag( EIsZoomModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsWhiteBalanceModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsWhiteBalanceModeOn() const - { - return IsFlag( EIsWhiteBalanceModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetWhiteBalanceModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetWhiteBalanceModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsWhiteBalanceModeOn ) : - ClearFlag( EIsWhiteBalanceModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsColorToneModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsColorToneModeOn() const - { - return IsFlag( EIsColorToneModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetColorToneModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetColorToneModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsColorToneModeOn ) : - ClearFlag( EIsColorToneModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsBrightnessModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsBrightnessModeOn() const - { - return IsFlag( EIsBrightnessModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetBrightnessModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetBrightnessModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsBrightnessModeOn ) : - ClearFlag( EIsBrightnessModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsContrastModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsContrastModeOn() const - { - return IsFlag( EIsContrastModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetContrastModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetContrastModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsContrastModeOn ) : - ClearFlag( EIsContrastModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsNumberEntryOpen -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsNumberEntryOpen( TBool aSet ) - { - aSet ? SetFlag( EIsNumberEntryOpen ) : - ClearFlag( EIsNumberEntryOpen ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsNumberEntryOpen -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsNumberEntryOpen() const - { - return IsFlag( EIsNumberEntryOpen ); - } - - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsToolbarAvailable -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsToolbarAvailable( TBool aSet ) - { - aSet ? SetFlag( EIsToolbarAvailable ) : - ClearFlag( EIsToolbarAvailable ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsToolbarAvailable -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsToolbarAvailable() const - { - return IsFlag( EIsToolbarAvailable ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates:::SetWaitingCall -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetWaitingCall( TBool aSet ) - { - aSet ? SetFlag( EIsWaitingCall ) : - ClearFlag( EIsWaitingCall ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsWaitingCall -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsWaitingCall() const - { - return IsFlag( EIsWaitingCall ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates:::SetSelectingShare -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetSelectingShare( TBool aSet ) - { - aSet ? SetFlag( EIsSelectingShare ) : - ClearFlag( EIsSelectingShare ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsSelectingShare -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsSelectingShare() const - { - return IsFlag( EIsSelectingShare ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsDialerOpen -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsDialerOpen( TBool aSet ) - { - aSet ? SetFlag( EIsDialerOpen ) : - ClearFlag( EIsDialerOpen ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsDialerOpen -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsDialerOpen() const - { - return IsFlag( EIsDialerOpen ); - } - - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsFixedToolbarVisible -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsFixedToolbarVisible( TBool aSet ) - { - aSet ? SetFlag( EIsFixedToolbarVisible ) : - ClearFlag( EIsFixedToolbarVisible ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsFixedToolbarVisible -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsFixedToolbarVisible() const - { - return IsFlag( EIsFixedToolbarVisible ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsDialerActivating -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsDialerActivating( TBool aSet ) - { - aSet ? SetFlag( EIsDialerActivating ) : - ClearFlag( EIsDialerActivating ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsDialerActivating -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsDialerActivating() const - { - return IsFlag( EIsDialerActivating ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsCommandActivating -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsCommandActivating() const - { - return iCommandActivatingRefCount > 0; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsVolumeModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsVolumeModeOn() const - { - return IsFlag( EIsVolumeModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetVolumeModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetVolumeModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsVolumeModeOn ) : - ClearFlag( EIsVolumeModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsFloatingToolbarVisible -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsFloatingToolbarVisible( TBool aSet ) - { - aSet ? SetFlag( EIsFloatingToolbarVisible ) : - ClearFlag( EIsFloatingToolbarVisible ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsFloatingToolbarVisible -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsFloatingToolbarVisible() const - { - return IsFlag( EIsFloatingToolbarVisible ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsVideoQualityModeOn -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsVideoQualityModeOn() const - { - return IsFlag( EIsVideoQualityModeOn ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetVideoQualityModeOn -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetVideoQualityModeOn( TBool aSet ) - { - aSet ? SetFlag( EIsVideoQualityModeOn ) : - ClearFlag( EIsVideoQualityModeOn ); - } \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/cvtuicomponentmanager.h --- a/vtuis/videotelui/inc/compman/cvtuicomponentmanager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,435 +0,0 @@ -/* -* 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: Component manager implementation. -* -*/ - - -#ifndef C_VTUICOMPONENTMANAGER_H -#define C_VTUICOMPONENTMANAGER_H - -#include - -#include "mvtuicomponentmanager.h" -#include "mvtuicomponent.h" -#include "tvtuicomponentstate.h" - -/** - * CVtUiComponentManager - * - * Component manager implementation. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiComponentManager ) - : public CBase, public MVtUiComponentManager - { - -public: // public methods - - /** - * Static constructor. - * - * @return Newly created instance of CVtUiComponentManager class. - */ - static CVtUiComponentManager* NewL(); - - /** - * Destructor. - */ - ~CVtUiComponentManager(); - - /** - * Called when a Ws event is delivered. - * - * @param aEvent Window server event. - * @param aDestination Event destination control. - */ - void HandleWsEventL( const TWsEvent& aEvent, CCoeControl *aDestination ); - - /** - * Called when a resource change is informed. - * - * @param aType Type of change. - */ - void HandleResourceChangeL( TInt aType ); - - /** - * Called when a keyevent needs handling. - * - * @param aKeyEvent Key event structure. - * @param aCode Event code. - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType); - - /** - * Called when a layout change is informed. - * - */ - void HandleLayoutChangeL(); - -public: // from MVtUiComponentManager - - /** - * @see MVtUiComponentManager::ChangeWsEventRegistration - */ - TInt ChangeWsEventRegistration( MVtUiWindowServerEventObserver& aObserver, - TAction aAction ); - - /** - * @see MVtUiComponentManager::ChangeResourceChangeRegistration - */ - TInt ChangeResourceChangeRegistration( - MVtUiResourceChangeObserver& aObserver, - TAction aAction ); - - /** - * @see MVtUiComponentManager::ChangeKeyEventRegistration - */ - TInt ChangeKeyEventRegistration( MVtUiKeyEventObserver& aComponent, - TAction aAction ); - - /** - * @see MVtUiComponentManager::ChangeLayoutChangeRegistration - */ - TInt ChangeLayoutChangeRegistration( MVtUiLayoutChangeObserver& aComponent, - TAction aAction ); - - /** - * @see MVtUiComponentManager::ChangeComponentRegistration - */ - TInt ChangeComponentRegistration( TVtUiComponentState& aComponentState, - TAction aAction ); - - /** - * @see MVtUiComponentManager::RequestActivation - */ - void RequestActivationL( MVtUiComponent::TComponentId aId ); - - /** - * @see MVtUiComponentManager::DeActivateComponentL - */ - void DeActivateComponentL( MVtUiComponent::TComponentId aId ); - -private: // private classes - - /** - * TStateListItem - * - * Contains one component's state in state list. - */ - class TStateListItem - { - - public: // public type definitions - - /** - * Compare by key type definition. - */ - typedef TInt (*TKeyCmpFunc) - ( const MVtUiComponent::TComponentId*, const TStateListItem& ); - - public: // public methods - - /** - * Constructor - * - * @param aState Constant reference to component state. - */ - TStateListItem( const TVtUiComponentState& aState ); - - /** - * Returns component id. - * - * @return Component's id. - */ - MVtUiComponent::TComponentId ComponentId() const; - - /** - * Returns component's state. - * - * @return Component's state. - */ - TVtUiComponentState::TState State() const; - - /** - * Sets component's state. - * - * @param aState Component's new state. - */ - void SetState( TVtUiComponentState::TState aState ); - - /** - * Returns const reference to block list. - * - * @return Constant reference to block list. - */ - const TVtUiBlockList& BlockList() const; - - /** - * Sets this object as root. - */ - void SetRoot(); - - /** - * Returns ETrue if this object is root. - * - * @return ETrue if this item is root, EFalse otherwise. - */ - TBool IsRoot() const; - - /** - * Sets this object as visited. - */ - void SetVisited(); - - /** - * Returns ETrue if this object is visited. - * - * @return ETrue if this item has been visited, EFalse otherwise. - */ - TBool IsVisited() const; - - public: // static public methods - - /** - * Returns TLinearOrder for RArray operations. Ordered by component id. - * - * @return TLinearOrder insntace for RArray operations. Ordering will - * be done based on component Id. - */ - static TLinearOrder< TStateListItem > LinearOrder(); - - /** - * Returns key order function for RArray operations. - * - * @return Key compare method pointer for RArray operations. - */ - static TKeyCmpFunc KeyOrder(); - - /** - * Returns TLinearOrder for RArray operations. Ordered by component - * state. - * - * @return TLinearOrder instance for RArray operations. Ordering will - * be done based on component state. - */ - static TLinearOrder< TStateListItem > StateOrder(); - - private: // static private methods - - /** - * StateListItem compare method. - */ - static TInt ItemCmpFunc( const TStateListItem& aItem1, - const TStateListItem& aItem2 ); - - /** - * StateListItem vs key compare method. - */ - static TInt KeyCmpFunc( const MVtUiComponent::TComponentId* aKey, - const TStateListItem& aItem ); - - /** - * StateListItem by state compare method. - */ - static TInt StateCmpFunc( const TStateListItem& aItem1, - const TStateListItem& aItem2 ); - - private: // data - - // Component's ID - MVtUiComponent::TComponentId iComponentId; - - // Component's state - TVtUiComponentState::TState iState; - - // Block mask (IDs which will be blocked by this component) - TVtUiBlockListBitField iBlockList; - - // ETrue if this component is the root compoent, EFalse otherwise - TBool iIsRoot; - - // ETrue if this component has been already visited (i.e. evaluated) - TBool iIsVisited; - - }; - - /** - * TStateList - * - * Contains list of component states. This list can be modified and when all - * modifications are ready, the whole list can be commited at once. - * - */ - class TStateList - { - - public: // public methods - - /** - * Constructor. - */ - TStateList(); - - /** - * Destructor. - */ - ~TStateList(); - - /** - * Add new item to state list. - * - * @param aItem Reference to item to be added to the list. - */ - void AddItemL( TStateListItem& aItem ); - - /** - * Returns number of items in state list. - * - * @return Number of items on list. - */ - TInt ItemCount() const; - - /** - * Find state list item by component id. - * - * @param aComponentId Id of component that will be searched. - * @return Index of the component or KErrNotFound if component with - * given Id could not be found. - */ - TInt FindItem( MVtUiComponent::TComponentId aComponentId ) const; - - /** - * Returns reference to state list item at given index. - * - * @param aIndex Index of the item to be fetched. - * @return Reference to item at given index. - */ - TStateListItem& At( TInt aIndex ); - - /** - * Returns const reference to state list item at given index. - * - * @param aIndex Index of the item to be fetched. - * @return Constant reference to item at given index. - */ - const TStateListItem& At( TInt aIndex ) const; - - /** - * Sorts list using given linear order. - * - * @param aOrder TLinearObject that will be used in sorting. - */ - void Sort( - TLinearOrder< CVtUiComponentManager::TStateListItem > aOrder ); - - private: // data - - // List items - RArray< TStateListItem > iItems; - - }; - -private: // enumerations - - /** - * Activation actions - */ - enum TActivationAction - { - /** Hide component */ - EHide, - /** Show component */ - EShow - }; - -private: - - /** - * Constructor - */ - CVtUiComponentManager(); - - /** - * 2nd constructor, may leave - */ - void ConstructL(); - - /** - * Adds or removes component from given array. - */ - template < class T > - TInt AddOrRemoveComponent( RPointerArray< T >& aArray, T* aComponent, - TAction aAction ); - - /** - * Returns linear order object for array operations. - */ - static TLinearOrder< MVtUiComponent > ComponentOrder(); - - /** - * Returns linear order object for array operations. - */ - static TLinearOrder< TVtUiComponentState > ComponentStateOrder(); - - /** - * Starts activation process. - */ - void DoActivationL( TVtUiComponentState& aComponentState, - TVtUiComponentState::TState aNewState ); - - /** - * Starts deactivation process. - */ - void DoDeactivationL( TVtUiComponentState& aComponentState, - TVtUiComponentState::TState aNewState ); - - /** - * Calculates activation. - */ - void CalculateActivationL( const TVtUiBlockList& aBlockList, - const TVtUiBlockList& aExclList, TStateList& aStateList, - TActivationAction aAction ); - - /** - * Commits activation calculation results. - */ - void CommitStateListL( TStateList& aList ); - - /** - * Constructs component state list before the calculations. - */ - void ConstructStateListL( TStateList& aList ); - -private: // data - - // Window server event listeners - RPointerArray< MVtUiWindowServerEventObserver > iWsEventObservers; - - // Resource change event listeners - RPointerArray< MVtUiResourceChangeObserver > iResourceChangeObservers; - - // Key event listeners - RPointerArray< MVtUiKeyEventObserver > iKeyEventObservers; - - // Layout change listeners - RPointerArray< MVtUiLayoutChangeObserver > iLayoutChangeObservers; - - // Registered components - RPointerArray< TVtUiComponentState > iComponents; - - }; - -#endif // C_VTUICOMPONENTMANAGER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/mvtuicomponent.h --- a/vtuis/videotelui/inc/compman/mvtuicomponent.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* 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: VT UI Component API definition. -* -*/ - - -#ifndef M_VTUICOMPONENT_H -#define M_VTUICOMPONENT_H - -#include - -class CCoeControl; - -/** - * MVtUiComponent - * - * UI component API definition. - * - * @since S60 v3.2 - */ -class MVtUiComponent - { - -public: // enumerations - - /** - * Component Ids. - */ - enum TComponentId - { - /** NULL component Id */ - EComponentIdNull = 0, - /** Toobar component Id */ - EComponentIdToolbar = ( 1 << 0 ), - /** Number entry component Id */ - EComponentIdNumberEntry = ( 1 << 1 ), - /** Video quality component id */ - EComponentIdVideoQuality = ( 1 << 2 ), - /** White balance feature id */ - EComponentIdWhiteBalance = ( 1 << 3 ), - /** Color tone component id */ - EComponentIdColorTone = ( 1 << 4 ), - /** Brightness component id */ - EVComponentIdBrightness = ( 1 << 5 ), - /** Contrast component id */ - EVComponentIdContrast = ( 1 << 6 ), - /** Dialer component id */ - EComponentIdDialer = ( 1 << 7 ), - /** Volume component id */ - EComponentIdVolume = ( 1 << 8 ), - /** Zoom component id */ - EComponentIdZoom = ( 1 << 9 ) - }; - -public: // public methods - - /** - * Returns component id. - * - * @return Component's id. - */ - virtual TComponentId ComponentId() const = 0; - - /** - * Returns this component as a CCoeControl. - * - * @return Component as a pointer to CCoeControl or NULL if this component - * is not inherited from CCoeControl. - */ - virtual CCoeControl* ComponentAsControl() = 0; - - /** - * Activates component. - */ - virtual void DoActivateL() = 0; - - /** - * Deactivates component. - */ - virtual void DoDeactivateL() = 0; - - }; - -#endif // M_VTUICOMPONENT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/mvtuicomponentmanager.h --- a/vtuis/videotelui/inc/compman/mvtuicomponentmanager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* 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: VT UI Component manager API definition. -* -*/ - - -#ifndef M_VTUICOMPONENTMANAGER_H -#define M_VTUICOMPONENTMANAGER_H - -#include - -#include "mvtuicomponent.h" - -class TVtUiComponentState; -class MVtUiWindowServerEventObserver; -class MVtUiResourceChangeObserver; -class MVtUiKeyEventObserver; -class MVtUiLayoutChangeObserver; - -/** - * MVtUiComponentManager - * - * Component manager API definition. - * - * @since S60 v3.2 - */ -class MVtUiComponentManager - { - -public: // enumerations - - /** - * Registration action. - */ - enum TAction - { - /** Register action */ - ERegister, - - /** Unregister action */ - EUnregister - }; - -public: // public methods - - /** - * Register or unregister Ws event listening. - * - * @param aComponent Observer whose registration will be changed. - * @param aAction Registration action - * @see MVtUiComponentManager::TAction - * @return KErrNone if registration action succeeded. - */ - virtual TInt ChangeWsEventRegistration( - MVtUiWindowServerEventObserver& aComponent, - TAction aAction ) = 0; - - /** - * Register or unregister resource change event listening. - * - * @param aComponent Observer whose registration will be changed. - * @param aAction Registration action - * @see MVtUiComponentManager::TAction - * @return KErrNone if registration action succeeded. - */ - virtual TInt ChangeResourceChangeRegistration( - MVtUiResourceChangeObserver& aComponent, - TAction aAction ) = 0; - - /** - * Register or unregister key event listening. - * - * @param aComponent Observer whose registration will be changed. - * @param aAction Registration action - * @see MVtUiComponentManager::TAction - * @return KErrNone if registration action succeeded. - */ - virtual TInt ChangeKeyEventRegistration( MVtUiKeyEventObserver& aComponent, - TAction aAction ) = 0; - - /** - * Register or unregister layout change listening. - * - * @param aComponent Observer whose registration will be changed. - * @param aAction Registration action - * @see MVtUiComponentManager::TAction - * @return KErrNone if registration action succeeded. - */ - virtual TInt ChangeLayoutChangeRegistration( MVtUiLayoutChangeObserver& aComponent, - TAction aAction ) = 0; - - /** - * Register or unregister component. - * - * @param aComponent Observer whose registration will be changed. - * @param aAction Registration action - * @see MVtUiComponentManager::TAction - * @return KErrNone if registration action succeeded. - */ - virtual TInt ChangeComponentRegistration( TVtUiComponentState& aComponent, - TAction aAction ) = 0; - - /** - * Request component activation. - * - * @param aId Id of component to be activated. - */ - virtual void RequestActivationL( MVtUiComponent::TComponentId aId ) = 0; - - /** - * Deactivate component. - * - * @param aId Id of component to be deactivated. - */ - virtual void DeActivateComponentL( MVtUiComponent::TComponentId aId ) = 0; - - }; - -#endif // M_VTUICOMPONENTMANAGER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/mvtuikeyeventobserver.h --- a/vtuis/videotelui/inc/compman/mvtuikeyeventobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* 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: Key event observer API for components. -* -*/ - - -#ifndef M_VTUIKEYEVENTOBSERVER_H -#define M_VTUIKEYEVENTOBSERVER_H - -#include -#include - -/** - * MVtUiKeyEventObserver - * - * Keyevent observer API definition. - * - * @since S60 v3.2 - */ -class MVtUiKeyEventObserver - { - -public: - - /** - * Called when key event handling is required. - * - * @param aEvent The key event. - * @param aCode The type of key event: EEventKey, EEventKeyUp or - * EEventKeyDown. - * @return Indicates whether or not the key event was used. - */ - virtual TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ) = 0; - - }; - -#endif // M_VTUIKEYEVENTOBSERVER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/mvtuilayoutchangeobserver.h --- a/vtuis/videotelui/inc/compman/mvtuilayoutchangeobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 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: Layout change observer API definition. -* -*/ - - -#ifndef M_VTUILAYOUTCHANGEOBSERVER_H -#define M_VTUILAYOUTCHANGEOBSERVER_H - -#include - -/** - * MVtUiLayoutChangeObserver - * - * Layout change observer API definition. - * - * @since S60 v3.2 - */ -class MVtUiLayoutChangeObserver - { - -public: - - /** - * Called when layout have been changed. - * - */ - virtual void HandleLayoutChangeL() = 0; - - }; - -#endif // M_VTUIRESOURCECHANGEOBSERVER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/mvtuiresourcechangeobserver.h --- a/vtuis/videotelui/inc/compman/mvtuiresourcechangeobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* 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: Resource change observer API definition. -* -*/ - - -#ifndef M_VTUIRESOURCECHANGEOBSERVER_H -#define M_VTUIRESOURCECHANGEOBSERVER_H - -#include - -/** - * MVtUiResourceChangeObserver - * - * Resource change observer API definition. - * - * @since S60 v3.2 - */ -class MVtUiResourceChangeObserver - { - -public: - - /** - * Called when resources have been changed. - * - * @param aType The type of resources that have changed. - */ - virtual void HandleResourceChangeL( TInt aType ) = 0; - - }; - -#endif // M_VTUIRESOURCECHANGEOBSERVER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/mvtuiwindowservereventobserver.h --- a/vtuis/videotelui/inc/compman/mvtuiwindowservereventobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* 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: Window Server event observer API definition. -* -*/ - - -#ifndef M_VTUIWINDOWSERVEREVENTOBSERVER_H -#define M_VTUIWINDOWSERVEREVENTOBSERVER_H - -class TWsEvent; -class CCoeControl; - -/** - * MVtUiWindowServerEventObserver - * - * Window Server event observer API definition. - * - * @since S60 v3.2 - */ -class MVtUiWindowServerEventObserver - { - -public: - - /** - * Called when window server event handling is required. - * - * @param aEvent A window server event. - * @param aDestination The control associated with the event. - * This is only relevant for pointer events. - */ - virtual void HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* aDestination ) = 0; - - }; - -#endif // M_VTUIWINDOWSERVEREVENTOBSERVER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/tvtuiblocklists.h --- a/vtuis/videotelui/inc/compman/tvtuiblocklists.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* -* 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: VT UI component state definition. -* -*/ - - -#ifndef T_VTUIBLOCKLISTS_H -#define T_VTUIBLOCKLISTS_H - -#include - -#include "mvtuicomponent.h" - -/** - * CVtUiBlockListIterator - * - * Class for iterating through component's block list. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiBlockListIterator ) : public CBase - { - -public: // public abstract methods - - /** - * Returns ETrue if there is more component Ids left in the iterator. - * - * @return ETrue if there is more Ids left, EFalse otherwise. - */ - virtual TBool HasNext() const = 0; - - /** - * Returns next component id. - * - * @return Next component Id. - */ - virtual MVtUiComponent::TComponentId Next() = 0; - - }; - -/** - * TVtUiBlockList - * - * Base class for component block lists. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiBlockList ) - { - -public: // public methods - - /** - * Destructor. - */ - virtual ~TVtUiBlockList(); - -public: // public abstract methods - - /** - * Returns ETrue if block list is empty. - * - * @return ETrue if this block list is empty, EFalse otherwise. - */ - virtual TBool IsEmpty() const = 0; - - /** - * Returns ETrue if block list contains given component id. - * - * @param aId Component Id to check. - * @return ETrue if this block list contains given component Id, EFalse - * otherwise. - */ - virtual TBool Contains( MVtUiComponent::TComponentId aId ) const = 0; - - /** - * Merges this block list with given block list. - * - * @param aBlockList List to merge into this block list. - */ - virtual void Union( const TVtUiBlockList& aBlockList ) = 0; - - /** - * Returns new instance of block list iterator. Instance is owned by the - * caller, but it is also pushed to cleanupstack. - * - * @return Instance to block list iterator. Iterator is for this block - * list instance. - */ - virtual CVtUiBlockListIterator* IteratorLC() const = 0; - -protected: // protected methods - - /** - * Constructor. - */ - TVtUiBlockList(); - - }; - -/** - * TVtUiBlockListBitField - * - * Component block list in which component IDs are defined as bits (i.e. - * only single bit is set per ID). - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiBlockListBitField ) : public TVtUiBlockList - { - -public: // public methods - - /** - * Default construct, initialized block list as empty. - */ - TVtUiBlockListBitField(); - - /** - * Constructor that initializes block list. - * - * @param aBlockMask Component Ids that will be added to block list. - */ - TVtUiBlockListBitField( TUint aBlockMask ); - -public: // from - - /** - * @see TVtUiBlockList::IsEmpty - */ - TBool IsEmpty() const; - - /** - * @see TVtUiBlockList::Contains - */ - TBool Contains( MVtUiComponent::TComponentId aId ) const; - - /** - * @see TVtUiBlockList::Union - */ - void Union( const TVtUiBlockList& aBlockList ); - - /** - * @see TVtUiBlockList::IteratorLC - */ - CVtUiBlockListIterator* IteratorLC() const; - -private: // inner classes - - /** - * CVtUiBListIteratorBF - * - * @since S60 v3.2 - */ - class CVtUiBListIteratorBF : public CVtUiBlockListIterator - { - - public: // public methods - - /** - * Static constructor - * - * @param aBlockMask Components Ids. - */ - static CVtUiBListIteratorBF* NewLC( const TUint& aBlockMask ); - - private: // private methods - - /** - * Constructor - */ - CVtUiBListIteratorBF( const TUint& aBlockMask ); - - private: // from CVtUiBlockListIterator - - /** - * @see CVtUiBlockListIterator::HasNext - */ - TBool HasNext() const; - - /** - * @see CVtUiBlockListIterator::Next - */ - MVtUiComponent::TComponentId Next(); - - private: // data - - // Blockmask from TVtUiBlockListBitField - const TUint iBlockMask; - - // Current id - TUint iCurrent; - - }; - -private: // data - - // Block list as bit field, this requires that component ids are defined - // as bitfields. - TUint iBlockMask; - - }; - -#endif // T_VTUIBLOCKLISTS_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/compman/tvtuicomponentstate.h --- a/vtuis/videotelui/inc/compman/tvtuicomponentstate.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* 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: VT UI component state definition. -* -*/ - - -#ifndef T_VTUICOMPONENTSTATE_H -#define T_VTUICOMPONENTSTATE_H - -#include - -#include "tvtuiblocklists.h" - -/** - * TVtUiComponentState - * - * Component state definition. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( TVtUiComponentState ) - { - -public: // enumerations - - enum TState - { - /** Component is inactive */ - EInactive, - - /** Component is activated but some other component is blocking it */ - EWaiting, - - /** Component is active */ - EActive - }; - -public: // public methods - - /** - * Activate component. - */ - void ActivateComponentL(); - - /** - * Blocks component. - */ - void BlockComponentL(); - - /** - * Deactivates component. - */ - void DeActivateComponentL(); - - /** - * Returns component's state. - * - * @return Component's current state. - */ - TState State() const; - - /** - * Returns component. - * - * @return Constant reference to component. - */ - const MVtUiComponent& Component() const; - - /** - * Returns const reference to the block list. - * - * @return Constant reference to component's block list. - */ - const TVtUiBlockList& BlockList() const; - - /** - * Returns reference to the block list. - * - * @return Reference to component's block list. - */ - TVtUiBlockList& BlockList(); - -protected: // protected methods - - /** - * Constructor - * - * @param aComponent Component for this state instance. - * @param aBlockList Block list for this state intance. - */ - TVtUiComponentState( MVtUiComponent& aComponent, - const TVtUiBlockList& aBlockList ); - -protected: - - // Reference to component - MVtUiComponent& iComponent; - - // Blocklist - TVtUiBlockListBitField iBlockList; - - // Component's state - TState iState; - - }; - -#endif // T_VTUICOMPONENTSTATE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/cvtuiappshutter.h --- a/vtuis/videotelui/inc/cvtuiappshutter.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 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: Class responsible for application exit. -* -*/ - - -#ifndef C_VTUIAPPSHUTTER_H -#define C_VTUIAPPSHUTTER_H - -#include - -#include -#include -#include - -class CAsyncCallBack; -class MVtUiShutterObserver; -class MVtUiStateContext; - -/** -* Shutdown service for the application. This is singleton -* which deletes itself when shutdown is complete. -* -* @since S60 v3.2 -*/ -class CVtUiAppShutter : public CBase - { -public: - - /** - * Returns the instance of application shutter. - * - * @param aComms for sending call ending related commands to Phone. - * @param aObserver observer informed when shutdown is completed. - * @return the application shutter - */ - static CVtUiAppShutter* InstanceL( - MVtUiShutterObserver& aObserver ); - - /** - * Starts shutdown. - */ - void StartShutdown(); - - /** - * Starts shutdown because emergency call was requested by the user. - * If supplied number is detected other than emergency number this method - * leaves KErrArgument. - * @param aStateContext for accessing emergency number and local - * variation. - */ - void ShutdownWithEmergencyCallL( MVtUiStateContext& aStateContext ); - - /** - * Callback from emergency caller. - */ - void EmergencyCallDoneL(); - -private: - - /** - * Exits the application if no pending shutdown preparation - * is ongoing. Deletes itself as last action. - */ - void ShutdownIfReadyAndDestroy(); - - - /** - * Enques async callback. - */ - void EnqueCallbackL( TCallBack& aCallback ); - - /** - * Asynch callback handling response to emergency call creation. - */ - static TInt EmergencyResponseCallback( TAny* aAny ); - - /** C++ constructor */ - CVtUiAppShutter( MVtUiShutterObserver& aObserver ); - - /** destructor */ - ~CVtUiAppShutter(); - -private: // for making shutdown with emergency call - class CEmergencyCaller : public CBase, private MPhCltEmergencyCallObserver - { - public: - /** - * Dials emergency call. Object destroys itself when - * response is received. - */ - static CEmergencyCaller* DialEmergencyL( - CVtUiAppShutter& aObserver, - MVtUiStateContext& aStateContext ); - - // Destructor - ~CEmergencyCaller(); - - private: // C++ constructor - - CEmergencyCaller( - CVtUiAppShutter& aObserver, - MVtUiStateContext& aStateContext ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - private: // from MPhCltEmergencyCallObserver - /** - * @see MPhCltEmergencyCallObserver::HandleEmergencyDialL - */ - virtual void HandleEmergencyDialL( const TInt aStatus ); - - private: // Data - - // Emergency number - TPhCltTelephoneNumber iNumber; - - // Phone Server session - RPhCltServer iServer; - - // Emergency call handler - CPhCltEmergencyCall* iEmergency; - - // Observer for callback - CVtUiAppShutter& iObserver; - - // State context for gettin entered numbers and local variation - MVtUiStateContext& iStateContext; - }; -private: // Data - - /** - * Guard flags for completing shutdown. - * All must be cleared before shutdown - * can be completed. - */ - enum TShutterFlags - { - /** Waiting for call on StartShutdown() */ - EShutterWaitingStart, - /** Waiting for callback on emegency call request */ - EShutterWaitingEmergencyCallback, - }; - - // Asynch callback - CAsyncCallBack* iCallback; - - // guard flags - TBitFlags8 iPendingStateFlags; - - // Observer to notify when application exit - // is allowed. - MVtUiShutterObserver& iObserver; - - // Handles emergency call dialling - CEmergencyCaller* iEmergencyCaller; - - }; - -#endif // C_VTUIAPPSHUTTER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/cvtuidtmfbuffer.h --- a/vtuis/videotelui/inc/cvtuidtmfbuffer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 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: DTMF buffer definition. -* -*/ - - -#ifndef C_VTUIDTMFBUFFER_H -#define C_VTUIDTMFBUFFER_H - -#include -#include "mvtuinumbersource.h" - -class CCoeEnv; -class TKeyEvent; - -// Maximum size of the DTMF buffer -const TInt KVtUiDTMFBufferSize = 64; - -/** -* TVtUiBaseComponentState -* -* Base componentstate definition. -* -* @since S60 v5.0 -*/ -class CVtUiDTMFBuffer : public CActive, public MVtUiNumberSource - { - -public: - - /** - * Static construction method. - * @param aCoeEnv Reference to CoeEnv object. - * @return Pointer to newly created instance of CVtUiDTMFBuffer. - */ - static CVtUiDTMFBuffer* NewL( const CCoeEnv& aCoeEnv ); - - /** - * C++ destructor. - */ - ~CVtUiDTMFBuffer(); - - /** - * Append one character to DTMF buffer. - * @param aChar Character to append. - * @return ETrue if the given character was appended (i.e. it is a DTMF) - */ - TBool Append( TChar aChar ); - - /** - * Clears the contents of the DTMF buffer. - */ - void Reset(); - - /** - * Promote this instance as current number source. - */ - void Activate(); - - /** - * Demote this instance from current number source position. - */ - void Deactivate(); - -public: // from MVtUiNumberSource - - /** - * @see MVtUiNumberSource::GetContents - */ - void GetContents( TDes& aContents ) const; - -private: // from CActive - - /** - * @see CActive::DoCancel - */ - void DoCancel(); - - /** - * @see CActive::RunL - */ - void RunL(); - -private: - - /** - * C++ constructor - */ - CVtUiDTMFBuffer( const CCoeEnv& aCoeEnv ); - - /** - * 2nd constructor, may leave. - */ - void ConstructL(); - - /** - * Starts buffer modification monitoring timer. If this timer expires, - * buffer will be reset. Timer is restarted when new character is added to - * the buffer. - */ - void StartTimer(); - - /** - * Called when buffer modification monitoring timer has expired. - */ - void TimerExpired( TInt aError ); - - /** - * Clears the contents of the DTMF buffer. - */ - void ResetBuffer(); - -private: - - // Reference to coeenv - const CCoeEnv& iCoeEnv; - - // Timer instance - RTimer iTimer; - - // DTMF buffer - TBuf< KVtUiDTMFBufferSize > iBuffer; - - }; - -#endif // C_VTUIDTMFBUFFER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/cvtuivideocontrolbase.h --- a/vtuis/videotelui/inc/cvtuivideocontrolbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,354 +0,0 @@ -/* -* 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: Base class for video control. -* -*/ - - -#ifndef C_VTUIVIDEOCONTROLBASE_H -#define C_VTUIVIDEOCONTROLBASE_H - -#include -#include -#include - -#include "MVtUiVideoWindow.h" -#include "CVtUiBitmapManager.h" - -// FORWARD DECLARATIONS -class CVtUiBitmapManager; -class TAknTextLineLayout; -class CAknsBasicBackgroundControlContext; -/** - * CVtUiVideoControlBase - * - * Video control base class. - * - * @since S60 v5.0 - */ -class CVtUiVideoControlBase : public CCoeControl, public MVtUiVideoWindow - { - -protected: // enumerations - - // Rendering hints - enum TRenderingHint - { - // If this hint is set, then control's background is filled with color - // at index 0. This hint is mutually exclusive with ESkinnedBackground. - // If neither EColoredBackground nor ESkinnedBackground is set, then - // no background drawing is done. - EColoredBackground, - - // If this is set, then control's background is skinned. This hint is - // mutually exclusive with EColoredBackground. If neither - // EColoredBackground nor ESkinnedBackground is set, then no background - // drawing is done. - ESkinnedBackground, - - // If this hint is set, then no blind icon is drawn. - ENoBlindIcon, - - // If this hint is set, then no waiting text is shown. - ENoWaitingText - }; - -public: - - /** - * Destructor - */ - ~CVtUiVideoControlBase(); - -protected: - - /** - * Constructor - */ - CVtUiVideoControlBase( CVtUiBitmapManager& aBitmapManager ); - - /** - * 2nd constructor - */ - void BaseConstructL(); - - /** - * Sets (enables) rendering hints - */ - void SetRenderingHint( TRenderingHint aHint ); - - /** - * Clears (disables) rendering hints - */ - void ClearRenderingHint( TRenderingHint aHint ); - - /** - * Returns reference to bitmap manager. - */ - CVtUiBitmapManager& BitmapManager() const; - - /** - * Returns pointer to bitmap with given ID. - */ - CFbsBitmap* Bitmap( TVtUiBitmapPoolId aId ) const; - - /** - * Fixes given point suitable for DP (e.g. x coordinates of the point is - * even). - */ - TPoint AdjustPointForDP( const TPoint aPoint ) const; - - /** - * Fixes given rect suitable for DP (e.g. x coordinates and width of the - * rectangle are even). - */ - TRect AdjustRectForDP( const TRect aRect ) const; - -protected: // virtual methods - - /** - * Gets waiting text layout. - */ - virtual TAknTextLineLayout WaitingTextLayout( TInt aLine ); - - /** - * The size changed method. If you need to do special handling after the - * control's size has changed, overwrite this method. - */ - virtual void HandleSizeChanged(); - - /** - * Draws control background using current skin. If you need special - * background rendering in inherited control, override this method. - * There is no need to check ESkinnedBackground hint again in this method - * because it has been checked prior to calling. - */ - virtual void DrawSkinnedBackground( CWindowGc& aGc ) const; - - /** - * Draws control background using color. If you need special - * background rendering in inherited control, override this method. - * There is no need to check EColoredBackground hint again in this method - * because it has been checked prior to calling. - */ - virtual void DrawColoredBackground( CWindowGc& aGc ) const; - - /** - * Draws waiting text. If you need special waiting text rendering in - * inherited control, override this method. - * There is no need to check ENoWaitingText hint again in this method - * because it has been checked prior to calling. - */ - virtual TBool DrawWaitingText( CWindowGc& aGc ) const; - - /** - * Draws blind icon. If you need special blind icon rendering in inherited - * control, override this method. - * There is no need to check ENoBlindIcon hint again in this method - * because it has been checked prior to calling. - */ - virtual void DrawBlind( CWindowGc& aGc ) const; - - /** - * Draws stream. If you need special stream rendering in inherited control, - * override this method. iStreamBitmap cannot be NULL if this method is - * called. - */ - virtual void DrawStream( CWindowGc& aGc ) const; - - /** - * Returns blitting position (top-left corner) coordinates for the stream. - */ - virtual TPoint StreamBlitPosition() const; - - /** - * Returns clipping rectangle for the stream. - */ - virtual TRect StreamClippingRect() const; - - /** - * Returns pointer to blind bitmap or NULL if no bitmap is present. - */ - virtual CFbsBitmap* BlindImage() const; - - /** - * Returns pointer to blind mask or NULL if no mask is present. - */ - virtual CFbsBitmap* BlindMask() const; - - /** - * Returns blit position for blind icon. - */ - virtual TPoint BlindBlitPosition() const; - -public: // from MVtUiVideoWindow - - /** - * @see MVtUiVideoWindow::Reset - */ - void Reset(); - - /** - * @see MVtUiVideoWindow::SetBlind - */ - void SetBlind( TBool aStatus ); - - /** - * @see MVtUiVideoWindow::SetStreamBitmap - */ - void SetStreamBitmap( CFbsBitmap* aStreamBitmap ); - - /** - * @see MVtUiVideoWindow::SetStreamBitmapReserve - */ - void SetStreamBitmapReserve( CFbsBitmap* aStreamBitmap ); - - /** - * @see MVtUiVideoWindow::SetWaiting - */ - void SetWaiting( TBool aShowWaitingText ); - - /** - * @see MVtUiVideoWindow::Redraw - */ - void Redraw(); - - /** - * @see CCoeControl::MopSupplyObject - */ - TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); - - /** - * Set remote video control - */ - virtual void SetRemoteVideoControl( CCoeControl* aRemoteControl ); - - /** - * Layout the postion and the size of the remote video control - */ - virtual void LayoutRemoteVideo(); - - /** - * Returns pointer to remote video control or NULL if no remote video control is present. - */ - CCoeControl * RemoteVideoControl(); - -private: // from CCoeControl - - /** - * @see CCoeControl::Draw - */ - void Draw( const TRect& aRect ) const; - - /** - * @see CCoeControl::SizeChanged - */ - void SizeChanged(); - - /** - * @see CCoeControl::PositionChanged - */ - void PositionChanged(); - -private: - - /** - * Redraws stream bitmap. - */ - void RedrawStream(); - - /** - * Wraps waiting text if needed. - */ - void WrapOnDemand(); - - /** - * Wraps waiting text. - */ - void WrapWaitingTextL(); - - /** - * The draw method. - */ - void DoDraw( CWindowGc& aGc ) const; - - /** - * Draws control background. - */ - void DoDrawBackground( CWindowGc& aGc ) const; - - /** - * Draws waiting text. - */ - TBool DoDrawWaitingText( CWindowGc& aGc ) const; - - /** - * Draws blind icon. - */ - void DoDrawBlind( CWindowGc& aGc ) const; - - /** - * Draws stream. - */ - void DoDrawStream( CWindowGc& aGc ) const; - - TBool IsAlphaZero() const; - - void SetAlpha( CWindowGc& aGc ) const; - -protected: - - // ETrue if blind icon is shown. - TBool iBlindStatus; - - // Reference to stream bitmap. - CFbsBitmap* iStreamBitmap; - - // ETrue if waiting text should be shown. - TBool iWaitingTextShow; - - // Owned wrapped waiting text. - HBufC* iWaitingTextWrapped; - - // Owned wrapped waiting text. - CArrayFix< TPtrC >* iWaitingTextWrappedArray; - - // First line layout of waiting text. - TAknLayoutText iWaitingTextLine1Layout; - - // Second line layout of waiting text. - TAknLayoutText iWaitingTextLine2Layout; - - // Owned: background context. - CAknsBasicBackgroundControlContext* iBgContext; - - // Reference to remote video control. - CCoeControl* iRemoteVideoControl; - -private: - - // Pointer to bitmap manager. - CVtUiBitmapManager* iBitmapManager; - - // Rendering hints - TBitFlags32 iHints; - - // FrameUpdate() is called from AO. - CAsyncCallBack* iAsyncFrameUpdated; - - mutable TBool iSetAlpha; - - }; - -#endif // C_VTUIVIDEOCONTROLBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/cvtuifeaturebase.h --- a/vtuis/videotelui/inc/features/cvtuifeaturebase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* 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: CVtUiFeatureBase implementation. -* -*/ - - -#ifndef C_VTUIFEATUREBASE_H -#define C_VTUIFEATUREBASE_H - -// INCLUDES -#include -#include "mvtuifeature.h" - -// CLASS DECLARATION -class CVtUiAppUi; -class CVtUiFeatureManager; - -/** -* Base class for Video Telephone application features. -* -* @since S60 3.2 -*/ -class CVtUiFeatureBase : public CBase, public MVtUiFeature - { - public: // public methods - /** - * C++ destructor. - */ - ~CVtUiFeatureBase(); - - public: // from MVtUiFeature - - /** @see MVtUiFeature */ - virtual void StartL(); - - /** @see MVtUiFeature */ - virtual void Stop() = 0; - - /** @see MVtUiFeature */ - virtual void InitFeatureL() = 0; - - /** @see MVtUiFeature */ - TVtUiFeatureState State() const; - - /** @see MVtUiFeature */ - TVtUiFeatureId Id() const; - - protected: - /** - * C++ constructor - * - */ - CVtUiFeatureBase( TVtUiFeatureId aId, - CVtUiFeatureManager& aFeatureManager ); - - /** - * BaseConstructL - * For child class to use. - * Calls constructL. - */ - void BaseConstructL(); - - /** - * Callback function that inits the features. - * @param aAny pointer to an instance of the class. - * @return always KErrNone. - */ - static TInt DoInitFeaturesL( TAny* aAny ); - - - protected: // data - - // Feature's unique Id - const TVtUiFeatureId iId; - - // Reference to featuremanager - CVtUiFeatureManager& iFeatureManager; - - // Features current state - MVtUiFeature::TVtUiFeatureState iFeatureState; - - // Owned asynch callback. - CAsyncCallBack* iAsyncCallback; - - }; - -#endif // C_VTUIFEATUREBASE_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/cvtuifeaturemanager.h --- a/vtuis/videotelui/inc/features/cvtuifeaturemanager.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/* -* Copyright (c) 2004-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: Feature manager for Video Telephone application. -* -*/ - - -#ifndef C_VTUIFEATUREMANAGER_H -#define C_VTUIFEATUREMANAGER_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION -class MVtUiFeature; -class CVtUiAppUi; -class CVtUiFeatureBase; -class TVtUiStates; -class MVtUiCommandManager; -class MVtUiComponentManager; -class CVtEngModel; -/** -* Feature manager for Video Telephone application. -* -* @since S60 v3.2 -*/ -class CVtUiFeatureManager : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVtUiFeatureManager* NewL( CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates, MVtUiCommandManager& aCommandManager, - MVtUiComponentManager& aComponentManager ); - - /** - * Destructor. - */ - ~CVtUiFeatureManager(); - - public: // New functions - - /** - * Return reference to CVtUiAppUi class. - */ - CVtUiAppUi& AppUi(); - - /** - * GetFeatureById - */ - MVtUiFeature* GetFeatureById( TInt aId ); - - /** - * TVtUiStates - */ - TVtUiStates& UiStates(); - - /** - * Command Manager - */ - MVtUiCommandManager& CommandManager(); - - /** - * Component Manager - */ - MVtUiComponentManager& ComponentManager(); - - /** - * Return reference to CVtEngModel class. - */ - CVtEngModel& Model(); - - private: - - /** - * Second phase constructor - */ - void ConstructL(); - - /** - * c++ constructor - */ - CVtUiFeatureManager( CVtUiAppUi& aAppUi, TVtUiStates& aUiStates, - MVtUiCommandManager& aCommandManager, - MVtUiComponentManager& aComponentManager ); - - /** - * Creates all features - */ - void CreateFeaturesL(); - - private: // data - - // Feature list - RPointerArray< CVtUiFeatureBase > iFeatures; - - // Ref to application ui. - CVtUiAppUi& iAppUi; - - // Reference to UI states instance - TVtUiStates& iUiStates; - - // Reference to command manager API - MVtUiCommandManager& iCommandManager; - - // Reference to component manager API - MVtUiComponentManager& iComponentManager; - - // Engine model. - CVtEngModel* iModel; - - }; - -#endif // C_VTUIFEATUREMANAGER_H -// End of File \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/cvtuicmdclosedialer.h --- a/vtuis/videotelui/inc/features/dialer/cvtuicmdclosedialer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 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: Dialer close command. -* -*/ - - -#ifndef C_VTUICMDCLOSEDIALER_H -#define C_VTUICMDCLOSEDIALER_H - -#include "cvtuifeaturecmdbase.h" - -class MVtUiCommandManager; - -/** - * CVtUiCmdCloseDialer - * - * @since S60 v5.0 - */ -class CVtUiCmdCloseDialer : public CVtUiFeatureCmdBase - { - -public: - - /** - * Static constructor - * - * @param aCommandManager Reference to command manager. - * @param aFeature Reference to minidialer feature. - * @return Newly created instance to CVtUiCmdCloseDialer. - */ - static CVtUiCmdCloseDialer* NewL( MVtUiCommandManager& aCommandManager, - MVtUiFeature& aFeature ); - - /** - * Destructor - */ - ~CVtUiCmdCloseDialer(); - -private: // from CVtUiFeatureCmdBase - - /** - * @see CVtUiFeatureCmdBase::HandleL - */ - void HandleL(); - - /** - * @see CVtUiFeatureCmdBase::IsEnabled - */ - TBool CVtUiCmdCloseDialer::IsEnabled() const; - -private: - - /** - * Constructor - */ - CVtUiCmdCloseDialer( MVtUiCommandManager& aCommandManager, - MVtUiFeature& aFeature ); - - /** - * 2nd constructor - */ - void ConstructL(); - -private: - - // Reference to command manager API. - MVtUiCommandManager& iCommandManager; - - }; - -#endif // C_VTUICMDCLOSEDIALER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/cvtuicmdopendialer.h --- a/vtuis/videotelui/inc/features/dialer/cvtuicmdopendialer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* Copyright (c) 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: Dialer open command. -* -*/ - - -#ifndef C_VTUICMDOPENDIALER_H -#define C_VTUICMDOPENDIALER_H - -#include "cvtuifeaturecmdbase.h" - -class MVtUiCommandManager; - -/** - * CVtUiCmdOpenDialer - * - * @since S60 v5.0 - */ -class CVtUiCmdOpenDialer : public CVtUiFeatureCmdBase - { - -public: - - /** - * Static constructor - * - * @param aCommandManager Reference to command manager. - * @param aFeature Reference to minidialer feature. - * @return Newly created instance to CVtUiCmdOpenDialer. - */ - static CVtUiCmdOpenDialer* NewL( MVtUiCommandManager& aCommandManager, - MVtUiFeature& aFeature ); - - /** - * Destructor - */ - ~CVtUiCmdOpenDialer(); - -private: - - /** - * Constructor - */ - CVtUiCmdOpenDialer( MVtUiCommandManager& aCommandManager, - MVtUiFeature& aFeature ); - - /** - * 2nd constructor - */ - void ConstructL(); - -private: - - // Reference to command manager API. - MVtUiCommandManager& iCommandManager; - - }; - -#endif // C_VTUICMDOPENDIALER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/cvtuidialer.h --- a/vtuis/videotelui/inc/features/dialer/cvtuidialer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* Copyright (c) 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: Dialer UI feature. -* -*/ - - -#ifndef C_VTUIDIALER_H -#define C_VTUIDIALER_H - -#include "cvtuifeaturebase.h" -#include "mvtuidialer.h" - -class CVtUiFeatureCmdBase; -class CVtUiDialerContainer; - -/** - * CVtUiDialer - * - * Mini dialer UI feature definition. - * - * @since S60 v5.0 - */ -class CVtUiDialer : public CVtUiFeatureBase, public MVtUiDialer - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to featuremanager. - * @return Newly created instance to CVtUiDialer. - */ - static CVtUiDialer* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiDialer(); - -public: // from CVtUiFeatureBase - - /** - * @see CVtUiFeatureBase::StartL - */ - void StartL(); - - /** - * @see CVtUiFeatureBase::Stop - */ - void Stop(); - - /** - * @see CVtUiFeatureBase::InitFeatureL - */ - void InitFeatureL(); - -private: // from MVtUiDialer - - /** - * @see MVtUiDialer::VideoWindow - */ - MVtUiVideoWindow& VideoWindow() const; - - /** - * @see MVtUiDialer::VideoControl - */ - CCoeControl& VideoControl() const; - -private: - - /** - * Constructor - */ - CVtUiDialer( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Preapres feature before start. - */ - void PrepareL(); - - /** - * Unprepares feature after stop. - */ - void Unprepare(); - -private: - - // Open command - CVtUiFeatureCmdBase* iCmdOpen; - - // Open command - CVtUiFeatureCmdBase* iCmdClose; - - // Dialer container - CVtUiDialerContainer* iDialerContainer; - - }; - -#endif // C_VTUIDIALER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/cvtuidialercontainer.h --- a/vtuis/videotelui/inc/features/dialer/cvtuidialercontainer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,263 +0,0 @@ -/* -* Copyright (c) 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: Dialer container class. -* -*/ - - -#ifndef C_VTUIDIALERCONTAINER_H -#define C_VTUIDIALERCONTAINER_H - -#include -#include "CVtUiAppUi.h" -#include "mvtuicomponent.h" -#include "mvtuiresourcechangeobserver.h" -#include "mvtuikeyeventobserver.h" -#include "mvtuinumbersource.h" -#include "tvtuicomponentstate.h" - -// FORWARD DECLARATIONS -class MVtUiVideoWindow; -class MVtUiComponentManager; -class CVtUiBitmapManager; -class CVtUiDialerVideoControl; -class CVideoDTMFDialer; -class TVtUiStates; -class CVtUiDialerSKModifier; -class CVtUiFeatureManager; -class CVtUiDTMFBuffer; -class CAknsBasicBackgroundControlContext; - -// CONSTANTS -const TInt KVtUiDigitBufferSize = 128; - -/** - * TVtUiMiniDialerComponentState - * - * Mini dialer component state definition. - * - * @since S60 v5.0 - */ -class TVtUiDialerComponentState : public TVtUiComponentState - { - -public: - - /** - * Constructor - */ - TVtUiDialerComponentState( MVtUiComponent& aComponent ); - - }; - -/** - * CVtUiDialerContainer - * - * Mini dialer UI feature definition. - * - * @since S60 v5.0 - */ -class CVtUiDialerContainer : public CCoeControl, - public MVtUiResourceChangeObserver, public MVtUiComponent, - public MVtUiNumberSource, public MVtUiKeyEventObserver - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - * @param aComponentManager Reference to component manager. - * @param aBitmapManager Reference to bitmap manager. - * @return Newly created instance of CVtUiDialerContainer. - */ - static CVtUiDialerContainer* - NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiDialerContainer(); - - /** - * Registers component to component manager's event handling mechanism. - * @exception May leave with error KErrAlreadyExists, if the component - * has already been registered. - */ - void RegisterComponentL(); - - /** - * Unregisters component from component manager's event handling mechanism. - */ - void UnregisterComponent(); - - /** - * Returns video window. - * @return Pointer to video window. - */ - MVtUiVideoWindow* ComponentAsVideoWindow(); - - /** - * @see CCoeControl::MopSupplyObject - */ - TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); - -private: // from MVtUiResourceChangeObserver - - /** - * @see MVtUiResourceChangeObserver::HandleResourceChangeL - */ - void HandleResourceChangeL( TInt aType ); - - -private: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - void DoDeactivateL(); - -private: // from MVtUiNumberSource - - /** - * @see MVtUiNumberSource::GetContents - */ - void GetContents( TDes& aContents ) const; - -private: // from MVtUiKeyEventObserver - - /** - * @see MVtUiNumberSource::OfferKeyEventL - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ); - -private: // from CCoeControl - - /** - * @see CCoeControl::Draw - */ - void Draw( const TRect& aRect ) const; - - /** - * @see CCoeControl::SizeChanged - */ - void SizeChanged(); - - /** - * @see CCoeControl::PositionChanged - */ - void PositionChanged(); - - /** - * @see CCoeControl::CountComponentControls - */ - TInt CountComponentControls() const; - - /** - * @see CCoeControl::ComponentControl - */ - CCoeControl* ComponentControl( TInt aIndex ) const; - -private: - - /** - * Constructor - */ - CVtUiDialerContainer( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL( CVtUiBitmapManager& aBitmapManager ); - - /** - * Layouts this control. - */ - void LayoutDialerContainer(); - - /** - * Returns dialer's rect (wrapper to VtUiLayout). - */ - TRect DialerRect() const; - - /** - * Resets digit buffer. - */ - void Reset(); - - /** - * Appends new digit to digit buffer. If buffer is full, oldest digit is - * deleted. - */ - void AppendDigit( TChar aDigit ); - - /** - * Static callback method for deactivating dialer asynchronously. - */ - static TInt ASyncDoDeactivate( TAny* aSelf ); - -private: - - // Component state - TVtUiDialerComponentState iComponentState; - - // Feature manager instance - CVtUiFeatureManager* iFeatureManager; - - // Component manager - MVtUiComponentManager* iComponentManager; - - // UI states - TVtUiStates& iUiStates; - - // Video control instance - CVtUiDialerVideoControl* iVideoControl; - - // Dialer instance - CVideoDTMFDialer* iDialer; - - // Buffer for digits - CVtUiDTMFBuffer* iInputBuffer; - - // Rendering mode - CVtUiAppUi::TRenderingMode iMode; - - // Softkey modifier for dialer feature - CVtUiDialerSKModifier* iSKModifier; - - // Asynccallback instance for handling asynchronous deactivation. - CAsyncCallBack* iAsyncDeactivate; - - // Owned: background context. - CAknsBasicBackgroundControlContext* iBgContext; - - }; - -#endif // C_VTUIDIALERCONTAINER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/cvtuidialerskmodifier.h --- a/vtuis/videotelui/inc/features/dialer/cvtuidialerskmodifier.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 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: Dialer feature softkey modifier class. -* -*/ - - -#ifndef C_VTUIDIALERSKMODIFIER_H -#define C_VTUIDIALERSKMODIFIER_H - -// INCLUDES -#include -#include "cvtuicommandmodifybase.h" - -// FORWARD DECLARATIONS -class CVtUiFeatureManager; - -/** - * CVtUiDialerSKModifier - * - * Modifies softkeys for dialer control. - * - * @since S60 v5.0 - */ -class CVtUiDialerSKModifier : public CVtUiCommandModifyBase - { - -public: // static methods - /** - * Static constructor. - * - */ - static CVtUiDialerSKModifier* NewL( CVtUiFeatureManager& aFeatureMgr ); - - /** - * Destructor - */ - ~CVtUiDialerSKModifier(); - -public: // from base class - - /** - * @See CVtUiCommandModifyBase::ModifyCommandsL - */ - virtual void ModifyCommandsL( MVtUiCommandSetting& aCommandSettings ); - - /** - * @See CVtUiCommandModifyBase::Supports - */ - virtual TBool Supports( MVtUiCommandSetting::Type aType ) const; - -private: - /** - * C++ constructor - * - */ - CVtUiDialerSKModifier( CVtUiFeatureManager& aFeatureMgr ); - -private: // data - - // refrence to appui - CVtUiFeatureManager& iFeatureMgr; - - }; - -#endif // C_VTUIDIALERSKMODIFIER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/cvtuidialervideocontrol.h --- a/vtuis/videotelui/inc/features/dialer/cvtuidialervideocontrol.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 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: Video control. -* -*/ - - -#ifndef C_VTUIDIALERVIDEOCONTROL_H -#define C_VTUIDIALERVIDEOCONTROL_H - -#include "cvtuivideocontrolbase.h" - -/** - * CVtUiDialerVideoControl - * - * Mini dialer UI feature definition. - * - * @since S60 v5.0 - */ -class CVtUiDialerVideoControl : public CVtUiVideoControlBase - { - -public: - - /** - * Static constructor - * @param aBitmapManager Reference to bitmap manager. - * @return Newly created instance of CVtUiDialerVideoControl. - */ - static CVtUiDialerVideoControl* NewL( CVtUiBitmapManager& aBitmapManager ); - - /** - * Destructor - */ - ~CVtUiDialerVideoControl(); -public: - /** - * LayoutRemoteVideo - */ - void LayoutRemoteVideo(); - -private: - - /** - * Constructor - */ - CVtUiDialerVideoControl( CVtUiBitmapManager& aBitmapManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - -private: // from CVtUiVideoControlBase - - /** - * @see CVtUiVideoControlBase::WaitingTextLayout - */ - TAknTextLineLayout WaitingTextLayout( TInt aLine ); - - }; - -#endif // C_VTUIDIALERVIDEOCONTROL_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/dialer/mvtuidialer.h --- a/vtuis/videotelui/inc/features/dialer/mvtuidialer.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 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: Dialer API for VT application. -* -*/ - - -#ifndef M_VTUIDIALER_H -#define M_VTUIDIALER_H - -class MVtUiVideoWindow; -class CCoeControl; - -/** - * MVtUiDialer - * - * Mini dialer UI feature API for AppUi. - * - * @since S60 v5.0 - */ -class MVtUiDialer - { - -public: - - /** - * Get reference to video window control - * @return Reference to video window. - */ - virtual MVtUiVideoWindow& VideoWindow() const = 0; - - /** - * Get reference to video window control - * @return Reference to video control. - */ - virtual CCoeControl& VideoControl() const = 0; - - }; - -#endif // diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/menu/cvtuimenucontext.h --- a/vtuis/videotelui/inc/features/menu/cvtuimenucontext.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* 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: Menu context class definition. -* -*/ - - -#ifndef C_VTUIMENUCONTEXT_H -#define C_VTUIMENUCONTEXT_H - -#include - -#include "cvtuicmdcontext.h" - -/** - * CVtUiMenuContext - * - * Menu command context class definition. - * - * @since S60 v3.2 - */ -class CVtUiMenuContext : public CVtUiCmdContext - { - -public: // public methods - - /** - * C++ destructor. - * - */ - ~CVtUiMenuContext(); - - /** - * Leave safe destructor. - * - */ - static CVtUiMenuContext* NewL( MVtUiCommandManager& aCommandManager ); - -public: // from CVtUiCmdContext - - /** - * @see CVtUiCmdContext::ValidateL - */ - void ValidateL( CVtUiCmdValidationActionBase& aAction ); - -private: - - /** - * C++ constructor - * - * @param aPriority Validator priority. - */ - CVtUiMenuContext( MVtUiCommandManager& aCommandManager ); - - /** - * 2nd consttuctor, may leave. - */ - void ConstructL(); - -private: // data - - }; - -#endif // C_VTUIMENUCONTEXT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/menu/cvtuimenuitemdimmeraction.h --- a/vtuis/videotelui/inc/features/menu/cvtuimenuitemdimmeraction.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* 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: Menu dimmer action class definition. -* -*/ - - -#ifndef C_VTUIMENUITEMDIMMERACTION_H -#define C_VTUIMENUITEMDIMMERACTION_H - -#include - -#include "cvtuicmdvalidationactionbase.h" - -class CEikMenuPane; - -/** - * CVtUiCmdValidationActionBase - * - * Menu item dimmer action definition. - * - * @since S60 v3.2 - */ -class CVtUiMenuItemDimmerAction : public CVtUiCmdValidationActionBase - { - -public: - - /** - * Leave-safe constructor. - * - */ - static CVtUiMenuItemDimmerAction* NewL(); - - /** - * Sets menu pane instance. - * - */ - void SetMenuPane( CEikMenuPane* aMenuPane ); - -public: // from CVtUiCmdValidationActionBase - - /** - * @see CVtUiCmdValidationActionBase::ProcessL - */ - void ProcessL( const MVtUiCmdValidatorCallBack& aCallBack ); - - /** - * @see CVtUiCmdValidationActionBase::EndProcess - */ - void EndProcess(); - -private: - - /** - * C++ constructor. - * - */ - CVtUiMenuItemDimmerAction(); - - /** - * Sets given menu command dimmed in menu. - * - */ - void SetItemDimmed( TInt aCommandId ); - -private: // data - - // Menu pane instance this action is currently working on - CEikMenuPane* iMenuPane; - - }; - -#endif // C_VTUIMENUITEMDIMMERACTION_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/menu/cvtuimenus.h --- a/vtuis/videotelui/inc/features/menu/cvtuimenus.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* 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: Menu UI feature. -* -*/ - - -#ifndef C_VTUIMENUS_H -#define C_VTUIMENUS_H - -#include "cvtuifeaturebase.h" -#include "mvtuicommandui.h" - -class CVtUiMenuContext; -class CVtUiMenuItemDimmerAction; -class CEikMenuPane; -class CVtUiCommandModifyBase; - -/** - * CVtUiMenus - * - * Menu feature definition. - * - * @since S60 v3.2 - */ -class CVtUiMenus : public CVtUiFeatureBase, public MVtUiCommandUi - { - -public: - - /** - * Static constructor - */ - static CVtUiMenus* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiMenus(); - -public: - - /** - * Sets menu context. - */ - void SetMenuPane( CEikMenuPane* aMenuPane ); - -public: // from CVtUiFeatureBase - - /** - * @see CVtUiFeatureBase::StartL - */ - void StartL(); - - /** - * @see CVtUiFeatureBase::Stop - */ - void Stop(); - - /** - * @see CVtUiFeatureBase::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiCommandUi - - /** - * @see MVtUiCommandUi::RefreshL - */ - void RefreshL(); - - /** - * @see MVtUiCommandUi::AddCommandModifier - */ - TInt AddCommandModifier( CVtUiCommandModifyBase& ); - - /** - * @see MVtUiCommandUi::RemoveCommandModifier - */ - void RemoveCommandModifier( CVtUiCommandModifyBase& ); - -private: - - /** - * Constructor - */ - CVtUiMenus( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - -private: - - // Menu context instance - CVtUiMenuContext* iMenuCommandContext; - - // Menu dimmer action instance - CVtUiMenuItemDimmerAction* iMenuDimmerAction; - - }; - -#endif // C_VTUIMENUS_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/menu/tvtuimenucommanditerator.h --- a/vtuis/videotelui/inc/features/menu/tvtuimenucommanditerator.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* 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: Menu command iterator class definition. -* -*/ - - -#ifndef T_VTUIMENUCOMMANDITERATOR_H -#define T_VTUIMENUCOMMANDITERATOR_H - -#include "mvtuicommanditerator.h" - -/** - * TVtUiMenuCommandIterator - * - * Menu command iterator class definition. - * - * @since S60 v3.2 - */ -class TVtUiMenuCommandIterator : public MVtUiCommandIterator - { - -public: // public methods - - /** - * C++ constructor - * - */ - TVtUiMenuCommandIterator( CEikMenuPane& aMenuPane ); - -public: // from MVtUiCommandIterator - - /** - * @see MVtUiCommandIterator::HasNext - */ - TBool HasNext() const; - - /** - * @see MVtUiCommandIterator::Next - */ - TInt Next(); - -private: - - // Pointer to menu pane to be iterated - CEikMenuPane* iMenuPane; - - // Current iteration point - TInt iCurrent; - - }; - -#endif // T_VTUIMENUCOMMANDITERATOR_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/mvtuifeature.h --- a/vtuis/videotelui/inc/features/mvtuifeature.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2004-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: Observer interface for handling features -* -*/ - - -#ifndef MVTUIFEATURE_H -#define MVTUIFEATURE_H - -// INCLUDES -#include - -#include "tvtuifeatureids.h" - -// CLASS DECLARATION - -/** -* Interface for handling features -* -* @since S60 v3.2 -*/ -class MVtUiFeature - { - public: // New functions - /** - * ENotSupported - * feature is not supported in current configuration. - * EUnprepared - * starting may require some init code to run. - * EPreparing - * running initialization code. - * EReady - * feature can be started. - * EActive - * feature is running. - * EDisabled - * feature is supported but cannot be started at this time. - * EFailed - * started but failed (maybe temporary or permanent, feature specific) - */ - enum TVtUiFeatureState - { - ENotSupported, - EUnprepared, - EPreparing, - EReady, - EActive, - EDisabled, - EFailed - }; - - /** - * Starts the feature. - */ - virtual void StartL() = 0; - - /** - * Stops the feature. - */ - virtual void Stop() = 0; - - /** - * Current state of the feature - */ - virtual TVtUiFeatureState State() const = 0; - - /** - * Id() - */ - virtual TVtUiFeatureId Id() const = 0; - }; - -#endif // MVTUIFEATURE_H -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/numberentry/CVtUiNumberEntryControl.h --- a/vtuis/videotelui/inc/features/numberentry/CVtUiNumberEntryControl.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* 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: Number entry control for Video Telephone application. -* -*/ - - - -#ifndef CVTUINUMBERENTRYCONTROL_H -#define CVTUINUMBERENTRYCONTROL_H - -// INCLUDES -#include -#include - -#include "mvtuicomponent.h" -#include "tvtuicomponentstate.h" -#include "mvtuinumbersource.h" - -// FORWARD DECLARATIONS -class MVtUiFeature; -class MVtUiComponentManager; -class TVtUiStates; -class MVtUiNumberEntryControlObserver; -class CVtUiDTMFBuffer; - -// CLASS DECLARATION - -/** -* TVtUiNumberEntryComponentState -* -* Component state implementation for Number Entry control. Component state is -* used by the Component Manager. -* -* @since S60 3.2 -*/ -class TVtUiNumberEntryComponentState : public TVtUiComponentState - { - -public: - - /** - * Constructor. - */ - TVtUiNumberEntryComponentState( MVtUiComponent& aComponent ); - - }; - -/** -* Number entry control for Video Telephone application. -* -* @since Series 60 2.6 -*/ -class CVtUiNumberEntryControl - : public CCoeControl, public MVtUiComponent - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aAppUi application ui. - * @param aUiStates ui states - */ - CVtUiNumberEntryControl( MVtUiFeature& aFeature, - TVtUiStates& aUiStates ); - - /** - * Symbian constructor. - * @param aRect initial area. - */ - void ConstructL( const TRect& aRect ); - - /** - * C++ destructor. - */ - ~CVtUiNumberEntryControl(); - - public: // New functions - - /** - * Opens number entry. - * @return ETrue if number entry was opened, EFalse otherwise. - */ - TBool OpenNumberEntry(); - - /** - * Returns ETrue if number entry is open. - * @return ETrue if number entry is open. - */ - TBool IsNumberEntryOpen() const; - - /** - * Closes number entry. - */ - void CloseNumberEntry(); - - /** - * Register component to component manager. - */ - void RegisterComponentL( MVtUiComponentManager& aComponentManager ); - - /** - * Unregister component to component manager. - */ - void UnregisterComponent( MVtUiComponentManager& aComponentManager ); - - /** - * Adds number entry control observer. - */ - void SetNumberEntryControlObserver( - MVtUiNumberEntryControlObserver* aObserver ); - - public: // Functions from base classes - - /** - * @see CCoeControl::OfferKeyEventL. - */ - virtual TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - - private: - - /** - * Callback function to close number entry. - * @param aAny pointer to an instance of this class. - * @return KErrNone. - */ - static TInt DoCloseNumberEntry( TAny* aAny ); - - /** - * Called from DoCloseNumberEntry when number entry needs to be closed. - */ - void HandleTimeoutCloseNumberEntry(); - - /** - * Return ETrue if menu or dialog is being displayed. - */ - TBool IsDisplayingMenuOrDialog() const; - - private: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - void DoDeactivateL(); - - private: - - // Reference to feature that owns this control. - MVtUiFeature& iFeature; - - // Number entry area layout. - TAknLayoutRect iNumberEntryAreaLayout; - - // Component state - TVtUiNumberEntryComponentState iComponentState; - - // UI States - TVtUiStates& iUiStates; - - // Number entry control observer - MVtUiNumberEntryControlObserver* iControlObserver; - - // Buffer for digits - CVtUiDTMFBuffer* iInputBuffer; - }; - -#endif // CVTUINUMBERENTRYCONTROL_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/numberentry/cvtuinumberentry.h --- a/vtuis/videotelui/inc/features/numberentry/cvtuinumberentry.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* 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: Number entry UI feature definition. -* -*/ - - -#ifndef C_VTUINUMBERENTRY_H -#define C_VTUINUMBERENTRY_H - -#include "mvtuicommandui.h" -#include "cvtuifeaturebase.h" -#include "mvtuinumberentrycontrolobserver.h" -#include "cvtuifeaturemanager.h" - -class CVtUiNumberEntryControl; - -/** - * CVtUiNumberEntry - * - * NumberEntry UI feature. - * - * @since S60 v3.2 - */ - class CVtUiNumberEntry : public CVtUiFeatureBase, - public MVtUiNumberEntryControlObserver - { - -public: - - /** - * Static constructor - */ - static CVtUiNumberEntry* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiNumberEntry(); - -public: // from CVtUiFeatureBase - - /** - * @see CVtUiFeatureBase::StartL - */ - void StartL(); - - /** - * @see CVtUiFeatureBase::Stop - */ - void Stop(); - - /** - * @see CVtUiFeatureBase::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiNumberEntryControlObserver - - /** - * @see MVtUiNumberEntryControlObserver::ControlActivatedL - */ - void ControlActivatedL(); - - /** - * @see MVtUiNumberEntryControlObserver::ControlDeactivated - */ - void ControlDeactivated(); - -private: - - /** - * Constructor - */ - CVtUiNumberEntry( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Prepares feature - */ - void PrepareL(); - - /** - * Unprepares feature - */ - void Unprepare(); - - /** - * Creates number entry control instance - */ - void CreateNumberEntryControlL(); - - /** - * Deletes number entry control instance - */ - void DeleteNumberEntryControl(); - -private: - - // Owned number entry control instance. - CVtUiNumberEntryControl* iNumberEntryControl; - - }; - -#endif // C_VTUINUMBERENTRY_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/numberentry/mvtuinumberentrycontrolobserver.h --- a/vtuis/videotelui/inc/features/numberentry/mvtuinumberentrycontrolobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* 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: Key event observer API for components. -* -*/ - - -#ifndef M_VTUINUMBERENTRYCONTROLOBSERVER_H -#define M_VTUINUMBERENTRYCONTROLOBSERVER_H - -/** -* MVtUiNumberEntryControlObserver -* -* Observer API for number entry control. -* -* @since S60 v3.2 -*/ -class MVtUiNumberEntryControlObserver - { - -public: - - /** - * Called when number entry control is activated. - */ - virtual void ControlActivatedL() = 0; - - /** - * Called when number entry control is deactivated. - */ - virtual void ControlDeactivated() = 0; - - }; - -#endif // M_VTUINUMBERENTRYCONTROLOBSERVER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuibrightness.h --- a/vtuis/videotelui/inc/features/prefs/cvtuibrightness.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 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: Brightness ui feature -* -*/ - - -#ifndef C_VTUIBRIGHTNESS_H -#define C_VTUIBRIGHTNESS_H - -#include "cvtuiprefsliderbase.h" - -/** -* CVtUiBrightness -* -* Brightness ui feature -* -* @since S60 v3.2 -*/ -class CVtUiBrightness : public CVtUiPrefSliderBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiBrightness* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiBrightness(); - -public: // from CVtUiPrefSliderBase - - /** - * @see CVtUiPrefSliderBase::StartL - */ - void StartL(); - - /** - * @see CVtUiPrefSliderBase::Stop - */ - void Stop(); - -protected: - - /* - * Constructor - */ - CVtUiBrightness( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - }; - -#endif // C_VTUIBRIGHTNESS_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuibrightnesspopup.h --- a/vtuis/videotelui/inc/features/prefs/cvtuibrightnesspopup.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 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: Brightness popup -* -*/ - - -#ifndef C_VTUIBRIGHTNESSPOPUP_H -#define C_VTUIBRIGHTNESSPOPUP_H - -#include "tvtuicomponentstate.h" -#include "cvtuiprefpopupbase.h" - - -/** -* CVtUiBrightnessPopup -* -* Brightness popup definition. -* -* @since S60 v3.2 -*/ -class CVtUiBrightnessPopup : public CVtUiPrefPopupBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiBrightnessPopup* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiBrightnessPopup(); - -protected: // from CVtUiPrefPopupBase - - // @see CVtUiPrefPopupBase::CurrentValue - TInt CurrentValue() ; - -private: - - /** - * Constructor - */ - CVtUiBrightnessPopup( CVtUiFeatureManager& aFeatureManager ); - - /* - * 2nd constructor - */ - void ConstructL(); - - }; - -#endif // C_VTUIBRIGHTNESSPOPUP_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuicolortone.h --- a/vtuis/videotelui/inc/features/prefs/cvtuicolortone.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* Copyright (c) 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: Color tone feature. -* -*/ - - -#ifndef C_VTUICOLORTONE_H -#define C_VTUICOLORTONE_H - -#include -#include "cvtuiprefsettinglistbase.h" -#include "cvtuifeaturebase.h" -#include "tvtuicomponentstate.h" -#include "mvtuicomponent.h" -#include "mvtuilayoutchangeobserver.h" - -/** -* TVtUiColorToneComponentState -* -* Video quality componentstate definition. -* -* @since S60 v3.2 -*/ -class TVtUiColorToneComponentState : public TVtUiComponentState - { - -public: - - /** - * Constructor - * @param aComponent Reference to component. - */ - TVtUiColorToneComponentState( MVtUiComponent& aComponent ); - - }; - -/** -* CVtUiColorTone -* -* Color tone UI feature definition. -* -* @since S60 v3.2 -*/ -class CVtUiColorTone : public CVtUiPrefSettingListBase, - public MVtUiComponent, public MVtUiLayoutChangeObserver - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiColorTone* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiColorTone(); - -public: // from MVtUiFeature - - /** - * @see MVtUiFeature::StartL - */ - void StartL(); - - /** - * @see MVtUiFeature::Stop - */ - void Stop(); - - /** - * @see MVtUiFeature::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - MVtUiComponent::TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - void DoDeactivateL(); - -public: // from MVtUiComponentManager - - /** - * @see MVtUiComponentManager::HandleLayoutChangeL - */ - void HandleLayoutChangeL(); - -protected: // from base class - - /** - * @see CVtUiPrefSettingListBase::CurrentSelection - */ - virtual TInt CurrentSelection(); - - /** - * @see CVtUiPrefSettingListBase::SetItemsL - */ - virtual void SetItemsL( CDesCArray& aArray ); - - /** - * @see CVtUiPrefSettingListBase::SettingPageResId - */ - virtual TInt SettingPageResId() const; - - /** - * @see CVtUiPrefSettingListBase::SettingPageItemChangedL - */ - virtual void SettingPageItemChangedL( TInt aIndex ); - -private: - - /** - * Constructor - */ - CVtUiColorTone( CVtUiFeatureManager& aFeatureManager ); - - // Maps color tone enum to array index - TInt MapCTEnumToArrayIndex( MVtEngCameraPreferences::TColorTone& - aColorTone ) const; - - // Maps arrya index to color tone enum - MVtEngCameraPreferences::TColorTone MapArrayIndexToCTEnum( - TInt aIndex) const; - - // Callback function that stops the feature. - static TInt DoStopL( TAny* aAny ); - - // Callback function that starts the feature. - static TInt DoStartL( TAny* aAny ); - -private: - - // Component state - TVtUiColorToneComponentState iComponentState; - - }; - -#endif // CVTUICOLORTONE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuicontrast.h --- a/vtuis/videotelui/inc/features/prefs/cvtuicontrast.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 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: Contrast ui feature -* -*/ - - -#ifndef C_VTUICONTRAST_H -#define C_VTUICONTRAST_H - -#include "cvtuiprefsliderbase.h" - - -/** -* CVtUiContrast -* -* Contrast ui feature -* -* @since S60 v3.2 -*/ -class CVtUiContrast : public CVtUiPrefSliderBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiContrast* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiContrast(); - -public: // from CVtUiPrefSliderBase - - /** - * @see CVtUiPrefSliderBase::StartL - */ - void StartL(); - - /** - * @see CVtUiPrefSliderBase::Stop - */ - void Stop(); - -protected: - - /* - * Constructor - */ - CVtUiContrast( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - }; - -#endif // C_VTUICONTRAST_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuicontrastpopup.h --- a/vtuis/videotelui/inc/features/prefs/cvtuicontrastpopup.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 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: Contrast popup -* -*/ - - -#ifndef C_VTUICONTRASTPOPUP_H -#define C_VTUICONTRASTPOPUP_H - -#include "tvtuicomponentstate.h" -#include "cvtuiprefpopupbase.h" - - -/** -* CVtUiContrastPopup -* -* Contrast popup definition. -* -* @since S60 v3.2 -*/ -class CVtUiContrastPopup : public CVtUiPrefPopupBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiContrastPopup* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiContrastPopup(); - -protected: // from CVtUiPrefPopupBase - - // @see CVtUiPrefPopupBase::CurrentValue - TInt CurrentValue(); - -private: - - /** - * Constructor - */ - CVtUiContrastPopup( CVtUiFeatureManager& aFeatureManager ); - - /* - * 2nd constructor - */ - void ConstructL(); - - }; - -#endif // C_VTUICONTRASTPOPUP_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuiprefpopupbase.h --- a/vtuis/videotelui/inc/features/prefs/cvtuiprefpopupbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* Copyright (c) 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: Base class for video preference popups -* -*/ - - -#ifndef C_VTUIPREFPOPUPBASE_H -#define C_VTUIPREFPOPUPBASE_H - - -#include "cvtuipopupbase.h" - -class MVtEngCameraPreferences; -class CVtUiFeatureManager; -/* -* CVtUiPrefPopupBase -* -* Base class for video preference popups -* -* @since S60 v3.2 -*/ -class CVtUiPrefPopupBase : public CVtUiPopupBase - { - -public: - - /** - * Destructor - */ - ~CVtUiPrefPopupBase(); - - -public: // from CVtUiPopupBase - - /** - * @see CVtUiPopupBase::HandleControlEventL - */ - void HandleControlEventL( - CCoeControl* aControl,TCoeEvent aEventType ); - - /** - * @see CVtUiPopupBase::UpdatePopupL - */ - void UpdatePopupL(); - -private: // from base class - - /** - * @see CVtUiPopupBase::OfferKeyEventL - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ); - -protected: // new functions - - // Does the actual viewfinder adjusting - void AdjustVideoL( TInt aValue ); - - // from base class CVtUiPopupBase::DoActivateL() - void DoActivateL(); - - // Gets current adjustvalue - virtual TInt CurrentValue() = 0; - -protected: - - /** - * Constructor - */ - CVtUiPrefPopupBase( CVtUiFeatureManager& aFeatureManager, - TVtUiBlockListBitField aBitField, TComponentId aComponentId, - TInt aCmdId ); - - /** - * 2nd constructor - */ - void BaseConstructL(); - -protected: - - // Pointer to camera preferences - MVtEngCameraPreferences* iCameraPref; - - // Reference to feature manager - CVtUiFeatureManager& iFeatureManager; - - // Engine command id - TInt iEngineCommandId; - - // Current value - TInt iCurrent; - }; - -#endif // C_VTUIPREFPOPUPBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuiprefsettinglistbase.h --- a/vtuis/videotelui/inc/features/prefs/cvtuiprefsettinglistbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* -* Copyright (c) 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: Base class for video preference setting list. -* -*/ - - -#ifndef C_VTUIPEFSETTINGLISTBASE_H -#define C_VTUIPEFSETTINGLISTBASE_H - -#include -#include "mvtuicommandui.h" -#include "cvtuifeaturebase.h" -#include "mvtuicomponent.h" -#include "tvtuicomponentstate.h" -#include "tvtuifeatureids.h" -#include "mvtuisettingpageobserver.h" - -class CVtUiAppUi; -class CVtUiTransparentSettingPage; -class MVtEngCameraPreferences; - -/** -* CVtUiPrefSettingListBase -* -* Base class for color tone and white balance -* -* @since S60 v3.2 -*/ -class CVtUiPrefSettingListBase : public CVtUiFeatureBase, - public MAknSettingPageObserver, MVtUiSettingPageObserver - { - -public: - - /** - * Destructor - */ - ~CVtUiPrefSettingListBase(); - - /** - * has pending settingpange changed cmd cause camera cover switched. - */ - TBool IsPendingCmd(); - - /** - * handle pending settingpange command - */ - void HandlePendingCmdL(); - -public: // from MVtUiFeature - - /** - * @see MVtUiFeature::Stop - */ - virtual void Stop() = 0; - - /** - * @see MVtUiFeature::InitFeatureL - */ - virtual void InitFeatureL(); - -protected: // from MAknSettingPageObserver - - /** - * @see MAknSettingPageObserver::HandleSettingPageEventL - */ - void HandleSettingPageEventL( - CAknSettingPage* aSettingPage, - TAknSettingPageEvent aEventType ); - -protected: // from MVtUiSettingPageObserver - - /** - * @see MVtUiSettingPageObserver::ListStateChangedL - */ - void ListStateChangedL(); - -protected: - - // Gets currently selected list item - virtual TInt CurrentSelection() = 0; - - // Set items to setting page - virtual void SetItemsL( CDesCArray& aArray ) = 0; - - // Gets resource id for selection list - virtual TInt SettingPageResId() const = 0; - - // This function gets called when focus is moved - // to new item in the settin page list - virtual void SettingPageItemChangedL( TInt aIndex ) = 0; - - // Start function calls this - void StartSettingPageL(); - - // Stop function calls this - void StopSettingPageL(); - -public: // from CCoeControl - - /* - * @see CCoeControl::SizeChanged - */ - void SizeChanged(); - -public: - - /** - * Updates setting pages background bitmap - * @param aFrame Bitmap for setting page's backgound. - */ - void UpdateBackground( CFbsBitmap* aFrame ); - - /** - * Updates setting value - * E.g disabling video will reset camera settings. and - * after enabling video camera setting value needs to be restored. - */ - void UpdateSettingL(); - -protected: - - /** - * Constructor - */ - CVtUiPrefSettingListBase( CVtUiFeatureManager& aFeatureManager, - TVtUiFeatureId aFeatureId ); - - /** - * 2nd constructor - */ - void ConstructL(); - - // Reads item from resource and appends it to the array - void ReadAndAppendItemL( CDesCArray& aItems, TInt aResId ); - -private: - - // Does the initialisation of the setting page - void CreateSettingPageL(); - - // Resizes backround bitmap - void ResizeBackroundBitmapRect( ); - -protected: - - // Pointer to camera preferences - MVtEngCameraPreferences* iCameraPref; - - // The original value (which was active when the - // setting page was launched) - TInt iOriginalSelection; - - // Supported color tone or white balance modes - TUint32 iSupportedModes; - - // Contains currenltly supported items in setting page - RArray< TInt> iActiveItems; - - // whether or not has a pending command - TBool iPendingSettingChangeCmd; - -private: - - // Owned setting page instance - CVtUiTransparentSettingPage* iSettingPage; - - // Background bitmap for setting page - CFbsBitmap* iViewfinderBitmap; - - // Currently focused value - TInt iCurrentSelection; - - // Position of bitmap's top left corner - TPoint iBitmapTopLeftCorner; - - // Background bitmap's clip rect - TRect iBitmapClippingRect; - - // Reference to appui - CVtUiAppUi& iAppUi; - - // Window priority for context control - TInt iWindowPriority; - - // Window position for context control - TInt iWindowPosition; - - - }; - -#endif // CVTUIPEFSETTINGLISTBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuiprefsliderbase.h --- a/vtuis/videotelui/inc/features/prefs/cvtuiprefsliderbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 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: Base class for video pref sliders -* -*/ - - -#ifndef CVTUIPREFSLIDERBASE_H -#define CVTUIPREFSLIDERBASE_H - -#include "cvtuisliderbase.h" - -class CVtUiPopupBase; - -/** -* CVtUiPrefSliderBase -* -* Base class for video pref sliders -* -* @since S60 v3.2 -*/ -class CVtUiPrefSliderBase : public CVtUiSliderBase - { - -public: - - /** - * Destructor - */ - ~CVtUiPrefSliderBase(); - -public: // from CVtUiSliderBase - - /** - * @see CVtUiSliderBase::StartL - */ - void StartL(); - - /** - * @see CVtUiSliderBase::Stop - */ - void Stop(); - - /** - * @see CVtUiSliderBase::InitFeatureL - */ - void InitFeatureL(); - -protected: - - /* - * Constructor - */ - CVtUiPrefSliderBase( CVtUiFeatureManager& aFeatureManager, - TVtUiFeatureId aFeatureId ); - - /** - * 2nd constructor - */ - void BaseConstructL( ); - - }; - -#endif // CVTUIPREFSLIDERBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuiprefsliderskmodifier.h --- a/vtuis/videotelui/inc/features/prefs/cvtuiprefsliderskmodifier.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 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: Video preference slider softkey modifier class definition. -* -*/ - - -#ifndef C_VTUIPREFSLIDERMODIFIER_H -#define C_VTUIPREFSLIDERMODIFIER_H - -#include -#include "cvtuicommandmodifybase.h" - -class CVtUiAppUi; - -/** -* CVtUiPrefSliderSKModifier -* -* Video preference slider softkey modifier class definition. -* -* @since S60 v3.2 -*/ -class CVtUiPrefSliderSKModifier : public CVtUiCommandModifyBase - { - public: // static methods - /** - * Static constructor. - * @param aAppUi Reference to command appui. - * @param aResourceId Reference resource id. - */ - static CVtUiPrefSliderSKModifier* NewL( CVtUiAppUi& aAppUi, - TInt aResourceId ); - - /** - * Destructor - */ - ~CVtUiPrefSliderSKModifier(); - - public: // from base class - - /** - * @See CVtUiCommandModifyBase::ModifyCommandsL - */ - virtual void ModifyCommandsL( MVtUiCommandSetting& aCommandSettings ); - - /** - * @See CVtUiCommandModifyBase::Supports - */ - virtual TBool Supports( MVtUiCommandSetting::Type aType ) const; - - private: - /** - * C++ constructor - * - */ - CVtUiPrefSliderSKModifier( CVtUiAppUi& aAppUi, TInt aResourceId ); - - /** - * 2nd constructor - */ - void ConstructL(); - - private: // data - - // refrence to appui - CVtUiAppUi& iAppUi; - - // softkey resource id - TInt iResourceId; - - }; - -#endif // C_VTUIPREFSLIDERMODIFIER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuitransparentsettingpage.h --- a/vtuis/videotelui/inc/features/prefs/cvtuitransparentsettingpage.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* -* Copyright (c) 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: CVtUiTransparentSettingPage API definition. -* -*/ - - -#ifndef CVTUITRANSPARENTSETTINGPAGE_H -#define CVTUITRANSPARENTSETTINGPAGE_H - -#include - -class MVtUiSettingPageObserver; -class CAknsBasicBackgroundControlContext; - -/** -* CVtUiTransparentSettingPage -* -* CVtUiTransparentSettingPage API definition. -* -* @since S60 v3.2 -*/ -class CVtUiTransparentSettingPage : public CAknTransparentCameraSettingPage -{ -public: // public methods - /** - * handle layoutChange - */ - void HandleLayoutChangeL(); - - /** - * Constructor. - * @param aResourceID Setting Page to use. - * @param aCurrentSelectionIndex The currently selected index. - * @param aItemArray List of option texts and their selection states. - * @param aAppUi Reference to AppUi. - * @return Newly created instance of CVtUiTransparentSettingPage class. - */ - CVtUiTransparentSettingPage( - TInt aResourceID, - TInt& aCurrentSelectionIndex, - const MDesCArray* aItemArray ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Destructor - */ - ~CVtUiTransparentSettingPage(); - - /** - * Adds setting page observer. - * @param aObserver Observer for setting page. - */ - void SetSettingPageEventStateObserver( - MVtUiSettingPageObserver* aObserver ); - -private: // from aknsettinpage - - /** - * @see CAknSettinPage::DynamicInitL - */ - void DynamicInitL(); - - /** - * @get the layout data in portrait or landscape mode - */ - void GetTheLayoutData(); - - /** - * @see CAknSettinPage::HandleControlEventL - */ - void HandleControlEventL( CCoeControl* aControl,TCoeEvent aEventType ); - -private: // new functions - - /* - * Gets rect from layout data. - */ - TRect RectFromLayout( const TAknWindowComponentLayout& - aComponentLayout ) const; - -private: - - // Setting page observer - MVtUiSettingPageObserver* iSettingPageObserver; -}; - -#endif // CVTUITRANSPARENTSETTINGPAGE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuivideoquality.h --- a/vtuis/videotelui/inc/features/prefs/cvtuivideoquality.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* -* Copyright (c) 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: Video quality feature. -* -*/ - - -#ifndef C_VTUIVIDEOQUALITY_H -#define C_VTUIVIDEOQUALITY_H - -#include -#include "cvtuifeaturebase.h" -#include "mvtuicomponent.h" -#include "tvtuicomponentstate.h" -#include "videotelui.hrh" - -/** -* TVtUiVideoQualityComponentState -* -* Video quality componentstate definition. -* -* @since S60 v3.2 -*/ -class TVtUiVideoQualityComponentState : public TVtUiComponentState - { - -public: - - /** - * Constructor - * @param aComponent Reference to component. - */ - TVtUiVideoQualityComponentState( MVtUiComponent& aComponent ); - - }; - -/** -* CVtUiVideoQuality -* -* Video quality UI feature definition. -* -* @since S60 v3.2 -*/ -class CVtUiVideoQuality : public CVtUiFeatureBase, - public MVtUiComponent - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiVideoQuality* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiVideoQuality(); - -public: // from MVtUiFeature - - /** - * @see MVtUiFeature::StartL - */ - void StartL(); - - /** - * @see MVtUiFeature::Stop - */ - void Stop(); - - /** - * @see MVtUiFeature::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - MVtUiComponent::TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - void DoDeactivateL(); - -private: - - // Creates icons for list - CGulIcon* CreateIconLC( TVtUiBitmapId aIconId, TVtUiBitmapId aMaskId ); - - // Shows the selection list - void ShowSelectionListL(); - - // Async the selection list - static TInt AsyncShowSelectionList( TAny* aPtr ); - - // Reads items from source to target array and updates the selection icon - // if needed. - void SetItemsL( CDesCArray& aTarget,const CDesCArray& aSource ); - - // Return curretly active item. - TInt ActiveItem() const; - - // Item selected, adjust video quality. - void ItemSelectedL( TInt aItemIndex ); - -private: - - /** - * Constructor - */ - CVtUiVideoQuality( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Callback function that stops the feature. - * @param aAny pointer to an instance of the class. - * @return always KErrNone. - */ - static TInt DoStop( TAny* aAny ); - -private: - - // Component state - TVtUiVideoQualityComponentState iComponentState; - - // Async callback for selection list - CAsyncCallBack* iShowSelectionListCallback; - }; - -#endif // CVTUIVIDEOQUALITY_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/cvtuiwhitebalance.h --- a/vtuis/videotelui/inc/features/prefs/cvtuiwhitebalance.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* Copyright (c) 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: White balance feature. -* -*/ - - -#ifndef C_VTUIWHITEBALANCE_H -#define C_VTUIWHITEBALANCE_H - -#include -#include "cvtuiprefsettinglistbase.h" -#include "tvtuicomponentstate.h" -#include "mvtuicomponent.h" -#include "mvtuilayoutchangeobserver.h" - -/** -* TVtUiWhiteBalanceComponentState -* -* Video quality componentstate definition. -* -* @since S60 v3.2 -*/ -class TVtUiWhiteBalanceComponentState : public TVtUiComponentState - { - -public: - - /** - * Constructor - * @param aComponent Reference to component. - */ - TVtUiWhiteBalanceComponentState( MVtUiComponent& aComponent ); - - }; - -/** -* CVtUiWhiteBalance -* -* White balance UI feature definition. -* -* @since S60 v3.2 -*/ -class CVtUiWhiteBalance : public CVtUiPrefSettingListBase, - public MVtUiComponent, public MVtUiLayoutChangeObserver - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiWhiteBalance* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiWhiteBalance(); - -public: // from MVtUiFeature - - /** - * @see MVtUiFeature::StartL - */ - void StartL(); - - /** - * @see MVtUiFeature:Stop - */ - void Stop(); - - /** - * @see MVtUiFeature::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - MVtUiComponent::TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - void DoDeactivateL(); - -public: // from MVtUiComponentManager - - /** - * @see MVtUiComponentManager::HandleLayoutChangeL - */ - void HandleLayoutChangeL(); - -protected: // from base class - - /** - * @see CVtUiPrefSettingListBase::CurrentSelection - */ - virtual TInt CurrentSelection(); - - /** - * @see CVtUiPrefSettingListBase::SetItemsL - */ - virtual void SetItemsL( CDesCArray& aArray ); - - /** - * @see CVtUiPrefSettingListBase::SettingPageResId - */ - virtual TInt SettingPageResId() const; - - /** - * @see CVtUiPrefSettingListBase::SettingPageItemChangedL - */ - virtual void SettingPageItemChangedL( TInt aIndex ); - -private: - - /** - * Constructor - */ - CVtUiWhiteBalance( CVtUiFeatureManager& aFeatureManager ); - - // Maps white balance enum to array index - TInt MapWBEnumToArrayIndex( MVtEngCameraPreferences::TWhiteBalance& - aWhiteBalance ) const; - - // Maps arrya index to white balance enum - MVtEngCameraPreferences::TWhiteBalance MapArrayIndexToWBEnum( TInt aIndex) const; - - // Callback function that stops the feature. - static TInt DoStopL( TAny* aAny ); - - // Callback function that starts the feature. - static TInt DoStartL( TAny* aAny ); - -private: - - // Component state - TVtUiWhiteBalanceComponentState iComponentState; - - }; - -#endif // CVTUIWHITEBALANCE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/prefs/mvtuisettingpageobserver.h --- a/vtuis/videotelui/inc/features/prefs/mvtuisettingpageobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 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: Observer API for CVtUiTransparentSettingPage. -* -*/ - - -#ifndef M_VTUISETTINGPAGEOBSERVER_H -#define M_VTUISETTINGPAGEOBSERVER_H - -/** -* MVtUiSettingPageObserver -* -* Observer API for CVtUiTransparentSettingPage. -* -* @since S60 v3.2 -*/ -class MVtUiSettingPageObserver - { - -public: - - /** - * Called when EEventStateChanged event occurs - * in setting page. - */ - virtual void ListStateChangedL() = 0; - - }; - -#endif // M_VTUISETTINGPAGEOBSERVER_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/softkey/cvtuisoftkeycontext.h --- a/vtuis/videotelui/inc/features/softkey/cvtuisoftkeycontext.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* 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: Softkey context class definition. -* -*/ - - -#ifndef C_VTUISOFTKEYCONTEXT_H -#define C_VTUISOFTKEYCONTEXT_H - -#include - -#include "cvtuicmdcontext.h" - -/** - * CVtUiSoftkeyContext - * - * Softkey command context class definition. - * - * @since S60 v3.2 - */ -class CVtUiSoftkeyContext : public CVtUiCmdContext - { - -public: // public methods - - /** - * C++ destructor. - */ - ~CVtUiSoftkeyContext(); - - /** - * Static constructor - * @param aCommandManager Reference to command manager. - */ - static CVtUiSoftkeyContext* NewL( MVtUiCommandManager& aCommandManager ); - -public: // virtual methods - - /** - * Make validations. - * - * @param aAction Reference to validation action base. - */ - void ValidateL( CVtUiCmdValidationActionBase& aAction ); - -private: - - /** - * C++ constructor - * - * @param aCommandManager Reference to command manager. - */ - CVtUiSoftkeyContext( MVtUiCommandManager& aCommandManager ); - - /** - * 2nd consttuctor, may leave. - */ - void ConstructL(); - - }; - -#endif // C_VTUISOFTKEYCONTEXT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/softkey/cvtuisoftkeys.h --- a/vtuis/videotelui/inc/features/softkey/cvtuisoftkeys.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* 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: Softkey UI feature. -* -*/ - - -#ifndef C_VTUISOFTKEYS_H -#define C_VTUISOFTKEYS_H - -#include "mvtuicommandui.h" -#include "cvtuifeaturebase.h" - -class CEikButtonGroupContainer; -class CVtUiSoftkeySetting; -class CVtUiCommandModifyBase; -class CVtUiSoftkeyValidationAction; -class CVtUiSoftkeyContext; - -/** - * CVtUiSoftkeys - * - * Sofktey UI feature definition. - * - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CVtUiSoftkeys ) : public CVtUiFeatureBase, - public MVtUiCommandUi - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - * @param aButtonGroupContainer Reference to button group container. - */ - static CVtUiSoftkeys* NewL( CVtUiFeatureManager& aFeatureManager, - CEikButtonGroupContainer& aButtonGroupContainer ); - - /** - * Destructor - */ - ~CVtUiSoftkeys(); - -public: - - /** - * Returns reference to application button group container. - */ - CEikButtonGroupContainer& ButtonGroup(); - -public: // from CVtUiFeatureBase - - /** - * @see CVtUiFeatureBase::StartL - */ - void StartL(); - - /** - * @see CVtUiFeatureBase::Stop - */ - void Stop(); - - /** - * @see CVtUiFeatureBase::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiCommandUi - - /** - * @see MVtUiCommandUi::RefreshL - */ - void RefreshL(); - - /** - * @see MVtUiCommandUi::AddCommandModifierL - */ - TInt AddCommandModifier( CVtUiCommandModifyBase& aModifier ); - - /** - * @see MVtUiCommandUi::RemoveCommandModifierL - */ - void RemoveCommandModifier( CVtUiCommandModifyBase& aModifier ); - -private: - - /** - * Constructor - */ - CVtUiSoftkeys( CVtUiFeatureManager& aFeatureManager, - CEikButtonGroupContainer& aButtonGroupContainer ); - - /** - * 2nd constructor - */ - void ConstructL(); - -private: - - // Softkey container - CEikButtonGroupContainer& iButtonGroupContainer; - - // Softkey context instance - CVtUiSoftkeyContext* iSoftkeyCommandContext; - - // Softkey setter - CVtUiSoftkeySetting* iSoftkeySetting; - - // Softkey validation action instance - CVtUiSoftkeyValidationAction* iSoftkeyValidationAction; - - }; - -#endif // C_VTUISOFTKEYS_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/softkey/cvtuisoftkeysetting.h --- a/vtuis/videotelui/inc/features/softkey/cvtuisoftkeysetting.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* 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: Softkey settings class definition. -* -*/ - - -#ifndef C_VTUISOFTKEYSETTING_H -#define C_VTUISOFTKEYSETTING_H - -#include "cvtuicommandsetting.h" - -class CVtUiSoftkeys; -class CVtUiSoftkeyValidationAction; - -/** - * CVtUiSoftkeySetting - * - * Softkey setting class definition. - * - * @since S60 v3.2 - */ -class CVtUiSoftkeySetting : - public CVtUiCommandSetting< CVtUiSoftkeyValidationAction > - { - -public: - - /** - * Constructor - * @param aSoftkeys Reference to softkeysr. - */ - CVtUiSoftkeySetting( CVtUiSoftkeys& aSoftkeys ); - - /** - * Destructor - */ - ~CVtUiSoftkeySetting(); - -public: // from CVtUiCommandSetting - - /** - * @see CVtUiCommandSetting::DoDefineCommandsL - */ - void DoDefineCommandsL(); - -private: - - // Softkey container - CVtUiSoftkeys* iSoftkeys; - - }; - -#endif // C_VTUISOFTKEYSETTING_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/softkey/cvtuisoftkeyvalidationaction.h --- a/vtuis/videotelui/inc/features/softkey/cvtuisoftkeyvalidationaction.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* 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: Softkey validation action class definition. -* -*/ - - -#ifndef C_CVTUISOFTKEYVALIDATIONACTION_H -#define C_CVTUISOFTKEYVALIDATIONACTION_H - -#include - -#include "cvtuicmdvalidationactionbase.h" - -/** - * CVtUiSoftkeyValidationAction - * - * Softkey validation action definition. - * - * @since S60 v3.2 - */ -class CVtUiSoftkeyValidationAction : public CVtUiCmdValidationActionBase - { - -public: - - /** - * Static constructor - */ - static CVtUiSoftkeyValidationAction* NewL(); - -public: // from CVtUiCmdValidationActionBase - - /** - * @see CVtUiCmdValidationActionBase::BeginProcess - */ - void BeginProcess(); - - /** - * @see CVtUiCmdValidationActionBase::ProcessL - */ - void ProcessL( const MVtUiCmdValidatorCallBack& aCallBack ); - -public: // new methods - - /** - * Returns resource id after validation process. - */ - TInt ResourceId() const; - -private: - - /** - * C++ constructor. - * - */ - CVtUiSoftkeyValidationAction(); - -private: // data - - // Index to currently selected softkey - TInt iCurrentIdx; - - }; - -#endif // C_CVTUISOFTKEYVALIDATIONACTION_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuifixedtoolbar.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuifixedtoolbar.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2008 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: Fixed toolbar UI feature class definition. -* -*/ - - -#ifndef C_VTUIFIXEDTOOLBAR_H -#define C_VTUIFIXEDTOOLBAR_H - -#include "cvtuitoolbarbase.h" - -/** -* CVtUiFixedToolbar -* -* Toolbar UI feature definition. -* -* @since S60 3.2 -*/ -class CVtUiFixedToolbar : public CVtUiToolbarBase - { - public: // public methods - - /** - * Static constructor. - * @param aFeatureManager feature manager. - */ - static CVtUiFixedToolbar* NewL(CVtUiFeatureManager& aFeatureManager ); - - /** - * C++ destructor. - */ - ~CVtUiFixedToolbar(); - - public: // from CVtUiToolbarBase - - /** - * @see CVtUiToolbarBase::DoActivateL - */ - void DoActivateL(); - - /** - * @see CVtUiToolbarBase::DoDeactivateL - */ - void DoDeactivateL(); - - /** - * @see CVtUiToolbarBase::CreateToolbarButtonsL - */ - void CreateToolbarButtonsL(); - - /** - * @see CVtUiToolbarBase::PopulateCmdsIdsL - */ - void PopulateCmdsIdsL(); - - /** - * @see CVtUiToolbarBase::SetToolbarVisibilityAfterLayoutChange - */ - void SetToolbarVisibilityAfterLayoutChangeL( TBool aVisible ); - - private: - - // Hides/shows toolbar - void MakeToolbarVisible( const TBool aVisible ); - - // Dimms/undimms all toolbar buttons - void DimToolbarbuttons( TBool aIsDimmed ); - - // Sets toolbar visible - static TInt DoShowToolbarL( TAny* aAny ); - - // Sets toolbar buttons dimmed - static TInt DoDimToolbarButtons( TAny* aAny ); - - private: - - /** - * C++ constructor - */ - CVtUiFixedToolbar( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - private: // data - - // for callback usage - CIdle* iIdle; - }; - -#endif // C_VTUIFIXEDTOOLBAR_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuifloatingtoolbar.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuifloatingtoolbar.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* -* 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: Floating toolbar UI feature class definition. -* -*/ - - -#ifndef C_VTUIFLOATINGTOOLBAR_H -#define C_VTUIFLOATINGTOOLBAR_H - -#include "cvtuitoolbarbase.h" -#include "mvtuiresourcechangeobserver.h" -#include - -/** -* CVtUiFloatingToolbar -* -* Toolbar UI feature definition. -* -* @since S60 3.2 -*/ -class CVtUiFloatingToolbar : public CVtUiToolbarBase, - public MVtUiResourceChangeObserver - { - public: // public methods - - /** - * Static constructor. - * @param aFeatureManager feature manager. - */ - static CVtUiFloatingToolbar* NewL( CVtUiFeatureManager& - aFeatureManager ); - - /** - * C++ destructor. - */ - ~CVtUiFloatingToolbar(); - - - public: // from CVtUiToolbarBase - - - /** - * @see CVtUiToolbarBase::DoActivateL - */ - void DoActivateL(); - - /** - * @see CVtUiToolbarBase::DoDeactivateL - */ - void DoDeactivateL(); - - /** - * @see CVtUiToolbarBase::CreateToolbarButtonsL - */ - void CreateToolbarButtonsL(); - - /** - * @see CVtUiToolbarBase::PopulateCmdsIdsL - */ - void PopulateCmdsIdsL(); - - public: // from MVtUiResourceChangeObserver - - /** - * @see MVtUiComponent::HandleResourceChangeL - */ - void HandleResourceChangeL( TInt aType ); - - private: - - /** - * C++ constructor - */ - CVtUiFloatingToolbar( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - /** - - /* - * Gets rect from layout data. - */ - TRect RectFromLayout( const TAknWindowComponentLayout& - aComponentLayout ) const; - - /* - * Sets toolbar layout. - */ - void LayoutToolbarL(); - - /* - * Gets variety for layoutdata. - */ - TInt GetVariety( TBool aIsLandscapeOrientation ); - - private: // data - - - - }; - -#endif // C_VTUIFLOATINGTOOLBAR_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuihidetoolbaritemaction.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuihidetoolbaritemaction.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* 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: Toolbar hide item action class definition. -* -*/ - - -#ifndef C_VTUIHIDETOLLBARITEMACTION_H -#define C_VTUIHIDETOLLBARITEMACTION_H - -#include -#include "cvtuicmdvalidationactionbase.h" -#include "tvtuistates.h" - -class CVtUiToolbarBase; - -/** -* CVtUiHideToolbarItemAction -* -* Toolbar hide item action definition. -* -* @since S60 v3.2 -*/ -class CVtUiHideToolbarItemAction : public CVtUiCmdValidationActionBase - { - public: - - /** - * Leave-safe constructor. - * @param aToolbar Pointer to toolbar. - * @param aUiStates Reference to uistates. - */ - static CVtUiHideToolbarItemAction* NewL( CVtUiToolbarBase* aToolbar, - const TVtUiStates& aUiStates ); - - /** - * Destructor - * - */ - ~CVtUiHideToolbarItemAction(); - - public: // from CVtUiCmdValidationActionBase - - /** - * @See CVtUiCmdValidationActionBase::ProcessL - */ - void ProcessL( const MVtUiCmdValidatorCallBack& aCallBack ); - - - /** - * @See CVtUiCmdValidationActionBase::EndProcess - */ - virtual void EndProcess(); - - private: - - /** - * C++ constructor. - * - */ - CVtUiHideToolbarItemAction( CVtUiToolbarBase* aToolbar, - const TVtUiStates& aUiStates ); - - /** - * Sets given toolbar control hidden in toolbar. - * - */ - void SetItemHiddenL( TInt aCommandId ); - - /** - * Decides if toolbar control should be dimmed or shown. - * - */ - void HideOrShowToolbarControlL( TInt aCommandId ); - - private: // data - - // Toolbar instance this action is currently working on - CVtUiToolbarBase* iToolbar; - - // Reference to UI states instance - const TVtUiStates& iUiStates; - }; - -#endif // C_VTUIHIDETOLLBARITEMACTION_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuitoolbarbase.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuitoolbarbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,372 +0,0 @@ -/* -* 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: Base class for toolbar. -* -*/ - - -#ifndef C_VTUITOOLBAR_H -#define C_VTUITOOLBAR_H - -#include -#include -#include - -#include "mvtuifeature.h" -#include "CVtUiAppUi.h" -#include "cvtuifeaturebase.h" -#include "mvtuicommandui.h" -#include "mvtuicomponent.h" -#include "mvtuiresourcechangeobserver.h" -#include "tvtuicomponentstate.h" -#include "mvtuilayoutchangeobserver.h" -#include - -class MVtuiFeature; -class CAknToolbar; -class CVtUiToolbarItem; -class TVtUiFeatureState; -class TVtUiStates; -class CVtUiToolbarContext; -class CVtUiToolbarCmdPolicy; -class CVtUiHideToolbarItemAction; -class CVtUiFeatureManager; -class CVtUiToolbarSKModifier; -class CVtUiToolbarButton; - -/** -* TVtUiToolbarComponentState -* -* Toolbar componentstate definition. -* -* @since S60 v3.2 -*/ -class TVtUiToolbarComponentState : public TVtUiComponentState - { - -public: - - /** - * Constructor - * @param aComponent Reference to component. - */ - TVtUiToolbarComponentState( MVtUiComponent& aComponent ); - - }; - -/** -* CVtUiToolbar -* -* Toolbar UI feature definition. -* -* @since S60 3.2 -*/ -class CVtUiToolbarBase : public CVtUiFeatureBase, public MAknToolbarObserver, - public MVtUiCommandUi, public MVtUiComponent, - public MVtUiLayoutChangeObserver - { - public: // public methods - - /** - * C++ destructor. - */ - ~CVtUiToolbarBase(); - - public: // from MAknToolbarObserver - - /** - * @see MAknToolbarObserver::DynInitToolbarL - */ - void DynInitToolbarL( - TInt aResourceId, - CAknToolbar* aToolbar ); - - /** - * @see MAknToolbarObserver::DynInitToolbarL - */ - void OfferToolbarEventL( TInt aCommand ); - - public: // from MVtUiFeature - /** - * @see MVtUiFeature::StartL - */ - void StartL(); - - /** - * @see MVtUiFeature::Stop - */ - void Stop(); - - /* - * @see MVtUiFeature::InitFeatureL - */ - void InitFeatureL(); - - public: // from MVtUiCommandUi - - /** - * @see MVtUiCommandUi::RefreshL - */ - void RefreshL(); - - /** - * @see MVtUiCommandUi::AddCommandModifier - */ - TInt AddCommandModifier( CVtUiCommandModifyBase& aModifier ); - - /** - * @see MVtUiCommandUi::RemoveCommandModifier - */ - void RemoveCommandModifier( CVtUiCommandModifyBase& aModifier ); - - public: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - virtual void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - virtual void DoDeactivateL(); - - public: // from MVtUiComponentManager - - /** - * @see MVtUiComponentManager::HandleLayoutChangeL - */ - void HandleLayoutChangeL(); - - public: - - /** - * Return number of commands in toolbar. - * @return Number of commands. - */ - TInt NumberOfToolbarControls() const; - - /** - * Maps command id array index to command id. - * @param aIndex Command id array index. - * @return Command id associated with index. - */ - TInt CommandIdByCmdIdsArrayIndex( TInt aIndex ) const; - - /** - * Updates toolbar's buttons states and - * redraws the toolbar. - */ - void UpdateToolbarL(); - - /** - * EHidden - * command is hidden - * EDimmed - * command is dimmed - * EShown - * command is visible - */ - enum TCmdStateFlags - { - ENotInitialized = -1, - EHidden, - EDimmed, - EShown - }; - - /** - * Sets visibility of toolbar commands. - * @param aCmdId command id. - * @param aNewState command's new state. - * @return ETrue if command is available, otherwise EFalse. - */ - void SetCmdIdVisibilityStateL( TInt aCmdId, TCmdStateFlags aNewState); - - /** - * Cheks if command is available in toolbar. - * @param aCmdId command id. - * @return ETrue if command is available, otherwise EFalse. - */ - TBool IsCommandInToolbar( TInt aCmdId ) const; - - protected: - - /** - * C++ constructor - */ - CVtUiToolbarBase( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd phase constructor - */ - void BaseConstructL(); - - protected: - - /** - * Creates toolbar buttons - */ - virtual void CreateToolbarButtonsL(); - - /* - * Appends all the commnands used by toolbar to an array. - */ - virtual void PopulateCmdsIdsL(); - - /* - * Sets toolbar visibility after layoutchange - */ - virtual void SetToolbarVisibilityAfterLayoutChangeL( TBool aVisible ); - - /** - * Creates all toolbar items() - */ - void CreateToolbarItemL( TInt aResourceId, - TInt aCommandId, CVtUiAppUi& appUi ); - - /** - * Finds command from array by command id. - */ - CVtUiToolbarButton* FindToolbarItemByCommandId( const TInt aCommandId ); - - /* - * Starts or stops to block pointer events - * @param aIsBlocking ETrue if events are blocked - * otherwise EFalse - */ - void BlockPointerEvents( TBool aIsBlocking ); - - /* - * Starts or stops to block key events - * @param aIsBlocking ETrue if events are blocked - * otherwise EFalse - */ - void BlockKeyEvents( TBool aIsBlocking ); - - /* - * Cheks if dialer component is active - * @return ETrue if dialer is aactive, otherwise EFalse. - */ - TBool IsDialerActive() const; - - /** - * Dims toolbar. - * @param aDimmed ETrue ETrue to dim the toolbar, - * EFalse to set the toolbar as not dimmed - */ - void DimToolbar( const TBool aDimmed, const TBool aDrawNow ); - private: - - /** - * Hides command from toolbar. - */ - void HideToolbarButton( const TInt aCommandId, const TBool aHide, - const TBool aDrawNow ); - - /** - * Dims command from toolbar. - */ - void DimToolbarButton( const TInt aCommandId, const TBool aDimmed, - const TBool aDrawNow ); - - /** - * Maps toggle button id to single command id. - */ - TInt MapCmdIdToChilId( TInt aCmdId ); - - /** - * Maps single command id to toggle button id. - */ - TInt MapCmdIdToParentId( TInt aCmdId ); - - /* - * Checks if command id associated with toggle button is visible. - * Togglle button has two states and two command ids which has their - * own state values. See from .rss file. - */ - TBool IsCmdIdVisibleInToggleButton( TInt aCmdId ); - - /* - * Checks if both command ids in togglebutton are dimmed. - */ - TBool IsToggleButtonHidden( TInt aFirstCmdId, TInt aSecondCmdId ); - - /* - * Removes registrations. - */ - void Clean(); - - protected: // data - - // array of supported commmand ids - RArray iCmdIds; - - // current focus id - TInt iCmdFocus; - - // owned toolbar control - CAknToolbar* iToolbar; - - // Number of supported toolbar buttons - TInt iNumberOfToolbarButtons; - - private: // data - - // struct used by iCmdStates array - class TCommandState - { - public: - TInt iCmdId; - TCmdStateFlags iOldState; - TCmdStateFlags iNewState; - }; - - // owned toolbar item array - RPointerArray iToolBarControls; - - // toolbar context instance - CVtUiToolbarContext* iToolbarCtx; - - // owned hide toolbar item action - CVtUiHideToolbarItemAction* iHideToolbarItemAction; - - // Toolbar command policy instance - CVtUiToolbarCmdPolicy* iToolbarCmdPolicy; - - // owned softkey modifier - CVtUiToolbarSKModifier* iToolbarSKModifier; - - // array which hold state information of the commands - RArray iCmdStates; - - // Component state - TVtUiToolbarComponentState iComponentState; - - // ETrue if capture mode was on in previous update - TBool iWasCaptureModePreviousState; - - }; - -#endif // C_VTUITOOLBAR_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuitoolbarbutton.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuitoolbarbutton.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* 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: CVtUiToolbarButton class definition. -* -*/ - - -#ifndef C_VTUITOOLBARBUTTON_H -#define C_VTUITOOLBARBUTTON_H - -#include - -class CVtUiAppUi; - -/** -* CVtUiToolbarButton -* -* Toolbar button class definition. -* -* @since S60 3.2 -*/ -class CVtUiToolbarButton : public CAknButton - { - public: - - /** - * Static constructor. - * @param aResourceId Resource id. - * @param aAppUi Reference to appui. - * @param aCmdId Reference to command id. - */ - static CVtUiToolbarButton* NewL( TInt aResourceId, - CVtUiAppUi& aAppUi, TInt aCmdId ); - - /** - * Static constructor. - * @param aResourceId Resource id. - * @param aAppUi Reference to appui. - * @param aCmdId Reference to command id. - */ - static CVtUiToolbarButton* NewLC( TInt aResourceId, - CVtUiAppUi& aAppUi, TInt aCmdId ); - - /** - * C++ destructor. - */ - ~CVtUiToolbarButton(); - - /* - * Shows help text for a certain period of time. - */ - void ShowHelpL(); - - /* - * Return commmand id - */ - TInt CmdId() const; - - /* - * Starts or stops to block pointer events - * @param aIsBlocking ETrue if events are blocked - * otherwise EFalse - */ - void BlockPointerEvents( TBool aIsBlocking ); - - /* - * Starts or stops to block key events - * @param aIsBlocking ETrue if events are blocked - * otherwise EFalse - */ - void BlockKeyEvents( TBool aIsBlocking ); - - - /* @see CAknButton::OfferKeyEventL */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /* @see CAknButton::HandlePointerEventL */ - void HandlePointerEventL( const TPointerEvent& - aPointerEvent ); - - /* @see CAknButton::StatesCount */ - TInt StatesCount() const; - - private: - - /** - * Constructor - */ - CVtUiToolbarButton( CVtUiAppUi& aAppUi, TInt aCmdId ); - - private: - - /** - * Checks whether key events should be blocked. - */ - TBool IsCommandActive() const; - - private: - - // reference to appui - CVtUiAppUi& iAppUi; - - // command id - TInt iCmdId; - - // Flag to indicate is key event blocking on - TBool iIsBlockingKeyEvents; - - // Flag to indicate is pointer event blocking on - TBool iIsBlockingPointerEvents; - - // time stamp to limit pointerevents - TTime iTimeStamp; - - TBool isLimitingPointers; - - }; - -#endif // C_VTUITOOLBARBUTTON_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuitoolbarcmdpolicy.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuitoolbarcmdpolicy.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2009 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: Toolbar command policy implementation. -* -*/ - - -#ifndef C_VTUITOOLBARCMDPOLICY_H -#define C_VTUITOOLBARCMDPOLICY_H - -#include - -#include "tvtuicmdpolicypriority.h" -#include "cvtuicmdvalidatorbase.h" - -class CVtUiCmdValidationActionBase; -class CVtUiToolbarBase; - -/** -* CVtUiToolbarCmdPolicy -* -* Toolbar command policy implementation. -* -* @since S60 v3.2 -*/ -class CVtUiToolbarCmdPolicy : public CVtUiCmdValidatorBase - { - public: // public methods - - /** - * Static constructor. - * @param aToolbar Reference to toolbar. - */ - static CVtUiToolbarCmdPolicy* NewL( CVtUiToolbarBase& aToolbar ); - - public: // from CVtUiCmdValidatorBase - - /** - * @see CVtUiCmdValidatorBase::ValidateMenuItemsL - */ - void ValidateMenuItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::ValidateSoftkeyItemsL - */ - void ValidateSoftkeyItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::ValidateToolbarItemsL - */ - void ValidateToolbarItemsL( CVtUiCmdValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::CustomValidationL - */ - void CustomValidationL( CVtUiCmdCustomValidationActionBase& aAction, - TInt aReferencePriority ); - - /** - * @see CVtUiCmdValidatorBase::ValidatesContext - */ - TBool ValidatesContext( const TVtUiCmdContextType& aCtxType ) - const; - - private: - - /** - * C++ constructor - * - */ - CVtUiToolbarCmdPolicy( CVtUiToolbarBase& aToolbar ); - - /** - * Callback for menu validation. - * - */ - TBool ValidateMenuCommand( TInt aCommandId ) const; - - private: // data - - // Reference to cvtuitoolbar - CVtUiToolbarBase& iToolbar; - - }; - -#endif // C_VTUITOOLBARCMDPOLICY_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuitoolbarcontext.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuitoolbarcontext.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* 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: Toolbar context class definition. -* -*/ - - -#ifndef C_VTUITOOLBARCONTEXT_H -#define C_VTUITOOLBARCONTEXT_H - -#include - -#include "cvtuicmdcontext.h" - -class CVtUiCmdValidatorBase; - -/** Toolbar context reference priority */ -const TInt KVtUiToolbarContextPriority = 50; - -/** -* CVtUiToolbarContext -* -* Toolbar context class definition. -* -* @since S60 v3.2 -*/ -class CVtUiToolbarContext : public CVtUiCmdContext - { - public: // public methods - - /** - * C++ destructor. - * - */ - ~CVtUiToolbarContext(); - - /** - * Leave safe destructor. - * @param aCommandManager Reference to command manager. - */ - static CVtUiToolbarContext* NewL( - MVtUiCommandManager& aCommandManager ); - - public: // from CVtUiCmdContext - - /** - * @see CVtUiCmdContext::ValidateL - */ - void ValidateL( CVtUiCmdValidationActionBase& aAction ); - - private: - - /** - * C++ constructor - * - * @param aCommandManager Reference to command manager. - */ - CVtUiToolbarContext( MVtUiCommandManager& aCommandManager ); - - /** - * 2nd consttuctor, may leave. - */ - void ConstructL(); - - }; - -#endif // C_VTUITOOLBARCONTEXT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/cvtuitoolbarskmodifier.h --- a/vtuis/videotelui/inc/features/toolbar/cvtuitoolbarskmodifier.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* 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: Toolbar softkey modifier class definition. -* -*/ - - -#ifndef C_VTUITOOLBARSKMODIFIER_H -#define C_VTUITOOLBARSKMODIFIER_H - -#include -#include "cvtuicommandmodifybase.h" - -class CVtUiAppUi; -class TVtUiStates; - -/** -* CVtUiToolbarSKModifier -* -* Toolbar softkey modifier class definition. -* -* @since S60 v3.2 -*/ -class CVtUiToolbarSKModifier : public CVtUiCommandModifyBase - { - public: // static methods - /** - * Static constructor. - * @param aAppUi Reference to command appui. - * @param aUiStates Reference to uistates. - */ - static CVtUiToolbarSKModifier* NewL( CVtUiAppUi& aAppUi, - const TVtUiStates& aUiStates ); - - /** - * Destructor - */ - ~CVtUiToolbarSKModifier(); - - public: // from base class - - /** - * @See CVtUiCommandModifyBase::ModifyCommandsL - */ - virtual void ModifyCommandsL( MVtUiCommandSetting& aCommandSettings ); - - /** - * @See CVtUiCommandModifyBase::Supports - */ - virtual TBool Supports( MVtUiCommandSetting::Type aType ) const; - - private: - /** - * C++ constructor - * - */ - CVtUiToolbarSKModifier( CVtUiAppUi& aAppUi, - const TVtUiStates& aUiStates ); - - /** - * 2nd constructor - */ - void ConstructL(); - - private: // data - - // refrence to appui - CVtUiAppUi& iAppUi; - - // UI states - const TVtUiStates& iUiStates; - - }; - -#endif // C_VTUITOOLBARSKMODIFIER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/toolbar/tvtuitoolbarcommanditerator.h --- a/vtuis/videotelui/inc/features/toolbar/tvtuitoolbarcommanditerator.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* 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: Toolbar command iterator class definition. -* -*/ - - -#ifndef T_VTUITOOLBARCOMMANDITERATOR_H -#define T_VTUITOOLBARCOMMANDITERATOR_H - -#include "mvtuicommanditerator.h" - -class CVtUiToolbarBase; - -/** -* TVtUiToolbarCommandIterator -* -* Toolbar command iterator class definition. -* -* @since S60 v3.2 -*/ -class TVtUiToolbarCommandIterator : public MVtUiCommandIterator - { - -public: // public methods - - /** - * C++ constructor - * @param aToolbar Reference to toolbar. - */ - TVtUiToolbarCommandIterator( CVtUiToolbarBase& aToolbar ); - -public: // from MVtUiCommandIterator - - /** - * @see MVtUiCommandIterator::HasNext - */ - TBool HasNext() const; - - /** - * @see MVtUiCommandIterator::Next - */ - TInt Next(); - -private: - - // Pointer to Toolbar - CVtUiToolbarBase* iToolbar; - - // Current iteration point - TInt iCurrent; - - }; - -#endif // T_VTUITOOLBARCOMMANDITERATOR_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/tvtuifeatureids.h --- a/vtuis/videotelui/inc/features/tvtuifeatureids.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* 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: Feature ids. -* -*/ - - -#ifndef T_VTUIFEATUREIDS_H -#define T_VTUIFEATUREIDS_H - -/** - * - * Feature IDs. - * - */ -enum TVtUiFeatureId - { - /** Toolbar feature id */ - EVtUiFeatureIdToolbar = 1, - - /** Softkey feature id */ - EVtUiFeatureIdSoftkey, - - /** Menu feature id */ - EVtUiFeatureIdMenu, - - /** Mini Dialer feature id */ - EVtUiFeatureIdMiniDialer, - - /** Number entry feature id */ - EVtUiFeatureIdNumberEntry, - - /** Video quality feature id */ - EVtUiFeatureIdVideoQuality, - - /** White balance feature id */ - EVtUiFeatureIdWhiteBalance, - - /** Color tone feature id */ - EVtUiFeatureIdColourTone, - - /** Brightness feature id */ - EVtUiFeatureIdBrightness, - - /** Contrast feature id */ - EVtUiFeatureIdContrast, - - /** Dialer feature id */ - EVtUiFeatureIdDialer, - - /** Volume feature id */ - EVtUiFeatureIdVolume, - - /** Zoom feature id */ - EVtUiFeatureIdZoom - }; - -#endif // T_VTUIFEATUREIDS_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/volume/cvtuivolume.h --- a/vtuis/videotelui/inc/features/volume/cvtuivolume.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 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: Volume ui feature -* -*/ - - -#ifndef C_VTUIVOLUME_H -#define C_VTUIVOLUME_H - -#include "cvtuisliderbase.h" - -/** -* CVtUiVolume -* -* Volume ui feature -* -* @since S60 v3.2 -*/ -class CVtUiVolume : public CVtUiSliderBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiVolume* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiVolume(); - - /** - * Refresh volume popup status. - */ - void RefreshL(); - -public: // from CVtUiSliderBase - - /** - * @see CVtUiSliderBase::StartL - */ - void StartL(); - - /** - * @see CVtUiSliderBase::Stop - */ - void Stop(); - - /* - * Return current slider's volume value - */ - TInt GetVolumeValue(); - -protected: - - /* - * Constructor - */ - CVtUiVolume( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - }; - -#endif // C_VTUIVOLUME_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/volume/cvtuivolumecontrol.h --- a/vtuis/videotelui/inc/features/volume/cvtuivolumecontrol.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2008 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: Volume control adjusts engine side volume values. -* -*/ - - - -#ifndef CVTUIVOLUMECONTROL_H -#define CVTUIVOLUMECONTROL_H - - -#include -#include -#include - -class MVtEngCommandHandler; -class MVtUiEngineCommandManager; -class CVtUiFeatureManager; - - -/** -* Volume control adjusts engine side volume values. -* -* @since Series 60 v5.0 -*/ -class CVtUiVolumeControl - : public CBase, - private MVtEngCommandObserver - { - public: // Constructors and destructor - - // Type for volume settings. - typedef MVtEngAudio::TVtEngOutputVolume TVolume; - - /** - * Constructor. - * - * @param aSelfPtr optional pointer to itself. - * @param aCommandHandler command handler. - * @param aAudio audio interface. - * @param aCommandManager command manager. - * @param aFeatureManager Reference to feature manager. - */ - CVtUiVolumeControl( - MVtEngCommandHandler& aCommandHandler, - MVtEngAudio& aAudio, - MVtUiEngineCommandManager& aCommandManager, - CVtUiFeatureManager& aFeatureManager ); - - /* - * 2nd phase constructor - */ - void ConstructL(); - - /** - * Destructor. - */ - ~CVtUiVolumeControl(); - -public: // New functions - - // Adjust volume to new value - void AdjustVolumeL( TVolume aVolume ); - -private: - - /** - * @see MVtEngCommandObserver::HandleVTCommandPerformedL. - */ - virtual void HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ); - - // Checks if volume is changed in slider - TBool IsVolumeChangedL(); - -private: - - // Reference to command handler. - MVtEngCommandHandler& iCommandHandler; - - // Reference to audio interface. - MVtEngAudio& iAudio; - - // Reference to command manager. - MVtUiEngineCommandManager& iCommandManager; - - // ETrue if command is performed. - TBool iCommandPerformed; - - // Volume being updated to engine. - TVolume iVolume; - - // Volume pointer descriptor. - TPtrC8 iVolumePtr; - - // Reference to featuremanager - CVtUiFeatureManager& iFeatureManager; - - // Is control adjusting volume - TBool iIsActive; - }; - -#endif // CVtUiVolumeControl_H - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/volume/cvtuivolumepopup.h --- a/vtuis/videotelui/inc/features/volume/cvtuivolumepopup.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 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: Volume popup definition -* -*/ - - -#ifndef C_VTUIVOLUMEPOPUP_H -#define C_VTUIVOLUMEPOPUP_H - -#include "tvtuicomponentstate.h" -#include "cvtuipopupbase.h" -#include "mvtengaudio.h" - -class CVtUiFeatureManager; -class CVtEngModel; - -/** -* CVtUiVolumePopup -* -* Volume popup definition. -* -* @since S60 v3.2 -*/ -class CVtUiVolumePopup : public CVtUiPopupBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiVolumePopup* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiVolumePopup(); - - /** - * Refresh volume popup status. - */ - void RefreshL(); - - /** - * Update volume popup and audio routing - */ - void UpdateVolumeAndRoutingL(); - -private: // from base class - - /** - * @see CVtUiPopupBase::DoActivateL - */ - void DoActivateL(); - - /** - * @see CVtUiPopupBase::OfferKeyEventL - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ); - - /** - * @see CVtUiPopupBase::HandleControlEventL - */ - void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); - -private: - - /** - * Constructor - */ - CVtUiVolumePopup( CVtUiFeatureManager& aFeatureManager ); - - /* - * 2nd constructor - */ - void ConstructL(); - - /** - * Returns current output volume for given routing. - */ - TInt OutputVolume( MVtEngAudio::TAudioRoutingState aRouting ) const; - - /** - * Updates volume - */ - void UpdateVolumeL(); - -private: - - // Engine model - CVtEngModel& iModel; - - // Stored audio routing state. - MVtEngAudio::TAudioRoutingState iAudioRouting; - - // Stored volume - TInt iVolume; - - // Reference to feature manager - CVtUiFeatureManager& iFeatureManager; - - }; - -#endif // C_VTUIVOLUMEPOPUP_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/zoom/cvtuizoom.h --- a/vtuis/videotelui/inc/features/zoom/cvtuizoom.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 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: Zoom ui feature -* -*/ - - -#ifndef C_VTUIZOOM_H -#define C_VTUIZOOM_H - -#include "cvtuisliderbase.h" - -/** -* CVtUiZoom -* -* Zoom ui feature -* -* @since S60 v3.2 -*/ -class CVtUiZoom : public CVtUiSliderBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiZoom* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiZoom(); - - /** - * Refresh zoom popup status. - */ - void RefreshL(); - -public: // from CVtUiSliderBase - - /** - * @see CVtUiSliderBase::StartL - */ - void StartL(); - - /** - * @see CVtUiSliderBase::Stop - */ - void Stop(); - - /** - * @see CVtUiSliderBase::ComponenStateChangedL - */ - void ComponenStateChangedL(); - -protected: - - /* - * Constructor - */ - CVtUiZoom( CVtUiFeatureManager& aFeatureManager ); - - /** - * 2nd constructor - */ - void ConstructL(); - - }; - -#endif // C_VTUIZOOM_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/features/zoom/cvtuizoompopup.h --- a/vtuis/videotelui/inc/features/zoom/cvtuizoompopup.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 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: Zoom popup definition -* -*/ - - -#ifndef C_VTUIZOOMPOPUP_H -#define C_VTUIZOOMPOPUP_H - -#include "tvtuicomponentstate.h" -#include "cvtuipopupbase.h" - -class CVtUiFeatureManager; -class MVtEngMedia; - -/** -* CVtUiZoomPopup -* -* Zoom popup definition. -* -* @since S60 v3.2 -*/ -class CVtUiZoomPopup : public CVtUiPopupBase - { - -public: - - /** - * Static constructor - * @param aFeatureManager Reference to feature manager. - */ - static CVtUiZoomPopup* NewL( CVtUiFeatureManager& aFeatureManager ); - - /** - * Destructor - */ - ~CVtUiZoomPopup(); - - /** - * Refresh zoom popup status. - */ - void RefreshL(); - -private: // from CVtUiPopupBase - - /** - * @see CVtUiPopupBase::DoActivateL - */ - void DoActivateL(); - -private: // from base class - - /** - * @see CVtUiPopupBase::OfferKeyEventL - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ); - - /** - * @see CVtUiPopupBase::HandleControlEventL - */ - void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); - -private: - - /** - * Constructor - */ - CVtUiZoomPopup( CVtUiFeatureManager& aFeatureManager ); - - /* - * 2nd constructor - */ - void ConstructL(); - - /* - * Updates zoom adjust range according to current active provider. - */ - void UpdateAdjustRangeL(); - - /** - * Returns current zoom step or KErrNotFound if an error happens. - */ - TInt CurrentZoomStep() const; - - /** - * Returns maximum zoom step or KErrNotFound if an error happens. - */ - TInt MaxZoomStep() const; - - void ScaleAndSetZoomFactorL( TInt aValue ); - -private: - - // Reference to feature manager - CVtUiFeatureManager& iFeatureManager; - - // Engine media - MVtEngMedia& iMedia; - - // Current zoom - TInt iCurrent; - - // Maximum zoom value - TInt iMax; - - }; - -#endif // C_VTUIZOOMPOPUP_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/mvtuinumbersource.h --- a/vtuis/videotelui/inc/mvtuinumbersource.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* 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: Number Source API -* -*/ - - -#ifndef M_VTUINUMBERSOURCE_H -#define M_VTUINUMBERSOURCE_H - -#include - -/** - * MVtUiNumberSource - * - * @since S60 v3.2 - */ -class MVtUiNumberSource - { - -public: - - /** - * Gets number typed by the user. - * - */ - virtual void GetContents( TDes& aContents ) const = 0; - - }; - -#endif // M_VTUINUMBERSOURCE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/mvtuishutterobserver.h --- a/vtuis/videotelui/inc/mvtuishutterobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 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: Interface for reporting application shutdown readiness. -* -*/ - - -#ifndef M_MVTUISHUTTEROBSERVER_H -#define M_MVTUISHUTTEROBSERVER_H - - -/** -* Observer interface for reporting shutdown readiness. -* -* @since S60 v3.2 -*/ -class MVtUiShutterObserver - { -public: - - /** - * Called when application can exit. - */ - virtual void HandleShutdownReady() = 0; - }; - -#endif // M_MVTUISHUTTEROBSERVER_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/mvtuistatecontext.h --- a/vtuis/videotelui/inc/mvtuistatecontext.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 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: Interface for state objects to request application services. -* -*/ - - -#ifndef M_MVTUISTATECONTEXT_H -#define M_MVTUISTATECONTEXT_H - -#include -#include -#include "mvtuishutterobserver.h" - -class TVtUiAppStateBase; -class CVtEngModel; -class MVtUiNumberSource; -class TVtUiVideoTelephonyVariation; - -/** -* Provides service interface for application state objects. -* -* @since S60 v3.2 -*/ -class MVtUiStateContext : public MVtUiShutterObserver - { - public: - - /** - * Starts first phase of startup when prepare is received. - */ - virtual void StartupPhase1L() = 0; - - /** - * Starts application shutdown. - */ - virtual void ShutdownL() = 0; - - /** - * Starts second phase of startup. - */ - virtual void StartupPhase2L() = 0; - - /** - * Sets application to foreground and background. - * @param aForeground ETrue => foreground, EFalse => background - */ - virtual void ChangeApplicationFocus( const TBool aForeground ) = 0; - - /** - * Changes current application state. - * @param aState new state - */ - virtual void ChangeState( TVtUiAppStateBase* aState ) = 0; - - /** - * Starts DTMF tone. - * @param aTone DTMF tone. - */ - virtual void StartDtmfTone( const TChar& aTone ) = 0; - - /** - * Stops tarts DTMF tone. - */ - virtual void StopDtmfTone() = 0; - - /** - * Returns model. - * @return model - */ - virtual CVtEngModel& Model() = 0; - - /** - * Returns video telephony variation. - * @return variation - */ - virtual const TVtUiVideoTelephonyVariation& - VideoTelephonyVariation() const = 0; - /** - * Returns source containing numbers typed by the user. - * @return number soure - */ - virtual MVtUiNumberSource* NumberSource() const = 0; - - /** - * Executes engine command. - * @param aCommand command id - * @param aParams command params - */ - virtual void DoExecuteCmdL( const TVtEngCommandId aCommand, - TDesC8* aParams ) = 0; - - /** - * Refreshes application UI. - * @param aRefreshFlags identifies what to refresh - */ - virtual void RefreshL( const TInt aRefreshFlags ) = 0; - - /** - * Updates engine states. - */ - virtual void RefreshStatesL() = 0; - - /** - * Handles layout change. - */ - virtual void DoHandleLayoutChangedL() = 0; - - /** - * Sets call id. - */ - virtual void SetCallIdL( const TInt aCallId ) = 0; - - /** - * Sets display text of remote end. - */ - virtual TBool SetCallNameL( const TDesC& aName ) = 0; - - /** - - - /** - * Refresh flags - */ - enum TRefreshFlags - { - /** Navipane is refreshed */ - ENaviPane = 0x01, - /** Softkeys are refreshed */ - ESoftkeys = 0x02, - /** Refreshes blind (video availability) status */ - EBlind = 0x04, - /** Refreshes state sync with call handling */ - ESynchronise = 0x08, - /** Refreshes internal states (media etc) */ - EUiStates = 0x10, - /** Refreshes everything */ - EAll = ENaviPane | - ESoftkeys | - EBlind | - ESynchronise | - EUiStates - }; - }; - - -#endif // M_MVTUISTATECONTEXT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/sliders/cvtuipopupbase.h --- a/vtuis/videotelui/inc/sliders/cvtuipopupbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,275 +0,0 @@ -/* -* Copyright (c) 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: Base class for video telephone popups -* -*/ - - -#ifndef C_VTUIPOPUPBASE_H -#define C_VTUIPOPUPBASE_H - -#include - -#include "mvtuicomponent.h" -#include "tvtuicomponentstate.h" -#include "tvtuifeatureids.h" -#include "mvtuiresourcechangeobserver.h" -#include "mvtuikeyeventobserver.h" - -class CAknVolumePopup; -class MVtUiComponentManager; -class MVtUiComponentStateObserver; -class CFbsBitmap; - -/** -* TVtUiBaseComponentState -* -* Base componentstate definition. -* -* @since S60 v3.2 -*/ -class TVtUiBaseComponentState : public TVtUiComponentState - { - -public: - /** - * Constructor - * @param aComponent Reference to component. - */ - TVtUiBaseComponentState( MVtUiComponent& aComponent, - TVtUiBlockListBitField aBitField ); - }; - -/** -* CVtUiPopupBase -* -* Base class for vide telephone popups -* -* @since S60 v3.2 -*/ -class CVtUiPopupBase : public CBase, public MVtUiComponent, - public MVtUiResourceChangeObserver, public MCoeControlObserver, - public MVtUiKeyEventObserver - { - -public: - - /** - * Destructor - */ - ~CVtUiPopupBase(); - -public: // from MVtUiComponent - - /** - * @see MVtUiComponent::ComponentId - */ - TComponentId ComponentId() const; - - /** - * @see MVtUiComponent::ComponentAsControl - */ - CCoeControl* ComponentAsControl(); - - /** - * @see MVtUiComponent::DoActivateL - */ - virtual void DoActivateL(); - - /** - * @see MVtUiComponent::DoDeactivateL - */ - virtual void DoDeactivateL(); - -public: // from MVtUiComponentManager - - /** - * @see MVtUiComponentManager::HandleResourceChangeL - */ - void HandleResourceChangeL( TInt aType ); - -public: // from MCoeControlObserver - - /** - * @see MCoeControlObserver::HandleControlEventL - */ - virtual void HandleControlEventL( - CCoeControl* aControl,TCoeEvent aEventType ) = 0; - -public: // from MVtUiKeyEventObserver - - /** - * @see CCoeControl::MVtUiKeyEventObserver - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, TEventCode aCode ); - -public: // new functions - - /** - * Set popup to be pemanently visible i.e. tapping outside - * the control doesn't close the control. - * @param aPermanent If Etrue popup will be visible all the time, - * otherwise popup is closed and next time will obey timeout. - */ - void SetPermanenVisibility( TBool aPermanent ); - - /** - * Set new component observer - * @param iCompStateObserver New observer - */ - void SetObserver( MVtUiComponentStateObserver& aCompStateObserver ); - - /** - * Gets slider control value. - * @return value within slider control's value range - */ - TInt Value() const; - - /** - * update popup itself - */ - virtual void UpdatePopupL(); - -protected: // new functions - - /** - * Set new value to slider control. - * @param aValue value within slider control's value range. - */ - void SetValue( TInt aValue ); - - /** - * Scales the given value to slider control's value range - * and sets it to the slider control - * @param aValue value within popup control's value range. - */ - void ScaleAndSetValue( TInt aValue ); - - /** - * Gets value from the slider control and scales it - * @return value within popup control's value range - */ - TInt ScaledValue() const; - - /** - * Gets value from the slider control and scales it - * @param aValue value in popup control's value range. - * @return value within slider control's value range - */ - TInt SliderValueWithScaling( TInt aValue ) const; - - /** - * Set new end point values popup control - * These values are not same as slider's range - */ - void SetMinAndMaxValues( TInt aMax, TInt aMin ); - - /* - * Set adjust range of the slider - */ - void SetAdjustRange( TInt aMinimumValue, TInt aMaximumValue, - TInt aStepCount ); - - /** - * Set value type for vertical slider control - */ - void SetValueType( TInt aValueType ); - - /** - * Shows popup. - */ - void ShowPopupL(); - - /** - * Opens popup. - */ - void OpenPopupL(); - - /** - * Closes popup - */ - void ClosePopup(); - - /** - * Set time out time in seconds - */ - void SetTimeOut( TInt aTime ); - - /** - * Checks whether popup is visible - */ - TBool IsPopUpVisible(); - -protected: - - /** - * Constructor - */ - CVtUiPopupBase( MVtUiComponentManager& aComponentManager, - TVtUiBlockListBitField aBitField, TComponentId aComponentId ); - - /** - * 2nd constructor - */ - void BaseConstructL(); - -private: - - /** - * Position of the popup - */ - TPoint PopupPosition() const; - - /** - * Sets popup controls's value - */ - void SetPopupValue( TInt aValue ); - -protected: // Set in child constructor - - // Reference to component manager - MVtUiComponentManager& iComponentManager; - - // Component state - TVtUiBaseComponentState iComponentState; - - // Component id - TComponentId iComponentId; - -private: - - // class for slider handling - CAknVolumePopup* iPopup; - - // Interface for component state observing - MVtUiComponentStateObserver* iCompStateObserver; - - // Maximum value - TInt iMax; - - // Minimum value - TInt iMin; - - // Number of steps - TInt iStepCount; - - // Time out for showing popup - TInt iTimeOutTime; - - // Scaling constant - TInt iScalingConstant; - - }; - -#endif // CVTUIPEFSLIDERBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/sliders/cvtuisliderbase.h --- a/vtuis/videotelui/inc/sliders/cvtuisliderbase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 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: Base class for video telephone sliders -* -*/ - - -#ifndef C_VTUISLIDERBASE_H -#define C_VTUISLIDERBASE_H - -#include "cvtuifeaturebase.h" -#include "mvtuicomponent.h" -#include "mvtuicomponentstateobserver.h" - -class CVtUiPopupBase; - -/** -* CVtUiSliderBase -* -* Base class for vide telephone sliders -* -* @since S60 v3.2 -*/ -class CVtUiSliderBase : public CVtUiFeatureBase, public MVtUiComponentStateObserver - { - -public: - - /** - * Destructor - */ - ~CVtUiSliderBase(); - - /** - * update slider itself - */ - void UpdateSlider(); - -public: // from MVtUiFeature - - /** - * @see MVtUiFeature::StartL - */ - void StartL(); - - /** - * @see MVtUiFeature::Stop - */ - void Stop(); - - /** - * @see MVtUiFeature::InitFeatureL - */ - void InitFeatureL(); - -public: // from MVtUiComponentStateObserver - - /** - * @see MVtUiComponentStateObserver::ComponenStateChangedL - */ - virtual void ComponenStateChangedL(); - - /** - * @see CVtUiPopupBase::SetPermanenVisibility - */ - void SetPermanenVisibility( TBool aPermanent ); - -protected: - - /* - * Constructor - */ - CVtUiSliderBase( CVtUiFeatureManager& aFeatureManager, - TVtUiFeatureId aFeatureId ); - - /** - * 2nd constructor - */ - void ConstructL(); - - /** - * Sets popup pointer. - */ - void SetPopup( CVtUiPopupBase* aPopup ); - - /** - * Gets popup reference. - */ - CVtUiPopupBase& Popup(); - - /** - * Gets popup const reference. - */ - const CVtUiPopupBase& Popup() const; - -private: - - // pop up base - CVtUiPopupBase* iPopup; - - }; - -#endif // CVTUIPEFSLIDERBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/sliders/mvtuicomponentstateobserver.h --- a/vtuis/videotelui/inc/sliders/mvtuicomponentstateobserver.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 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: Observer API for popup based controls -* -*/ - - -#ifndef M_VTUICOMPONENTSTATEOBSERVER_H -#define M_VTUICOMPONENTSTATEOBSERVER_H - -/** -* MVtUiComponentStateObserver -* -* Observer API for popup based controls -* -* @since S60 v3.2 -*/ -class MVtUiComponentStateObserver - { - -public: - - /** - * Called when component state changes - */ - virtual void ComponenStateChangedL() = 0; - - }; - -#endif // M_VTUICOMPONENTSTATEOBSERVER_H \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/tvtuiappstatebase.h --- a/vtuis/videotelui/inc/tvtuiappstatebase.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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: Base class for application states. -* -*/ - - -#ifndef T_VTUIAPPSTATEBASE_H -#define T_VTUIAPPSTATEBASE_H - -#include -#include -#include "mvtuistatecontext.h" -#include "mvtuishutterobserver.h" -#include "tvtuistates.h" - -/** -* Base class for application states related to application startup, normal -* operation and shutdown. AppUi delegates decision making by forwarding -* events/commands it receives to current state. -* Not all event handlers declared by the base class are applicable in -* all concrete states. All methods returning TEventResponse imply that it may -* consume the event completely and caller should not process it further. -* -* It should be kept in mind that as new functionality is added to application, -* state classes may need changes if e.g. handling of specific event should be -* allowed in appUi. By default event handler in specific state may consume all -* events. Note that in this context e.g. HandleCommandL is considered as an -* event handler. -* -* @since S60 v3.2 -*/ -class TVtUiAppStateBase : public MVtUiShutterObserver - { -public: // new functions - - /** - * Return value from state's event handlers. - */ - enum TEventResponse - { - /** Event was handled by a state and should - * not be further processed by caller. - */ - EEventHandled, - /** Event can be handled by caller. */ - EEventNotHandled - }; - - /** - * Performs state dependent actions when phase 1 of - * startup is completed. - */ - virtual void AppUiStartupPhase1DoneL(); - - /** - * Performs state dependent actions when startup fails. - */ - virtual void AppUiStartupFailedL(); - - /** - * Performs state dependent actions when phase 2 of - * startup is completed. - */ - virtual void AppUiStartupPhase2DoneL(); - - /** - * Handles completion of shutdown. - */ - virtual void ShutdownDoneL(); - - /** - * Handles completion of an VT engine command. - * @param aCommand completed command - * @param aError error - * @return event response, is caller allowed to handle event - */ - virtual TEventResponse HandleVTCommandPerformedL( - const TVtEngCommandId aCommand, - const TInt aError ); - - /** - * Handles event from the engine. - * @param aEvent - * @return event response, is caller allowed to handle event - */ - virtual TEventResponse HandleVtEventL( const TInt aEvent ); - - /** - * Handles command from the user (or application framework). - * @param aCommand - * @return event response, is caller allowed to handle event - */ - virtual TEventResponse HandleCommandL( const TInt aCommand ); - - /** - * Performs state dependent actions for foreground change event. - * @param aIsForeground foreground status passed from UI framework - * @return ETrue if application should behave as in foreground - */ - virtual TBool HandleForegroundChangedL( const TBool aIsForeground ); - - /** - * Performs state dependent previous actions for foreground change event. - * @param aIsForeground foreground status passed from UI framework - * @return ETrue if application should behave as in foreground - */ - virtual TBool PreHandleForegroundChangedL( const TBool aIsForeground ); - /** - * Performs state dependent actions for layout change. - */ - virtual void HandleLayoutChangedL(); - - /** - * Sends DTMF tone if allowed by current state. - * @param aTone DTMF tone to send - */ - virtual void StartDtmfTone( const TChar& aTone ); - - /** - * Stops DTMF tone if allowed by current state. - */ - virtual void StopDtmfTone(); - - /** - * Sets initial application state. - * @param aCtx state context providing services to states - * @param aUiStates ui states - */ - static void SetInitialStateL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates); - -protected: // for concrete state classes - - /** - * Destructor, for cleanup. - */ - virtual ~TVtUiAppStateBase(); - - /** - * Performs entry action for a state. - */ - virtual void OpenL(); - - /** - * Performs exit action for a state and deletes that state. - */ - virtual void Close(); - - /** - * Sets current state. - */ - void ChangeStateL( TVtUiAppStateBase& aNewState ); - - /** - * Sets transition to resetting state as cleanup item. - */ - void CleanupResetPushL(); - - /** - * Starts shutdown when leave occurred. - */ - static void TransitionToReset( TAny* aAny ); - - - /** - * Ends the call if necessary and starts shutdown. - * @return ETrue if shutdown started. - */ - TBool CheckEndActiveCallL(); - - /** - * Returns engine session state. - * @param aUpdate is state forced to update - * @return session state - */ - MVtEngSessionInfo::TSessionState SessionState( - const TBool aUpdate ) const; - - /** - * Sets forced lights state in the system. - */ - void SetLightsState( const TBool aOn ); - - /** - * Delegates engine command execution to the state context. - */ - template < typename T > - inline void ExecuteEngineCommand( - TInt aCommand, T& aParam ); - - /** - * Sets execution state. - */ - void SetExecState( const TVtUiStates::TVtUiExecState aState ); - -protected: // constructor - - // c++ constructor - TVtUiAppStateBase( MVtUiStateContext& aCtx, TVtUiStates& aUiStates ); - -private: // from MVtUiShutterObserver - - /** - * Handles 'shutdown ready' event. - */ - virtual void HandleShutdownReady(); - -private: // new functions - - /** - * Updates applications lock state and sends to background if - * the device is locked. - */ - void HandleDeviceLockEventL( const TBool aDeviceIsLocked ); - -protected: // data members - - // Context providing services to states - MVtUiStateContext& iCtx; - - // Various application specific state information - TVtUiStates& iUiStates; - - /** Prevents sending end call command to call handling if ETrue. - * It is not allowed when call clearing is network originated. - */ - - /** - * shutdown request received - */ - static TBool iShutdownRequested; - - }; - -#include "tvtuiappstatebase.inl" - -#endif // T_VTUIAPPSTATEBASE_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/tvtuiappstatebase.inl --- a/vtuis/videotelui/inc/tvtuiappstatebase.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 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: Base class for application states. -* -*/ - - -template < typename T > -inline void TVtUiAppStateBase::ExecuteEngineCommand( - TInt aCommand, T& aParam ) - { - TPtrC8 params( reinterpret_cast< TUint8* >( &aParam ), - sizeof( T ) ); - TRAP_IGNORE( iCtx.DoExecuteCmdL( aCommand, ¶ms ) ); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/tvtuiappstates.h --- a/vtuis/videotelui/inc/tvtuiappstates.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,274 +0,0 @@ -/* -* Copyright (c) 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: Concrete application state classes -* -*/ - - -#ifndef T_VTUIAPPSTATES_H -#define T_VTUIAPPSTATES_H - -#include "tvtuiappstatebase.h" -#include -#include - -class CAknQueryDialog; - -/** -* Initial application state. Responsible for startup phase 1 and -* startup phase 2 (see EVtUiAppUiStartup in CVtUiAppUi.cpp). -* Certain other state changes are required for phase 2 and history -* of their reception is handled with precondition flags. -* -* @since S60 v3.2 -*/ -class TVtUiStateStarting : public TVtUiAppStateBase - { -public: - /** - * returns singleton instance of TVtUiStateStarting - * @param aCtx state context - * @param aUiStates UI states - * @return singleton - */ - static TVtUiStateStarting* InstanceL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ); - -public: // from TVtUiAppStateBase - - /** @see TVtUiAppStateBase */ - virtual void AppUiStartupPhase1DoneL(); - - /** @see TVtUiAppStateBase */ - virtual void AppUiStartupPhase2DoneL(); - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleVtEventL( TInt aEvent ); - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleCommandL( const TInt aCommand ); - - /** @see TVtUiAppStateBase */ - virtual TBool HandleForegroundChangedL( TBool aIsForeground ); - -private: // from TVtUiAppStateBase - - /** @see TVtUiAppStateBase */ - virtual void OpenL(); - - /** @see TVtUiAppStateBase */ - virtual void Close(); - -private: // new methods - - void CheckSessionStateL(); - static TInt AsynchOpen( TAny* aAny ); - - void DoOpenL(); - - /** Preconditions that must be passed in order to proceed - * to Phase 2 in startup. - */ - enum TPreconditions - { - /** waiting for CLI from engine*/ - EWaitingCLI, - /** waiting for phase1 to complete */ - EWaitingPhase1ToComplete, - /** waiting for engine to get proper state */ - EWaitingSessionState - }; - - /** - * Clears precondition passed as argument and checks if any - * preconditions hold and if not proceeds to phase 2 of startup. - */ - void CheckPhase2StartupL( const TPreconditions aClearCondition ); - - void HandleCLIReceivedL(); - -private: // constructors and destructors - - // c++ constructor - TVtUiStateStarting( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ); - - // Destructor - virtual ~TVtUiStateStarting(); - -private: // data members - - // Precondition for state change to running - TBitFlags8 iPreconditions; - - // Singleton - static TVtUiStateStarting* iInstance; - - // Starts phase1 startup in state state context. Needed because - // initial state is opened from within state context construction. - CAsyncCallBack* iStartCallback; - }; - -/** -* Application state that is active in normal operation. -* -* @since S60 v3.2 -*/ -class TVtUiStateRunning : public TVtUiAppStateBase - { -public: - /** - * returns singleton instance of TVtUiStateRunning - * @param aCtx state context - * @param aUiStates UI states - * @return singleton - */ - static TVtUiStateRunning* InstanceL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ); - -public: // from TVtUiAppStateBase - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleVtEventL( TInt aEvent ); - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleCommandL( const TInt aCommand ); - - /** @see TVtUiAppStateBase */ - virtual TBool HandleForegroundChangedL( TBool aIsForeground ); - - /** @see TVtUiAppStateBase */ - virtual TBool PreHandleForegroundChangedL( TBool aIsForeground ); - /** @see TVtUiAppStateBase */ - virtual void HandleLayoutChangedL(); - - /** @see TVtUiAppStateBase */ - virtual void StartDtmfTone( const TChar& aTone ); - - /** @see TVtUiAppStateBase */ - virtual void StopDtmfTone(); - - /** @see TVtUiAppStateBase */ - virtual void OpenL(); - -private: // from TVtUiAppStateBase - /** @see TVtUiAppStateBase */ - virtual void Close(); - -private: // constructors and destructors - - // c++ constructor - TVtUiStateRunning( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ); - - // Destructor - virtual ~TVtUiStateRunning(); - -private: // new functions - - /** Requests call handling subsystem to initiate a voice call. - * Starts shutdown of the application. - */ - void CreateVoiceCallL(); - - /** Dials emergency call and starts shutdown */ - void DialEmergencyCallL(); - - void ShutdownWithEngineCommandL( const TInt aCommand ); - -private: // data members - // singleton - static TVtUiStateRunning* iInstance; - // Create voice call query instance - CAknQueryDialog* iCreateVoiceCallDlg; - }; - -/** -* Application state that is active during shutdown. -* -* @since S60 v3.2 -*/ -class TVtUiStateResetting : public TVtUiAppStateBase - { -public: - /** - * returns singleton instance of TVtUiStateResetting - * @param aCtx state context - * @param aUiStates UI states - * @param aCommand engine command to send when resetting state activates - * @return singleton - */ - static TVtUiStateResetting* InstanceL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates, - const TVtEngCommandId aCommand = KVtEngCommandNone ); - -public: // from TVtUiAppStateBase - - /** @see TVtUiAppStateBase */ - virtual void AppUiStartupFailedL(); - - /** @see TVtUiAppStateBase */ - virtual void ShutdownDoneL(); - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ); - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleVtEventL( TInt aEvent ); - - /** @see TVtUiAppStateBase */ - virtual TEventResponse HandleCommandL( const TInt aCommand ); - - /** @see TVtUiAppStateBase */ - virtual TBool HandleForegroundChangedL( TBool aIsForeground ); - - /** @see TVtUiAppStateBase */ - virtual void HandleLayoutChangedL(); - -private: // from TVtUiAppStateBase - - /** @see TVtUiAppStateBase */ - virtual void OpenL(); - - /** @see TVtUiAppStateBase */ - virtual void Close(); - -private: // constructors and destructors - - // c++ constructor - TVtUiStateResetting( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates, - const TVtEngCommandId aCommand = KVtEngCommandNone ); - - // Destructor - virtual ~TVtUiStateResetting(); - -private: // data members - - // Singleton - static TVtUiStateResetting* iInstance; - - // Used in user originated shutdown (end active call/switch to voice) - TVtEngCommandId iCommand; - }; - -#endif // T_VTUIAPPSTATES_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/tvtuiwsevent.h --- a/vtuis/videotelui/inc/tvtuiwsevent.h Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* 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: VT UI window server event definition. -* -*/ - - -#ifndef T_VTUIWSEVENT_H -#define T_VTUIWSEVENT_H - -#include - -/** - * TVtUiWsEvent - * - * VT UI WS event code enumerations. Name 'code' used instead of 'type' to keep - * naming consistent with with window server. - */ -enum TVtUiWsEventCodes - { - // New number source activated - EVtUiWsEventNumberSourceActivate = EEventUser + 6000, - // Number source deactivated - EVtUiWsEventNumberSourceDeactivate, - // Enter rendering mode - EVtUiWsEventBeginRenderingMode, - // Leave rendering mode - EVtUiWsEventEndRenderingMode - }; - -/** - * TVtUiWsEvent - * - * Base class for VT UI ws events - * - * @since S60 v3.2 - */ -template < class T > -class TVtUiWsEvent : public TWsEvent - { - -public: - - /** - * Constructor - * - * @param aType Event type @see TVtUiWsEventCodes. - */ - inline TVtUiWsEvent( TInt aType, T* aData ); - - /** - * Return data contained in this event. - */ - inline T* Data() const; - - }; - -#include "tvtuiwsevent.inl" - -#endif // T_VTUIWSEVENT_H diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/tvtuiwsevent.inl --- a/vtuis/videotelui/inc/tvtuiwsevent.inl Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* 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: VT UI window server event inline methods. -* -*/ - - -// ----------------------------------------------------------------------------- -// TVtUiWsEvent::TVtUiWsEvent -// ----------------------------------------------------------------------------- -// -template < class T > -TVtUiWsEvent< T >::TVtUiWsEvent( TInt aType, T* aData ) - { - SetType( aType ); - Int()[ 0 ] = ( TInt ) aData; - } - -// ----------------------------------------------------------------------------- -// TVtUiWsEvent::Data -// ----------------------------------------------------------------------------- -// -template < class T > -T* TVtUiWsEvent< T >::Data() const - { - return ( T* )Int()[ 0 ]; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/inc/videotelui.hrh --- a/vtuis/videotelui/inc/videotelui.hrh Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2004-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: Header for constants. -* -*/ - - -#ifndef VIDEOTELUI_HRH -#define VIDEOTELUI_HRH - -// CONSTANTS - -// Video Telephone application UID. -#define KVtUiAppUidValue 0x101F8681 - -// Enumerates commands -enum - { - // Enable submenu - EVtUiCmdEnableMain = 5000, - // Enable video - EVtUiCmdEnableVideo, //5001 - // Enable audio - EVtUiCmdEnableAudio, //5002 - // Enable both video and audio - EVtUiCmdEnableBoth, //5003 - // Disable submenu - EVtUiCmdDisableMain, //5004 - // Disable video - EVtUiCmdDisableVideo, //5005 - // Disable audio - EVtUiCmdDisableAudio, //5006 - // Disable both video and audio - EVtUiCmdDisableBoth, //5007 - // Deactivate BT handsfree - EVtUiCmdDeactivateBT, //5008 - // Deactivet BT and activate HF (used in toolbar) - EVtUiCmdSwitchFromBTToIHF, //5009 - // Activate BT handsfree - EVtUiCmdActivateBT, //5010 - // Activate loudspeaker - EVtUiCmdActivateLoudspeaker, //5011 - // Deactivate loudspeaker - EVtUiCmdDeactivateLoudspeaker, //5012 - // End active call - EVtUiCmdEndActiveCall, //5013 - // Use primary camera - EVtUiCmdUsePrimaryCamera, //5014 - // Use secondary camera - EVtUiCmdUseSecondaryCamera, //5015 - // Swap images' places - EVtUiCmdSwapImagesPlaces, //5016 - // Zoom - EVtUiCmdZoom, //5017 - // Send DTMF - EVtUiCmdSendDTMF, //5018 - // Switch to voice call - EVtUiCmdCreateVoice, //5019 - // Enable capture mode - EVtUiCmdSnapshot, //5020 - // Freeze outgoing video - EVtUiCmdCapture, //5021 - // Disable capture mode - EVtUiCmdCancelCapture, //5022 - // Go to Idle. - EVtUiCmdGoToIdle, //5023 - // Other items - EVtUiCmdOkOptions = 6000, - // Dial emergency - EVtUiCmdDialEmergency, - // Share object image - EVtUiCmdShareObjectImage = 6100, - // Share object video clip - EVtUiCmdShareObjectVideoClip, //6101 - // Stop sharing image object - EVtUiCmdStopSharingObjectImage, //6102 - // Stop sharing video clip object - EVtUiCmdStopSharingObjectVideoClip, //6103 - // Activates zoom mode - EVtUiCmdToolbarActivateZoomMode, //6104 - // Toggles disable video/ enable video - EVtUiCmdToolbarToggleVideo, //6105 - // Toggles mute audio/ unmute audi - EVtUiCmdToolbarToggleMicrophone, //6106 - // Changes audio routing - EVtUiCmdToolbarAudioRouting, //6107 - // Toggles primary/secondary camera - EVtUiCmdToolbarToggleCamera, //6108 - // Adjust video submenu - EVtUiCmdAdjustVideo, //6109 - // Adjust video preferences - EVtUiCmdAdjustVideoVideoQuality, //6110 - // Adjust video white balance - EVtUiCmdAdjustVideoWhiteBalance, //6111 - // Adjust video brightness - EVtUiCmdAdjustVideoBrightness, //6112 - // Adjust video contrast - EVtUiCmdAdjustVideoContrast, //6113 - // Adjust video colour tone - EVtUiCmdAdjustVideoColourTone, //6114 - // Dialer close - EVtUiDialerExit //6115 - }; - -// Enumerates bitmap identifiers -enum TVtUiBitmapId - { - // Reserved to indicate no bitmap. - EVtUiBitmapNone, - // Viewfinder background. - EVtUiBitmap_qgn_graf_call_video_out_bg, - // Viewfinder background mask. - EVtUiBitmap_qgn_graf_call_video_out_bg_mask, - // Blind in icon. - EVtUiBitmap_qgn_indi_call_video_blind_in, - // Blind out icon. - EVtUiBitmap_qgn_indi_call_video_blind_out, - // Earpiece icon. - EVtUiBitmap_qgn_indi_earpiece, - // Earpiece icon mask. - EVtUiBitmap_qgn_indi_earpiece_mask, - // Loudspeaker icon. - EVtUiBitmap_qgn_indi_speaker, - // Loudspeaker icon mask. - EVtUiBitmap_qgn_indi_speaker_mask, - // Zoom area mask. - EVtUiBitmap_qgn_graf_zoom_area, - // Zoom direction bitmap. - EVtUiBitmap_qgn_indi_zoom_dir, - // Zoom direction bitmap mask. - EVtUiBitmap_qgn_indi_zoom_dir_mask, - // Zoom area minimum icon. - EVtUiBitmap_qgn_indi_zoom_min, - // Zoom area maximum icon. - EVtUiBitmap_qgn_indi_zoom_max, - // Scalable blind in icon soft mask, - EVtUiBitmap_qgn_indi_call_video_blind_in_mask_icon, - // Scalable blind out icon soft mask, - EVtUiBitmap_qgn_indi_call_video_blind_out_mask_icon, - // Current active list item indicator - EVtUiBitmap_qgn_prop_sub_current, - // Current active list item indicator mask - EVtUiBitmap_qgn_prop_sub_current_mask - }; - -#endif // VIDEOTELUI_HRH - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/loc/videotelui.loc --- a/vtuis/videotelui/loc/videotelui.loc Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,396 +0,0 @@ -/* -* Copyright (c) 2004 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: Localisation texts for Video Telephone application. -* -*/ - - -// LOCALISATION STRINGS - -// d: Text shown in fast swap window while there is active video call. -// l: cell_app_pane_t1 -// r: 2.6 -// -#define qtn_apps_videophone_grid "Video tel" - -// d: It is text for menu option. If it is selected, -// d: then submenu is opened containing Video / Audio / Both -// d: items. -// l: list_single_pane_t1_cp2/opt3 -// r: 2.6 -// -#define qtn_incal_enable_main_option "Enable" - -// d: It is text for submenu option. It enables / disables -// d: video. -// l: list_single_popup_submenu_pane_t1 -// r: 2.6 -// -#define qtn_incal_change_video_option "Video" - -// d: It is text for submenu option. It enables / disables -// d: audio. -// l: list_single_popup_submenu_pane_t1 -// r: 2.6 -// -#define qtn_incal_change_audio_option "Audio" - -// d: It is text for submenu option. It enables / disables -// d: both audio and video. -// l: list_single_popup_submenu_pane_t1 -// r: 2.6 -// -#define qtn_incal_change_both_option "Both" - -// d: It is text for menu option. If it is selected, -// d: then submenu is opened containing Video / Audio / Both -// d: items. -// l: list_single_pane_t1_cp2/opt3 -// r: 2.6 -// -#define qtn_incal_disable_main_option "Disable" - -// d: It is text for menu option. If it is selected, -// d: then zoom mode is activated. -// l: list_single_pane_t1_cp2 -// r: 2.6 -// -#define qtn_incal_zoom_own_video "Zoom" - -// d: It is the prompt in confirmation query shown when -// d: incoming video call is answered. -// l: popup_note_window -// r: 3.2 -// -#define qtn_incal_send_video_image "Allow video image?" - -// d: It is text for options menu list item. -// d: It opens touch input window for sending DTMF tones -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_send_dtmf_tone_option "Activate keypad" - -// d: It it text shown in title pane during active -// d: video call. %N is replaced with call index. -// l: title_pane_t2/opt9 -// r: 2.6 -// -#define qtn_call_number_video "Call %N" - -// d: It is text shown in main pane until the first image -// d: is received. -// l: main_list_empty_pane -// r: 2.6 -// -#define qtn_incal_waiting_image "Waiting image..." - -// d: It is text shown in a note when video call is -// d: answered and camera activation fails, because -// d: camera is in use in other application. -// l: popup_note_window -// r: 2.6 -// -#define qtn_incal_close_camcorder "Camera already in use an other application." - -// d: It is text in softkey to enable audio (unmute microphone). -// l: control_pane_t1/opt7 -// r: 2.6 -// -#define qtn_incal_softk_enable_audio "Enable audio" - -// d: It is text for menu option. If it is selected, -// d: then swaps locations of uplink and downlink -// d: video streams. -// l: list_single_pane_t1_cp2 -// r: 2.8 -// -#define qtn_incal_swap_vt_images "Swap images' places" - -// d: It is text shown in a note when "use primary -// d: camera" or "use secondary camera" operations fails. -// l: popup_note_window -// r: 2.6 -// -#define qtn_err_cam_swap "Other camera wasn't usable" - -// d: It is text for menu option. If it is selected, -// d: then new softkeys are now Capture and Cancel. -// l: list_single_pane_t1_cp2 -// r: 3.1 -// -#define qtn_incal_snapshot_option "Snapshot" - -// d: It is text for right softkey in freeze mode. -// l: control_pane_t1/opt7 -// r: 3.1 -// -#define qtn_softk_capture "Capture" - -// d: It is text for switch -// d: to voice query dialog. -// l: popup_note_window -// r: 3.1 -#define qtn_query_create_voice_call "End active call and create voice call to the same contact?" - -// d: It is text for menu option. -// d: It switches video to voice call. -// l: list_single_pane_t1_cp2 -// r: 3.1 -#define qtn_incal_video_to_voice "Switch to voice call" - -// d: It is text for menu option. -// d: It opens dialog for selecting image to be shared with peer. -// l: list_single_pane_t1_cp2 -// r: 3.1 -#define qtn_incal_video_call_share_file "Share file" - -// d: It is text for softkey option. -// d: It stops sending selected image to peer. -// l: control_pane_t1/opt7 -// r: 3.1 -#define qtn_softk_disable_share "Disable share" - -//d: Error note text when user selects image that cannot be opened. -//d: Corrupted or unsupported image selected. -//l: popup_note_window -//r:3.1 -// -#define qtn_tel_info_unable_open_image "Unable to open image" - -//d: Error note text when user selects multiframe image that is corrupted. -//d: Corrupted image selected. -//l: popup_note_window -//r: 5.0 -// -#define qtn_incal_note_decoding_failed "Unable to animate image" - -//d: Error note text when user selects a DRM protected image. -//d: DRM protected media gallery object selected. -//l: popup_note_window -//r:3.1 -// -#define qtn_drm_not_allowed "Unable to select protected objects" - -//d: Text for image initializing wait note -//d: Shown when image to be shared is being initialized. -//l: popup_note_wait_window -//r:3.1 -// -#define qtn_vt_progress_decoding_image "Decoding image" - -//d: Toolbar tooltip for disable video. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_disable_video "Disable video sending" - -//d: Toolbar tooltip for enable video. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_enable_video "Enable video sending" - - -//d: Toolbar tooltip for mute microphone. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_mute_microphone "Mute microphone" - -//d: Toolbar tooltip for unmute microphone. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_unmute_microphone "Unmute microphone" - -//d: Toolbar tooltip for swap images. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_swap_images "Change image order" - -//d: Toolbar tooltip for secondary camera. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_secondary_cam "Use secondary camera" - -//d: Toolbar tooltip for primary camera. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_primary_cam "Use primary camera" - -//d: Toolbar tooltip for zoom. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_zoom "Activate zoom mode" - -//d: Toolbar tooltip for share. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_share "Share file" - -//d: Toolbar tooltip for send snapshot. -//l: popup_preview_text_window_t1 -//r:3.2 -// -#define qtn_vt_tooltip_send_snapshot "Send snapshot" - -// d: It is text for menu option. -// d: It opens submenu with Received video quality / White balance / -// d: Brightness / Contrast / Colour tone -// l: list_single_pane_t1_cp2/opt3 -// r: 5.0 -#define qtn_incal_video_adjust_option "Adjust video" - -// d: It is text for submenu option. -// d: It opens list query dialog with options Normal / Details / Motion. -// l: list_single_popup_submenu_pane_t1 -// r: 5.0 -#define qtn_incal_video_prefer_option "Received video quality" - -// d: It is text for list query option. -// d: It adjusts incoming video frame rate to 10 frames per second. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_normal_list_option "Normal" - -// d: It is text for list query option. -// d: It adjusts incoming video frame rate to 5 frames per second. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_details_list_option "Details" - -// d: It is text for list query option. -// d: It adjusts incoming video frame rate to 15 frames per second. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_motion_list_option "Motion" - -// d: It is text for submenu option. -// d: It opens list query dialog with options Automatic / Sunny / Cloudy / -// d: Incandescent / Fluorescent -// l: list_single_popup_submenu_pane_t1 -// r: 5.0 -#define qtn_incal_video_white_balance_option "White balance" - -// d: It is text for list query option. -// d: It adjusts incoming video frame rate to 15 frames per second. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_automatic_option "Automatic" - -// d: It is text for list query option. -// d: It adjusts white balance of outgoing video. -// d: It sets white balance to Sunny. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_sunny_option "Sunny" - -// d: It is text for list query option. -// d: It adjusts white balance of outgoing video. -// d: It sets white balance to Cloudy. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_cloudy_option "Cloudy" - -// d: It is text for list query option. -// d: It adjusts white balance of outgoing video. -// d: It sets white balance to Incandescent. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_incandescent_option "Incandescent" - -// d: It is text for list query option. -// d: It adjusts white balance of outgoing video. -// d: It sets white balance to Fluorescent. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_fluorescent_option "Fluorescent" - -// d: It is text for submenu option. -// d: It shows control for adjusting outgoing video Brightness. -// l: list_single_popup_submenu_pane_t1 -// r: 5.0 -#define qtn_incal_video_brightness_option "Brightness" - -// d: It is text for submenu option. -// d: It shows control for adjusting outgoing video Contrast. -// l: list_single_popup_submenu_pane_t1 -// r: 5.0 -#define qtn_incal_video_contrast_option "Contrast" - -// d: It is text for submenu option. -// d: It opens list query dialog with options Normal / Sepia / -// d: Black and white / Negative -// l: list_single_popup_submenu_pane_t1 -// r: 5.0 -#define qtn_incal_video_colour_tone_option "Colour tone" - -// d: It is text for list query option. -// d: It adjusts colour tone of outgoing video. -// d: It sets colour tone to Normal. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_ct_normal_option "Normal" - -// d: It is text for list query option. -// d: It adjusts colour tone of outgoing video. -// d: It sets colour tone to Sepia. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_sepia_option "Sepia" - -// d: It is text for list query option. -// d: It adjusts colour tone of outgoing video. -// d: It sets colour tone to Black and white. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_b_and_w_option "Black and white" - -// d: It is text for list query option. -// d: It adjusts colour tone of outgoing video. -// d: It sets colour tone to Negative. -// l: list_single_pane_t1_cp2 -// r: 5.0 -#define qtn_incal_negative_option "Negative" - -// d: Toolbar tooltip for changing audio routing to handset. -// l: popup_preview_text_window_t1 -// r: 5.0 -// -#define qtn_vt_tooltip_audio_handset "Audio to handset" - -// d: Toolbar tooltip for changing audio routing to loudspeaker. -// l: popup_preview_text_window_t1 -// r: 5.0 -// -#define qtn_vt_tooltip_audio_loudspeaker "Audio to loudspeaker" - -// d: Toolbar tooltip for changing audio routing to bluetooth handsfree. -// l: popup_preview_text_window_t1 -// r: 5.0 -// -#define qtn_vt_tooltip_audio_bthf "Audio to Bluetooth handsfree" - -// d: It is text in softkey to open dialer (for dtmf sending). -// l: control_pane_t1/opt7 -// r: 5.0 -// -#define qtn_incal_softk_dialer "Dialer" - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/rom/videotelui.iby --- a/vtuis/videotelui/rom/videotelui.iby Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2004-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: IBY file - * -*/ - - -#ifndef __VIDEOTELUI_IBY__ -#define __VIDEOTELUI_IBY__ - -REM Video Telephone application - -#ifdef __CS_VIDEO_TELEPHONY - -S60_APP_EXE(videotelui) -S60_APP_AIF_ICONS(videotelui) -S60_APP_BITMAP(videotelui) - -// Enabler for eclipsing ROM binaries -data=ZSYSTEM\install\videotelui_stub.sis system\install\videotelui_stub.sis -data=ZPRIVATE\10003a3f\apps\videotelui_reg.rsc private\10003a3f\import\apps\videotelui_reg.rsc - -#if defined ( RD_VT_RTF ) - -data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\VtStartRecord.wav System\sounds\digital\VtStartRecord.wav -data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\VtStopRecord.wav System\sounds\digital\VtStopRecord.wav - -#endif //RD_VT_RTF -#endif // __CS_VIDEO_TELEPHONY -#endif diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/rom/videoteluiResources.iby --- a/vtuis/videotelui/rom/videoteluiResources.iby Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: IBY file - * -*/ - - -#ifndef __VIDEOTELUI_RESOURCES_IBY__ -#define __VIDEOTELUI_RESOURCES_IBY__ - -#ifdef __CS_VIDEO_TELEPHONY -data=DATAZ_\APP_RESOURCE_DIR\videotelui.rsc APP_RESOURCE_DIR\videotelui.rsc -#endif // __CS_VIDEO_TELEPHONY - -#endif \ No newline at end of file diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiActivateBtHfDialog.cpp --- a/vtuis/videotelui/src/CVtUiActivateBtHfDialog.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of the CVtUiActivateBtHfDialog class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiActivateBtHfDialog.h" -#include "MVtUiEngineCommandManager.h" -#include -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiActivateBtHfDialog::CVtUiActivateBtHfDialog -// ----------------------------------------------------------------------------- -// -CVtUiActivateBtHfDialog::CVtUiActivateBtHfDialog( - CEikDialog** aSelfPtr, - TInt* aError, - MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager ) - : CAknWaitDialog( aSelfPtr ), - iCommandHandler( aCommandHandler ), - iCommandManager( aCommandManager ), - iError( aError ), - iAudioRouting( MVtEngAudio::EActivateBT ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiActivateBtHfDialog::~CVtUiActivateBtHfDialog -// ----------------------------------------------------------------------------- -// -CVtUiActivateBtHfDialog::~CVtUiActivateBtHfDialog() - { - if ( iError ) - { - *iError = KErrCancel; - iError = NULL; - } - - if ( iCommandPerformed ) - { - iCommandHandler.CancelCommand( KVtEngSetAudioRouting ); // ignore error - } - iCommandManager.RemoveObserver( *this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiActivateBtHfDialog::ExecuteDialogLD -// ----------------------------------------------------------------------------- -// -void CVtUiActivateBtHfDialog::ExecuteDialogLD() - { - CleanupStack::PushL( this ); - iCommandManager.AddObserverL( *this ); - SetTone( CAknNoteDialog::ENoTone ); - CleanupStack::Pop( this ); - - ExecuteLD( R_VIDEOTELUI_BTHF_CONNECT_WAIT_NOTE ); - } - -// ----------------------------------------------------------------------------- -// CVtUiActivateBtHfDialog::PostLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CVtUiActivateBtHfDialog::PostLayoutDynInitL() - { - iCommandHandler.ExecuteL( KVtEngSetAudioRouting, &iAudioRouting ); - iCommandPerformed = ETrue; - - CAknWaitDialog::PostLayoutDynInitL(); - } - -// ----------------------------------------------------------------------------- -// CVtUiActivateBtHfDialog::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -void CVtUiActivateBtHfDialog::HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ) - { - if ( aCommand == KVtEngSetAudioRouting ) - { - if ( iError ) - { - *iError = aError; - iError = NULL; - } - - ProcessFinishedL(); - } - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiActiveExec.cpp --- a/vtuis/videotelui/src/CVtUiActiveExec.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiActiveExec class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiActiveExec.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::CVtUiActiveExec -// ----------------------------------------------------------------------------- -// -CVtUiActiveExec::CVtUiActiveExec( - const TInt aPriority ) - : CActive( aPriority ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::~CVtUiActiveExec -// ----------------------------------------------------------------------------- -// -CVtUiActiveExec::~CVtUiActiveExec() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::Start -// ----------------------------------------------------------------------------- -// -void CVtUiActiveExec::Start( - TInt aStartState, - MVtUiActiveExec& aExec ) - { - Cancel(); - - iInitialState = aStartState; - iCurrentState = aStartState; - iNextState = aStartState; - - iActiveExec = &aExec; - - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::InitialState -// ----------------------------------------------------------------------------- -// -TInt CVtUiActiveExec::InitialState() const - { - return iInitialState; - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::RequestStatus -// ----------------------------------------------------------------------------- -// -TInt CVtUiActiveExec::RequestStatus() const - { - return iStatus.Int(); - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::RunL -// ----------------------------------------------------------------------------- -// -void CVtUiActiveExec::RunL() - { - User::LeaveIfError( iStatus.Int() ); - TBool synch = ETrue; - - // Execute to the next asynchronous operation. - while ( synch ) - { - iCurrentState = iNextState; - if ( iCurrentState ) - { - synch = iActiveExec->ActiveExecExecuteL( - *this, - iCurrentState, - iNextState, - iStatus ); - - if ( !synch ) - { - SetActive(); - } - } - else - { - iActiveExec->ActiveExecDone( *this, iInitialState ); - if ( !IsActive() ) - { - iInitialState = 0; - } - - synch = EFalse; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtUiActiveExec::DoCancel() - { - if ( iActiveExec ) - { - iActiveExec->ActiveExecCancel( *this, iCurrentState ); - - iCurrentState = 0; - iActiveExec = NULL; - iInitialState = 0; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiActiveExec::RunError -// ----------------------------------------------------------------------------- -// -TInt CVtUiActiveExec::RunError( TInt aError ) - { - if ( iActiveExec->ActiveExecContinue( *this, iCurrentState, aError ) ) - { - iNextState = iCurrentState; - - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - SetActive(); - } - else - { - if ( !IsActive() ) - { - iInitialState = 0; - } - } - - return KErrNone; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiAllowVideoDialog.cpp --- a/vtuis/videotelui/src/CVtUiAllowVideoDialog.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiAllowVideoDialog class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiAllowVideoDialog.h" -#include -#include - -// CONSTANTS - -// Timeout for allow video query. -const TInt KVtUiAllowVideoDialogTimeout = 5000000; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiAllowVideoDialog::CVtUiAllowVideoDialog -// ----------------------------------------------------------------------------- -// -CVtUiAllowVideoDialog::CVtUiAllowVideoDialog( - CEikDialog** aSelfPtr, - const TTone& aTone ) - : CAknQueryDialog( aTone ), - iSelfPtr( aSelfPtr ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiAllowVideoDialog::~CVtUiAllowVideoDialog -// ----------------------------------------------------------------------------- -// -CVtUiAllowVideoDialog::~CVtUiAllowVideoDialog() - { - if ( iSelfPtr ) - { - *iSelfPtr = NULL; - iSelfPtr = NULL; - } - - if ( iRequestStatus ) - { - User::RequestComplete( iRequestStatus, KErrNone ); - iRequestStatus = NULL; - } - - delete iQueryTimer; - } - -// ----------------------------------------------------------------------------- -// CVtUiAllowVideoDialog::ExecuteDialogLD -// ----------------------------------------------------------------------------- -// -void CVtUiAllowVideoDialog::ExecuteDialogLD( - TRequestStatus& aStatus ) - { - aStatus = KRequestPending; - - HBufC* prompt = StringLoader::LoadLC( R_VIDEOTELUI_QTN_SEND_VIDEO_IMAGE ); - - PrepareLC( R_VIDEOTELUI_ALLOW_VIDEO_QUERY ); - SetPromptL( *prompt ); - RunLD(); - - CleanupStack::PopAndDestroy( prompt ); - iRequestStatus = &aStatus; - } - -// ----------------------------------------------------------------------------- -// CVtUiAllowVideoDialog::PostLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CVtUiAllowVideoDialog::PostLayoutDynInitL() - { - CAknQueryDialog::PostLayoutDynInitL(); - - iQueryTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - iQueryTimer->Start( - KVtUiAllowVideoDialogTimeout, - KVtUiAllowVideoDialogTimeout, - TCallBack( DoDismissDialogTimeoutL, this ) ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAllowVideoDialog::OkToExitL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAllowVideoDialog::OkToExitL( TInt aCommand ) - { - const TBool exit = - CAknQueryDialog::OkToExitL( aCommand ); - - if ( exit ) - { - CVtUiAllowVideoDialog::TResult result = - CVtUiAllowVideoDialog::EQueryCanceled; - - switch ( aCommand ) - { - case EAknSoftkeyOk: - case EAknSoftkeyYes: - result = CVtUiAllowVideoDialog::EUserAllowed; - break; - - case EAknSoftkeyNo: - result = CVtUiAllowVideoDialog::EUserDenied; - break; - - default: - break; - } - - if ( iRequestStatus ) - { - User::RequestComplete( iRequestStatus, result ); - iRequestStatus = NULL; - } - } - - return exit; - } - -// ----------------------------------------------------------------------------- -// CVtUiAllowVideoDialog::DoDismissDialogTimeoutL -// ----------------------------------------------------------------------------- -// -TInt CVtUiAllowVideoDialog::DoDismissDialogTimeoutL( TAny* aAny ) - { - CVtUiAllowVideoDialog* self = - static_cast< CVtUiAllowVideoDialog* >( aAny ); - - TRequestStatus* status = self->iRequestStatus; - self->iRequestStatus = NULL; - - delete self; - - User::RequestComplete( - status, - CVtUiAllowVideoDialog::EQueryDismissedTimeout ); - - return KErrNone; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiApp.cpp --- a/vtuis/videotelui/src/CVtUiApp.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiApp application class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiApp.h" -#include "CVtUiDoc.h" -#include "videotelui.hrh" - -#include - -// CONSTANTS - -// UID of Video Telephone application. -const TUid KVtUiAppUid = { KVtUiAppUidValue }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiApp::CVtUiApp -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiApp::CVtUiApp() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiApp::CreateDocumentL -// Creates CVtUiDoc instance. -// ----------------------------------------------------------------------------- -// -CApaDocument* CVtUiApp::CreateDocumentL() - { - return new ( ELeave ) CVtUiDoc( *this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiApp::AppDllUid -// Returns application uid. -// ----------------------------------------------------------------------------- -// -TUid CVtUiApp::AppDllUid() const - { - return KVtUiAppUid; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// --------------------------------------------------------- -// NewApplication implements -// -// Creates an instance of application. -// -// Returns: an instance of CVtUiApp -// --------------------------------------------------------- -// -LOCAL_C CApaApplication* NewApplication() - { - return new CVtUiApp; - } - -// --------------------------------------------------------- -// E32Main implements -// -// It is called when executable is started. -// -// Returns: error code. -// --------------------------------------------------------- -// -GLDEF_C TInt E32Main() - { - return EikStart::RunApplication( NewApplication ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiAppUi.cpp --- a/vtuis/videotelui/src/CVtUiAppUi.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7332 +0,0 @@ -/* -* Copyright (c) 2004 - 2008 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: Implementation of the CVtUiAppUi application UI class. -* -*/ - - - -// INCLUDE FILES -#include "videotelui.hrh" -#include "CVtUiAppUi.h" -#include "CVtUiMainControl.h" -#include "CVtUiContextControl.h" -#include "CVtUiNumberEntryActivationControl.h" -#include "CVtUiNaviPane.h" -#include "VtUiLayout.h" -#include "MVtUiEngineCommandManager.h" -#include "CVtUiExecuteCmdDialog.h" -#include "CVtUiAllowVideoDialog.h" -#include "CVtUiBlankControl.h" -#include "VtUiLayout.h" -#include "VtUiUtility.h" -#include "VtUiPanic.h" -#include "CVtUiActivateBtHfDialog.h" -#include "CVtUiRemoteVideoControl.h" -#include - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "CVtUiBitmapManager.h" - -#include -#include -#include -#include - -#include "cvtuifeaturemanager.h" -#include "cvtuicomponentmanager.h" -#include "cvtuicommandmanager.h" -#include "tvtuistates.h" -#include "cvtuimenus.h" -#include "cvtuisoftkeys.h" -#include "cvtuitoolbarbase.h" -#include "cvtuiwhitebalance.h" -#include "cvtuicolortone.h" -#include "cvtuibrightness.h" -#include "cvtuicontrast.h" -#include -#include -#include -#include "tvtuiwsevent.h" -#include "mvtuinumbersource.h" -#include "tVtuifeaturevariation.h" -#include "cvtuidialer.h" -#include "tvtuiappstates.h" -#include "cvtuivolume.h" -#include "cvtuizoom.h" -#include "cvtuivolumecontrol.h" - -using namespace ContentAccess; - -// CONSTANTS - -// Engine orientation to application orientation map -const CVtUiAppUi::TAppUiOrientation engToAppOrientation[] = { - CVtUiAppUi::EAppUiOrientationLandscape, - CVtUiAppUi::EAppUiOrientationPortrait, - CVtUiAppUi::EAppUiOrientationUnspecified }; - -// Amount of help contexts. -const TInt KVtUiHelpContextAmount = 1; - -// UID of Video Telephone application. -const TUid KVtUiAppUid = { KVtUiAppUidValue }; - -// Granularity of command observer array. -const TInt KVtUiCommandObserverArrayGranularity = 5; - -// Default call index. -const TInt KVtUiDefaultCallId = 1; - -// Control priority for the blank control. Above all other controls. -const TInt KVtUiBlankControlPriority = - ECoeStackPriorityEnvironmentFilter + 100; - -// Exit timeout. -const TInt KVtUiExitTimeout = 10000000; - -// UID of the main telephone application -const TUid KVtUiTelephoneUid = { 0x100058B3 }; - -// Reset value for volume -const TInt KVolumeResetValue = -1; - - -// Name of the EIKON server window group. -_LIT( KVtUiEikonServer, "EikonServer" ); - -// Name of the AknCapServer window group. -_LIT( KVtUiAknCapServer, "*akncapserver*" ); - -// Name of the AknNotifierServer window group. -_LIT( KVtUiAknNotifierServer, "*aknnfysrv*" ); - -// Volume repeat delay. -const TInt KVtUiVolumeRepeatDelay = KAknStandardKeyboardRepeatRate; - -// Volume repeat long delay. -const TInt KVtUiVolumeRepeatLongDelay = KAknKeyboardRepeatInitialDelay; - -// Start time for toolbar timer -const TTimeIntervalMicroSeconds32 KStartTime( 600000 ); - -// period time for toolbar timer -const TTimeIntervalMicroSeconds32 KPeriodTime( 300000 ); - -// The maximum frequency that user can swap image places. -const TInt64 KVtUiMaxSwapImagesFreq( 1000000 ); - -// Enumerates methods used in event handling. This enumeration MUST -// match with methodArray local array. -enum TVtUiHandleEvents - { - // Refresh states - EVtUiRefreshStates = 1 << 0, - // Handle remote problem. - EVtUiHandleVideoFrameRemoteProblem = 1 << 1, - // Handle local problem. - EVtUiHandleVideoFrameLocalProblem = 1 << 2, - // Refresh navipane. - EVtUiRefreshNaviPane = 1 << 3, - // Refresh softkeys. - EVtUiRefreshSoftkeys = 1 << 4, - // Refresh blind icon status. - EVtUiRefreshBlind = 1 << 5, - // Stop showing waiting image text. - EVtUiStopWaitingImage = 1 << 6, - // Rx resolution changed. - EVtUiChangeRemoteVideoLayout = 1 << 7, - // Show initializing image progress - EVtUiShowImageInitializingProgress = 1 << 8, - // Hide initializing image progress - EVtUiHideImageInitializingProgress = 1 << 9, - // Set camera orientation - EVtUiSetOrientation = 1 << 10, - //Handle media status change - EVtUiMediaStateChanged = 1 << 11, - //Show decoding error note - EVtUiShowDecodingError = 1 << 12, - // Stop the white balance and color tone - EVtUiStopWBOrColortone = 1 << 13, - // refresh Menu - EVtUiRefreshMenu = 1 << 14, - // Stop brightness and contrast slider - EVtUiStopBrightnessOrContrast = 1 << 15, - // refresh zoom popup - EVtUiRefreshZoomPopup = 1 << 16 - }; - -// Enumerates states for CVtUiActiveExec. -enum - { - // Operation finished. Must equal to zero. - EVtUiAppUiNone, - - // Active execution states for iActiveExec: - - // Startup (prepare engine): - EVtUiAppUiStartup = 100, // 100 - // Close dialogs. - EVtUiAppUiStartupCloseDialogs = EVtUiAppUiStartup, // 100 - // Initialise engine. - EVtUiAppUiStartupInitEngine, // 101 - // Prepare viewfinder. - EVtUiAppUiStartupPrepareViewfinder, // 102 - // Prepare remote render. - EVtUiAppUiStartupPrepareRemoteRender, // 103 - // Remove blank. - EVtUiAppUiStartupRemoveBlank, // 104 - - // Shutdown (reset engine): - EVtUiAppUiShutdown = 300, // 300 - // Close dialogs. - EVtUiAppUiShutdownCloseDialogs = EVtUiAppUiShutdown, // 300 - // Hide application. - EVtUiAppUiShutdownHideApplication, // 301 - // Reset engine. - EVtUiAppUiShutdownResetEngine, // 302 - // Remove blank. - EVtUiAppUiShutdownRemoveBlank, // 303 - - // Answered: - EVtUiAppUiAnswered = 500, // 500 - // Show blank dialog. - EVtUiAppUiAnsweredStart = EVtUiAppUiAnswered, // 500 - // Refresh navipane. - EVtUiAppUiAnsweredRefreshNavi, // 501 - // Refresh softkeys. - EVtUiAppUiAnsweredRefreshSoftkeys, // 502 - // Start remote render. - EVtUiAppUiAnsweredStartRemoteRender, // 503 - - // Prepares camera - EVtUiAppUiAnsweredCheckCamera, // 504 - // Choose if it's needed to show query or directly activate camera. - EVtUiAppUiAnsweredChoose, // 505 - // Set still image as source. - EVtUiAppUiAnsweredQuerySetupStill, // 506 - // Set none as source. - EVtUiAppUiAnsweredQuerySetupNone, // 507 - // Start viewfinder. - EVtUiAppUiAnsweredQuerySetupStart, // 508 - // Show "allow video image" query. - EVtUiAppUiAnsweredQueryShow, // 509 - // Check if user allowed video image. - EVtUiAppUiAnsweredQueryDecide, // 510 - // Select camera as source. - EVtUiAppUiAnsweredQuerySelectCamera, // 511 - // Select still image as source. - EVtUiAppUiAnsweredQuerySelectStill, // 512 - // Select none as source. - EVtUiAppUiAnsweredQuerySelectNone, // 513 - // Start viewfinder. - EVtUiAppUiAnsweredQueryStartViewfinder, // 514 - // Finish. - EVtUiAppUiAnsweredQueryFinish, // 515 - // Select camera as source. - EVtUiAppUiAnsweredSelectCamera, // 516 - // Select still image as source. - EVtUiAppUiAnsweredSelectStill, // 517 - // Select none as source. - EVtUiAppUiAnsweredSelectNone, // 518 - // Start viewfinder. - EVtUiAppUiAnsweredStartViewfinder, // 519 - // Finish. - EVtUiAppUiAnsweredFinish, // 520 - - // Prepares camera - EVtUiAppUiAnsweredDoPrepareCamera // 521 - }; - -/** -* Enumerates background layers -*/ -enum TVtUiBackgroundLayers - { - // Idle state background. - EVtUiLayerBackground = 0, - // Wallpaper layout. - EVtUiLayerWallpaper = 1, - // Amount of layers. - EVtUiLayerCount = 2 - }; - -// MODULE DATA STRUCTURES - -/** -* Asynchronous command executor that does not use dialog for waiting the -* execution completion. -* @since Series 60 5.0 -*/ -class CVtEngCmdExec : public CBase, private MVtEngCommandObserver - { - -public: - /** - * Static constructor. - */ - static CVtEngCmdExec* NewL( MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager, - CEikButtonGroupContainer& aCBA ); - - /** - * Executes given command asynchronously, waiting the command completion. - */ - void ExecuteCmdLD( const TVtEngCommandId aCommandId ); - - /** - * Destructor. - */ - ~CVtEngCmdExec(); - -private: // from MVtEngCommandObserver - - /** - * @see MVtEngCommandObserver::HandleVTCommandPerformedL - */ - void HandleVTCommandPerformedL( TVtEngCommandId aCommand, - const TInt aError ); - -private: - - /** - * Constructor. - */ - CVtEngCmdExec( MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager, - CEikButtonGroupContainer& aCBA ); - -private: - - CActiveSchedulerWait iWait; - - MVtEngCommandHandler& iCommandHandler; - - MVtUiEngineCommandManager& iCommandManager; - - TVtEngCommandId iCommandId; - - CEikButtonGroupContainer& iCBA; - - }; - -// ----------------------------------------------------------------------------- -// CVtEngCmdExec::NewL -// ----------------------------------------------------------------------------- -// -CVtEngCmdExec* CVtEngCmdExec::NewL( MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager, CEikButtonGroupContainer& aCBA ) - { - CVtEngCmdExec* self = new ( ELeave ) CVtEngCmdExec( aCommandHandler, - aCommandManager, aCBA ); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtEngCmdExec::ExecuteCmdLD -// ----------------------------------------------------------------------------- -// -void CVtEngCmdExec::ExecuteCmdLD( const TVtEngCommandId aCommandId ) - { - __VTPRINTENTER("CVtEngCmdExec::ExecuteCmdLD") - CleanupStack::PushL( this ); - iCommandId = aCommandId; - iCommandManager.AddObserverL( *this ); - iCommandHandler.ExecuteL( aCommandId, NULL ); - iCBA.SetCommandSetL( R_VIDEOTELUI_SOFTKEYS_EMPTY ); - iCBA.DrawNow(); - iWait.Start(); - CleanupStack::PopAndDestroy(); // this - __VTPRINTEXIT("CVtEngCmdExec::ExecuteCmdLD") - } - -// ----------------------------------------------------------------------------- -// CVtEngCmdExec::~CVtEngCmdExec -// ----------------------------------------------------------------------------- -// -CVtEngCmdExec::~CVtEngCmdExec() - { - __VTPRINTENTER("CVtEngCmdExec::~CVtEngCmdExec") - if ( iWait.IsStarted()) - { - __VTPRINT(DEBUG_GEN, "CVtEngCmdExec::~CVtEngCmdExec AsyncStop") - iWait.AsyncStop(); - } - iCommandManager.RemoveObserver( *this ); - __VTPRINTEXIT("CVtEngCmdExec::~CVtEngCmdExec") - } - -// ----------------------------------------------------------------------------- -// CVtEngCmdExec::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -void CVtEngCmdExec::HandleVTCommandPerformedL( TVtEngCommandId aCommand, - const TInt aError ) - { - __VTPRINTENTER("CVtEngCmdExec::HandleVTCommandPerformedL") - if ( iCommandId == aCommand ) - { - if ( iWait.IsStarted()) - { - __VTPRINT(DEBUG_GEN, "CVtEngCmdExec::HandleVTCommandPerformedL AsyncStop") - iWait.AsyncStop(); - } - else - { - // request already completed - } - } - else - { - // wrong command ID - } - __VTPRINTEXIT("CVtEngCmdExec::HandleVTCommandPerformedL") - } - -// ----------------------------------------------------------------------------- -// CVtEngCmdExec::CVtEngCmdExec -// ----------------------------------------------------------------------------- -// -CVtEngCmdExec::CVtEngCmdExec( MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager, CEikButtonGroupContainer& aCBA ) - : iCommandHandler( aCommandHandler ), - iCommandManager( aCommandManager ), iCBA( aCBA ) - { - } - -/** -* Encapsulates all instances related to user interface. -* @since Series 60 2.6 -*/ -class CVtUiAppUi::CInstance - : public CBase - { - public: // Constructors and destructors - - /** - * Two-phased constructor. - * @param aAppUi reference to application UI. - */ - static CInstance* NewL( CVtUiAppUi& aAppUi ); - - /** - * Destructor. - */ - ~CInstance(); - - /** - * Called when side volume key is pressed. - */ - void VolumeKeyPressedL(); - - /** - * Create remote video control. - */ - void CreateRemoteVideoControl(); - - private: - - /** - * Constructor. - */ - CInstance( CVtUiAppUi& aAppUi ); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Relayout controls. - */ - void LayoutChanged(); - - private: - - // Parent can access members. - friend class CVtUiAppUi; - - // Ref to application UI. - CVtUiAppUi& iAppUi; - - // Owned bitmap manager. - CVtUiBitmapManager* iBitmapManager; - - // ETrue if iMainControl has been added to stack. - TBool iMainControlInStack; - - // Owned main pane control. - CVtUiMainControl* iMainControl; - - // ETrue if iContextControl has been added to stack. - TBool iContextControlInStack; - - // Owned context pane control. - CVtUiContextControl* iContextControl; - - // Owned remote video control. - CVtUiRemoteVideoControl* iRemoteVideoControl; - - //ETrue if iRemoteVideoControl has been added to stack. - TBool iRemoteVideoControlInStack; - - // Owned navi pane controller. - CVtUiNaviPane* iNaviPane; - - // ETrue if number entry has been added to stack. - TBool iNumberEntryInStack; - - // Owned number entry activation control. - CVtUiNumberEntryActivationControl* iNumberEntryActivation; - - }; - -/** -* Encapsulates event handling. -* @since Series 60 2.6 -*/ -class CVtUiAppUi::CEventObserver - : public CBase, - public MVtUiEngineCommandManager, - public MVtEngEventObserver, - public MVtEngCommandObserver, - public MVtEngFrameObserver, - private MBeating, - private MRemConCoreApiTargetObserver - { - public: // Constructors and destructors - - /** - * Two-phased constructor. - * @param aAppUi application UI. - */ - static CEventObserver* NewL( CVtUiAppUi& aAppUi ); - - /** - * Destructor. - */ - ~CEventObserver(); - - public: // New functions - - /** - * Returns engine model. - * @return model instance. - */ - inline CVtEngModel& Model(); - - /** - * Creates remote control framework session. - */ - void CreateRemConSessionL(); - - /** - * Deletes remote control framework session. - */ - void DeleteRemConSession(); - - /** - * Checks if command is supported by engine. - * @param aCommandId command. - * @return ETrue if supported, EFalse otherwise. - */ - TBool CommandSupported( const TInt aCommandId ) const; - - /** - * Checks if command is supported and synchronous. - * @param aCommandId command. - * @return ETrue if synchronous & supported, EFalse otherwise. - */ - TBool CommandSupportedAndSynchronous( - const TInt aCommandId ) const; - - /** - * Starts heartbeat timer. - */ - void StartBeatL(); - - /** - * Stops heartbeat timer. - */ - void StopBeat(); - - /** - * Stops volume repeat handling timer. - */ - void StopVolumeRepeatTimer(); - - /** - * Sends response to prepare. - * @param aResult result code. - */ - void SendPrepareResponse( const TInt aResult ); - - public: // Functions from base classes - - /** - * @see MVtUiCommandManager::AddObserverL. - */ - virtual void AddObserverL( MVtEngCommandObserver& aObserver ); - - /** - * @see MVtUiCommandManager::RemoveObserver. - */ - virtual void RemoveObserver( MVtEngCommandObserver& aObserver ); - - /** - * @see MVtEngEventObserver::HandleVtEventL. - */ - virtual void HandleVtEventL( TInt aEvent ); - - /** - * @see MVtEngCommandObserver::HandleVTCommandPerformedL. - */ - virtual void HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ); - - /** - * @see MVtEngFrameObserver::vtHandleFrameL. - */ - virtual void vtHandleFrameL( TFrameType aType, CFbsBitmap* aBitmap ); - - /** - * @see MVtEngFrameObserver::vtSetFrame - */ - virtual void vtSetFrame( TFrameType aType, CFbsBitmap* aBitmap ); - - /** - * @see MBeating::Beat. - */ - virtual void Beat(); - - /** - * @see MBeating::Synchronize. - */ - virtual void Synchronize(); - - - private: - - /** - * Constructor. - * @param aAppUi application UI. - */ - CEventObserver( CVtUiAppUi& aAppUi ); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Executes CVtUiAppUi methods. - * @param aBits sum of subset of TVtUiHandleEvents. - */ - void DoExecuteL( TInt aBits ); - /** - * Handles volume change. - * @param aButtonAct button action. - */ - void HandleVolumeChange( - TRemConCoreApiButtonAction aButtonAct ); - /** - * Handles mute change. - * @param aButtonAct button action. - */ - void HandleRemMuteChange( - TRemConCoreApiButtonAction aButtonAct ); - /** - * @see MRemConCoreApiTargetObserver::MrccatoCommand. - */ - virtual void MrccatoCommand( - TRemConCoreApiOperationId aOperationId, - TRemConCoreApiButtonAction aButtonAct ); - - /** - * Callback function to handle volume repeat. - * @param aAny pointer to an instance of this class. - * @return KErrNone. - */ - static TInt DoHandleVolumeRepeat( TAny* aAny ); - - private: - - // Type definition for CVtUiAppUi member functions. - typedef void (CVtUiAppUi::*TMethodL)(); - - // Ref to application ui. - CVtUiAppUi& iAppUi; - - // Engine model. - CVtEngModel* iModel; - - // ETrue when command events are being sent. - TBool iInCommandPerformed; - - // Owned array of observers. - RPointerArray< MVtEngCommandObserver > iCommandObservers; - - // Owned heart beat timer to update call duration. - CHeartbeat* iBeat; - - - // Owned interface selector instance. - CRemConInterfaceSelector* iRemConInterfaceSelector; - - // Pointer to target instance. Owned by iRemConInterfaceSelector. - CRemConCoreApiTarget* iRemConCoreApiTarget; - - // Owned timer for volume repeat handling. - CPeriodic* iRemConVolumeRepeatTimer; - - // Rencon operation id - TRemConCoreApiOperationId iRCCAOperationId; - - }; - -/** -* Verifies objects fetched using media gallery. Only non DRM protected -* objects are allowed. -* @since Series 60 3.1 -*/ -class CVtUiAppUi::CVtUiAppUiMGVerifier : - public CBase, - public MMGFetchVerifier - { - public: - - /** - * Static constructor, pushes created instance into cleanup stack. - */ - static CVtUiAppUiMGVerifier* NewLC( - CVtUiAppUi& aAppUi, CCoeEnv& aCoeEnv ); - - /** - * Destructor. - */ - ~CVtUiAppUiMGVerifier(); - - public: // from MMGFetchVerifier - - /** - * @see MMGFetchVerifier::VerifySelectionL - */ - TBool VerifySelectionL( const MDesCArray* aSelectedFiles ); - - private: - - /** - * 2nd constructor in two phase construction. - */ - void ConstructL(); - - /** - * Constructor. - */ - CVtUiAppUiMGVerifier( CVtUiAppUi& aAppUi, CCoeEnv& aCoeEnv ); - - private: - - // Reference to Application UI - CVtUiAppUi& iAppUi; - - // Pointer to COE - CCoeEnv* iCoeEnv; - - // Pointer to CManager which manages files and content access agents - CManager* iManager; - }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CVtUiAppUi -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CVtUiAppUi() - : iRenderingMode( ERenderingModeDefault ), - iLoudspeakerVolume( KVolumeResetValue ), - iHandsetVolume( KVolumeResetValue ), - iActiveCommands( 1 ), - iLayoutChg( EFalse ), - iDelayedCmd( 0 ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ConstructL() - { - VTLOGINIT - __VTPRINTENTER( "VtUi.ConstructL" ) - - FeatureManager::InitializeLibL(); - BaseConstructL( EAknEnableSkin | EAknEnableMSK ); - - iCba = Cba(); - // Must be done before creating features - iVTVariation.ReadL(); - - iEventObserver = CEventObserver::NewL( *this ); - iUiStates = new ( ELeave ) TVtUiStates( iEventObserver->Model() ); - iUiStates->Update(); - iUiStates->SetViewFindersInitialPlaceContextPane( ETrue ); - - TVtUiAppStateBase::SetInitialStateL( *this, *iUiStates ); - - iCommandManager = CVtUiCommandManager::NewL( *iUiStates, *this ); - - iComponentManager = CVtUiComponentManager::NewL(); - - iFeatureManager = CVtUiFeatureManager::NewL( *this, *iUiStates, - *iCommandManager, *iComponentManager ); - - iInstance = CInstance::NewL( *this ); - - CEikMenuBar* menu = iEikonEnv->AppUiFactory()->MenuBar(); - menu->SetContextMenuTitleResourceId( R_VIDEOTELUI_OK_MENUBAR ); - - - - CEikonEnv& eikEnv = *( iEikonEnv ); - eikEnv.SetSystem( ETrue ); - eikEnv.WsSession().ComputeMode( RWsSession::EPriorityControlDisabled ); - - iThisApplicationWgId = eikEnv.RootWin().Identifier(); - iEikonServerWgId = - eikEnv.WsSession().FindWindowGroupIdentifier( 0, KVtUiEikonServer ); - iAknCapServerWgId = - eikEnv.WsSession().FindWindowGroupIdentifier( 0, KVtUiAknCapServer ); - iAknNfyServerWgId = - eikEnv.WsSession().FindWindowGroupIdentifier( 0, - KVtUiAknNotifierServer ); - - __ASSERT_ALWAYS( - iEikonServerWgId != KErrNotFound, - VtUiPanic::Panic( EVtUiPanicEikonServerNotFound ) ); - (void)eikEnv.RootWin().EnableFocusChangeEvents(); - - - iUplinkWindow = iInstance->iContextControl; - iDownlinkWindow = iInstance->iMainControl; - - - if ( iCba ) - { - CCoeControl* control = iCba->ButtonGroup()->AsControl(); - static_cast< CEikCba* >( control )-> - SetSkinBackgroundId( KAknsIIDQsnBgAreaControlIdle ); - } - - iBlankControl = new ( ELeave ) CVtUiBlankControl; - iBlankControl->ConstructL( ClientRect() ); - AddToStackL( - iBlankControl, - KVtUiBlankControlPriority, - ECoeStackFlagRefusesFocus ); - - iUiStates->SetBlankControlAdded( ETrue ); - - iActiveExec = - new ( ELeave ) CVtUiActiveExec( CActive::EPriorityHigh ); - SetCallIdL( KVtUiDefaultCallId ); - - iExitTimer = CPeriodic::NewL( CActive::EPriorityHigh ); - CheckEngineFunctionality(); - - iAsyncCallback = - new ( ELeave ) CAsyncCallBack ( - TCallBack( &AsyncViewFinderToMainPaneAndShare, this ), - CActive::EPriorityStandard ); - - iLayoutChangeCallback = - new ( ELeave ) CAsyncCallBack( - TCallBack( &DelayedHandleLayoutChanged, this ), - CActive::EPriorityStandard ); - - iCurrentCameraOrientation = MVtEngMedia::EOrientationObeyLayoutSwitch; - - GetCameraOrientations(); - - SetInitialCameraOrientationL(); - - iVolCtrl= new ( ELeave )CVtUiVolumeControl( - Model().CommandHandler(), - Model().Audio(), - *iEventObserver, - *iFeatureManager); - iVolCtrl->ConstructL(); - - iIncallBubble = CAknIncallBubble::NewL(); - - iIsWaitingCallState = EFalse; - - __VTPRINTEXIT( "VtUi.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::~CVtUiAppUi -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::~CVtUiAppUi() - { - __VTPRINTENTER( "VtUi.~" ) - - iActiveCommands.Close(); - - delete iLayoutChangeCallback; - delete iAsyncCallback; - - if ( iUiStates && iUiStates->IsBlankControlAdded() ) - { - RemoveFromStack( iBlankControl ); - } - TInt lightsValue = 0; - if ( RProperty::Get( KPSUidCoreApplicationUIs, - KLightsVTForcedLightsOn, lightsValue ) == KErrNone ) - { - if ( lightsValue == EForcedLightsOn ) - { - __VTPRINT( DEBUG_GEN, "VtUi.~ Good night!" ) - (void) RProperty::Set( - KPSUidCoreApplicationUIs, - KLightsVTForcedLightsOn, - EForcedLightsOff ); - } - } - delete iActiveExec; - delete iInstance; - delete iBlankControl; - // Delete volume control before its dependencies are deleted. - delete iVolCtrl; - delete iEventObserver; - delete iExitTimer; - // Featuremanager must be destructed - // before componentmanager and commandmanager - delete iFeatureManager; - delete iComponentManager; - delete iCommandManager; - delete iUiStates; - - if ( iTbPeriodic ) - { - iTbPeriodic->Cancel(); - } - delete iTbPeriodic; - - if ( iIncallBubble ) - { - TRAP_IGNORE( iIncallBubble->SetIncallBubbleAllowedInUsualL( ETrue ) ) - } - delete iIncallBubble; - - // Close all RComm sessions to prevent memory leaks. - REComSession::FinalClose(); - - FeatureManager::UnInitializeLib(); - __VTPRINTEXIT( "VtUi.~" ) - VTLOGUNINIT - } - -// ----------------------------------------------------------- -// CVtUiAppUi::SwitchLayoutToFlatStatusPaneL -// ----------------------------------------------------------- -// -void CVtUiAppUi::SwitchLayoutToFlatStatusPaneL( TBool aSwitch ) - { - __VTPRINTENTER( "VtUi.SwitchLayoutToFlatStatusPaneL" ) - CEikStatusPane* statusPane = StatusPane(); - - const TInt idleResId( - VtUiLayout::IsLandscapeOrientation() ? - R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL : - R_AVKON_STATUS_PANE_LAYOUT_USUAL ); - - const TBool isStatusPaneFlat( - ( statusPane->CurrentLayoutResId() == - R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ) || - ( statusPane->CurrentLayoutResId() == - R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ) ); - - if ( aSwitch ) - { - if ( isStatusPaneFlat && VtUiLayout::IsLandscapeOrientation() ) - { - __VTPRINT( DEBUG_GEN, - "VtUi.SwitchLayoutToFlatStatusPaneL LAYOUT USUAL" ); - NaviPaneL()->Pop(); - statusPane->SwitchLayoutL( idleResId ); - } - else if ( !isStatusPaneFlat && !VtUiLayout::IsLandscapeOrientation() ) - { - __VTPRINT( DEBUG_GEN, - "VtUi.SwitchLayoutToFlatStatusPaneL USUAL FLAT" ); - NaviPaneL()->PushDefaultL(); - statusPane->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ); - } - } - else - { - if ( isStatusPaneFlat ) - { - __VTPRINT( DEBUG_GEN, - "VtUi.SwitchLayoutToFlatStatusPaneL LAYOUT IDLE" ); - NaviPaneL()->Pop(); - statusPane->SwitchLayoutL( idleResId ); - } - } - // ApplyCurrentSettingsL is called whenever statuspane - // visibility status or pane layout changes. - statusPane->ApplyCurrentSettingsL(); - statusPane->DrawNow(); - // Make sure whole control is fully updated - iInstance->iMainControl->DrawNow(); - __VTPRINTEXIT( "VtUi.SwitchLayoutToFlatStatusPaneL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshL() - { - __VTPRINTENTER( "VtUi.Refresh" ) - RefreshBlind(); - RefreshNaviPaneL(); - __VTPRINTEXIT( "VtUi.Refresh" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshNaviPaneL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshNaviPaneL() - { - // Update only if navi pane exists - if ( iInstance ) - { - __VTPRINT( DEBUG_GEN, "VtUi.RefreshNavi" ) - CVtUiNaviPane* navi = iInstance->iNaviPane; - - // Refresh muted state - MVtEngMedia& media = Model().Media(); - TInt mediaAvail; - VtUiUtility::GetOutgoingMediaState( media, mediaAvail ); - mediaAvail = ~mediaAvail; - navi->SetMuted( mediaAvail & MVtEngMedia::EMediaAudio ); - - // Refresh call duration - MVtEngSessionInfo& session = Model().Session(); - MVtEngSessionInfo::TDuration duration; - TBool enabled; - if ( session.GetDuration( duration, enabled ) != KErrNone ) - { - enabled = EFalse; - } - navi->SetCallDuration( duration, enabled ); - - // Update all changes - navi->CommitL(); - - CheckBeatL( enabled ); - } - } - -void CVtUiAppUi::StopBrightnessOrContrast() - { - - MVtUiFeature* br = iFeatureManager->GetFeatureById( EVtUiFeatureIdBrightness ); - if ( br ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopBrightness" ) - if ( br->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopBrightnessOrContrast br->STOP" ) - br->Stop(); - } - } - - MVtUiFeature* cr = iFeatureManager->GetFeatureById( EVtUiFeatureIdContrast ); - if ( cr ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopContrast" ) - if ( cr->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopBrightnessOrContrast cr->STOP" ) - cr->Stop(); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshZoomPopupL() -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshZoomPopupL() - { - CVtUiZoom* zm = static_cast< CVtUiZoom* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdZoom ) ); - if( zm && iUiStates->IsZoomModeOn()) - zm->RefreshL(); - } -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshMenuL() -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshMenuL() - { - - CVtUiMenus* menus = static_cast< CVtUiMenus* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdMenu ) ); - if ( menus ) - { - iUiStates->Update(); - __VTPRINT( DEBUG_GEN, "VtUi.RefreshMenuL" ) - menus->RefreshL(); - CAknAppUi::ProcessCommandL( EEikCmdCanceled ); // does not leave - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshSoftkeysL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshSoftkeysL() - { - if ( iUiStates->IsThisApplicationForeground() ) - { - CVtUiSoftkeys* sk = static_cast< CVtUiSoftkeys* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdSoftkey ) ); - if ( sk ) - { - sk->RefreshL(); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshBlind -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshBlind() - { - if ( iInstance && !iUiStates->IsDisableBlindSetting() ) - { - __VTPRINTENTER( "VtUi.RefreshBlind" ) - TInt avail; - MVtEngMedia& media = Model().Media(); - - // Update blind flags.for outgoing media: - VtUiUtility::GetOutgoingMediaState( media, avail ); - avail = ~avail; - TBool noVideo( avail & MVtEngMedia::EMediaVideo ); - const TBool isFrozen( VtUiUtility::GetFreezeState ( media ) ); - MVtEngMedia::TMediaSource source( MVtEngMedia::EMediaNone ); - media.GetSource( source ); - if ( noVideo && !isFrozen && - ( source != MVtEngMedia::EMediaStillImage ) ) - { - iUplinkWindow->SetStreamBitmap( NULL ); - } - - iUplinkWindow->SetBlind( noVideo ); - iUplinkWindow->SetWaiting( EFalse ); - - if ( iUiStates->IsThisApplicationForeground() ) - { - // Update blind flags for incoming media: - VtUiUtility::GetIncomingMediaState( media, avail ); - avail = ~avail; - noVideo = ( avail & MVtEngMedia::EMediaVideo ); - if ( noVideo ) - { - iDownlinkWindow->SetStreamBitmap( NULL ); - } - iDownlinkWindow->SetBlind( noVideo ); - } - iDownlinkWindow->SetWaiting( iUiStates->IsWaitingForFirstFrame() ); - __VTPRINTEXIT( "VtUi.RefreshBlind" ) - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::OpenNumberEntryL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::OpenNumberEntryL() - { - __VTPRINTENTER( "VtUi.OpenNumberEntryL" ) - - CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar(); - if ( IsDisplayingDialog() || ( menuBar && menuBar->IsDisplayed() ) ) - { - __VTPRINTEXIT( "VtUi.OpenNumberEntryL" ) - return EFalse; - } - - TInt error( KErrNotFound ); - - MVtUiFeature* numberEntry = - iFeatureManager->GetFeatureById( EVtUiFeatureIdNumberEntry ); - - MVtUiFeature* dialer = - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ); - - const TBool dialerActive( dialer && - ( dialer->State() == MVtUiFeature::EActive ) ); - - if ( numberEntry && !dialerActive ) - { - TRAP( error, numberEntry->StartL() ); - } - - const TBool result( !error ); - - if ( result ) - { - __VTPRINT( DEBUG_GEN, "VtUi.NumberEntry.StopZ" ) - RefreshSoftkeysL(); - } - - __VTPRINTEXITR( "VtUi.OpenNumberEntryL %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandlePhoneSendKeyL -// Handles EKeyPhoneSend key events. -// ----------------------------------------------------------------------------- -// -TKeyResponse CVtUiAppUi::HandlePhoneSendKeyL( const TKeyEvent& /*aKeyEvent*/, - TEventCode aType ) - { - __VTPRINTENTER( "VtUi.HandlePhoneSendKeyL" ) - CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar(); - if ( !( IsDisplayingDialog() || ( menuBar && menuBar->IsDisplayed() ) ) ) - { - const TBool isNumberSource( iUiStates->IsNumberEntryOpen() || - iUiStates->IsDialerOpen() ); - if ( ( aType == EEventKey ) && isNumberSource ) - { - ProcessCommandL( EVtUiCmdDialEmergency ); - } - } - __VTPRINTEXIT( "VtUi.HandlePhoneSendKeyL" ) - return EKeyWasConsumed; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StartDtmfTone -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StartDtmfTone( const TChar& aTone ) - { - // should be called only through current application state - iDtmfTone = aTone; - __VTPRINT2( DEBUG_GEN, "VtUi.DTMF.Start.%d", iDtmfTone() ) - if ( Execute( KVtEngStartDtmfTone, &iDtmfTone ) != KErrNone ) - { - iDtmfTone = 0; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StopDtmfTone -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StopDtmfTone() - { - // should be called only through current application state - if ( iDtmfTone() ) - { - __VTPRINT( DEBUG_GEN, "VtUi.DTMF.STOP" ) - (void) Execute( KVtEngStopDtmfTone, NULL ); - iDtmfTone = 0; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleWsEventL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleWsEventL( - const TWsEvent& aEvent, - CCoeControl* aDestination ) - { - __VTPRINTENTER( "VtUi.HandleWsEventL" ) - const TInt type = aEvent.Type(); - __VTPRINT2( DEBUG_GEN, "VtUi.HandleWsEventL type = %d", type ); - - // Zoom-in and Zoom-out keys need specific handling because keyup and - // keydown events cannot be checked from iCode field of TKeyEvent - if ( PreHandleKeyEventL( aEvent ) ) - { - __VTPRINTEXIT( "VtUi.HandleWsEventL (PreHandleKeyEventL)" ) - return; - } - - // Zoom mode is dismissed if some interrupting event happens prior timeout. - // Zoom mode can be interrupted with a keypress i.e. any keypress, except - // keys that are reserved for adjusting zoom dismiss zoom mode. Also any - // system event e.g. note or waiting call dismiss zoom mode. - if ( iUiStates->IsZoomModeOn() ) - { - if ( ProcessWsEventIfZoomModeIsActiveL( aEvent ) ) - { - __VTPRINTEXIT( "VtUi.HandleWsEventL (IsZoomModeOn)" ) - return; - } - } - // Zoom mode can be also activated with up and down arrow keys. - switch ( type ) - { - case EEventKey: - case EEventKeyUp: - case EEventKeyDown: - { - const TKeyEvent* keyEvent = aEvent.Key(); - const TBool isHwZoomKey( - keyEvent->iCode == EKeyZoomIn || - keyEvent->iCode == EKeyZoomOut ); - const TBool isZoomKey( - keyEvent->iScanCode == EStdKeyUpArrow || - keyEvent->iScanCode == EStdKeyDownArrow || - isHwZoomKey ); - - // Zoom mode can be also activated with up and down arrow keys. - if ( isZoomKey ) - { - const TBool isZoomAllowed( - !iEikonEnv->AppUiFactory()->MenuBar()->IsDisplayed() && - !iUiStates->MediaState().IsSharing() && - !iUiStates->MediaState().IsFrozen() && - !iUiStates->IsSelectingShare() && - VtUiUtility::IsZoomAllowed( Model().Media() ) && - !( iUiStates->IsNumberEntryOpen() && ShowNumberEntry() ) && - //there must not be the command which may switch provider to None - !IsActiveCommand( EVtUiCmdDisableVideo )&& - !IsActiveCommand( EVtUiCmdDisableBoth )&& - !IsActiveCommand( EVtUiCmdUsePrimaryCamera )&& - !IsActiveCommand( EVtUiCmdUseSecondaryCamera) ); - - if ( isZoomAllowed ) - { - // If menu is open, toolbar is available, video is frozen, - // sharing is on or user is selecting a file to be shared - // do not set zoom mode on. If HW zoom key was pressed, - // then zoom mode is activated even if toolbar is present. - if ( isHwZoomKey || !iUiStates->IsToolbarAvailable() ) - { - SetZoomModeL( ETrue ); - } - } - } - } - break; - default: - break; - } - - TBool partialForeGroundlost( EFalse ); - switch ( type ) - { - // Enter new rendering mode - case EVtUiWsEventBeginRenderingMode: - { - const TVtUiWsEvent< TRenderingMode >& event( - static_cast< const TVtUiWsEvent< TRenderingMode >& > - ( aEvent ) ); - MVtUiDialer* dialer = static_cast< CVtUiDialer* > ( - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ) ); - __ASSERT_ALWAYS( dialer, - VtUiPanic::Panic( EVtUiPanicRendererNotFound ) ); - iInstance->iContextControl->MakeVisible( EFalse ); - SetRenderingModeL( *event.Data(), &dialer->VideoWindow() ); - } - break; - - // End rendering mode -> revert to previous - case EVtUiWsEventEndRenderingMode: - { - SetRenderingModeL( ERenderingModeDefault, iStoredDownlinkWindow ); - iInstance->iContextControl->MakeVisible( ETrue ); - iStoredDownlinkWindow = NULL; - } - break; - - // New number source have been activated - case EVtUiWsEventNumberSourceActivate: - { - const TVtUiWsEvent< MVtUiNumberSource >& event( - static_cast< const TVtUiWsEvent< MVtUiNumberSource >& > - ( aEvent ) ); - iNumberSource = event.Data(); - } - break; - - case EVtUiWsEventNumberSourceDeactivate: - { - const TVtUiWsEvent< MVtUiNumberSource >& event( - static_cast< const TVtUiWsEvent< MVtUiNumberSource >& > - ( aEvent ) ); - if ( iNumberSource == event.Data() ) - { - iNumberSource = NULL; - } - } - break; - - - // VT goes background e.g. selected application from fastswap - case KAknFullOrPartialForegroundLost: - { - // If capture mode is on stop it - if ( iUiStates->IsCaptureModeOn() ) - { - CmdCancelCaptureL(); - } - SetIncallBubbleAllowedInUsualL( ETrue ); - const TInt windowGroupId = - iCoeEnv->WsSession().GetFocusWindowGroup(); - - // In S60 5.0 we get PartialFocusLost also for some notes and - // overally items that are somehow overlapping screen instead of - // FocusLost. In those cases we should not put app to background. - if( ( windowGroupId != iThisApplicationWgId ) && - ( windowGroupId != iEikonServerWgId ) && - ( windowGroupId != iAknCapServerWgId ) && - ( windowGroupId != iAknNfyServerWgId ) ) - { - partialForeGroundlost = ETrue; - } - - // Fall through to EEventFocusLost event - } - case EEventFocusLost: - { - // If focus window group is not this application nor window server, - // then this application can not be in focus. - const TInt windowGroupId = - iCoeEnv->WsSession().GetFocusWindowGroup(); - - if ( ( windowGroupId != iThisApplicationWgId ) && - ( windowGroupId != iEikonServerWgId ) && - ( windowGroupId != iAknCapServerWgId ) && - ( windowGroupId != iAknNfyServerWgId ) || partialForeGroundlost ) - { - iCoeEnv->RootWin().DisableFocusChangeEvents(); - - TBool old = iUiStates->IsThisApplicationForeground(); - if ( old ) - { - TRAP_IGNORE( HandleForegroundChangedL( EFalse ) ); - } - } - } - break; - - case KAknFullOrPartialForegroundGained: - { - SetIncallBubbleAllowedInUsualL( EFalse ); - // Now this application is focused. - (void)iCoeEnv->RootWin().EnableFocusChangeEvents(); - TBool old = iUiStates->IsThisApplicationForeground(); - - if ( !old ) - { - (void) HandleLayoutChanged(); - TRAP_IGNORE( HandleForegroundChangedL( ETrue ) ); - } - } - break; - - case EEventKey: - case EEventKeyUp: - case EEventKeyDown: - { - // Key events with EModifierSpecial are received via FEP. - const TKeyEvent* keyEvent = aEvent.Key(); - if ( keyEvent->iModifiers & EModifierSpecial ) - { - TChar dtmfTone; - if ( VtUiUtility::IsDTMFEvent( *keyEvent, dtmfTone ) ) - { - if ( type == EEventKey ) - { - StartDtmfTone( dtmfTone ); - } - else if ( type == EEventKeyUp ) - { - StopDtmfTone(); - } - } - } - } - break; - - default: - break; - } - // Offer event to component manager - iComponentManager->HandleWsEventL( aEvent, aDestination ); - - // All events are sent to base class. - CAknAppUi::HandleWsEventL( aEvent, aDestination ); - __VTPRINTEXIT( "VtUi.HandleWsEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::PreHandleKeyEventL -// -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::PreHandleKeyEventL( const TWsEvent& aEvent ) - { - __VTPRINTENTER( "VtUi.PreHandleKeyEventL" ) - TBool consumed( EFalse ); - switch( aEvent.Type() ) - { - - case EEventKey: - { - // when both these are set, then it's our simulated key press - const TInt - modifiers( EModifierKeypad | EModifierSpecial ); - - const TKeyEvent* ptrKeyEventC = - aEvent.Key(); - - const TBool isHwZoomKey( - ptrKeyEventC->iCode == EKeyZoomIn || - ptrKeyEventC->iCode == EKeyZoomOut ); - - if ( isHwZoomKey && - ( ptrKeyEventC->iModifiers & modifiers ) != modifiers ) - { - __VTPRINT3( DEBUG_GEN, "VtUi.PreHandleKeyEventL keyc=%d scanc=%d", - ptrKeyEventC->iCode, ptrKeyEventC->iScanCode ) - consumed = ETrue; - - // Send EEventKeyDown only when iRepeats is 0 - if ( !ptrKeyEventC->iRepeats ) - { - TKeyEvent keyDownEvent( *ptrKeyEventC ); - keyDownEvent.iRepeats = 0; - iCoeEnv->SimulateKeyEventL( keyDownEvent, EEventKeyDown ); - } - - // Send EEventKey always - TKeyEvent keyEvent( *ptrKeyEventC ); - keyEvent.iModifiers |= modifiers; - iCoeEnv->SimulateKeyEventL( keyEvent, EEventKey ); - - // Que EEventKeyUp - TKeyEvent keyUpEvent( *ptrKeyEventC ); - keyUpEvent.iRepeats = 0; - StoreKeyEventL( keyUpEvent ); - } - else if ( ( ptrKeyEventC->iModifiers & modifiers ) == modifiers ) - { - __VTPRINT( DEBUG_GEN, - "VtUi.PreHandleKeyEventL own event spotted, removing mods" ) - // event is generated by us, remove modifiers - TKeyEvent* ptrKeyEvent = const_cast< TKeyEvent* >( ptrKeyEventC ); - ptrKeyEvent->iModifiers &= ~modifiers; - } - } - break; - - case EEventKeyUp: - if ( iIsStoredKeyEvent ) - { - if ( iStoredKeyEvent.iScanCode == aEvent.Key()->iScanCode ) - { - consumed = ETrue; - SimulateStoredKeyEventL( EEventKeyUp ); - } - } - break; - - default: - break; - - } - - __VTPRINTEXITR( "VtUi.PreHandleKeyEventL %d", consumed ) - return consumed; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SimulateStoredKeyEventL -// -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SimulateStoredKeyEventL( const TEventCode aEventCode ) - { - __VTPRINTENTER( "VtUi.SimulateStoredKeyEventL" ) - if ( iIsStoredKeyEvent ) - { - // Reset flag first because SimulateKeyEventL() is synchronous - iIsStoredKeyEvent = EFalse; - iCoeEnv->SimulateKeyEventL( iStoredKeyEvent, aEventCode ); - } - __VTPRINTEXITR( "VtUi.SimulateStoredKeyEventL %d", iIsStoredKeyEvent ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StoreKeyEventL -// -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StoreKeyEventL( const TKeyEvent& aKeyEvent ) - { - __VTPRINTENTER( "VtUi.StoreKeyEventL" ) - if ( iIsStoredKeyEvent && ( iStoredKeyEvent.iCode != aKeyEvent.iCode ) ) - { - SimulateStoredKeyEventL( EEventKeyUp ); - } - - if ( !iIsStoredKeyEvent ) - { - iIsStoredKeyEvent = ETrue; - iStoredKeyEvent = aKeyEvent; - } - __VTPRINTEXITR( "VtUi.StoreKeyEventL %d", iIsStoredKeyEvent ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoTryToStartTb -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::DoTryToStartTbL( TAny* aAny ) - { - CVtUiAppUi* self = static_cast< CVtUiAppUi* >( aAny ); - self->TryToStartTbL(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::UpdateVBSettingL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::UpdateVBSettingL() - { - // If white balance or color tone setting - // feauture exists update setting - CVtUiWhiteBalance* wb = static_cast< CVtUiWhiteBalance* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdWhiteBalance ) ); - - CVtUiColorTone* ct = static_cast< CVtUiColorTone* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdColourTone ) ); - - // If brightness or contrast slider - // feauture exists update them - CVtUiBrightness* br = static_cast< CVtUiBrightness* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdBrightness ) ); - - CVtUiContrast* contr = static_cast< CVtUiContrast* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdContrast ) ); - - - - if ( wb && iUiStates->IsWhiteBalanceSettingAvailable() ) - { - __VTPRINT( DEBUG_GEN,"VtUi.UpdateVBSettingL WB update" ) - wb->UpdateSettingL(); - } - - if ( ct && iUiStates->IsColorToneSettingAvailable() ) - { - __VTPRINT( DEBUG_GEN,"VtUi.UpdateVBSettingL CT update" ) - ct->UpdateSettingL(); - } - - if ( br && iUiStates->IsBrightnessSettingAvailable() ) - { - __VTPRINT( DEBUG_GEN,"VtUi.UpdateVBSettingL br update" ) - br->UpdateSlider(); - } - - if ( contr && iUiStates->IsContrastSettingAvailable() ) - { - __VTPRINT( DEBUG_GEN,"VtUi.UpdateVBSettingL contract update" ) - contr->UpdateSlider(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TryToStartTb -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::TryToStartTbL() - { - __VTPRINTENTER( "VtUi.TryToStartTbL" ) - CVtUiToolbarBase* tb = static_cast< CVtUiToolbarBase* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ) ); - if ( tb ) - { - // If menu, dialog or dialer is displayed do not start the toolbar, - // but let the timer run another round - CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar(); - if ( !( menuBar && menuBar->IsDisplayed() ) && - !IsDisplayingDialog() && - !( - iUiStates->IsDialerActivating() || - iUiStates->IsDialerOpen() || - iUiStates->IsWhiteBalanceModeOn() || - iUiStates->IsColorToneModeOn() || - iUiStates->IsBrightnessModeOn() || - iUiStates->IsContrastModeOn() || - iUiStates->IsZoomModeOn() || - iUiStates->IsVolumeModeOn() || - iUiStates->IsCaptureModeOn() ) - ) - { - if ( iTbPeriodic ) - { - iTbPeriodic->Cancel(); - } - tb->StartL(); - } - } - __VTPRINTEXIT( "VtUi.TryToStartTbL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetRenderingModeL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetRenderingModeL( const TRenderingMode aMode, - MVtUiVideoWindow* aNewDownlink ) - { - __VTPRINTENTER( "VtUi.SetRenderingModeL" ) - __VTPRINT2( DEBUG_GEN, "VtUi.SetRenderingModeL=%d", aMode ); - iRenderingMode = aMode; - if ( aNewDownlink ) - { - if ( iDownlinkWindow != aNewDownlink ) - { - iStoredDownlinkWindow = iDownlinkWindow; - iDownlinkWindow = aNewDownlink; - iStoredDownlinkWindow->SetRemoteVideoControl(NULL); - iDownlinkWindow->SetRemoteVideoControl(iInstance->iRemoteVideoControl); - iDownlinkWindow->LayoutRemoteVideo(); - } - } - RefreshBlind(); - UpdateRenderingParametersL(); - __VTPRINTEXIT( "VtUi.SetRenderingModeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::UpdateRenderingParametersL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::UpdateRenderingParametersL() - { - __VTPRINTENTER( "VtUi.UpdateRenderingParametersL" ) - - MVtEngMedia& media = Model().Media(); - const TBool viewFinderStarted = - media.RenderingStarted( MVtEngMedia::EMediaOutgoing ); - const TBool remoteRenderStarted = - media.RenderingStarted( MVtEngMedia::EMediaIncoming ); - - // Clear bitmaps - iInstance->iContextControl->SetStreamBitmap( NULL ); - iInstance->iMainControl->SetStreamBitmap( NULL ); - - // Stop viewfinder & remote render. - if( viewFinderStarted ) - { - ExecuteCmdL( KVtEngStopViewFinder ); - } - ExecuteCmdL( KVtEngStopRenderRemote ); - - // Re-layout the remote video - iDownlinkWindow->LayoutRemoteVideo(); - - const TBool uplinkWindowEqualsContextControl = - ( iUplinkWindow == iInstance->iContextControl ); - - // Prepare viewfinder. - TVtEngRenderingOptions configViewfinder( - uplinkWindowEqualsContextControl ? - DetermineContextControlOptions() : - DetermineMainControlOptions( EFalse ) ); - ExecuteCmdL( KVtEngPrepareViewFinder, configViewfinder ); - - // Prepare remote render. - TRAPD ( err, { - TVtEngRenderingOptionsNGA configRemoteRenderNGA( - DetermineRemoteVideoControlOptionsNGA() ); - ExecuteCmdL( - KVtEngPrepareRemoteRenderNGA, - configRemoteRenderNGA ); - } ); - if ( err != KErrNone ) - { - if ( viewFinderStarted ) - { - // Start viewfinder. - ExecuteCmdL( KVtEngStartViewFinder ); - } - User::Leave ( err ); - } - - // Start remote render. - TRAP_IGNORE( ExecuteCmdL( KVtEngStartRenderRemote ) ); - - if ( viewFinderStarted ) - { - // Start viewfinder. - ExecuteCmdL( KVtEngStartViewFinder ); - } - - // Redraw remote video last frame to make sure that in layout change - // situation we still have something on screen. - iDownlinkWindow->Redraw(); - __VTPRINTEXIT( "VtUi.UpdateRenderingParametersL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::MediaStateChangedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::MediaStateChangedL() - { - CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar(); - // close menu if it is shown - if ( menuBar && menuBar->IsDisplayed() ) - { - TKeyEvent keyEvent; - keyEvent.iCode = EKeyEscape; - menuBar->OfferKeyEventL( keyEvent, EEventKey ); - } - // Refresh toolbar - CVtUiToolbarBase* tb = static_cast< CVtUiToolbarBase* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ) ); - if ( tb ) - { - tb->RefreshL(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ProcessCommandL -// Processes commands. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ProcessCommandL( - TInt aCommand ) - { - __VTPRINTENTER( "VtUi.ProcessCommandL" ) - - // delay mute cmd received during layout change - if ( aCommand == EAknSoftkeyOptions ) - { - if ( iLayoutChg ) - { - iDelayedCmd = EAknSoftkeyOptions; - __VTPRINTEXIT( "VtUi.ProcessCommandL mute delayed due to LayoutChange" ) - return; - } - } - - MVtEngCommandHandler& command = Model().CommandHandler(); - command.ExecuteL( KVtEngRequestLastRemoteFrame, NULL ); - - // only with fixed toolbar - if ( AknLayoutUtils::PenEnabled() ) - { - if ( iUiStates->IsFixedToolbarVisible()) - { - // When option menu is opened fixed toolbar should - // be set hidden - iUiStates->SetIsFixedToolbarVisible( EFalse ); - // Stop toolbar - MVtUiFeature* tb = - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ); - if ( tb ) - { - // timer could be active - if ( iTbPeriodic ) - { - iTbPeriodic->Cancel(); - } - tb->Stop(); - } - if ( !iTbPeriodic ) - { - iTbPeriodic = CPeriodic::NewL( CActive::EPriorityStandard ); - } - // Toolbar doesn't come visible until options menu is closed. - iTbPeriodic->Start( KStartTime, KPeriodTime, TCallBack( DoTryToStartTbL, this ) ); - } - } - else - { - StopSliders(); - } - - iInstance->iMainControl->SetSize( iInstance->iMainControl->Size() ); - iInstance->iMainControl->DrawNow(); - - // Handle OK options menu. - const TInt menuResource = - iUiStates->IsLaunchOkOptionsMenu() ? - R_VIDEOTELUI_OK_MENUBAR : - R_VIDEOTELUI_MENUBAR; - - iUiStates->SetLaunchOkOptionsMenu( EFalse ); - - CEikMenuBar* menu = iEikonEnv->AppUiFactory()->MenuBar(); - if ( menu ) - { - menu->SetMenuTitleResourceId( menuResource ); - //Here we again set back the type of menu to "Options" when pressed LSK - menu->SetMenuType( CEikMenuBar::EMenuOptions ); - } - CAknAppUi::ProcessCommandL( aCommand ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::IsActiveCommand -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::IsActiveCommand( TInt aCommand ) const - { - return ( iActiveCommands.FindInOrder( aCommand ) != KErrNotFound ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::State -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase& CVtUiAppUi::State() - { - return *iState; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::BitmapManager -// ----------------------------------------------------------------------------- -// -CVtUiBitmapManager& CVtUiAppUi::BitmapManager() - { - return *iInstance->iBitmapManager; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TActiveCommand::TActiveCommand -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::TActiveCommand::TActiveCommand( RArray< TInt >& aActiveCommands, - TInt aCommandId ) - : iActiveCommands( aActiveCommands ), iCommandId( aCommandId ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TActiveCommand::~TActiveCommand -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::TActiveCommand::~TActiveCommand() - { - Close(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TActiveCommand::OpenL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::TActiveCommand::OpenL() - { - iActiveCommands.InsertInOrderL( iCommandId ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TActiveCommand::Close -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::TActiveCommand::Close() - { - TInt index( iActiveCommands.FindInOrder( iCommandId ) ); - if ( index != KErrNotFound ) - { - iActiveCommands.Remove( index ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleCommandL -// Handles commands. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleCommandL( - TInt aCommand ) - { - __VTPRINTENTER( "VtUi.HandleCommand" ) - - // Check if same command is already being performed. - if ( IsActiveCommand( aCommand ) || ( iState && - iState->HandleCommandL( aCommand ) == - TVtUiAppStateBase::EEventHandled ) ) - { - __VTPRINTEXIT( "VtUi.HandleCommand 0" ) - return; - } - - // Check if command is allowed to be performed. - if ( !IsCommandAllowedL( aCommand ) ) - { - ShowNotAllowedNoteL(); - __VTPRINTEXITR( "VtUi.HandleCommand %d", KErrAccessDenied ) - return; - } - - // delay mute cmd received during layout change (EGWG-7QQ3GZ) - if ( (aCommand == EVtUiCmdDisableAudio) || (aCommand == EVtUiCmdUsePrimaryCamera) - ||(aCommand == EVtUiCmdUseSecondaryCamera) - ||(aCommand == EVtUiCmdDisableVideo) ) - { - if ( iLayoutChg ) - { - iDelayedCmd = aCommand; - __VTPRINTEXIT( "VtUi.HandleCommand mute delayed due to LayoutChange" ) - return; - } - } - - TActiveCommand activeCommand( iActiveCommands, aCommand ); - // Close() will be called by the destructor, when instance goes out of - // scope - activeCommand.OpenL(); - - TBool refresh = EFalse; - CleanupPushRefreshL(); - - // Execute command - switch ( aCommand ) - { - case EAknCmdHelp: - CmdHelpL(); - break; - - case EVtUiCmdOkOptions: - iUiStates->SetLaunchOkOptionsMenu( ETrue ); - ProcessCommandL( EAknSoftkeyOptions ); - break; - - case EVtUiCmdEnableMain: - case EVtUiCmdDisableMain: - // Submenu is opened automatically. - break; - - case EVtUiCmdEnableVideo: - { - MVtEngMedia::TShareObjectState shareObjectState; - VtUiUtility::GetObjectSharingState( Model().Media(), - shareObjectState ); - if( shareObjectState != MVtEngMedia::ESharingImage ) - { - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdEnableVideoL(); - CleanupStack::PopAndDestroy(); - } - else - { - CmdStopShareImageL( refresh ); - EnableCommandActivatingAndCleanupPushL(); - CmdEnableVideoL(); - CleanupStack::PopAndDestroy(); - } - } - break; - - case EVtUiCmdEnableAudio: - refresh = ETrue; - CmdEnableAudioL(); - break; - - case EVtUiCmdEnableBoth: - EnableCommandActivatingAndCleanupPushL(); - CmdEnableAudioL(); - MVtEngMedia::TShareObjectState shareObjectState; - VtUiUtility::GetObjectSharingState( Model().Media(), - shareObjectState ); - if( shareObjectState != MVtEngMedia::ESharingImage ) - { - refresh = ETrue; - CmdEnableVideoL(); - } - else - { - CmdStopShareImageL( refresh ); - CmdEnableVideoL(); - } - // EnableCommandActivatingAndCleanupPushL - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdDisableVideo: - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdDisableVideoL(); - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdDisableAudio: - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdDisableAudioL(); - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdDisableBoth: - HandleCommandL( EVtUiCmdDisableAudio ); - HandleCommandL( EVtUiCmdDisableVideo ); - break; - - case EVtUiCmdActivateBT: - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdActivateBtL(); - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdDeactivateBT: - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdDeactivateBtL(); - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdActivateLoudspeaker: - case EVtUiCmdSwitchFromBTToIHF: - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdActivateLoudspeakerL(); - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdDeactivateLoudspeaker: - refresh = ETrue; - EnableCommandActivatingAndCleanupPushL(); - CmdDeactivateLoudspeakerL(); - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdUsePrimaryCamera: - refresh = ETrue; - CmdUseCameraL( ETrue ); - break; - - case EVtUiCmdUseSecondaryCamera: - refresh = ETrue; - CmdUseCameraL( EFalse ); - break; - - case EVtUiCmdSwapImagesPlaces: - refresh = ETrue; - CleanupPushEnableBlindL(); - iUiStates->SetDisableBlindSetting( ETrue ); - CmdSwapImagesPlacesL(); - - MVtEngMedia& media = Model().Media(); - if ( VtUiUtility::GetFreezeState( media ) ) - { - TBool isViewFinderInContextPane = IsViewFinderInContextPane(); - iUiStates->SetViewFindersInitialPlaceContextPane( isViewFinderInContextPane ); - } - - CleanupStack::PopAndDestroy(); // CleanupPushEnableBlindL - break; - - case EVtUiCmdZoom: - refresh = ETrue; - // Toolbar uses this same command to set zoom on and off - // therefore this works as a toggle button - SetZoomModeL( !iUiStates->IsZoomModeOn() ); - - break; - - case EAknSoftkeyBack: - { - refresh = ETrue; - MVtUiFeature* numberEntry = - iFeatureManager->GetFeatureById( EVtUiFeatureIdNumberEntry ); - if ( numberEntry ) - { - numberEntry->Stop(); - } - } - break; - - case EVtUiCmdSnapshot: - EnableCommandActivatingAndCleanupPushL(); - CmdSnapshotL(); - // EnableCommandActivatingAndCleanupPushL - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdCapture: - CmdCaptureL(); - break; - - case EVtUiCmdCancelCapture: - CmdCancelCaptureL(); - break; - - case EVtUiCmdGoToIdle: - CmdGoToIdleL(); - break; - - // Object sharing related - - case EVtUiCmdShareObjectImage: - CmdInitializeShareImageL( refresh ); - break; - - case EVtUiCmdStopSharingObjectImage: - EnableCommandActivatingAndCleanupPushL(); - CmdStopShareImageL( refresh ); - // EnableCommandActivatingAndCleanupPushL - CleanupStack::PopAndDestroy(); - break; - - case EVtUiCmdAdjustVideoVideoQuality: - case EVtUiCmdAdjustVideoWhiteBalance: - case EVtUiCmdAdjustVideoBrightness: - case EVtUiCmdAdjustVideoContrast: - case EVtUiCmdAdjustVideoColourTone: - __VTPRINT( DEBUG_GEN, "VtUiHandleCommand.CmdAdjustVideoL" ); - CmdAdjustVideoL( aCommand ); - break; - - case EAknSoftkeyExit: - case EAknCmdExit: - case EEikCmdExit: - // handled by state - break; - - default: - iCommandManager->HandleCommandL( aCommand ); - break; - } - - if ( refresh ) - { - CleanupStack::PopAndDestroy(); // CleanupPushRefreshL - } - else - { - CleanupStack::Pop(); // CleanupPushRefreshL - } - __VTPRINTEXITR( "VtUi.HandleCommand %d", KErrNone ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DynInitMenuPaneL -// Initialises menu pane dynamically. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DynInitMenuPaneL( - TInt, - CEikMenuPane* aMenuPane ) - { - __VTPRINTENTER( "VtUi.DynInitMenuPaneL" ) - - CVtUiMenus* menus = static_cast< CVtUiMenus* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdMenu ) ); - if ( menus ) - { - iUiStates->Update(); - menus->SetMenuPane( aMenuPane ); - menus->RefreshL(); - } - __VTPRINTEXIT( "VtUi.DynInitMenuPaneL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleKeyEventL -// Handles key events. -// ----------------------------------------------------------------------------- -// -TKeyResponse CVtUiAppUi::HandleKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - __VTPRINTENTER( "VtUi.HandleKeyEventL" ) - - TKeyResponse resp( EKeyWasNotConsumed ); - - if ( !iUiStates->IsNumberEntryOpen() || - ( iUiStates->IsNumberEntryOpen() && !ShowNumberEntry() ) ) - { - __VTPRINT( DEBUG_GEN, "VtUi.ToZoom" ) - - const TBool isHwZoomKey( aKeyEvent.iCode == EKeyZoomIn || - aKeyEvent.iCode == EKeyZoomOut ); - - // if outgoing video is frozen disable zoom - MVtEngMedia& media = Model().Media(); - if ( VtUiUtility::GetFreezeState ( media ) ) - { - if ( aKeyEvent.iScanCode == EStdKeyUpArrow || - aKeyEvent.iScanCode == EStdKeyDownArrow || - isHwZoomKey ) - { - __VTPRINTEXITR( "VtUi.HandleKeyEventL %d", EKeyWasConsumed ) - return EKeyWasConsumed; - } - } - - // Handle volume up & down - - } - - // If key event it not yet consumed, offer it to component manager - if ( resp == EKeyWasNotConsumed ) - { - resp = iComponentManager->OfferKeyEventL( aKeyEvent, aType ); - } - - __VTPRINTEXITR( "VtUi.HandleKeyEventL %d", resp ) - return resp; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleResourceChangeL -// Handles change of a resource. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleResourceChangeL( - TInt aType ) - { - __VTPRINTENTER( "VtUi.HandleResourceChangeL" ) - const TBool layoutChange = - aType == KEikDynamicLayoutVariantSwitch || - aType == KAknsMessageSkinChange; - if ( iInstance && layoutChange ) - { - iInstance->iBitmapManager->InvalidateBitmaps(); - } - - CAknAppUi::HandleResourceChangeL( aType ); - - if ( iInstance ) - { - if ( layoutChange ) - { - CVtUiToolbarBase* tb = static_cast< CVtUiToolbarBase* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ) ); - if( tb ) - { - tb->HandleLayoutChangeL(); - } - // Relayout controls - iBlankControl->SetRect( ClientRect() ); - iInstance->LayoutChanged(); - } - if ( iInstance->iNaviPane ) - { - iInstance->iNaviPane->HandleResourceChange( aType ); - } - if ( layoutChange ) - { - (void) HandleLayoutChanged(); - } - } - - iComponentManager->HandleResourceChangeL( aType ); - - __VTPRINTEXIT( "VtUi.HandleResourceChangeL"); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleForegroundEventL -// Handles foreground status change. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleForegroundEventL( TBool aForeground ) - { - CAknAppUi::HandleForegroundEventL( aForeground ); - - if ( !aForeground ) - { - StopDtmfTone(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::GetEikonEnv -// ----------------------------------------------------------------------------- -// -CEikonEnv* CVtUiAppUi::GetEikonEnv() - { - return iEikonEnv; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::GetCba -// ----------------------------------------------------------------------------- -// -CEikButtonGroupContainer* CVtUiAppUi::GetCba() - { - return iCba; - } - -// -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetZoomModeL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetZoomModeL( const TBool aEnableZoomMode, - const TBool aIsPermanent ) - { - __VTPRINTENTER( "VtUi.SetZoomModeL" ) - __VTPRINT2( DEBUG_GEN, "VtUi.SetZoomMo=%d", aEnableZoomMode ); - // If capture mode is on zoom mode cannot be changed - if ( iUiStates->IsCaptureModeOn() ) - { - __VTPRINTEXIT( "VtUi.SetZoomModeL.CaptureOn" ) - return; - } - CVtUiZoom* zoom = static_cast< CVtUiZoom* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdZoom ) ); - if ( zoom ) - { - if ( aEnableZoomMode ) - { - if( aIsPermanent ) - { - zoom->SetPermanenVisibility( aEnableZoomMode ); - } - zoom->StartL(); - } - else - { - if( aIsPermanent ) - { - zoom->SetPermanenVisibility( aEnableZoomMode ); - } - zoom->Stop(); - } - } - iUiStates->SetZoomModeOn( aEnableZoomMode ); - CVtUiToolbarBase* tb = static_cast< CVtUiToolbarBase* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ) ); - if ( tb ) - { - tb->RefreshL(); - } - - __VTPRINTEXIT( "VtUi.SetZoomModeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HelpContextL -// Returns help context array. -// ----------------------------------------------------------------------------- -// -CArrayFix* CVtUiAppUi::HelpContextL() const - { - CArrayFix* array = - new ( ELeave ) CArrayFixFlat( KVtUiHelpContextAmount ); - CleanupStack::PushL( array ); - - array->AppendL( - TCoeHelpContext( - KVtUiTelephoneUid, - KINCAL_HLP_VIDEO_CALL ) ); - - CleanupStack::Pop( array ); - return array; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecExecuteL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::ActiveExecExecuteL( - CVtUiActiveExec& /*aActiveExec*/, - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ) - { - return ActiveExecInitExecuteL( - aState, - aNextState, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecContinue -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::ActiveExecContinue( - CVtUiActiveExec& /*aActiveExec*/, - TInt& aState, - const TInt aError ) - { - return ActiveExecInitContinue( aState, aError ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecCancel -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecCancel( - CVtUiActiveExec& /*aActiveExec*/, - TInt aState ) - { - ActiveExecInitCancel( aState ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecDone -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecDone( - CVtUiActiveExec& /*aActiveExec*/, - const TInt aInitialState ) - { - ActiveExecInitDone( aInitialState ); - } - -// state object service handlers - - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShutdownL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShutdownL() - { - __VTPRINTENTER( "VtUi.ShutdownL" ) - - CVtUiWhiteBalance* wb = static_cast< CVtUiWhiteBalance* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdWhiteBalance ) ); - CVtUiColorTone* ct = static_cast< CVtUiColorTone* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdColourTone ) ); - - if ( wb && wb->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiWhiteBalance::DoDeactivateL" ); - wb->DoDeactivateL (); - } - if ( ct && ct->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiColorTone::DoDeactivateL" ); - ct->DoDeactivateL( ); - } - - // close volume slider - CVtUiVolume* volume = static_cast< CVtUiVolume* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdVolume ) ); - if ( volume ) - { - volume->Stop(); - } - // if capture mode is on stop the zoom - if ( iUiStates->IsCaptureModeOn() ) - { - CVtUiZoom* zoom = static_cast< CVtUiZoom* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdZoom ) ); - if ( zoom ) - { - zoom->Stop(); - } - } - - iActiveExec->Start( EVtUiAppUiShutdown, *this ); - __VTPRINTEXIT( "VtUi.ShutdownL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StartupPhase1L -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StartupPhase1L() - { - __VTPRINTENTER( "VtUi.StartupPhase1L" ) - iActiveExec->Start( EVtUiAppUiStartup, *this ); - __VTPRINTEXIT( "VtUi.StartupPhase1L" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StartupPhase2L -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StartupPhase2L() - { - __VTPRINTENTER( "VtUi.StartupPhase2L" ) - iActiveExec->Start( EVtUiAppUiAnswered, *this ); - __VTPRINTEXIT( "VtUi.StartupPhase2L" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ChangeState -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ChangeState( TVtUiAppStateBase* aState ) - { - __VTPRINTENTER( "VtUi.ChangeState" ) - iState = aState; - __VTPRINTEXIT( "VtUi.ChangeState" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::IsCommandAllowedL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::IsCommandAllowedL( const TInt aCommand ) - { - return iCommandManager->IsCommandAllowedL( aCommand ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshDisabledFlagsL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshDisabledFlagsL() - { - // Refresh iDisabledFlags according to the current state. - TInt avail; - MVtEngMedia& media = Model().Media(); - VtUiUtility::GetOutgoingMediaState( media, avail ); - avail = ~avail; - - iDisabledFlags = 0; - if ( avail & MVtEngMedia::EMediaAudio ) - { - iDisabledFlags |= EDisabledAudio; - } - if ( avail & MVtEngMedia::EMediaVideo ) - { - iDisabledFlags |= EDisabledVideo; - } - - // If there are not cameras, then video options should be disabled. - if ( !VtUiUtility::HasCameras( media ) ) - { - iDisabledFlags |= EVideoOptionsDisabled; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshCameraOptionAvailability -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshCameraOptionAvailability( - TBool& aUsePrimaryCameraNotAllowed, - TBool& aUseSecondaryCameraNotAllowed ) - { - aUsePrimaryCameraNotAllowed = ETrue; - aUseSecondaryCameraNotAllowed = ETrue; - - // Check sources caps and current camera to see which - // items should be included to the menu. - - TInt sourcesCaps = 0; - MVtEngMedia& media = Model().Media(); - (void) media.GetSourcesCaps( sourcesCaps ); - - MVtEngMedia::TCameraId cameraId; - const TBool hasCameraId = - ( media.GetCurrentCameraId( cameraId ) == KErrNone ); - - if ( hasCameraId ) - { - // Camera is in use. Now selected camera is not included - // to the menu. - switch ( cameraId ) - { - case MVtEngMedia::EPrimaryCamera: - sourcesCaps &= - ~MVtEngMedia::ESourceCapsPrimaryCamera; - break; - - case MVtEngMedia::ESecondaryCamera: - sourcesCaps &= - ~MVtEngMedia::ESourceCapsSecondaryCamera; - break; - - default: - sourcesCaps = 0; - break; - } - } - else - { - // If camera is not in use, then the "enable video" option - // will automatically use one of the existing cameras. - // However, if there are two cameras, then we need - // to include secondary to the menu. - - const TInt bothCameras = - ( MVtEngMedia::ESourceCapsPrimaryCamera | - MVtEngMedia::ESourceCapsSecondaryCamera ); - sourcesCaps &= ~bothCameras; - if ( sourcesCaps == bothCameras ) - { - sourcesCaps &= - ~MVtEngMedia::ESourceCapsPrimaryCamera; - } - else - { - sourcesCaps = 0; - } - } - - sourcesCaps = ~sourcesCaps; - aUsePrimaryCameraNotAllowed = - ( sourcesCaps & MVtEngMedia::ESourceCapsPrimaryCamera ); - aUseSecondaryCameraNotAllowed = - ( sourcesCaps & MVtEngMedia::ESourceCapsSecondaryCamera ); - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::CmdCaptureL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdCaptureL() - { - //firstly need to know if underlying provider supports KVtEngFreeze - MVtEngCommandHandler& command = Model().CommandHandler(); - const TInt caps = command.GetCommandCaps( KVtEngFreeze ); - if ( (caps & MVtEngCommandHandler::EAttribEnabled) == 0) - { - return; - } - // end capture mode, image captured - iUiStates->SetCaptureModeOn( EFalse ); - // end zoom mode - SetZoomModeL( EFalse, ETrue ); - // freeze outgoing video - ExecuteCmdL( KVtEngFreeze ); - RefreshBlind(); - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::CmdSnapshotL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdSnapshotL() - { - __VTPRINTENTER( "VtUi.CmdSnapshotL" ) - - // zoom mode must be set on before capture mode is set on - SetZoomModeL( ETrue, ETrue ); - - // if outgoing video is already frozen - MVtEngMedia& media = Model().Media(); - const TBool isFrozen( VtUiUtility::GetFreezeState( media ) ); - if ( isFrozen ) - { - ExecuteCmdL( KVtEngUnfreeze ); - } - if ( !IsViewFinderInMainPane() ) - { - SwitchViewFinderToMainPaneL( !isFrozen ); - } - else if ( !isFrozen ) - { - iUiStates->SetViewFindersInitialPlaceContextPane( EFalse ); - } - - // set capture mode on - - iUiStates->SetCaptureModeOn( ETrue ); - RefreshStatesL(); - RefreshBlind(); - __VTPRINTEXIT( "VtUi.CmdSnapshotL" ) - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::CmdCancelCaptureL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdCancelCaptureL() - { - __VTPRINTENTER( "VtUi.CmdCancelCaptureL" ) - // end capture mode, image capture canceled - iUiStates->SetCaptureModeOn( EFalse ); - SetZoomModeL( EFalse, ETrue ); - RefreshStatesL(); - RestoreViewFinderL(); - RefreshBlind(); - __VTPRINTEXIT( "VtUi.CmdCancelCaptureL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdEnableVideoL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdEnableVideoL() - { - // if outgoing video is frozen - MVtEngMedia& media = Model().Media(); - if ( VtUiUtility::GetFreezeState( media ) ) - { - ExecuteCmdL( KVtEngUnfreeze ); - // swap images if needed - RestoreViewFinderL(); - } - else - { - ExecuteCmdL( KVtEngStopViewFinder ); - iUplinkWindow->SetStreamBitmap( NULL ); - MVtEngMedia::TMediaSource source = MVtEngMedia::EMediaCamera; - ExecuteCmdL( KVtEngSetSource, source ); - MVtEngMedia::TCameraId id; - if ( Model().Media().GetCurrentCameraId( id ) == KErrInUse ) - { - ShowCameraInUseNoteL(); - } - ExecuteCmdL( KVtEngStartViewFinder ); - } - // update VB settings - UpdateVBSettingL(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdEnableAudioL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdEnableAudioL() - { - ExecuteCmdL( KVtEngUnmuteOutgoingAudio ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdDisableVideoL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdDisableVideoL() - { - - if( iUiStates->IsZoomModeOn() ) - { - // if zoom feature is active, stop that - MVtUiFeature* zm = iFeatureManager->GetFeatureById( EVtUiFeatureIdZoom ); - if ( zm ) - { - if ( zm->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.CmdDisableVideoL zm->STOP" ) - zm->Stop(); - } - } - } - - ExecuteCmdL( KVtEngStopViewFinder ); - - iUplinkWindow->SetStreamBitmap( NULL ); - - TInt err = KErrNotFound; - if ( VtUiUtility::HasStillImage( Model().Media() ) ) - { - __VTPRINT( DEBUG_GEN, "VtUi.:CmdDisableVideoL.HasStill" ) - MVtEngMedia::TMediaSource source = MVtEngMedia::EMediaStillImage; - TRAP( err, ExecuteCmdL( KVtEngSetSource, source ) ); - } - if ( ( err != KErrNone ) ) - { - __VTPRINT( DEBUG_GEN, "VtUi.:CmdDisableVideoL.MediaNone" ) - MVtEngMedia::TMediaSource source = MVtEngMedia::EMediaNone; - ExecuteCmdL( KVtEngSetSource, source ); - } - - ExecuteCmdL( KVtEngStartViewFinder ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdDisableAudioL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdDisableAudioL() - { - ExecuteCmdL( KVtEngMuteOutgoingAudio ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdActivateBtL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdActivateBtL() - { - TInt error = KErrNone; - CVtUiActivateBtHfDialog* dialog = - new ( ELeave ) CVtUiActivateBtHfDialog( - NULL, - &error, - Model().CommandHandler(), - *iEventObserver ); - dialog->ExecuteDialogLD(); - - if ( error != KErrCancel ) - { - switch ( error ) - { - case KErrNone: - break; - - case KErrNoMemory: - case KErrNotSupported: - // Clear failure - to be handled in active scheduler. - User::Leave( error ); - break; - - default: - // Failed - still show local information note in error situation. - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_QTN_BT_DEVICE_NOT_AVAIL ); - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - break; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdDeactivateBtL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdDeactivateBtL() - { - // Command to Video tel engine - MVtEngAudio::TVtEngRoutingSetting audioSetting = - MVtEngAudio::EDeactivateBT; - - ExecuteCmdL( KVtEngSetAudioRouting, audioSetting ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdActivateLoudspeakerL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdActivateLoudspeakerL() - { - MVtEngAudio::TVtEngRoutingSetting audioSetting = - MVtEngAudio::EActivateHandsfree; - ExecuteCmdL( KVtEngSetAudioRouting, audioSetting ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdDeactivateLoudspeakerL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdDeactivateLoudspeakerL() - { - MVtEngAudio::TVtEngRoutingSetting audioSetting = - MVtEngAudio::EDeactivateHansfree; - ExecuteCmdL( KVtEngSetAudioRouting, audioSetting ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdSwapImagesPlacesL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdSwapImagesPlacesL() - { - __VTPRINTENTER( "VtUi.Swap" ) - - MVtEngMedia& media = Model().Media(); - const TBool viewFinderStarted = - media.RenderingStarted( MVtEngMedia::EMediaOutgoing ); - const TBool remoteRenderStarted = - media.RenderingStarted( MVtEngMedia::EMediaIncoming ); - - if ( viewFinderStarted ) - { - // Stop viewfinder. - __VTPRINT( DEBUG_GEN, "VtUi.Swap.VF.down" ) - ExecuteCmdL( KVtEngStopViewFinder ); - } - // Stop remote render. - __VTPRINT( DEBUG_GEN, "VtUi.Swap.RR.down" ) - ExecuteCmdL( KVtEngStopRenderRemote ); - - // Clear windows. - iUplinkWindow->Reset(); - iDownlinkWindow->Reset(); - - const TBool uplinkWindowEqualsContextControl = - ( iUplinkWindow == iInstance->iContextControl ); - - // Prepare viewfinder. - __VTPRINT( DEBUG_GEN, "VtUi.Swap.VF.upd" ) - TVtEngRenderingOptions configViewfinder( - uplinkWindowEqualsContextControl ? - DetermineMainControlOptions( EFalse ) : - DetermineContextControlOptions() ); - ExecuteCmdL( KVtEngPrepareViewFinder, configViewfinder ); - - // Swap windows. - if ( ERenderingModeDialer == iRenderingMode ) - { - MVtUiVideoWindow* tmpWindow = iUplinkWindow; - iUplinkWindow = iStoredDownlinkWindow; - iStoredDownlinkWindow = tmpWindow; - } - else - { - MVtUiVideoWindow* tmpWindow = iUplinkWindow; - iUplinkWindow = iDownlinkWindow; - iDownlinkWindow = tmpWindow; - } - iUplinkWindow->SetRemoteVideoControl(NULL); - iDownlinkWindow->SetRemoteVideoControl(iInstance->iRemoteVideoControl); - iDownlinkWindow->LayoutRemoteVideo(); - - // Prepare remote render. - __VTPRINT( DEBUG_GEN, "VtUi.Swap.RR.upd" ) - TRAPD ( err, { - TVtEngRenderingOptionsNGA configRemoteRenderNGA( - DetermineRemoteVideoControlOptionsNGA() ); - ExecuteCmdL( - KVtEngPrepareRemoteRenderNGA, - configRemoteRenderNGA ); - } ); - - if ( err != KErrNone ) - { - if ( viewFinderStarted ) - { - // Start viewfinder. - ExecuteCmdL( KVtEngStartViewFinder ); - } - User::Leave ( err ); - } - // Start remote render. - __VTPRINT( DEBUG_GEN, "VtUi.Swap.RR.up" ) - if ( remoteRenderStarted ) - { - ExecuteCmdL( KVtEngStartRenderRemote ); - } - - __VTPRINT( DEBUG_GEN, "VtUi.Swap.VF.up" ) - if ( viewFinderStarted ) - { - // Start viewfinder. - ExecuteCmdL( KVtEngStartViewFinder ); - } - - iDownlinkWindow->Redraw(); - - // Refresh blind & waiting will be handled in HandleCommandL. - __VTPRINTEXIT( "VtUi.Swap" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdUseCameraL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdUseCameraL( const TBool aPrimaryCamera ) - { - EnableCommandActivatingAndCleanupPushL(); - MVtEngMedia& media = Model().Media(); - - MVtEngMedia::TMediaSource selectedSource = - ( aPrimaryCamera ) ? - MVtEngMedia::EMediaCameraPri : MVtEngMedia::EMediaCameraSec; - - TInt available = 0; - VtUiUtility::GetOutgoingMediaState( media, available ); - if ( available & MVtEngMedia::EMediaVideo ) - { - ExecuteCmdL( KVtEngStopViewFinder ); - - iUplinkWindow->SetStreamBitmap( NULL ); - TRAPD( err, ExecuteCmdL( KVtEngSetSource, selectedSource ) ); - - if ( err == KErrNone ) - { - ExecuteCmdL( KVtEngStartViewFinder ); - } - else - { - ShowOtherCameraNotUsableNoteL(); - } - } - else - { - MVtEngMedia::TPrepareCameraParams params; - params.iMediaSource = selectedSource; - params.iInitialize = EFalse; - TRAPD( err, ExecuteCmdL( KVtEngPrepareCamera, params ) ); - if ( err != KErrNone ) - { - ShowOtherCameraNotUsableNoteL(); - } - } - CleanupStack::PopAndDestroy(); // EnableCommandActivatingAndCleanupPushL - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdHelpL -// Launches help application. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdHelpL() - { - HlpLauncher::LaunchHelpApplicationL( - iEikonEnv->WsSession(), - AppHelpContextL() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::PrepareExitL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::PrepareExitL() - { - __VTPRINTENTER( "VtUi.PrepareExitL" ) - // Cancel progress dialog - HideProgressDialogL(); - // Cancel menu. - CAknAppUi::ProcessCommandL( EEikCmdCanceled ); // does not leave - - if ( !iExitTimer->IsActive() ) - { - __VTPRINT( DEBUG_GEN, "VtUi.Exit.Timer.Go" ) - iExitTimer->Start( - KVtUiExitTimeout, - KVtUiExitTimeout, - TCallBack( DoHandleExitTimeout, this ) ); - } - - // Asynchronous shutdown - execute command. - iBlankControl->SetActive( ETrue ); - __VTPRINTEXIT( "VtUi.PrepareExitL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdUpdateZoomL -// This method is called to update zoom step to the Video Telephone engine -// side from the HandleKeyEventL method. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdUpdateZoomL() - { - __VTPRINTENTER( "VtUi.UpdZm" ) - - __VTPRINTEXIT( "VtUi.UpdZm" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetZoomFactorL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetZoomFactorL( TInt aZoomStep ) - { - __VTPRINTENTER( "VtUi.SetZoomFactorL" ) - MVtEngMedia& media = Model().Media(); - if ( VtUiUtility::IsZoomAllowed( media ) ) - { - ExecuteCmdL( KVtEngSetZoomStep, aZoomStep ); - } - __VTPRINTEXIT( "VtUi.SetZoomFactorL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdUpdateVolumeL -// This method is called to update volume to the Video Telephone engine -// side -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdUpdateVolumeL( MVtEngAudio::TVtEngOutputVolume aVolume ) - { - __VTPRINTENTER( "VtUi.CmdUpdateVolumeL" ) - iVolCtrl->AdjustVolumeL( aVolume ); - __VTPRINTEXIT( "VtUi.CmdUpdateVolumeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdGoToIdleL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdGoToIdleL() - { - __VTPRINTENTER( "VtUi.CmdGoToIdleL" ) - TInt idleUid = 0; - if ( RProperty::Get( - KPSUidAiInformation, - KActiveIdleUid, - idleUid ) == KErrNone ) - { - __VTPRINT2( DEBUG_GEN, "Idle UID: %d", idleUid ) - TApaTaskList taskList( iEikonEnv->WsSession() ); - TApaTask task = taskList.FindApp( TUid::Uid( idleUid ) ); - if ( task.Exists() ) - { - __VTPRINT( DEBUG_GEN, "Idle task found") - RProperty::Set( KPSUidUikon, KUikVideoCallTopApp, KVtUiAppUid.iUid ); - task.BringToForeground(); - } - } - __VTPRINTEXIT( "VtUi.CmdGoToIdleL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdInitializeShareImageL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdInitializeShareImageL( TBool& aNeedRefresh ) - { - __VTPRINTENTER( "VtUi.CmdInitializeShareImageL" ) - EnableCommandActivatingAndCleanupPushL(); - - MVtUiFeature* tb = - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ); - if ( tb ) - { - // timer could be active - if ( iTbPeriodic ) - { - iTbPeriodic->Cancel(); - } - tb->Stop(); - } - CDesCArray* selectedFiles = new ( ELeave ) CDesCArrayFlat( 1 ); - CleanupStack::PushL( selectedFiles ); - CVtUiAppUi::CVtUiAppUiMGVerifier* verifier = - CVtUiAppUi::CVtUiAppUiMGVerifier::NewLC( *this, *iCoeEnv ); - - // number erntry is not availabe while media gallery is open - iInstance->iNumberEntryActivation->SetActive( EFalse ); - iUiStates->SetSelectingShare( ETrue ); - - TBool result( EFalse ); - TRAPD( err, result = - MGFetch::RunL( *selectedFiles, EImageFile, EFalse, verifier ) ); - - // leave occured - if ( err != KErrNone ) - { - if ( iUiStates->ExecState() == TVtUiStates::EExecStateRunning ) - { - ShowUnableToOpenNoteL(); - } - else - { - __VTPRINTEXIT( "VtUi.CmdInitializeShareImageL 1" ) - Exit(); - } - } - - if ( result && ( selectedFiles->Count() > 0 ) ) - { - MVtEngMedia::TShareObjectState shareObjectState; - VtUiUtility::GetObjectSharingState( Model().Media(), shareObjectState ); - iUiStates->SetViewFinderToMainPane( - shareObjectState == MVtEngMedia::ENotSharing ); - MVtEngMedia::TShareObjectImageParameters - parameters( selectedFiles->operator[]( 0 ) ); - ExecuteCmdL( KVtEngInitializeShareImage, parameters ); - aNeedRefresh = ETrue; - } - else // selection canceled start toolbar timer - { - if ( !iTbPeriodic ) - { - iTbPeriodic = CPeriodic::NewL( CActive::EPriorityStandard ); - } - iTbPeriodic->Cancel(); - iTbPeriodic->Start( KStartTime, KPeriodTime, TCallBack( DoTryToStartTbL, this ) ); - } - CleanupStack::PopAndDestroy( 2 ); // selectedFiles, verifier - // number entry is availabe again - iInstance->iNumberEntryActivation->SetActive( ETrue ); - iUiStates->SetSelectingShare( EFalse ); - CleanupStack::PopAndDestroy(); // EnableCommandActivatingAndCleanupPushL(); - - __VTPRINTEXIT( "VtUi.CmdInitializeShareImageL 0" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdShareImageL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdShareImageL() - { - ExecuteCmdL( KVtEngStartShareImage ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdStopShareImageL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CmdStopShareImageL( TBool& aNeedRefresh ) - { - ExecuteCmdL( KVtEngStopShareImage ); - RestoreViewFinderL(); - aNeedRefresh = ETrue; - // update VB settings - UpdateVBSettingL(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleWaitingStateChange -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleWaitingStateChange( TBool aIsWaiting ) - { - // Dialer must be closed in case of waiting call - MVtUiFeature* dialer = - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ); - if ( dialer ) - { - dialer->Stop(); - } - iUiStates->SetWaitingCall( aIsWaiting ); - if (aIsWaiting == EFalse && - iIsWaitingCallState != EFalse && - !iUiStates->IsThisApplicationForeground() ) - { - iIsWaitingCallState = EFalse; - ChangeApplicationFocus( ETrue ); - TRAP_IGNORE ( SetHiddenL( EFalse ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitExecuteL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::ActiveExecInitExecuteL( - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ) - { - __VTPRINTENTER( "VtUi.InitExec" ) - __VTPRINT2( DEBUG_GEN, "VtUi.InitExec.st=%d", aState ) - - TBool synch = EFalse; - - switch ( aState ) - { - // Startup chain: - case EVtUiAppUiStartupCloseDialogs: - // Close all dialogs. - iBlankControl->SetActive( EFalse ); - AknDialogShutter::ShutDialogsL( *iEikonEnv ); - iBlankControl->SetActive( ETrue ); - - synch = ETrue; - aNextState = EVtUiAppUiStartupInitEngine; - break; - - case EVtUiAppUiStartupInitEngine: - iUplinkWindow = iInstance->iContextControl; - iDownlinkWindow = iInstance->iMainControl; - ActiveExecInitExecuteCommandL( KVtEngInitializeEngine, aRequest ); - aNextState = EVtUiAppUiStartupPrepareViewfinder; - break; - - case EVtUiAppUiStartupPrepareViewfinder: - ActiveExecInitPrepareViewFinderL( aRequest ); - iUplinkWindow->SetStreamBitmap( NULL ); - aNextState = EVtUiAppUiStartupPrepareRemoteRender; - break; - - case EVtUiAppUiStartupPrepareRemoteRender: - - iInstance->CreateRemoteVideoControl(); - ActiveExecInitPrepareRemoteRenderL( aRequest ); - iDownlinkWindow->SetStreamBitmap( NULL ); - aNextState = EVtUiAppUiStartupRemoveBlank; - break; - - case EVtUiAppUiStartupRemoveBlank: - // Finally remove blank control. - iBlankControl->SetActive( EFalse ); - aNextState = EVtUiAppUiNone; - synch = ETrue; - break; - - // Shutdown chain: - case EVtUiAppUiShutdownCloseDialogs: - { - // Close all dialogs. - iBlankControl->SetActive( EFalse ); - AknDialogShutter::ShutDialogsL( *iEikonEnv ); - iBlankControl->SetActive( ETrue ); - - MVtUiFeature* numberEntry = iFeatureManager->GetFeatureById( - EVtUiFeatureIdNumberEntry ); - // Number entry may be active if its deactivation timer is still - // pending. Stop performs some cleanup which is needed before AppUi - // cleanup. - if ( numberEntry ) - { - numberEntry->Stop(); - } - - synch = ETrue; - aNextState = EVtUiAppUiShutdownHideApplication; - } - break; - - case EVtUiAppUiShutdownHideApplication: - if ( iUiStates->IsThisApplicationForeground() ) - { - BringTelephoneToForeground(); - } - else - { - ChangeApplicationFocus( EFalse ); - } - iDownlinkWindow->SetStreamBitmap( NULL ); - iUplinkWindow->SetStreamBitmap( NULL ); - SetHiddenL( ETrue ); - iEventObserver->DeleteRemConSession(); - - synch = ETrue; - aNextState = EVtUiAppUiShutdownResetEngine; - break; - - case EVtUiAppUiShutdownResetEngine: - { - aRequest = KRequestPending; - - MVtEngCommandHandler& command = Model().CommandHandler(); - // There should not be any commands ongoing because - // we have canceled all dialogs (and this should - // be the only command without dialog). - command.CancelCommand( command.PendingCommand() ); // ignore error - command.ExecuteL( KVtEngResetEngine, NULL ); - iShutdownRequest = &aRequest; - - aNextState = EVtUiAppUiShutdownRemoveBlank; - } - break; - - case EVtUiAppUiShutdownRemoveBlank: - // Finally remove blank control. - iBlankControl->SetActive( EFalse ); - - synch = ETrue; - aNextState = EVtUiAppUiNone; - break; - - // Answered chain: - case EVtUiAppUiAnsweredStart: - { - CVtUiBlankDialog* dialog = - new ( ELeave ) CVtUiBlankDialog( &iExecBlankDialog ); - dialog->ExecuteDialogNoWaitLD(); - iExecBlankDialog = dialog; - - synch = ETrue; - if ( iUiStates->IsLayoutChangeNeeded() ) - { - (void) HandleLayoutChanged(); - } - aNextState = EVtUiAppUiAnsweredRefreshNavi; - } - break; - - case EVtUiAppUiAnsweredRefreshNavi: - RefreshNaviPaneL(); - iEventObserver->CreateRemConSessionL(); - - synch = ETrue; - aNextState = EVtUiAppUiAnsweredRefreshSoftkeys; - break; - - case EVtUiAppUiAnsweredRefreshSoftkeys: - RefreshSoftkeysL(); - - synch = ETrue; - aNextState = EVtUiAppUiAnsweredStartRemoteRender; - break; - - case EVtUiAppUiAnsweredStartRemoteRender: - { - // Set waiting text to main control and start remote rendering. - // Video Telephone application should get KVtEngRemoteVideoStarted - // event when the first frame is received. - iDownlinkWindow->SetWaiting( ETrue ); - iUiStates->SetWaitingForFirstFrame( ETrue ); - //Must check if orientation changed between prepare remote render and start remote render - //If changed, update render parameter firstly - if ( iIsLandScapeOrientation != VtUiLayout::IsLandscapeOrientation() ) - { - __VTPRINT( DEBUG_GEN, "layout has been changed before start RemoteRender" ) - UpdateRenderingParametersL(); - } - - ActiveExecInitExecuteCommandL( KVtEngStartRenderRemote, - aRequest ); - - aNextState = EVtUiAppUiAnsweredCheckCamera; - } - break; - - case EVtUiAppUiAnsweredCheckCamera: - { - MVtEngMedia& media = Model().Media(); - if ( VtUiUtility::HasCameras( media ) ) - { - aNextState = EVtUiAppUiAnsweredChoose; - synch = ETrue; - } - else - { - if ( VtUiUtility::HasStillImage( media ) ) - { - aNextState = EVtUiAppUiAnsweredSelectStill; - } - else - { - aNextState = EVtUiAppUiAnsweredSelectNone; - } - - synch = ETrue; - } - } - break; - - case EVtUiAppUiAnsweredChoose: - { - // If camera is in use, then show note, - // select still image, stop. - // - // If call is mobile terminated, then show query. - // If user answers 'yes' to the query, - // then activate camera. - // If user answers 'no' to the query, - // then choose still image. - // - // If call is mobile originated, then select camera. - // - // If selecting a camera fails, then select still image. - // If selecting still image fails, then select none. - // - CVtEngModel& model = Model(); - MVtEngSessionInfo& session = model.Session(); - MVtEngMedia& media = model.Media(); - - MVtEngMedia::TCameraId id; - TInt cameraErr = model.Media().GetCurrentCameraId( id ); - if ( cameraErr == KErrInUse ) - { - // Camera is in use. - iUiStates->SetExecShowCameraInUse( ETrue ); - - if ( VtUiUtility::HasStillImage( media ) ) - { - aNextState = EVtUiAppUiAnsweredSelectStill; - } - else - { - aNextState = EVtUiAppUiAnsweredSelectNone; - } - } - else - { - // Check the direction of the call. - iUiStates->SetExecShowCameraInUse( EFalse ); - MVtEngSessionInfo::TDirection direction; - if ( session.GetDirection( direction ) != KErrNone ) - { - direction = MVtEngSessionInfo::EDirectionMT; - } - - if ( direction == MVtEngSessionInfo::EDirectionMT ) - { - // Start steps towards the "Allow video" query. - if ( VtUiUtility::HasStillImage( media ) ) - { - aNextState = EVtUiAppUiAnsweredQuerySetupStill; - } - else - { - aNextState = EVtUiAppUiAnsweredQuerySetupNone; - } - } - else - { - aNextState = EVtUiAppUiAnsweredDoPrepareCamera; - } - } - synch = ETrue; - } - break; - - case EVtUiAppUiAnsweredQuerySetupStill: - ActiveExecInitSetSourceL( MVtEngMedia::EMediaStillImage, aRequest ); - aNextState = EVtUiAppUiAnsweredQuerySetupStart; - break; - - case EVtUiAppUiAnsweredQuerySetupNone: - ActiveExecInitSetSourceL( MVtEngMedia::EMediaNone, aRequest ); - aNextState = EVtUiAppUiAnsweredQuerySetupStart; - break; - - case EVtUiAppUiAnsweredQuerySetupStart: - ActiveExecInitExecuteCommandL( KVtEngStartViewFinder, aRequest ); - aNextState = EVtUiAppUiAnsweredQueryShow; - break; - - case EVtUiAppUiAnsweredQueryShow: - { - RefreshL(); - TInt state = EPSCTsyCallStateUninitialized; - TInt err = RProperty::Get( - KPSUidCtsyCallInformation, - KCTsyCallState, - state ); - __VTPRINT3( DEBUG_GEN, "VtUi.InitExec WaitingCall State=%d, err=%d", - state, err ) - if ( EPSCTsyCallStateRinging != state ) - { - ChangeApplicationFocus( ETrue ); - SetHiddenL( EFalse ); - } - else - { - iIsWaitingCallState = ETrue; - } - - // User selectable call answer mute. - // In GS one can set call ansewer status - // eighter to query user, allways show, allways mute. - // GS values are checked from CR key ( KSettingsVTVideoSending ) - // (default value is 0 = allways query). - TVtUiGsMuteVariation camute; - __VTPRINT2( DEBUG_GEN, "VtUi.InitExe GS CR key KSettingsVTVideoSending querystate=%d", camute.GsMuteState() ) - if ( camute.GsMuteState() == KAllwaysQuery && !iUiStates->IsDeviceLockOn() && EPSCTsyCallStateRinging != state) - { - CVtUiAllowVideoDialog* dialog = - new ( ELeave ) CVtUiAllowVideoDialog( - &iExecDialog, - CAknQueryDialog::ENoTone ); - dialog->ExecuteDialogLD( aRequest ); - iExecDialog = dialog; - aNextState = EVtUiAppUiAnsweredQueryDecide; - } - else if ( camute.GsMuteState() == KAllwaysAllow ) - { - aNextState = EVtUiAppUiAnsweredDoPrepareCamera; - synch = ETrue; - } - else - { - aNextState = EVtUiAppUiNone; - synch = ETrue; - } - - } - break; - - case EVtUiAppUiAnsweredQueryDecide: - { - delete iExecDialog; - iExecDialog = NULL; - - if ( iActiveExec->RequestStatus() == - CVtUiAllowVideoDialog::EUserAllowed ) - { - aNextState = EVtUiAppUiAnsweredDoPrepareCamera; - } - else - { - aNextState = EVtUiAppUiNone; - } - - synch = ETrue; - } - break; - - case EVtUiAppUiAnsweredDoPrepareCamera: - { - MVtEngMedia& media = Model().Media(); - MVtEngMedia::TMediaSource source = MVtEngMedia::EMediaCamera; - ActiveExecInitPrepareCameraL( source, aRequest ); - aNextState = EVtUiAppUiAnsweredSelectCamera; - } - break; - - case EVtUiAppUiAnsweredQuerySelectCamera: - case EVtUiAppUiAnsweredSelectCamera: - ActiveExecInitSetSourceL( MVtEngMedia::EMediaCamera, aRequest ); - if ( aState == EVtUiAppUiAnsweredSelectCamera ) - { - aNextState = EVtUiAppUiAnsweredStartViewfinder; - } - else - { - aNextState = EVtUiAppUiAnsweredQueryStartViewfinder; - } - break; - - case EVtUiAppUiAnsweredQuerySelectStill: - case EVtUiAppUiAnsweredSelectStill: - ActiveExecInitSetSourceL( MVtEngMedia::EMediaStillImage, aRequest ); - - if ( aState == EVtUiAppUiAnsweredSelectStill ) - { - aNextState = EVtUiAppUiAnsweredStartViewfinder; - } - else - { - aNextState = EVtUiAppUiAnsweredQueryStartViewfinder; - } - break; - - case EVtUiAppUiAnsweredQuerySelectNone: - case EVtUiAppUiAnsweredSelectNone: - ActiveExecInitSetSourceL( MVtEngMedia::EMediaNone, aRequest ); - - if ( aState == EVtUiAppUiAnsweredSelectNone ) - { - aNextState = EVtUiAppUiAnsweredStartViewfinder; - } - else - { - aNextState = EVtUiAppUiAnsweredQueryStartViewfinder; - } - break; - - case EVtUiAppUiAnsweredQueryStartViewfinder: - case EVtUiAppUiAnsweredStartViewfinder: - ActiveExecInitExecuteCommandL( KVtEngStartViewFinder, aRequest ); - - if ( aState == EVtUiAppUiAnsweredStartViewfinder ) - { - aNextState = EVtUiAppUiAnsweredFinish; - } - else - { - aNextState = EVtUiAppUiAnsweredQueryFinish; - } - break; - - case EVtUiAppUiAnsweredQueryFinish: - case EVtUiAppUiAnsweredFinish: - RefreshL(); - if ( iUiStates->IsExecShowCameraInUse() ) - { - ShowCameraInUseNoteL(); - } - - if ( aState != EVtUiAppUiAnsweredQueryFinish ) - { - ChangeApplicationFocus( ETrue ); - } - SetHiddenL( EFalse ); - - synch = ETrue; - aNextState = EVtUiAppUiNone; - break; - - default: - User::Leave( KErrNotSupported ); - break; - } - - __VTPRINT2( DEBUG_GEN, "VtUi.InitExec.sync=%d", synch ) - __VTPRINT2( DEBUG_GEN, "VtUi.InitExec.next=%d", aNextState ) - __VTPRINTEXITR( "VtUi.InitExec %d", synch ) - return synch; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitContinue -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::ActiveExecInitContinue( - TInt& aState, - const TInt aError ) - { - __VTPRINTENTER( "VtUi.InitExecCont" ) - __VTPRINT2( DEBUG_GEN, "VtUi.InitExecCont.st=%d", aState ) - //__VTPRINT2( DEBUG_GEN, "VtUi.InitExecCont.err=%d", aError ) - - const TInt state = aState; - switch ( state ) - { - case EVtUiAppUiStartupCloseDialogs: - case EVtUiAppUiStartupInitEngine: - case EVtUiAppUiStartupPrepareViewfinder: - case EVtUiAppUiStartupPrepareRemoteRender: - case EVtUiAppUiStartupRemoveBlank: - // Prepare failed. - break; - - case EVtUiAppUiShutdownCloseDialogs: - if( KErrNotReady == aError ) - { - aState = EVtUiAppUiShutdownHideApplication; - break; - } - case EVtUiAppUiShutdownResetEngine: - case EVtUiAppUiShutdownRemoveBlank: - // shutdown failed - break; - - case EVtUiAppUiShutdownHideApplication: - aState = EVtUiAppUiShutdownResetEngine; - break; - - - case EVtUiAppUiAnsweredStart: - aState = EVtUiAppUiAnsweredRefreshNavi; - break; - - case EVtUiAppUiAnsweredRefreshNavi: - aState = EVtUiAppUiAnsweredRefreshSoftkeys; - break; - - case EVtUiAppUiAnsweredRefreshSoftkeys: - aState = EVtUiAppUiAnsweredStartRemoteRender; - break; - - case EVtUiAppUiAnsweredStartRemoteRender: - case EVtUiAppUiAnsweredStartViewfinder: - case EVtUiAppUiAnsweredSelectNone: - case EVtUiAppUiAnsweredFinish: - case EVtUiAppUiAnsweredQueryStartViewfinder: - case EVtUiAppUiAnsweredQuerySelectNone: - case EVtUiAppUiAnsweredQueryFinish: - // Answered failed. - break; - - case EVtUiAppUiAnsweredCheckCamera: - aState = EVtUiAppUiAnsweredChoose; - break; - - case EVtUiAppUiAnsweredChoose: - aState = EVtUiAppUiAnsweredQuerySetupStill; - break; - - case EVtUiAppUiAnsweredQuerySetupStill: - aState = EVtUiAppUiAnsweredQuerySetupNone; - break; - - case EVtUiAppUiAnsweredQuerySetupStart: - case EVtUiAppUiAnsweredQuerySetupNone: - aState = EVtUiAppUiAnsweredQueryShow; - break; - - case EVtUiAppUiAnsweredQueryShow: - case EVtUiAppUiAnsweredQueryDecide: - case EVtUiAppUiAnsweredSelectCamera: - aState = EVtUiAppUiAnsweredSelectStill; - break; - - case EVtUiAppUiAnsweredQuerySelectCamera: - aState = EVtUiAppUiAnsweredQuerySelectStill; - break; - - case EVtUiAppUiAnsweredQuerySelectStill: - aState = EVtUiAppUiAnsweredQuerySelectNone; - break; - - case EVtUiAppUiAnsweredSelectStill: - aState = EVtUiAppUiAnsweredSelectNone; - break; - - default: - break; - } - - const TBool cont = ( aState != state ); - __VTPRINT2( DEBUG_GEN, "VtUi.InitExecCont.cont=%d", cont ) - - if ( !cont ) - { - delete iExecBlankDialog; - iExecBlankDialog = NULL; - // Operation failed. - if ( iState ) - { - TRAP_IGNORE( iState->AppUiStartupFailedL() ); - } - } - __VTPRINTEXITR( "VtUi.InitExecCont %d", cont ) - return cont; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitCancel -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitCancel( - const TInt /*aState*/ ) - { - __VTPRINTENTER( "VtUi.InitExecCancel" ) - - iBlankControl->SetActive( EFalse ); - delete iExecDialog; - delete iExecBlankDialog; - - if ( iShutdownRequest ) - { - User::RequestComplete( iShutdownRequest, KErrCancel ); - iShutdownRequest = NULL; - } - __VTPRINTEXIT( "VtUi.InitExecCancel" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitDone -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitDone( - const TInt aInitialState ) - { - __VTPRINTENTER( "VtUi.ExecInitDone" ) - __VTPRINT2( DEBUG_GEN, "VtUi.InitExecDone.ini=%d", aInitialState ) - delete iExecBlankDialog; - iExecBlankDialog = NULL; - // Operation succeeded - - // Now we have finished. - if ( iState ) - { - if ( aInitialState == EVtUiAppUiAnswered ) - { - TRAP_IGNORE( iState->AppUiStartupPhase2DoneL() ); - TRAP_IGNORE( AppUiInitDoneDoPostInitL() ); - } - else if ( aInitialState == EVtUiAppUiShutdown ) - { - TRAP_IGNORE( iState->ShutdownDoneL() ); - } - else // EVtUiAppUiStartup - { - TRAP_IGNORE( iState->AppUiStartupPhase1DoneL() ); - } - } - __VTPRINTEXIT( "VtUi.ExecInitDone" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitExecuteCommandL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitExecuteCommandL( - const TVtEngCommandId aCommand, - TRequestStatus& aRequest ) - { - iExecDialog = - ExecuteCmdAsyncL( - &iExecDialog, - aCommand, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitExecuteCommandL -// ----------------------------------------------------------------------------- -// -template < class T > -void CVtUiAppUi::ActiveExecInitExecuteCommandL( - const TVtEngCommandId aCommand, - T& aParam, - TRequestStatus& aRequest ) - { - iExecDialog = - ExecuteCmdAsyncL( - &iExecDialog, - aCommand, - aParam, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitPrepareCameraL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitPrepareCameraL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ) - { - MVtEngMedia::TPrepareCameraParams params; - params.iMediaSource = aSource; - params.iInitialize = ETrue; - iExecDialog = - ExecuteCmdAsyncL( - &iExecDialog, - KVtEngPrepareCamera, - params, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitSetSourceL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitSetSourceL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ) - { - MVtEngMedia::TMediaSource source = - aSource; - iExecDialog = - ExecuteCmdAsyncL( - &iExecDialog, - KVtEngSetSource, - source, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitPrepareViewFinderL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitPrepareViewFinderL( - TRequestStatus& aRequest ) - { - // Configure view finder to context pane. - if ( iEventObserver->CommandSupported( KVtEngPrepareViewFinder ) ) - { - TVtEngRenderingOptions configViewfinder( - DetermineContextControlOptions() ); - - iExecDialog = - ExecuteCmdAsyncL( - &iExecDialog, - KVtEngPrepareViewFinder, - configViewfinder, - aRequest ); - } - else - { - // Viewfinder does not support DSA - panic. - VtUiPanic::Panic( EVtUiPanicPrepareViewFinderNotSupported ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecInitPrepareRemoteRenderL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecInitPrepareRemoteRenderL( - TRequestStatus& aRequest ) - { - if ( iEventObserver->CommandSupported( KVtEngPrepareRemoteRenderNGA ) ) - { - // Cropping is performed when we draw the picture. - TVtEngRenderingOptionsNGA configRemoteRenderNGA( - DetermineRemoteVideoControlOptionsNGA() ); - - iExecDialog = - ExecuteCmdAsyncL( - &iExecDialog, - KVtEngPrepareRemoteRenderNGA, - configRemoteRenderNGA, - aRequest ); - } - else - { - // Neither supported - panic. - VtUiPanic::Panic( EVtUiPanicPrepareRemoteRenderNotSupported ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecCmdExecuteCommandL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecCmdExecuteCommandL( - const TVtEngCommandId aCommand, - TRequestStatus& aRequest ) - { - iCmdExecDialog = - ExecuteCmdAsyncL( - &iCmdExecDialog, - aCommand, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecCmdSetSourceL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecCmdSetSourceL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ) - { - MVtEngMedia::TMediaSource source = aSource; - iCmdExecDialog = - ExecuteCmdAsyncL( - &iCmdExecDialog, - KVtEngSetSource, - source, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ActiveExecCmdPrepareCameraL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ActiveExecCmdPrepareCameraL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ) - { - MVtEngMedia::TPrepareCameraParams params; - params.iMediaSource = aSource; - params.iInitialize = ETrue; - iCmdExecDialog = - ExecuteCmdAsyncL( - &iCmdExecDialog, - KVtEngPrepareCamera, - params, - aRequest ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineMainControlOptions -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptions - CVtUiAppUi::DetermineMainControlOptions( TBool aRemoteVideo ) - { - // Determine main pane options. - TRect screen; - TAknWindowLineLayout stream; - TAknLayoutRect rect; - - screen = iInstance->iMainControl->Rect(); - VtUiLayout::GetSecondWindowStreamWholeLayout( - stream, aRemoteVideo && iUiStates->IsUseSQCif() ); - - rect.LayoutRect( screen, stream ); - screen = rect.Rect(); - - return TVtEngRenderingOptions( *iEventObserver, screen.Size() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineContextControlOptions -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptions CVtUiAppUi::DetermineContextControlOptions() - { - // Determine context pane options. - TRect screen; - TRect clip; - TAknWindowLineLayout stream; - TAknLayoutRect rect; - - VtUiLayout::GetApplicationParentRect( screen ); - VtUiLayout::GetFirstWindowBackgroundLayout( stream ); - rect.LayoutRect( screen, stream ); - TRect background = rect.Rect(); - - VtUiLayout::GetFirstWindowStreamLayout( stream ); - rect.LayoutRect( screen, stream ); - - // No cropping is performed, thus clip == screen. - clip = rect.Rect(); - clip.iTl -= background.iTl; - clip.iBr -= background.iTl; - - screen = clip; - - return - TVtEngRenderingOptions( - *iEventObserver, - screen.Size() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineDialerControlOptions -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptions CVtUiAppUi::DetermineDialerControlOptions() - { - MVtUiDialer* dialer = static_cast< CVtUiDialer* > ( - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ) ); - - __ASSERT_ALWAYS( dialer, VtUiPanic::Panic( EVtUiPanicRendererNotFound ) ); - - return - TVtEngRenderingOptions( - *iEventObserver, - dialer->VideoControl().Size() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineMainControlOptions -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsDSA - CVtUiAppUi::DetermineMainControlOptionsDSA( TBool aRemoteVideo ) - { - // Determine main pane options. - TRect screen; - TRect clip; - TAknWindowLineLayout stream; - TAknLayoutRect rect; - const TBool usesSQCif( aRemoteVideo && iUiStates->IsUseSQCif() ); - screen = iInstance->iMainControl->Rect(); - VtUiLayout::GetSecondWindowStreamLayout( stream, - iUiStates->IsToolbarAvailable(), usesSQCif ); - rect.LayoutRect( screen, stream ); - clip = rect.Rect(); - - VtUiLayout::GetSecondWindowStreamWholeLayout( stream, - iUiStates->IsToolbarAvailable(), usesSQCif ); - rect.LayoutRect( screen, stream ); - screen = rect.Rect(); - - return - TVtEngRenderingOptionsDSA( - *iEventObserver, - iEikonEnv->WsSession(), - *( iEikonEnv->ScreenDevice() ), - *( iInstance->iMainControl->DrawableWindow() ), - clip, - screen ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineContextControlOptionsDSA -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsDSA CVtUiAppUi::DetermineContextControlOptionsDSA() - { - // Determine context pane options. - TRect screen; - TRect clip; - TAknWindowLineLayout stream; - TAknLayoutRect rect; - - VtUiLayout::GetApplicationParentRect( screen ); - VtUiLayout::GetFirstWindowBackgroundLayout( stream ); - rect.LayoutRect( screen, stream ); - TRect background = rect.Rect(); - - VtUiLayout::GetFirstWindowStreamLayout( stream ); - rect.LayoutRect( screen, stream ); - - // No cropping is performed, thus clip == screen. - clip = rect.Rect(); - clip.iTl -= background.iTl; - clip.iBr -= background.iTl; - - screen = clip; - - return - TVtEngRenderingOptionsDSA( - *iEventObserver, - iEikonEnv->WsSession(), - *( iEikonEnv->ScreenDevice() ), - *( iInstance->iContextControl->DrawableWindow() ), - screen, - clip ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineDialerControlOptionsDSA -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsDSA CVtUiAppUi::DetermineDialerControlOptionsDSA() - { - MVtUiDialer* dialer = static_cast< CVtUiDialer* > ( - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ) ); - - __ASSERT_ALWAYS( dialer, VtUiPanic::Panic( EVtUiPanicRendererNotFound ) ); - - CCoeControl& videoWindow( dialer->VideoControl() ); - - return - TVtEngRenderingOptionsDSA( - *iEventObserver, - iEikonEnv->WsSession(), - *( iEikonEnv->ScreenDevice() ), - *( videoWindow.DrawableWindow() ), - videoWindow.Rect(), - videoWindow.Rect() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineMainControlOptionsDP -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsDP - CVtUiAppUi::DetermineMainControlOptionsDP( TBool aRemoteVideo ) - { - // Determine main pane options. - const TRect screen( iInstance->iMainControl->Rect() ); - TAknWindowLineLayout stream; - const TBool usesSQCif( aRemoteVideo && iUiStates->IsUseSQCif() ); - - // Even if the name is whole layout, this layout is (due to problem - // in layouts) video stream layout - TAknLayoutRect whole; - VtUiLayout::GetSecondWindowStreamWholeLayout( stream, - iUiStates->IsToolbarAvailable(), usesSQCif ); - whole.LayoutRect( screen, stream ); - - // Even if the name is actual layout, this layout is (due to problem - // in layouts) whole == clipping layout - TAknLayoutRect actual; - VtUiLayout::GetSecondWindowStreamLayout( stream, - iUiStates->IsToolbarAvailable(), usesSQCif ); - actual.LayoutRect( screen, stream ); - - return - TVtEngRenderingOptionsDP( - *iEventObserver, - iEikonEnv->WsSession(), - *( iEikonEnv->ScreenDevice() ), - *( iInstance->iMainControl->DrawableWindow() ), - actual.Rect(), - whole.Rect(), - iInstance->iMainControl->PositionRelativeToScreen() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineContextControlOptionsDP -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsDP CVtUiAppUi::DetermineContextControlOptionsDP() - { - // Determine context pane options. - TAknWindowLineLayout stream; - TAknLayoutRect rect; - - TRect screen; - VtUiLayout::GetApplicationParentRect( screen ); - VtUiLayout::GetFirstWindowBackgroundLayout( stream ); - rect.LayoutRect( screen, stream ); - const TRect background( rect.Rect() ); - - VtUiLayout::GetFirstWindowStreamLayout( stream ); - rect.LayoutRect( screen, stream ); - - // No cropping is performed, thus clip == screen. - TRect clip( rect.Rect() ); - clip.iTl -= background.iTl; - clip.iBr -= background.iTl; - - return - TVtEngRenderingOptionsDP( - *iEventObserver, - iEikonEnv->WsSession(), - *( iEikonEnv->ScreenDevice() ), - *( iInstance->iContextControl->DrawableWindow() ), - clip, - clip, - iInstance->iContextControl->PositionRelativeToScreen() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineDialerControlOptionsDP -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsDP CVtUiAppUi::DetermineDialerControlOptionsDP() - { - MVtUiDialer* dialer = static_cast< CVtUiDialer* > ( - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ) ); - - __ASSERT_ALWAYS( dialer, VtUiPanic::Panic( EVtUiPanicRendererNotFound ) ); - - CCoeControl& videoWindow( dialer->VideoControl() ); - - TPoint offs( videoWindow.DrawableWindow()->AbsPosition() ); - TRect rect( videoWindow.Rect() ); - return - TVtEngRenderingOptionsDP( - *iEventObserver, - iEikonEnv->WsSession(), - *( iEikonEnv->ScreenDevice() ), - *( videoWindow.DrawableWindow() ), - rect, - rect, - offs ); - } -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DetermineRemoteVideoControlOptionsNGA -// ----------------------------------------------------------------------------- -// -TVtEngRenderingOptionsNGA - CVtUiAppUi::DetermineRemoteVideoControlOptionsNGA() - { - return TVtEngRenderingOptionsNGA( *iEventObserver, - iInstance->iRemoteVideoControl ->GetRWindow() , iEikonEnv->WsSession()); - } -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ExecuteCmdL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ExecuteCmdL( const TVtEngCommandId aCommand ) - { - DoExecuteCmdL( aCommand, NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ExecuteCmdL -// ----------------------------------------------------------------------------- -// -template< class T > -void CVtUiAppUi::ExecuteCmdL( - const TVtEngCommandId aCommand, - T& aParam ) - { - TPtrC8 params( reinterpret_cast< TUint8* >( &aParam ), sizeof( T ) ); - DoExecuteCmdL( aCommand, ¶ms ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoExecuteCmdL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DoExecuteCmdL( - const TVtEngCommandId aCommand, - TDesC8* aParams ) - { - __VTPRINT2( DEBUG_GEN, "VtUi.DoExec.cmd=%d", aCommand ) - MVtEngCommandHandler& command = Model().CommandHandler(); - const TInt caps = command.GetCommandCaps( aCommand ); - - if ( caps >= KErrNone ) - { - const TBool asynchronous = - ( caps & MVtEngCommandHandler::EAttribAsync ); - - if ( asynchronous ) - { - if ( aCommand == KVtEngHandleLayoutChange ) - { - CVtEngCmdExec* cmdExec = CVtEngCmdExec::NewL( - Model().CommandHandler(), *iEventObserver, *GetCba() ); - cmdExec->ExecuteCmdLD( aCommand ); - } - else - { - CVtUiExecuteCmdDialog* dlg = - new ( ELeave ) CVtUiExecuteCmdDialog( - NULL, - Model().CommandHandler(), - *iEventObserver ); - dlg->ExecuteCmdLD( aCommand, aParams, NULL ); - } - } - else - { - command.ExecuteL( aCommand, aParams ); - RefreshStatesL(); - } - } - else - { - // Failed. - User::Leave( caps ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleShutdownReady -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleShutdownReady() - { - __VTPRINTENTER( "VtUi.HandleShutdownReady" ) - - if(iAsyncCallback->IsActive()) - { - iAsyncCallback->Cancel(); - } - - iAsyncCallback->Set( - TCallBack( &DoExit, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "VtUi.HandleShutdownReady" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ContextControl -// ----------------------------------------------------------------------------- -// -CVtUiContextControl& CVtUiAppUi::ContextControl() - { - __VTPRINTENTER( "VtUi.ContextControl" ) - __VTPRINTEXIT( "VtUi.ContextControl" ) - return *iInstance->iContextControl; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::MainControl -// ----------------------------------------------------------------------------- -// -CVtUiMainControl& CVtUiAppUi::MainControl() - { - __VTPRINTENTER( "VtUi.MainControl" ) - __VTPRINTEXIT( "VtUi.MainControl" ) - return *iInstance->iMainControl; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RemoteVideoControl -// ----------------------------------------------------------------------------- -// -CVtUiRemoteVideoControl& CVtUiAppUi::RemoteVideoControl() - { - __VTPRINTENTER( "VtUi.RemoteVideoControl" ) - __VTPRINTEXIT( "VtUi.RemoteVideoControl" ) - return *iInstance->iRemoteVideoControl; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoExit -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::DoExit( TAny* aAppUi ) - { - __VTPRINTENTER( "VtUi.DoExit" ) - CVtUiAppUi* self = static_cast< CVtUiAppUi* >( aAppUi ); - self->iAsyncCallback->Cancel(); - // Before exiting ensure there are no pending actions. - self->ActiveExecInitCancel( 0 ); - self->Exit(); - __VTPRINTEXIT( "VtUi.DoExit" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ExecuteCmdAsyncL -// ----------------------------------------------------------------------------- -// -CEikDialog* CVtUiAppUi::ExecuteCmdAsyncL( - CEikDialog** aDialogPtr, - const TVtEngCommandId aCommand, - TRequestStatus& aStatus ) - { - return DoExecuteCmdAsyncL( aDialogPtr, aCommand, NULL, aStatus ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ExecuteCmdAsyncL -// ----------------------------------------------------------------------------- -// -template< class T > -CEikDialog* CVtUiAppUi::ExecuteCmdAsyncL( - CEikDialog** aDialogPtr, - const TVtEngCommandId aCommand, - T& aParam, - TRequestStatus& aStatus ) - { - TPtrC8 params( reinterpret_cast< TUint8* >( &aParam ), sizeof( T ) ); - return DoExecuteCmdAsyncL( aDialogPtr, aCommand, ¶ms, aStatus ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoExecuteCmdAsyncL -// ----------------------------------------------------------------------------- -// -CEikDialog* CVtUiAppUi::DoExecuteCmdAsyncL( - CEikDialog** aDialogPtr, - const TVtEngCommandId aCommand, - TDesC8* aParams, - TRequestStatus& aStatus ) - { - __VTPRINT2( DEBUG_GEN, "VtUi.DoExecAsync.cmd=%d", aCommand ) - MVtEngCommandHandler& command = Model().CommandHandler(); - const TInt caps = command.GetCommandCaps( aCommand ); - - if ( caps >= KErrNone ) - { - const TBool asynchronous = - ( caps & MVtEngCommandHandler::EAttribAsync ); - - if ( asynchronous ) - { - CVtUiExecuteCmdDialog* dlg = - new ( ELeave ) CVtUiExecuteCmdDialog( - aDialogPtr, - Model().CommandHandler(), - *iEventObserver ); - dlg->ExecuteCmdLD( aCommand, aParams, &aStatus ); - return dlg; - } - else - { - command.ExecuteL( aCommand, aParams ); - RefreshStatesL(); - TRequestStatus* status = &aStatus; - User::RequestComplete( status, KErrNone ); - } - } - else - { - // Failed. - User::Leave( caps ); - } - - return NULL; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::Execute -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::Execute( const TVtEngCommandId aCommand, TDesC8* aParam ) - { - MVtEngCommandHandler& command = Model().CommandHandler(); - TRAPD( err, command.ExecuteL( aCommand, aParam ) ); -#ifdef VTDEBUG - if ( err != KErrNone ) - { - __VTPRINT3( DEBUG_GEN, "VtUi.Execute.Nok.cmd=%d,err=%d", aCommand, err ) - } -#endif // VTDEBUG - return err; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleForegroundChangedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleForegroundChangedL( - TBool aIsForeground ) - { - __VTPRINTENTER( "VtUi.HandleForegroundChangedL" ) - __VTPRINT2( DEBUG_GEN, "VtUi.foreground=%d", (TInt) aIsForeground ) - - - // Let the Engine know that Application's foregorund - // has changed. Then Engine can do some initalize/uninitalize - // before rendering due to the foreground state. - iState->PreHandleForegroundChangedL(aIsForeground); - - // These operations must be done before - // sending KVtEngSetUIForeground command to engine i.e. calling - // iState->HandleForegroundChangedL( aIsForeground ) - if ( !aIsForeground ) - { - // if capture mode is on stop it - if ( iUiStates->IsCaptureModeOn() ) - { - CmdCancelCaptureL(); - } - // if brightness or contrast feature is active stop those - MVtUiFeature* br = iFeatureManager->GetFeatureById( EVtUiFeatureIdBrightness ); - if ( br ) - { - __VTPRINT( DEBUG_GEN, "VtUi.HandleForegroundChangedL br" ) - if ( br->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.HandleForegroundChangedL br->STOP" ) - br->Stop(); - } - } - - MVtUiFeature* cr = iFeatureManager->GetFeatureById( EVtUiFeatureIdContrast ); - if ( cr ) - { - __VTPRINT( DEBUG_GEN, "VtUi.HandleForegroundChangedL cr" ) - if ( cr->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.HandleForegroundChangedL cr->STOP" ) - cr->Stop(); - } - } - - } - - TBool foregroundAndReady = EFalse; - if ( iState ) - { - foregroundAndReady = iState->HandleForegroundChangedL( aIsForeground ); - iUiStates->SetThisApplicationForeground( aIsForeground ); - } - if ( foregroundAndReady ) - { - // Refresh navi pane. This will start call duration updating - // if necessary. - RefreshNaviPaneL(); - } - else if ( !aIsForeground ) - { - - - iEventObserver->StopBeat(); - } - SetIncallBubbleAllowedInUsualL( !foregroundAndReady ); - __VTPRINTEXIT( "VtUi.HandleForegroundChangedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshL( const TInt aRefreshFlags ) - { - if ( aRefreshFlags & EUiStates ) - { - RefreshNaviPaneL(); - } - if ( aRefreshFlags & EBlind ) - { - RefreshBlind(); - } - if ( aRefreshFlags & ENaviPane ) - { - RefreshNaviPaneL(); - } - if ( aRefreshFlags & ESoftkeys ) - { - RefreshSoftkeysL(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleEngineResetL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleEngineResetL() - { - __VTPRINTENTER( "VtUi.HandleEngineResetL" ) - if ( iShutdownRequest ) - { - __VTPRINT( DEBUG_GEN, " VtUi.HandleEngineResetL shutdown" ) - User::RequestComplete( iShutdownRequest, KErrNone ); - iShutdownRequest = NULL; - } - __VTPRINTEXIT( "VtUi.HandleEngineResetL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StopWaitingImage -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StopWaitingImage() - { - if ( iInstance ) - { - iDownlinkWindow->SetWaiting( EFalse ); - iUiStates->SetWaitingForFirstFrame( EFalse ); - RemoteVideoControl().MakeVisible(ETrue); - } - } - -void CVtUiAppUi::StopWhiteBalanceOrColortone() - { - if( iEventObserver ) - { - MVtEngMedia::TCameraId currentCamId; - //CVtEngMediaHandler& mediaHandler = iEventObserver->Model().Media(); - ///mediaHandler.GetCurrentCameraId( currentCamId ); - iEventObserver->Model().Media().GetCurrentCameraId( currentCamId ); - __VTPRINT2( DEBUG_GEN, " CVtUiAppUi::StopWhiteBalance currentCamId is %d", currentCamId); - - CVtUiWhiteBalance* wb = static_cast< CVtUiWhiteBalance* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdWhiteBalance ) ); - CVtUiColorTone* ct = static_cast< CVtUiColorTone* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdColourTone ) ); - - // only when the current camera switch to the Primary to stop the wb - if( currentCamId == MVtEngMedia::EPrimaryCamera ) - { - - if( wb && ( wb->State() == MVtUiFeature::EActive ) ) - { - - wb->Stop(); - } - - if( ct && ( ct->State() == MVtUiFeature::EActive ) ) - { - ct->Stop(); - } - - return; - } - if( currentCamId == MVtEngMedia::ESecondaryCamera ) - { - if( wb && wb->IsPendingCmd() ) - wb->HandlePendingCmdL(); - if( ct && ct->IsPendingCmd() ) - ct->HandlePendingCmdL(); - } - } - } -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleLayoutChanged -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::HandleLayoutChanged() - { - iLayoutChangeCallback->CallBack(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DelayedHandleLayoutChanged -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::DelayedHandleLayoutChanged( TAny* aPtr ) - { - CVtUiAppUi* self = reinterpret_cast< CVtUiAppUi* > ( aPtr ); - self->iUiStates->SetDisableBlindSetting( ETrue ); - TRAPD( err, self->HandleLayoutChangedL() ); - self->iUiStates->SetDisableBlindSetting( EFalse ); - self->RefreshBlind(); - return err; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleLayoutChangedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleLayoutChangedL() - { - __VTPRINTENTER( "VtUi.LayoutChg" ) - if ( iState ) - { - iState->HandleLayoutChangedL(); - } - __VTPRINTEXIT( "VtUi.LayoutChg" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoHandleLayoutChangedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DoHandleLayoutChangedL() - { - __VTPRINTENTER( "VtUi.DoLayoutChg" ) - // Fully update rendering parameters - UpdateRenderingParametersL(); - // Notify engine about layout change - iLayoutChg = ETrue; - TRAPD( error, ExecuteCmdL( KVtEngHandleLayoutChange ) ); - iLayoutChg = EFalse; - - // Not ready error is allowed to happen (e.g. when sharing) - if ( error && ( error != KErrNotReady ) ) - { - User::Leave( error ); - } - else - { - __VTPRINT( DEBUG_GEN, - "VtUi.DoLayoutChg KVtEngHandleLayoutChange == KErrNotReady (ok)" ) - TVtEngCommandId pendingCommand = Model().CommandHandler().PendingCommand(); - if ( pendingCommand == KVtEngMuteOutgoingAudio || - pendingCommand == KVtEngUnmuteOutgoingAudio || - pendingCommand == KVtEngSetAudioRouting || - pendingCommand == KVtEngSetAudioVolume || - pendingCommand == KVtEngSetSource || - pendingCommand == KVtEngPrepareCamera || - pendingCommand == KVtEngUnfreeze ) - { - iUiStates->SetLayoutChangeNeeded( ETrue ); - } - } - // Notify component manager - iComponentManager->HandleLayoutChangeL(); - MVtUiFeature* dialer = - iFeatureManager->GetFeatureById( EVtUiFeatureIdDialer ); - const TBool dialerActive( dialer && - ( dialer->State() == MVtUiFeature::EActive ) ); - SwitchLayoutToFlatStatusPaneL( dialerActive ); - - // Update the cam's whiteBalance and colorTone cause layoutchange will renew the camera,so - // restore the last user setting - UpdateVBSettingL(); - - - if ( iDelayedCmd != 0 ) - { - __VTPRINT2( DEBUG_GEN, "VtUi.DoLayoutChg reexecute the delayed cmd=%d", iDelayedCmd); - if( iDelayedCmd == EAknSoftkeyOptions ) - { - ProcessCommandL( iDelayedCmd ); - } - else - { - HandleCommandL( iDelayedCmd ); - } - iDelayedCmd = 0; - } - __VTPRINTEXIT( "VtUi.DoLayoutChg" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleVideoFrameL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleVideoFrameL( - const TBool aLocal, - CFbsBitmap* aBitmap ) - { - if ( aLocal ) - { - iUplinkWindow->SetStreamBitmap( aBitmap ); - - if ( aBitmap ) - { - // If white balance or color tone setting feauture is - // active update feature's setting page's background. - CVtUiWhiteBalance* wb = static_cast< CVtUiWhiteBalance* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdWhiteBalance ) ); - - CVtUiColorTone* ct = static_cast< CVtUiColorTone* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdColourTone ) ); - - if ( wb ) - { - __VTPRINT( DEBUG_GEN,"VtUi.HandleVideoFrameL WB" ) - if ( wb->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN,"VtUi.HandleVideoFrameL WB update" ) - wb->UpdateBackground( aBitmap ); - } - } - if ( ct ) - { - __VTPRINT( DEBUG_GEN,"VtUi.HandleVideoFrameL CT" ) - if (ct->State() == MVtUiFeature::EActive) - { - __VTPRINT( DEBUG_GEN,"VtUi.HandleVideoFrameL CT update" ) - ct->UpdateBackground( aBitmap ); - } - } - } - } - else - { - iDownlinkWindow->SetStreamBitmap( aBitmap ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetVideoFrame -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetVideoFrame( - const TBool aLocal, - CFbsBitmap* aBitmap ) - { - if ( aLocal ) - { - } - else - { - iDownlinkWindow->SetStreamBitmapReserve( aBitmap ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleVideoFrameRemoteProblemL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleVideoFrameRemoteProblemL() - { - __VTPRINTENTER( "VtUi.HandleRemote" ) - HandleVideoFrameL( EFalse, NULL ); - __VTPRINTEXIT( "VtUi.HandleRemote" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleVideoFrameLocalProblemL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleVideoFrameLocalProblemL() - { - __VTPRINTENTER( "VtUi.HandleLocal" ) - // Camera might have changed - better to stop zoom. - HandleVideoFrameL( ETrue, NULL ); - __VTPRINTEXIT( "VtUi.HandleLocal" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RemoteVideoIsSQCif -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RemoteVideoIsSQCif( TBool aIsSQCif ) - { - iUiStates->SetUseSQCif( aIsSQCif ); - if ( iDownlinkWindow == iInstance->iMainControl ) - { - ControlUsesSQCif( aIsSQCif ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ControlUsesSQCif -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ControlUsesSQCif( TBool aIsSQCif ) - { - iInstance->iMainControl->SupportSQCif( aIsSQCif ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ChangeRemoteVideoLayoutL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ChangeRemoteVideoLayoutL() - { - HandleLayoutChanged(); - if ( iDownlinkWindow == iInstance->iMainControl ) - { - iDownlinkWindow->SetBlind( EFalse ); - StopWaitingImage(); - iInstance->iMainControl->DrawNow(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowImageInitializeProgressL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowImageInitializeProgressL() - { - __VTPRINTENTER( "VtUi.ShowImageInitializeProgressL" ) - ShowProgressDialogL( R_PROGRESS_DECODING_IMAGE_WAIT_NOTE, this ); - __VTPRINTEXIT( "VtUi.ShowImageInitializeProgressL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HideImageInitializeProgressL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HideImageInitializeProgressL() - { - __VTPRINTENTER( "VtUi.HideImageInitializeProgressL" ) - // if volume slider is visible hide it - CVtUiVolume* volume = static_cast< CVtUiVolume* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdVolume ) ); - if ( volume ) - { - volume->Stop(); - } - HideProgressDialogL(); - __VTPRINTEXIT( "VtUi.HideImageInitializeProgressL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CheckBeatL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CheckBeatL( const TBool aCallDurationEnabled ) - { - // Update call duration periodically if necessary. - const MVtEngSessionInfo::TSessionState state = Model().Session().State( EFalse ); - const TBool timerEnable = - ( aCallDurationEnabled ) && - ( ( state == MVtEngSessionInfo::EConnected ) || - ( state == MVtEngSessionInfo::ENegotiating ) || - ( state == MVtEngSessionInfo::EOpen ) ); - - if ( timerEnable && iUiStates->IsThisApplicationForeground() ) - { - iEventObserver->StartBeatL(); - } - else - { - iEventObserver->StopBeat(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleBeat -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleBeat() - { - TRAP_IGNORE( RefreshNaviPaneL(); ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowCameraInUseNoteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowCameraInUseNoteL() const - { - // The note must not be blocking. - - CAknNoteDialog* dlg = new ( ELeave ) CAknNoteDialog( NULL ); - - dlg->PrepareLC( R_VIDEOTELUI_INFORMATION_NOTE ); - dlg->ButtonGroupContainer().SetCommandSetL( R_AVKON_SOFTKEYS_OK_EMPTY ); - - HBufC* buf = StringLoader::LoadLC( R_VIDEOTELUI_QTN_INCAL_CLOSE_CAMCORDER ); - dlg->SetTextL( *buf ); - CleanupStack::PopAndDestroy( buf ); - - dlg->SetTone( CAknNoteDialog::EConfirmationTone ); - dlg->SetTimeout( CAknNoteDialog::EUndefinedTimeout ); - dlg->RunLD(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowNotAllowedNoteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowNotAllowedNoteL() const - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_TEXT_NOT_ALLOWED ); - - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowCallNotAllowedNoteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowCallNotAllowedNoteL() const - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_TEXT_CALL_NOT_ALLOWED ); - - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowOtherCameraNotUsableNoteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowOtherCameraNotUsableNoteL() const - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_QTN_ERR_CAM_SWAP ); - - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowUnableToOpenNoteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowUnableToOpenNoteL() const - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_QTN_ERR_UNABLE_TO_OPEN_IMAGE ); - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowImageDecodingErrorNoteL() - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_QTN_INCAL_NOTE_DECODING_FAILED ); - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowDRMNotAllowedNoteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowDRMNotAllowedNoteL() const - { - HBufC* prompt = - StringLoader::LoadLC( - R_VIDEOTELUI_QTN_ERR_DRM_NOT_ALLOWED ); - CAknInformationNote* note = - new ( ELeave ) CAknInformationNote( ETrue ); - note->ExecuteLD( *prompt ); - CleanupStack::PopAndDestroy( prompt ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetSoftkeysL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetSoftkeysL( const TInt aSoftkeyResourceId ) - { - if ( iCurrentSoftkeys != aSoftkeyResourceId ) - { - if ( iCba ) - { - iCba->SetCommandSetL( aSoftkeyResourceId ); - iCba->DrawNow(); - } - iCurrentSoftkeys = aSoftkeyResourceId; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetHiddenL -// Makes application visible / invisible in fast swap window. -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetHiddenL( - const TBool aHidden ) - { - CEikonEnv* eikonEnv = iEikonEnv; - CApaWindowGroupName* windowGroupName = - CApaWindowGroupName::NewLC( - eikonEnv->WsSession(), - iThisApplicationWgId ); - windowGroupName->SetHidden( aHidden ); - User::LeaveIfError( - windowGroupName->SetWindowGroupName( - eikonEnv->RootWin() ) ); - CleanupStack::PopAndDestroy( windowGroupName ); - - // Update application UID. - TUid applicationUid = KVtUiAppUid; - if ( aHidden ) - { - applicationUid.iUid = KVtUiTelephoneUid.iUid; - } - __VTPRINT2( DEBUG_GEN, "VtUi.SetHiddenL applicationUid.iUid=%x", - applicationUid.iUid ) - // Set application that is "default top application" - TInt originalTopAppUid = 0; - TInt err = RProperty::Get( - KPSUidUikon, - KUikVideoCallTopApp, - originalTopAppUid ); - __VTPRINT3( DEBUG_GEN, "VtUi.SetHiddenL orig. topApp=%x, err=%d", - originalTopAppUid, err ) - if ( originalTopAppUid != applicationUid.iUid && - iUiStates->IsDetailsReceived() ) - { - __VTPRINT( DEBUG_GEN, "VtUi.SetHiddenL Do write KUikVideoCallTopApp" ) - // Update key only if differs from original value and call - // has been answered - RProperty::Set( - KPSUidUikon, - KUikVideoCallTopApp, - applicationUid.iUid ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetCallIdL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetCallIdL( const TInt aCallId ) - { - HBufC* titlePane = - StringLoader::LoadLC( R_VIDEOTELUI_QTN_CALL_NUMBER_VIDEO, aCallId ); - TPtr ptr = titlePane->Des(); - AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr ); - TitlePaneL()->SetText( titlePane ); - CleanupStack::Pop( titlePane ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetCallNameL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::SetCallNameL( const TDesC& aName ) - { - HBufC* nameBuf = aName.Alloc(); - if ( nameBuf ) - { - TPtr ptr = nameBuf->Des(); - AknTextUtils::DisplayTextLanguageSpecificNumberConversion( ptr ); - TitlePaneL()->SetText( nameBuf ); - } - - return ( nameBuf != NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::BringTelephoneForeground -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::BringTelephoneToForeground() - { - __VTPRINTENTER( "VtUi.BringTelephoneToForeground" ) - // If Telephone application is running, then - // bring it to the foreground. - const TInt windowGroupId = TelephoneApplicationWgId(); - if ( windowGroupId ) - { - CEikonEnv* eikonEnv = iEikonEnv; - TApaTask task( eikonEnv->WsSession() ); - task.SetWgId( windowGroupId ); - task.BringToForeground(); - } - - // In any case, send this application to the background. - ChangeApplicationFocus( EFalse ); - __VTPRINTEXIT( "VtUi.BringTelephoneToForeground" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ChangeApplicationFocus -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ChangeApplicationFocus( const TBool aForeground ) - { - __VTPRINTENTER( "VtUi.ChangeApplicationFocus" ) - CEikonEnv* eikonEnv = iEikonEnv; - TApaTask task( eikonEnv->WsSession() ); - task.SetWgId( iThisApplicationWgId ); - if ( !aForeground ) - { - task.SendToBackground(); - } - else if ( !iUiStates->IsDeviceLockOn() ) - { - task.BringToForeground(); - } - __VTPRINTEXIT( "VtUi.ChangeApplicationFocus" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TelephoneApplicationWgId -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::TelephoneApplicationWgId() - { - TInt resultWgId = 0; - - TApaTaskList taskList( iEikonEnv->WsSession() ); - TInt appUid = 0; - - // Try first Telephone application. - if ( RProperty::Get( - KPSUidTelInformation, - KTelPhoneUid, - appUid ) == KErrNone ) - { - TApaTask task = taskList.FindApp( TUid::Uid( appUid ) ); - if ( task.Exists() ) - { - resultWgId = task.WgId(); - } - } - - // Then Idle application. - if ( !resultWgId && - ( RProperty::Get( - KPSUidAiInformation, - KActiveIdleUid, - appUid ) == KErrNone ) ) - { - TApaTask task = taskList.FindApp( TUid::Uid( appUid ) ); - if ( task.Exists() ) - { - resultWgId = task.WgId(); - } - } - - return resultWgId; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowNumberEntry -// ----------------------------------------------------------------------------- -// -inline TBool CVtUiAppUi::ShowNumberEntry() const - { - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::IsActiveIdleEnabledL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::IsActiveIdleEnabledL() const - { - TVtUiActiveIdleVariation activeIdleVariation; - return activeIdleVariation.IsActiveIdleEnabled(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CheckEngineFunctionality -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CheckEngineFunctionality() - { - const TBool prepareViewFinder = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngPrepareViewFinder ); - const TBool prepareRemoteRender = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngPrepareRemoteRender ); - const TBool prepareRemoteRenderDSA = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngPrepareRemoteRenderDSA ); - const TBool prepareRemoteRenderDP = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngPrepareRemoteRenderDP ); - const TBool stopViewFinder = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngStopViewFinder ); - const TBool startViewFinder = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngStartViewFinder ); - const TBool stopRemoteRender = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngStopRenderRemote ); - const TBool startRemoteRender = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngStartRenderRemote ); - const TBool setUIForeground = - iEventObserver->CommandSupportedAndSynchronous( - KVtEngSetUIForeground ); - - TVtUiDPVariation dpvariation; - TBool dpSupported( dpvariation.IsDPSupported() ); - - if ( !prepareViewFinder || - ( !prepareRemoteRender && !prepareRemoteRenderDSA && !dpSupported ) || - ( !prepareRemoteRender && !prepareRemoteRenderDP && dpSupported ) || - !stopViewFinder || - !startViewFinder || - !stopRemoteRender || - !startRemoteRender || - !setUIForeground ) - { - // Not supported - should never occur. - __VTPRINT( DEBUG_GEN, "VtUi.EngineFunc.ASSERT" ) - VtUiPanic::Panic( EVtUiPanicEngineFunctionalityAssert ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::Model -// ----------------------------------------------------------------------------- -// -CVtEngModel& CVtUiAppUi::Model() - { - return iEventObserver->Model(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::VideoTelephonyVariation -// ----------------------------------------------------------------------------- -// -const TVtUiVideoTelephonyVariation& CVtUiAppUi::VideoTelephonyVariation() const - { - return iVTVariation; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::NumberSource -// ----------------------------------------------------------------------------- -// -MVtUiNumberSource* CVtUiAppUi::NumberSource() const - { - return iNumberSource; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::NaviPaneL -// ----------------------------------------------------------------------------- -// -inline CAknNavigationControlContainer* CVtUiAppUi::NaviPaneL() - { - return - static_cast< CAknNavigationControlContainer* > - ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::TitlePaneL -// ----------------------------------------------------------------------------- -// -inline CAknTitlePane* CVtUiAppUi::TitlePaneL() - { - return - static_cast< CAknTitlePane* > - ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CleanupPushRefreshL -// ----------------------------------------------------------------------------- -// -inline void CVtUiAppUi::CleanupPushRefreshL() - { - CleanupStack::PushL( - TCleanupItem( DoRefresh, this ) ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CleanupPushEnableBlindL -// ----------------------------------------------------------------------------- -// -inline void CVtUiAppUi::CleanupPushEnableBlindL() - { - CleanupStack::PushL( - TCleanupItem( DoEnableBlindSetting, this ) ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::EnableCommandActivatingAndCleanupPushL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::EnableCommandActivatingAndCleanupPushL() - { - __VTPRINTENTER( "VtUi.EnableCommandActivatingAndCleanupPushL" ) - // add anyway to cleanup stack to avoid caring about stack balance - CleanupStack::PushL( - TCleanupItem( DoDisableCommandActivating, this ) ); - // but in case of consecutive calls on this don't refresh (avoid flicker) - const TBool alreadyActivating( iUiStates->IsCommandActivating() ); - // increases ref.count if alread set as activating - iUiStates->SetIsCommandActivating( ETrue ); - if ( !alreadyActivating ) - { - // refresh only when ref.count incremented from zero. - iCommandManager->RefreshL(); - } - __VTPRINTEXIT( "VtUi.EnableCommandActivatingAndCleanupPushL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoDisableCommandActivating -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DoDisableCommandActivating( TAny* aAny ) - { - CVtUiAppUi* self = - reinterpret_cast< CVtUiAppUi* >( aAny ); - TRAP_IGNORE( self->HandleCommandDeactivationL() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HandleCommandDeactivationL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HandleCommandDeactivationL() - { - __VTPRINTENTER( "VtUi.HandleCommandDeactivationL" ) - iUiStates->SetIsCommandActivating( EFalse ); - if ( !iUiStates->IsCommandActivating() ) - { - RefreshStatesL(); - } - __VTPRINTEXIT( "VtUi.HandleCommandDeactivationL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoEnableBlindSetting -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DoEnableBlindSetting( TAny* aAny ) - { - CVtUiAppUi* self = - reinterpret_cast< CVtUiAppUi* >( aAny ); - self->iUiStates->SetDisableBlindSetting( EFalse ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoRefresh -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DoRefresh( TAny* aAny ) - { - CVtUiAppUi* self = - reinterpret_cast< CVtUiAppUi* >( aAny ); - TRAP_IGNORE( self->RefreshL() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DoHandleExitTimeout -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::DoHandleExitTimeout( TAny* /*aAny*/ ) - { - __VTPRINT( DEBUG_GEN, "VtUi.Exit.Timer.EXPIRED!" ) - VtUiPanic::Panic( EVtUiPanicApplicationShutdownTimeout ); - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::IsViewFinderInMainPane -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::IsViewFinderInMainPane() const - { - return !( IsViewFinderInContextPane() ); - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::IsViewFinderInContextPane -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::IsViewFinderInContextPane() const - { - return ( iUplinkWindow == iInstance->iContextControl ); - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::SwitchViewFinderToMainPaneL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SwitchViewFinderToMainPaneL( TBool aUpdateState ) - { - __VTPRINTENTER( "VtUi.SwitchViewFinderToMainPaneL" ) - //change local video in to main pane - if( IsViewFinderInContextPane() ) - { - //flag indicates the initial position of uplink window before freeze - if ( aUpdateState ) - { - iUiStates->SetViewFindersInitialPlaceContextPane( ETrue ); - } - HandleCommandL( EVtUiCmdSwapImagesPlaces ); - } - else - { - if ( aUpdateState ) - { - iUiStates->SetViewFindersInitialPlaceContextPane( EFalse ); - } - } - __VTPRINTEXIT( "VtUi.SwitchViewFinderToMainPaneL" ) - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::SwitchViewFinderToContextPaneL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SwitchViewFinderToContextPaneL( TBool aUpdateState ) - { - __VTPRINTENTER( "VtUi.SwitchViewFinderToContextPaneL" ) - //change local video in to context pane - if( !IsViewFinderInContextPane() ) - { - //flag indicates the initial position of uplink window before freeze - if ( aUpdateState ) - { - iUiStates->SetViewFindersInitialPlaceContextPane( EFalse ); - } - HandleCommandL( EVtUiCmdSwapImagesPlaces ); - } - else - { - if ( aUpdateState ) - { - iUiStates->SetViewFindersInitialPlaceContextPane( ETrue ); - } - } - __VTPRINTEXIT( "VtUi.SwitchViewFinderToContextPaneL" ) - } - -// ----------------------------------------------------------------------------- -// VtUiAppUi::RestoreViewFinderL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RestoreViewFinderL() - { - __VTPRINTENTER( "VtUi.RestoreViewFinderL" ) - if( IsViewFinderInContextPane() ) - { - if( !iUiStates->IsViewFindersInitialPlaceContextPane() ) - { - SwitchViewFinderToMainPaneL( EFalse ); - } - } - else - { - if( iUiStates->IsViewFindersInitialPlaceContextPane() ) - { - SwitchViewFinderToContextPaneL( EFalse ); - } - } - __VTPRINTEXIT( "VtUi.RestoreViewFinderL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::DialogDismissedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::DialogDismissedL( TInt ) - { - __VTPRINTENTER( "VtUi.DialogDismissedL" ) - MVtUiFeature* tb = - iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ); - if ( tb ) - { - if ( !iTbPeriodic ) - { - iTbPeriodic = CPeriodic::NewL( CActive::EPriorityStandard ); - } - iTbPeriodic->Cancel(); - // try to strat toolbar feature immediately - iTbPeriodic->Start( 0, KPeriodTime, TCallBack( DoTryToStartTbL, this ) ); - } - __VTPRINTEXIT( "VtUi.DialogDismissedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::UpdateContextPaneIconL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::UpdateContextPaneIconL() - { - CEikStatusPane* statusPane = StatusPane(); - - if ( statusPane ) - { - if ( statusPane->PaneCapabilities( - TUid::Uid( EEikStatusPaneUidContext ) ).IsPresent() ) - { - CAknContextPane* contextPane = NULL; - TRAPD ( err, contextPane = static_cast ( - statusPane->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) ) ); - if ( err != KErrNone || ! contextPane ) - { - return; - } - - // Set a new context pane icon - CFbsBitmap* newBitmap = new(ELeave) CFbsBitmap; - CleanupStack::PushL( newBitmap ); - User::LeaveIfError( newBitmap->Create( TSize( 1, 1 ), EGray2 ) ); - - CFbsBitmap* newMask = new(ELeave) CFbsBitmap; - CleanupStack::PushL( newMask ); - User::LeaveIfError( newMask->Create( TSize( 1, 1 ), EGray2 ) ); - - // create an off-screen device and context - CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( newMask ); - CleanupStack::PushL( bitmapDevice ); - CFbsBitGc* maskGc = NULL; - User::LeaveIfError( bitmapDevice->CreateContext( maskGc ) ); - User::LeaveIfNull( maskGc ); - CleanupStack::PushL( maskGc ); - maskGc->SetPenStyle( CGraphicsContext::ENullPen ); - maskGc->SetBrushColor( TRgb::Gray2( 1 ) ); // transparency - maskGc->SetBrushStyle( CGraphicsContext::ESolidBrush ); - maskGc->Clear(); - CleanupStack::PopAndDestroy( 2 ); // maskGc, bitmapDevice - - // newBitmap, new Mask ownership transfer - contextPane->SetPicture( newBitmap, newMask ); - CleanupStack::Pop( 2 ); // newBitmap, newMask - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetIncallBubbleAllowedInUsualL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetIncallBubbleAllowedInUsualL( TBool aAllowed ) - { - __VTPRINT2( DEBUG_GEN, "Ui.SetIncallBubbleAllowedInUsualL: %d", aAllowed ) - - // If call is being disconnected, we do not want to show in-call bubble - // anymore but dismiss it. - if( iUiStates->ExecState() == TVtUiStates::EExecStateResetting || - iUiStates->ExecState() == TVtUiStates:: EExecStateFinalized ) - { - __VTPRINT2( DEBUG_GEN, "Ui.SetIncallBubbleAllowedInUsualL forced to false: %d", aAllowed ) - aAllowed = EFalse; - } - - if ( iIncallBubble ) - { - iIncallBubble->SetIncallBubbleAllowedInUsualL( aAllowed ); - } - __VTPRINT( DEBUG_GEN, "Ui.SetIncallBubbleAllowedInUsualL>" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ShowProgressDialogL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::ShowProgressDialogL( TInt aResourceId, - MProgressDialogCallback* aCallback ) - { - __VTPRINTENTER( "VtUi.ShowProgressDialogL" ) - if( iProgressDlg ) - { - User::Leave( KErrNotReady ); - } - iProgressDlg = new ( ELeave ) CAknProgressDialog( - reinterpret_cast< CEikDialog** >( &iProgressDlg ), ETrue ); - iProgressDlg->SetCallback( aCallback ); - iProgressDlg->ExecuteLD( aResourceId ); - __VTPRINTEXIT( "VtUi.ShowProgressDialogL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::HideProgressDialogL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::HideProgressDialogL() - { - __VTPRINTENTER( "VtUi.HideProgressDialogL" ) - if( iProgressDlg ) - { - iProgressDlg->ProcessFinishedL(); - } - __VTPRINTEXIT( "VtUi.HideProgressDialogL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::AsyncViewFinderToMainPaneAndShare -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::AsyncViewFinderToMainPaneAndShare( TAny* aPtr ) - { - __VTPRINTENTER( "VtUi.AsyncViewFinderToMainPaneAndShare" ) - CVtUiAppUi* self = reinterpret_cast< CVtUiAppUi* >( aPtr ); - - TRAPD( result, { self->SwitchViewFinderToMainPaneL(); - self->CmdShareImageL();} ); - __VTPRINTEXITR( "VtUi.AsyncViewFinderToMainPaneAndShare %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::AsyncShare -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::AsyncShare( TAny* aPtr ) - { - __VTPRINTENTER( "VtUi.AsyncShare" ) - CVtUiAppUi* self = reinterpret_cast< CVtUiAppUi* >( aPtr ); - TRAPD( result, self->CmdShareImageL() ); - __VTPRINTEXITR( "VtUi.AsyncShare %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::AsyncShowErrorAndRestartShare -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::AsyncShowErrorAndRestartShare( TAny* aPtr ) - { - __VTPRINTENTER( "VtUi.AsyncShowErrorAndRestartShare" ) - CVtUiAppUi* self = reinterpret_cast< CVtUiAppUi* >( aPtr ); - TRAPD( result, { self->ShowUnableToOpenNoteL(); - self->HandleCommandL( EVtUiCmdShareObjectImage ); } ); - __VTPRINTEXITR( "VtUi.AsyncShowErrorAndRestartShare %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::GetCameraOrientations -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::GetCameraOrientations() - { - __VTPRINTENTER( "VtUi.GetCameraOrientations" ) - MVtEngMedia& media = Model().Media(); - media.GetCameraOrientations( iPrimaryCameraOrientation, - iSecondaryCameraOrientation ); - __VTPRINTEXIT( "VtUi.GetCameraOrientations" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetInitialCameraOrientationL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetInitialCameraOrientationL() - { - __VTPRINTENTER( "VtUi.SetInitialCameraOrientationL" ) - MVtEngMedia::TCameraId cameraId; - MVtEngMedia& media( Model().Media() ); - media.GetCurrentCameraId( cameraId ); - MVtEngMedia::TCameraOrientation targetOrientation( - cameraId == MVtEngMedia::EPrimaryCamera ? - iPrimaryCameraOrientation : - ( cameraId == MVtEngMedia::ESecondaryCamera ? - iSecondaryCameraOrientation : - iCurrentCameraOrientation ) ); - if ( iCurrentCameraOrientation != targetOrientation ) - { - __VTPRINT3( DEBUG_GEN, - "VtUi.SetInitialCameraOrientationL Old=%d New=%d", - iCurrentCameraOrientation, - targetOrientation ) - SetOrientationL( engToAppOrientation[ targetOrientation ] ); - iCurrentCameraOrientation = targetOrientation; - } - __VTPRINTEXIT( "VtUi.SetInitialCameraOrientationL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::SetCameraOrientationL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::SetCameraOrientationL() - { - __VTPRINTENTER( "VtUi.SetCameraOrientationL" ) - MVtEngMedia::TCameraOrientation newOrientation = iCurrentCameraOrientation; - MVtEngMedia::TCameraId cameraId; - MVtEngMedia& media = Model().Media(); - if ( media.GetCurrentCameraId( cameraId ) == KErrNone ) - { - switch ( cameraId ) - { - case MVtEngMedia::EPrimaryCamera: - __VTPRINT( DEBUG_GEN, "VtUi.SetCameraOrient.Primary") - if( iCurrentCameraOrientation != iPrimaryCameraOrientation ) - { - newOrientation = iPrimaryCameraOrientation; - } - break; - - case MVtEngMedia::ESecondaryCamera: - __VTPRINT( DEBUG_GEN, "VtUi.SetCameraOrient.Secondary") - if ( iCurrentCameraOrientation != iSecondaryCameraOrientation ) - { - newOrientation = iSecondaryCameraOrientation; - } - break; - - default: - break; - } - } - - __VTPRINT2( DEBUG_GEN, "VtUi.SetCameraOrient.Cur=%d", - iCurrentCameraOrientation ) - __VTPRINT2( DEBUG_GEN, "VtUi.SetCameraOrient.New=%d", - newOrientation ) - - if ( iCurrentCameraOrientation != newOrientation ) - { - // map camera orientation to appui layout orientation - TAppUiOrientation newAppUiOrientation; - if ( newOrientation == MVtEngMedia::EOrientationLandscape ) - { - __VTPRINT( DEBUG_GEN, "VtUi.SetCameraOrient=LS") - newAppUiOrientation = EAppUiOrientationLandscape; - } - else if ( newOrientation == MVtEngMedia::EOrientationPortrait ) - { - __VTPRINT( DEBUG_GEN, "VtUi.SetCameraOrient=PR") - newAppUiOrientation = EAppUiOrientationPortrait; - } - else - { - __VTPRINT( DEBUG_GEN, "VtUi.SetCameraOrient=OL") - newAppUiOrientation = EAppUiOrientationUnspecified; - } - SetOrientationL( newAppUiOrientation ); - } - __VTPRINTEXIT( "VtUi.SetCameraOrientationL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshStatesL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshStatesL() - { - __VTPRINTENTER( "VtUi.RefreshStatesL" ) - // If transaction (set of commands) is pending refresh in delayed until - // all of them are processed. - if ( !iUiStates->IsCommandActivating() ) - { - iUiStates->Update(); - if ( iUiStates->IsThisApplicationForeground() ) - { - iCommandManager->RefreshL(); - } - } - __VTPRINTEXIT( "VtUi.RefreshStatesL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CmdAdjustVideoL -// ----------------------------------------------------------------------------- -// - void CVtUiAppUi::CmdAdjustVideoL( TInt aCommand ) - { - __VTPRINTENTER( "VtUi.CmdAdjustVideoL" ) - TInt featureId( -1 ); - switch ( aCommand ) - { - case EVtUiCmdAdjustVideoVideoQuality: - featureId = EVtUiFeatureIdVideoQuality; - break; - case EVtUiCmdAdjustVideoWhiteBalance: - featureId = EVtUiFeatureIdWhiteBalance; - break; - case EVtUiCmdAdjustVideoBrightness: - featureId = EVtUiFeatureIdBrightness; - break; - case EVtUiCmdAdjustVideoContrast: - featureId = EVtUiFeatureIdContrast; - break; - case EVtUiCmdAdjustVideoColourTone: - featureId = EVtUiFeatureIdColourTone; - break; - default: - break; - } - MVtUiFeature* vb = iFeatureManager->GetFeatureById( featureId ); - if ( vb ) - { - __VTPRINT( DEBUG_GEN, "VtUi.CmdAdjustVideoL.StartL" ); - vb->StartL(); - } - __VTPRINTEXIT( "VtUi.CmdAdjustVideoL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::AppUiInitDoneDoPostInitL -// ----------------------------------------------------------------------------- -// - void CVtUiAppUi::AppUiInitDoneDoPostInitL() - { - MVtUiFeature* tb = iFeatureManager->GetFeatureById( EVtUiFeatureIdToolbar ); - if ( tb ) - { - if ( !iTbPeriodic ) - { - iTbPeriodic = CPeriodic::NewL( CActive::EPriorityStandard ); - } - iTbPeriodic->Cancel(); - // try to strat toolbar feature immediately - iTbPeriodic->Start( 0, KPeriodTime, TCallBack( DoTryToStartTbL, this ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::ProcessWsEventIfZoomModeIsActiveL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::ProcessWsEventIfZoomModeIsActiveL( const TWsEvent& aEvent ) - { - __VTPRINTENTER( "VtUi.ProWsEvtIfZoomActivedL" ) - const TInt type = aEvent.Type(); - switch( type ) - { - case EEventKey: - case EEventKeyUp: - case EEventKeyDown: - { - const TKeyEvent* keyEvent = aEvent.Key(); - - - // Up and down arrow key events does the zooming, - // and should be forwarded to appui's key event handler. - // Also ETrue must be returned, so that other controls - // would not get these key events. - TEventCode eventCode = (TEventCode)aEvent.Type(); - if ( keyEvent->iScanCode == EStdKeyUpArrow || - keyEvent->iScanCode == EStdKeyDownArrow || - keyEvent->iCode == EKeyZoomIn || - keyEvent->iCode == EKeyZoomOut ) - { - HandleKeyEventL( *keyEvent, eventCode ); - __VTPRINTEXIT( "VtUi.ProWsEvtIfZoomActivedL" ) - return ETrue; - } - __VTPRINT( DEBUG_GEN, "VtUi.HandleWsEventL zoom mode set" ); - // If user selects zoom mode from options menu EEventKeyUp - // will be generated after that. Therefore this event must be - // ignored. Also EEventKeyDown are ignored. This means that - // only EEventKey events can dismiss the zoom mode. - if ( type != EEventKeyUp && type != EEventKeyDown ) - { - // If zoom mode is on only zoom mode button is available in - // toolbar. Pressing the zoom mode button in toolbar - // should not dismiss the zoom mode, that is why this events - // are ignored. If toolbar is not available and - // also EKeyDevice3 (selection key) event should dismiss - // the zoom mode. - if ( keyEvent->iCode != EKeyDevice3 || - ( keyEvent->iCode == EKeyDevice3 && - !iUiStates->IsToolbarAvailable() ) ) - { - __VTPRINT( DEBUG_GEN, "VtUi.ProWsEvtIfZoomActivedL.EKeyDevice3" ); - SetZoomModeL( EFalse ); - } - } - } - break; - - case EEventPointer: - __VTPRINT( DEBUG_GEN, "VtUi.ProWsEvtIfZoomActivedL.EEventPointer" ); - break; - - case KAknHardwareLayoutSwitch: - // Window server event used when layout changes - __VTPRINT( DEBUG_GEN, "VtUi.ProcessWsEventIfZoomModeIsActiveL.LayoutSwitch" ); - break; - - case EEventScreenDeviceChanged: - // The screen size mode has changed, for instance when the cover on a phone - // that supports screen flipping is opened or closed. - __VTPRINT( DEBUG_GEN, "VtUi.ProcessWsEventIfZoomModeIsActiveL.ScreenChanged" ); - break; - - case EVtUiWsEventNumberSourceDeactivate: - // Number source deactivated - __VTPRINT( DEBUG_GEN, "VtUi.ProWsEvtIfZoomActivedL.NumberDeactivate" ); - break; - - default: - __VTPRINT( DEBUG_GEN, "VtUi.ProWsEvtIfZoomActivedL.default" ); - // EVtUiWsEventNumberSourceActivate could be generated through number buttons - // and execution runs to default statement - SetZoomModeL( EFalse ); - break; - } - __VTPRINTEXIT( "VtUi.ProWsEvtIfZoomActivedL2" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::StopSliders() -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::StopSliders() - { - __VTPRINTENTER( "VtUi.StopSliders" ) - if( iUiStates->IsBrightnessModeOn() ) - { - // if brightness feature is active, stop that - MVtUiFeature* br = iFeatureManager->GetFeatureById( EVtUiFeatureIdBrightness ); - if ( br ) - { - if ( br->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopSliders br->STOP" ) - br->Stop(); - } - } - } - // if contrast feature is active, stop that - if( iUiStates->IsContrastModeOn() ) - { - // if contrast feature is active, stop that - MVtUiFeature* cr = iFeatureManager->GetFeatureById( EVtUiFeatureIdContrast ); - if ( cr ) - { - if ( cr->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopSliders cr->STOP" ) - cr->Stop(); - } - } - } - // if volume feature is active, stop that - if( iUiStates->IsVolumeModeOn() ) - { - // if volume feature is active, stop that - MVtUiFeature* vl = iFeatureManager->GetFeatureById( EVtUiFeatureIdVolume ); - if ( vl ) - { - if ( vl->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopSliders vl->STOP" ) - vl->Stop(); - } - } - } - // if zoom feature is active, stop that - if( iUiStates->IsZoomModeOn() ) - { - // if zoom feature is active, stop that - MVtUiFeature* zm = iFeatureManager->GetFeatureById( EVtUiFeatureIdZoom ); - if ( zm ) - { - if ( zm->State() == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "VtUi.StopSliders zm->STOP" ) - zm->Stop(); - } - } - } - __VTPRINTEXIT( "VtUi.StopSliders" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CanSwapImagePlaces() -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::CanSwapImagePlaces() - { - __VTPRINTENTER( "VtUi.CanSwapImagePlaces" ) - TTime now; - now.HomeTime(); - // User can swap image places if the frequency is lower than maximum frequency. - if ( now.MicroSecondsFrom( iLastSwapTime ).Int64() >= KVtUiMaxSwapImagesFreq ) - { - __VTPRINT( DEBUG_GEN, "VtUi.Swap can swap image" ) - iLastSwapTime = now; - return ETrue; - } - else - { - __VTPRINT( DEBUG_GEN, "VtUi.Swap can not swap image" ) - return EFalse; - } - __VTPRINTEXIT( "VtUi.CanSwapImagePlaces" ) - } - -// Implementation of CVtUiAppUi::CInstance - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CInstance::CInstance -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CInstance::CInstance( CVtUiAppUi& aAppUi ) - : iAppUi( aAppUi ) - { - } - -void CVtUiAppUi::CInstance::CreateRemoteVideoControl() - { - iRemoteVideoControl = CVtUiRemoteVideoControl::NewL( iAppUi ); - iRemoteVideoControl->MakeVisible(EFalse); - iMainControl->SetRemoteVideoControl( iRemoteVideoControl ); - iMainControl->LayoutRemoteVideo(); - - iAppUi.AddToStackL( iRemoteVideoControl ); - - iRemoteVideoControlInStack = ETrue; - - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CInstance::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CInstance::ConstructL() - { - iBitmapManager = new ( ELeave ) CVtUiBitmapManager; - - TRect parent; - TAknWindowLineLayout control; - - VtUiLayout::GetApplicationParentRect( parent ); - iMainControl = CVtUiMainControl::NewL( *iBitmapManager, - *iAppUi.iUiStates ); - - VtUiLayout::GetMainPaneLayout( control ); - AknLayoutUtils::LayoutControl( iMainControl, parent, control ); - - iAppUi.AddToStackL( iMainControl ); - iMainControlInStack = ETrue; - - TAknLayoutRect layout; - layout.LayoutRect( parent, control ); - iNumberEntryActivation = - new ( ELeave ) CVtUiNumberEntryActivationControl( iAppUi ); - iNumberEntryActivation->ConstructL( layout.Rect() ); - - iContextControl = CVtUiContextControl::NewL( - *iBitmapManager, - iAppUi, - *iAppUi.iUiStates ); - - VtUiLayout::GetFirstWindowBackgroundLayout( - control ); - AknLayoutUtils::LayoutControl( iContextControl, parent, control ); - iAppUi.AddToStackL( iContextControl ); - iContextControlInStack = ETrue; - - iNaviPane = - CVtUiNaviPane::NewL( - *( iAppUi.NaviPaneL() ), - iAppUi ); - - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CInstance::LayoutChanged -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CInstance::LayoutChanged() - { - // Layout controls. - TRect parent; - TAknWindowLineLayout control; - VtUiLayout::GetApplicationParentRect( parent ); - VtUiLayout::GetMainPaneLayout( control ); - AknLayoutUtils::LayoutControl( iMainControl, parent, control ); - if(iMainControl) - iMainControl->LayoutRemoteVideo(); - AknLayoutUtils::LayoutControl( iNumberEntryActivation, parent, control ); - VtUiLayout::GetFirstWindowBackgroundLayout( control ); - AknLayoutUtils::LayoutControl( iContextControl, parent, control ); - if(iContextControl) - iContextControl->LayoutRemoteVideo(); - - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CInstance::VolumeKeyPressedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CInstance::VolumeKeyPressedL() - { - __VTPRINTENTER( "CVtUiAppUi.VolumeKeyPressedL" ) - // if the application is in foreground show volume sliders - if ( iAppUi.IsForeground() ) - { - // If application is shutting down, no need to show volume popup - if ( iAppUi.iState == NULL || - iAppUi.iState == - TVtUiStateResetting::InstanceL( iAppUi, *iAppUi.iUiStates ) ) - { - return; - } - - CVtUiVolume* volume = static_cast< CVtUiVolume* >( - iAppUi.iFeatureManager->GetFeatureById( EVtUiFeatureIdVolume ) ); - if ( volume ) - { - // If the capture mode is on we should - // end the capture mode - if( iAppUi.iUiStates->IsCaptureModeOn() ) - { - iAppUi.CmdCancelCaptureL(); - } - volume->StartL(); - } - } - __VTPRINTEXIT( "CVtUiAppUi.VolumeKeyPressedL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CInstance::NewL -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CInstance* CVtUiAppUi::CInstance::NewL( CVtUiAppUi& aAppUi ) - { - CInstance* self = new ( ELeave ) CInstance( aAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CInstance::~CInstance -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CInstance::~CInstance() - { - if ( iMainControl && iMainControlInStack ) - { - iAppUi.RemoveFromStack( iMainControl ); - } - if ( iContextControl && iContextControlInStack ) - { - iAppUi.RemoveFromStack( iContextControl ); - } - if(iRemoteVideoControl &&iRemoteVideoControlInStack) - { - iAppUi.RemoveFromStack( iRemoteVideoControl ); - } - delete iMainControl; - delete iContextControl; - delete iRemoteVideoControl; - delete iNumberEntryActivation; - delete iNaviPane; - delete iBitmapManager; - } - -// Implementation of CVtUiAppUi::CEventObserver - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::CEventObserver -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CEventObserver::CEventObserver( CVtUiAppUi& aAppUi ) - : iAppUi( aAppUi ), - iCommandObservers( KVtUiCommandObserverArrayGranularity ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::ConstructL() - { - iModel = CVtEngModel::NewL( *this, *this ); - - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::NewL -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CEventObserver* CVtUiAppUi::CEventObserver::NewL( - CVtUiAppUi& aAppUi ) - { - CEventObserver* self = new ( ELeave ) CEventObserver( aAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::~CEventObserver -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CEventObserver::~CEventObserver() - { - iCommandObservers.Close(); - - delete iModel; - delete iBeat; - - delete iRemConInterfaceSelector; - iRemConCoreApiTarget = NULL; // not owned. - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::Model -// ----------------------------------------------------------------------------- -// -inline CVtEngModel& CVtUiAppUi::CEventObserver::Model() - { - return *iModel; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::CreateRemConSessionL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::CreateRemConSessionL() - { - __VTPRINTENTER( "VtUiComms.CreateRemCon" ) - // If one of the iRemCon* pointers equals to NULL, then all of them are - // NULL. - if ( !iRemConInterfaceSelector ) - { - CRemConInterfaceSelector* interfaceSelector = - CRemConInterfaceSelector::NewL(); - CleanupStack::PushL( interfaceSelector ); - - CRemConCoreApiTarget* coreApiTarget = - CRemConCoreApiTarget::NewL( *interfaceSelector, *this ); - // The coreApiTarget instance is owned by interfaceSelector instance. - // This instance must implement MRemConCoreApiTargetObserver interface. - CleanupStack::PushL( coreApiTarget ); - interfaceSelector->OpenTargetL(); - - iRemConVolumeRepeatTimer = CPeriodic::NewL( CActive::EPriorityHigh ); - - CleanupStack::Pop( coreApiTarget ); - CleanupStack::Pop( interfaceSelector ); - - iRemConInterfaceSelector = interfaceSelector; - iRemConCoreApiTarget = coreApiTarget; - } - __VTPRINTEXIT( "VtUiComms.CreateRemCon" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::DeleteRemConSession -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::DeleteRemConSession() - { - delete iRemConVolumeRepeatTimer; - iRemConVolumeRepeatTimer = NULL; - - delete iRemConInterfaceSelector; - iRemConInterfaceSelector = NULL; - - iRemConCoreApiTarget = NULL; // not owned. - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::CommandSupported -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::CEventObserver::CommandSupported( - const TInt aCommandId ) const - { - const TInt caps = iModel->CommandHandler().GetCommandCaps( aCommandId ); - return - ( caps >= KErrNone ) && - ( caps & MVtEngCommandHandler::EAttribSupported ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::CommandSupportedAndSynchronous -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::CEventObserver::CommandSupportedAndSynchronous( - const TInt aCommandId ) const - { - const TInt caps = iModel->CommandHandler().GetCommandCaps( aCommandId ); - return - ( caps >= KErrNone ) && - ( caps & MVtEngCommandHandler::EAttribSupported ) && - ( ~caps & MVtEngCommandHandler::EAttribAsync ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::AddObserverL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::AddObserverL( - MVtEngCommandObserver& aObserver ) - { - User::LeaveIfError( - iCommandObservers.Append( &aObserver ) ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::RemoveObserver -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::RemoveObserver( - MVtEngCommandObserver& aObserver ) - { - const TInt pos = iCommandObservers.Find( &aObserver ); - if ( pos != KErrNotFound ) - { - if ( !iInCommandPerformed ) - { - iCommandObservers.Remove( pos ); - } - else - { - iCommandObservers[ pos ] = NULL; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::StartBeatL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::StartBeatL() - { - if ( !iBeat ) - { - iBeat = CHeartbeat::NewL( CActive::EPriorityStandard ); - } - - if ( !iBeat->IsActive() ) - { - iBeat->Start( ETwelveOClock, this ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::StopBeat -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::StopBeat() - { - delete iBeat; - iBeat = NULL; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::StopVolumeRepeatTimer -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::StopVolumeRepeatTimer() - { - iRemConVolumeRepeatTimer->Cancel(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::HandleVtEventL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::HandleVtEventL( - TInt aEvent ) - { - __VTPRINTENTER( "VtUiComms.HandleVtEventL" ) - __VTPRINT2( DEBUG_GEN, "VtUi.HandleEvt=%d", aEvent ) - - /** Allow application state to handle event first. It may also deny further - * handling by indicating the event was handled */ - if ( iAppUi.iState && - iAppUi.iState->HandleVtEventL( aEvent ) - == TVtUiAppStateBase::EEventHandled ) - { - __VTPRINTEXITR( "VtUiComms.HandleVtEventL %d", 0 ) - return; - } - - TInt callBits = EVtUiRefreshStates; - - // New camera orientation - switch( aEvent ) - { - case KVtEngSourceChanged: - callBits |= EVtUiSetOrientation; - break; - default: - break; - } - - switch( aEvent ) - { - case KVtEngSourceChanged: - callBits |= EVtUiStopWBOrColortone; - break; - default: - break; - } - - switch( aEvent ) - { - case KVtEngSessionWaitingCallActive: - case KVtEngSessionWaitingCallInactive: - iAppUi.HandleWaitingStateChange( - aEvent == KVtEngSessionWaitingCallActive ); - break; - default: - break; - } - switch( aEvent ) - { - case KVtEngShareImageInitializeBegin: - callBits |= EVtUiShowImageInitializingProgress; - break; - - case KVtEngShareImageInitializeEnd: - callBits |= EVtUiHideImageInitializingProgress; - break; - - case KVtEngShareImageDecodingError: - callBits |= EVtUiShowDecodingError; - break; - - default: - break; - } - - // Handle rendering problems. - switch ( aEvent ) - { - case KVtEngRemoteRenderingProblem: - callBits |= EVtUiHandleVideoFrameRemoteProblem; - break; - - case KVtEngViewFinderStopped: - case KVtEngLocalRenderingProblem: - callBits |= EVtUiHandleVideoFrameLocalProblem; - break; - - default: - break; - } - - // Refresh navipane. - switch ( aEvent ) - { - case KVtEngSourceChanged: - case KVtEngCameraChanged: - case KVtEngSessionStateChanged: - case KVtEngDurationSettingChanged: - case KVtEngAudioOutputVolumeChanged: - case KVtEngAudioRoutingChanged: - case KVtEngAudioMuted: - case KVtEngAudioUnmuted: - callBits |= EVtUiRefreshNaviPane; - break; - - default: - break; - } - - // Refresh softkeys. - switch ( aEvent ) - { - case KVtEngSourceChanged: - case KVtEngSourceCapsChanged: - case KVtEngSessionAnswerPossible: - case KVtEngSessionStateChanged: - case KVtEngAudioRoutingChanged: - case KVtEngAudioRoutingAvailabilityChanged: - case KVtEngAudioMuted: - case KVtEngAudioUnmuted: - case KVtEngLCHProviderSwitchDone: - callBits |= EVtUiRefreshSoftkeys; - break; - - default: - break; - } - - // Refresh blind status - switch ( aEvent ) - { - case KVtEngSourceChanged: - case KVtEngRemoteVideoPaused: - case KVtEngRemoteVideoResumed: - case KVtEngRemoteVideoStarted: - case KVtEngRemoteVideoStopped: - case KVtEngLCHProviderSwitchDone: - callBits |= EVtUiRefreshBlind; - break; - - default: - break; - } - - // Check if it's required to stop "waiting image" display. - switch ( aEvent ) - { - case KVtEngRemoteVideoResumed: - case KVtEngRemoteVideoStarted: - callBits |= EVtUiStopWaitingImage; - break; - - default: - break; - } - - // Check if it is needed to set a new layout for remote renderer. - switch ( aEvent ) - { - case KVtEngResolutionToQCIF: - callBits |= EVtUiChangeRemoteVideoLayout; - iAppUi.RemoteVideoIsSQCif( EFalse ); - break; - case KVtEngResolutionToSQCIF: - callBits |= EVtUiChangeRemoteVideoLayout; - iAppUi.RemoteVideoIsSQCif( ETrue ); - break; - default: - break; - } - - switch ( aEvent ) - { - case KVtEngAudioRoutingChanged: - case KVtEngAudioRoutingAvailabilityChanged: - case KVtEngMediaOutgoingVideoChannelStatusChanged: - case KVtEngMediaOutgoingAudioChannelStatusChanged: - callBits |= EVtUiMediaStateChanged; - break; - - case KVtEngAudioVolumeMin: - iAppUi.KeySounds()->PlaySound( EAvkonSIDVolumeMinTone ); - break; - - case KVtEngAudioVolumeMax: - iAppUi.KeySounds()->PlaySound( EAvkonSIDVolumeMaxTone ); - break; - - default: - break; - } - - // Refresh Menu. - switch ( aEvent ) - { - case KVtEngSourceChanged: - callBits |= EVtUiRefreshMenu; - callBits |= EVtUiStopBrightnessOrContrast; - callBits |= EVtUiRefreshZoomPopup; - break; - default: - break; - } - - TRAP_IGNORE ( DoExecuteL( callBits ) ); - __VTPRINTEXITR( "VtUiComms.HandleVtEventL %d", 1 ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ) - { - __VTPRINTENTER( "VtUiComms.HandleVTCommandPerformedL" ) - - if ( iAppUi.iState && - iAppUi.iState->HandleVTCommandPerformedL( aCommand, aError ) == - TVtUiAppStateBase::EEventHandled ) - { - // state didn't allow further processing of command completion - __VTPRINTEXITR( "VtUiComms.HandleVTCommandPerformedL %d", 0 ) - return; - } - iAppUi.RefreshStatesL(); - - if ( aCommand == KVtEngMuteOutgoingAudio || - aCommand == KVtEngUnmuteOutgoingAudio ) - { - iAppUi.RefreshL(); - } - - const TInt count = iCommandObservers.Count(); - TInt nullPosition = KErrNotFound; - - iInCommandPerformed = ETrue; - - // iInCommandPerformed equals ETrue while inside the following loop; - // Exceptions must not be raised. - for ( TInt index = 0; index < count; index++ ) - { - MVtEngCommandObserver* obs = iCommandObservers[ index ]; - if ( obs ) - { - TRAP_IGNORE( obs->HandleVTCommandPerformedL( aCommand, aError ) ); - } - else - { - // We store only one position; eventually all NULL elements of the - // array will be removed. - nullPosition = index; - } - } - iInCommandPerformed = EFalse; - - if ( nullPosition != KErrNotFound ) - { - iCommandObservers.Remove( nullPosition ); - } - - // Specific handling of some commands: - if ( aCommand == KVtEngResetEngine ) // Engine has been reset - { - __ASSERT_ALWAYS( !aError, VtUiPanic::Panic( EVtUiPanicResetFailed ) ); - iAppUi.HandleEngineResetL(); - } - else if ( ( aCommand == KVtEngInitializeShareImage ) || - ( aCommand == KVtEngStartShareImage ) ) - { - __VTPRINT3( DEBUG_GEN, - "VtUi.HandleVTCommandPerformedL cmd=%d err=%d", aCommand, aError ); - if( aError != KErrNone ) - { - // stop toolbar feature to prevent drawing over error dialog - MVtUiFeature* tb = iAppUi.iFeatureManager-> - GetFeatureById( EVtUiFeatureIdToolbar ); - if ( tb ) - { - tb->Stop(); - } - iAppUi.iAsyncCallback->Set( - TCallBack( &AsyncShowErrorAndRestartShare, &iAppUi ) ); - iAppUi.iAsyncCallback->CallBack(); - } - else if( aCommand == KVtEngInitializeShareImage ) - { - if ( iAppUi.iUiStates->IsViewFinderToMainPane() ) - { - iAppUi.iAsyncCallback->Set( - TCallBack( &AsyncViewFinderToMainPaneAndShare, &iAppUi ) ); - } - else - { - iAppUi.iAsyncCallback->Set( - TCallBack( &AsyncShare, &iAppUi ) ); - } - iAppUi.iAsyncCallback->CallBack(); - } - } - else if ( iAppUi.iUiStates->IsLayoutChangeNeeded() && - ( aCommand == KVtEngMuteOutgoingAudio || - aCommand == KVtEngUnmuteOutgoingAudio || - aCommand == KVtEngSetAudioRouting || - aCommand == KVtEngSetAudioVolume || - aCommand == KVtEngSetSource || - aCommand == KVtEngPrepareCamera || - aCommand == KVtEngUnfreeze ) ) - { - iAppUi.iUiStates->SetLayoutChangeNeeded( EFalse ); - iAppUi.DoHandleLayoutChangedL(); - } - __VTPRINTEXITR( "VtUiComms.HandleVTCommandPerformedL %d", 1 ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::vtHandleFrameL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::vtHandleFrameL( - TFrameType aType, - CFbsBitmap* aBitmap ) - { - static TUint32 lastTick = 0; - static TBool flag = EFalse; - - - CEikMenuBar* menuBar = (STATIC_CAST(CEikonEnv*, this->iAppUi.iCoeEnv))->AppUiFactory()->MenuBar(); - if ( menuBar && menuBar->IsDisplayed() ) - { - if ( !flag ) - { - flag = ETrue; - lastTick = User::NTickCount(); - } - else - { - TUint32 newTick = User::NTickCount(); - - //don't consider time wrap - //one frame per 200ms - if ( newTick - lastTick < 400 ) - { - __VTPRINTEXITR( "CVtUiAppUi::CEventObserver::vtSetFrame %d", 0 ) - return; - } - else - { - lastTick = newTick; - } - } - } - else - { - flag = EFalse; - } - - TBool local = EFalse; - switch ( aType ) - { - case ELocalVideoFrame: - local = ETrue; - break; - - case ERemoteVideoFrame: - default: - break; - } - - iAppUi.HandleVideoFrameL( local, aBitmap ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::vtSetFrame -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::vtSetFrame( - TFrameType aType, - CFbsBitmap* aBitmap ) - { - TBool local = EFalse; - switch ( aType ) - { - case ELocalVideoFrame: - local = ETrue; - break; - - case ERemoteVideoFrame: - default: - break; - } - - iAppUi.SetVideoFrame( local, aBitmap ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::Beat -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::Beat() - { - iAppUi.HandleBeat(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::Synchronize -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::Synchronize() - { - iAppUi.HandleBeat(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::DoExecuteL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::DoExecuteL( TInt aBits ) - { - __VTPRINT2( DEBUG_GEN, "VtUi.DoExec.bits=%d", aBits ) - - // Array of methods - leaving methods are allowed. - const TMethodL methodArray[] = - { - &CVtUiAppUi::RefreshStatesL, - &CVtUiAppUi::HandleVideoFrameRemoteProblemL, - &CVtUiAppUi::HandleVideoFrameLocalProblemL, - &CVtUiAppUi::RefreshNaviPaneL, - &CVtUiAppUi::RefreshSoftkeysL, - &CVtUiAppUi::RefreshBlind, - &CVtUiAppUi::StopWaitingImage, - &CVtUiAppUi::ChangeRemoteVideoLayoutL, - &CVtUiAppUi::ShowImageInitializeProgressL, - &CVtUiAppUi::HideImageInitializeProgressL, - &CVtUiAppUi::SetCameraOrientationL, - &CVtUiAppUi::MediaStateChangedL, - &CVtUiAppUi::ShowImageDecodingErrorNoteL, - &CVtUiAppUi::StopWhiteBalanceOrColortone, - &CVtUiAppUi::RefreshMenuL, - &CVtUiAppUi::StopBrightnessOrContrast, - &CVtUiAppUi::RefreshZoomPopupL - }; - const TInt count = ( sizeof( methodArray ) / sizeof ( TMethodL ) ); - - // Execute selected methods. - while ( aBits ) - { - for ( TInt index = 0; ( index < count ) && aBits; index++ ) - { - const TInt mask = ( 1 << index ); - if ( aBits & mask ) - { - // Bit is set if corresponding method - // is wanted to be executed. - - aBits &= ~mask; - TMethodL method = methodArray[ index ]; - ( iAppUi.*method )(); // may leave - } - } - aBits = 0; // for loop executed successfully. - } - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::HandleVolumeChange -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::HandleVolumeChange( - TRemConCoreApiButtonAction aButtonAct ) - { - __VTPRINTENTER( "VtUi.HandleVolumeChange" ) - // Order of the events is as follows: - // Click - Immediately when key is pressed down - // Press - After 0.6 seconds - // Release - When key is released after 0.6 seconds - // - // Thus, the following sequences are possible from single keypress: - // - // <0.6 sec pause> - - switch ( aButtonAct ) - { - case ERemConCoreApiButtonPress: - __VTPRINT( DEBUG_GEN, "VtUi.HandleVolumeChange.ButtonPress" ) - TRAP_IGNORE( iAppUi.AdjustVolumeL( iRCCAOperationId ) ); - TRAP_IGNORE( iAppUi.RefreshVolumeL() ); - TRAP_IGNORE( iAppUi.iInstance->VolumeKeyPressedL() ); - - iRemConVolumeRepeatTimer->Start( - KVtUiVolumeRepeatLongDelay, - KVtUiVolumeRepeatDelay, - TCallBack( DoHandleVolumeRepeat, this ) ); - - break; - - case ERemConCoreApiButtonRelease: - __VTPRINT( DEBUG_GEN, "VtUi.HandleVolumeChange.ButtonRelease" ) - iRCCAOperationId = ENop; - TRAP_IGNORE( iAppUi.iInstance->VolumeKeyPressedL() ); - break; - - case ERemConCoreApiButtonClick: - __VTPRINT( DEBUG_GEN, "VtUi.HandleVolumeChange.ButtonClick" ) - TRAP_IGNORE( iAppUi.AdjustVolumeL( iRCCAOperationId ) ); - TRAP_IGNORE( iAppUi.RefreshVolumeL() ); - TRAP_IGNORE( iAppUi.iInstance->VolumeKeyPressedL() ); - break; - - default: - break; - } - __VTPRINTEXIT( "VtUi.HandleVolumeChange" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::HandleRemMuteChange -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::HandleRemMuteChange( - TRemConCoreApiButtonAction aButtonAct ) - { - __VTPRINTENTER( "VtUi.EventObserver.HandleRemMuteChange" ) - TBool AudioEn (EFalse ); - AudioEn = iAppUi.iUiStates->AudioState().IsAudio(); - if( AudioEn ) - iAppUi.HandleCommandL( EVtUiCmdDisableAudio ); - else - iAppUi.HandleCommandL( EVtUiCmdEnableAudio ); - __VTPRINTEXIT( "VtUi.EventObserver.HandleRemMuteChange" ) - } -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::DoHandleVolumeRepeat -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppUi::CEventObserver::DoHandleVolumeRepeat( TAny* aAny ) - { - __VTPRINTENTER( "VtUi.SvkRpt" ) - CEventObserver* self = reinterpret_cast< CEventObserver* >( aAny ); - TRAP_IGNORE( self->iAppUi.AdjustVolumeL( self->iRCCAOperationId ) ); - TRAP_IGNORE( self->iAppUi.RefreshVolumeL() ); - __VTPRINTEXIT( "VtUi.SvkRpt" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::RefreshVolumeL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::RefreshVolumeL() - { - __VTPRINTENTER( "VtUi.RefreshVolumeL" ) - // Refresh volume - CVtUiVolume* volume = static_cast< CVtUiVolume* >( - iFeatureManager->GetFeatureById( EVtUiFeatureIdVolume ) ); - if ( volume ) - { - volume->RefreshL(); - } - __VTPRINTEXIT( "VtUi.RefreshVolumeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::AdjustVolumeL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::AdjustVolumeL( TRemConCoreApiOperationId aOperationId ) - { - __VTPRINTENTER( "VtUi.AdjustVolumeL" ) - __VTPRINT2( DEBUG_GEN, - "VtUi.AdjustVolumeL aOperationId = %d", aOperationId ) - TInt command( KVtEngCommandNone ); - switch ( aOperationId ) - { - case ERemConCoreApiVolumeDown: - command = KVtEngDecreaseAudioVolume; - break; - - case ERemConCoreApiVolumeUp: - command = KVtEngIncreaseAudioVolume; - break; - - default: - break; - } - - if ( command != KVtEngCommandNone ) - { - ExecuteCmdL( command ); - } - __VTPRINTEXIT( "VtUi.AdjustVolumeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CEventObserver::MrccatoCommand -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CEventObserver::MrccatoCommand( - TRemConCoreApiOperationId aOperationId, - TRemConCoreApiButtonAction aButtonAct ) - { - __VTPRINTENTER( "VtUi.MrccatoCommand" ) - // Side volume keys will also dismiss zoom mode if zoom mode is active - if ( iAppUi.iUiStates->IsZoomModeOn() ) - { - __VTPRINT( DEBUG_GEN, "VtUi.MrccatoCommand1" ) - TRAP_IGNORE( iAppUi.SetZoomModeL( EFalse )); - } - - iRemConVolumeRepeatTimer->Cancel(); - iRCCAOperationId = aOperationId; - switch ( aOperationId ) - { - case ERemConCoreApiVolumeUp: - // if volume in maximum value and volume up is pressed - // volume indicator must still be shown for a while if - // muted or call duration is shown in navipane - __VTPRINT( DEBUG_GEN, "VtUi.MrccatoCommand ERemConCoreApiVolumeUp" ) - HandleVolumeChange( aButtonAct ); - break; - - case ERemConCoreApiVolumeDown: - // if volume in minimun value and volume down is pressed - // volume indicator must still be shown for a while if - // muted or call duration is shown in navipane - __VTPRINT( DEBUG_GEN, "VtUi.MrccatoCommand ERemConCoreApiVolumeDown" ) - HandleVolumeChange( aButtonAct ); - break; - case ERemConCoreApiMute: - __VTPRINT( DEBUG_GEN, "VtUi.MrccatoCommand ERemConCoreApiMute" ) - HandleRemMuteChange( aButtonAct ); - default: - // Other commands ignored. - break; - } - __VTPRINTEXIT( "VtUi.MrccatoCommand" ) - } - -// Implementation of CVtUiAppUi::CVtUiAppUiMGVerifier - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CVtUiAppUiMGVerifier::NewLC -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CVtUiAppUiMGVerifier* CVtUiAppUi::CVtUiAppUiMGVerifier::NewLC( - CVtUiAppUi& aAppUi, CCoeEnv& aCoeEnv ) - { - CVtUiAppUiMGVerifier* self = new ( ELeave ) - CVtUiAppUiMGVerifier( aAppUi, aCoeEnv ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CVtUiAppUiMGVerifier::~CVtUiAppUiMGVerifier -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CVtUiAppUiMGVerifier::~CVtUiAppUiMGVerifier() - { - delete iManager; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CVtUiAppUiMGVerifier::VerifySelectionL -// ----------------------------------------------------------------------------- -// -TBool CVtUiAppUi::CVtUiAppUiMGVerifier::VerifySelectionL( - const MDesCArray* aSelectedFiles ) - { - TBool isOk( EFalse ); - if ( aSelectedFiles->MdcaCount() > 0 ) - { - TVirtualPathPtr virtualPath( - aSelectedFiles->MdcaPoint( 0 ), KDefaultContentObject ); - - // not ptotected by default - TInt isProtected = 0; - - TInt err = iManager->GetAttribute( EIsProtected, - isProtected, virtualPath ); - if ( isProtected ) - { - iAppUi.ShowDRMNotAllowedNoteL(); - } - if ( err == KErrNone ) - { - isOk = !isProtected; - } - } - return isOk; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CVtUiAppUiMGVerifier::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiAppUi::CVtUiAppUiMGVerifier::ConstructL() - { - iManager = CManager::NewL(); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppUi::CVtUiAppUiMGVerifier::CVtUiAppUiMGVerifier -// ----------------------------------------------------------------------------- -// -CVtUiAppUi::CVtUiAppUiMGVerifier::CVtUiAppUiMGVerifier( - CVtUiAppUi& aAppUi, CCoeEnv& aCoeEnv ) - : iAppUi( aAppUi ), iCoeEnv( &aCoeEnv ) - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiBitmapManager.cpp --- a/vtuis/videotelui/src/CVtUiBitmapManager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,662 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiBitmapManager class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiBitmapManager.h" -#include "VtUiLayout.h" -#include "VtUiPanic.h" - -#include -#include -#include - -// CONSTANTS - -// Granularity of bitmap manager array. -const TInt KVtUiBitmapManagerGranularity = 16; - -// MODULE DATA STRUCTURES - -/** -* CBitmapInfo instances hold information of a bitmap and its mask. -* @since Series 60 2.8 -*/ -class CVtUiBitmapManager::CBitmapInfo - : public CBase - { - public: // Constructors and destructor - - /** - * Constructor. - */ - inline CBitmapInfo( - TVtUiBitmapPoolId aId ); - - /** - * Destructor. - */ - ~CBitmapInfo(); - - /** - * Sets bitmap identifiers. - * @param aBitmapId bitmap identifier. - * @param aBitmapMaskId bitmap mask identifier. - */ - inline void SetBitmaps( - TVtUiBitmapId aBitmapId, - TVtUiBitmapId aBitmapMaskId ); - - /** - * Sets bitmap identifier. - * @param aBitmapId bitmap identifier. - */ - inline void SetBitmap( - TVtUiBitmapId aBitmapId ); - - /** - * Sets size. - * @param aSize size of the bitmaps. - */ - inline void SetSize( const TSize& aSize ); - - /** - * Sets aspect ratio preservation. - * @param aPreserve ETrue if aspect ratio preserved. - */ - inline void SetAspectRatio( TBool aPreserve ); - - /** - * Sets default color required / not required for this bitmap. - * By default, default color is not required. - * @param aRequireDefaultColor ETrue if default color is required, - * EFalse otherwise. - */ - inline void SetDefaultColorRequired( - TBool aRequireDefaultColor ); - - /** - * Sets default color. - * @param aDefaultColor default color. - */ - inline void SetDefaultColor( const TRgb& aDefaultColor ); - - /** - * Returns bitmap pool identifier. - * @return bitmap pool identifier. - */ - inline TVtUiBitmapPoolId BitmapPoolId() const; - - /** - * Gets a bitmap and its mask. - * @param aBitmap bitmap. - * @param aBitmapMask bitmap mask. - */ - inline void GetBitmap( - CFbsBitmap*& aBitmap, - CFbsBitmap*& aBitmapMask ); - - /** - * Resets bitmap information. - */ - void Reset(); - - /** - * Constructs bitmap as far as possible. - * @param aTmpFileName temporary file name, - */ - void Require( TFileName& aTmpFileName ); - - private: - - /** - * Creates bitmaps using AVKON methods. - * @param aTmpFileName temporary file name, - */ - void DoCreateBitmapsL( TFileName& aTmpFileName ); - - /** - * Sets size to the bitmap using AVKON method. - */ - void DoSetSize(); - - private: - - // Bitmap pool identifier. - TVtUiBitmapPoolId iBitmapPoolId; - - // Size has been defined. - TBool iHasSize; - - // Size of the bitmap has been changed. - TBool iSizeChanged; - - // Size of the bitmaps. - TSize iSize; - - // ETrue if default color required. - TBool iRequireDefaultColor; - - // Default color has been defined. - TBool iHasDefaultColor; - - // Default color. - TRgb iDefaultColor; - - // Bitmap identifier. - TVtUiBitmapId iBitmapId; - - // Owned bitmap instance. - CFbsBitmap* iBitmap; - - // Bitmap mask identifier. - TVtUiBitmapId iBitmapMaskId; - - // Owned bitmap mask instance. - CFbsBitmap* iBitmapMask; - - // ETrue if bitmaps have been created. - TBool iDoCreateBitmaps; - - // ETrue if size has been set. - TBool iDoSetSize; - - // ETrue if aspect ratio preservation has been updated. - TBool iHasAspectRatioPreserve; - - // ETrue if aspect ratio should be preserved. - TBool iAspectRatioPreserve; - - }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CVtUiBitmapManager -// ----------------------------------------------------------------------------- -// -CVtUiBitmapManager::CVtUiBitmapManager() - : iBitmapArray( KVtUiBitmapManagerGranularity ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::~CVtUiBitmapManager -// ----------------------------------------------------------------------------- -// -CVtUiBitmapManager::~CVtUiBitmapManager() - { - iBitmapArray.ResetAndDestroy(); - iBitmapArray.Close(); - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::AddBitmapsL -// ----------------------------------------------------------------------------- -// -TVtUiBitmapPoolId CVtUiBitmapManager::AddBitmapsL( - TVtUiBitmapId aBitmapId, - TVtUiBitmapId aBitmapMaskId, - TBool aExpectDefaultColor ) - { - iBitmapId++; - CBitmapInfo* bitmapInfo = new ( ELeave ) CBitmapInfo( iBitmapId ); - CleanupStack::PushL( bitmapInfo ); - bitmapInfo->SetBitmaps( aBitmapId, aBitmapMaskId ); - bitmapInfo->SetDefaultColorRequired( aExpectDefaultColor ); - bitmapInfo->Require( iTmpFileName ); - - User::LeaveIfError( iBitmapArray.Append( bitmapInfo ) ); - CleanupStack::Pop( bitmapInfo ); - return iBitmapId; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::AddBitmapL -// ----------------------------------------------------------------------------- -// -TVtUiBitmapPoolId CVtUiBitmapManager::AddBitmapL( - TVtUiBitmapId aBitmapId, - TBool aExpectDefaultColor ) - { - iBitmapId++; - CBitmapInfo* bitmapInfo = new ( ELeave ) CBitmapInfo( iBitmapId ); - CleanupStack::PushL( bitmapInfo ); - bitmapInfo->SetBitmap( aBitmapId ); - bitmapInfo->SetDefaultColorRequired( aExpectDefaultColor ); - bitmapInfo->Require( iTmpFileName ); - - User::LeaveIfError( iBitmapArray.Append( bitmapInfo ) ); - CleanupStack::Pop( bitmapInfo ); - return iBitmapId; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::RemoveBitmap -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::RemoveBitmap( - TVtUiBitmapPoolId aId ) - { - const TInt pos = Find( aId ); - if ( pos != KErrNotFound ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ pos ]; - iBitmapArray.Remove( pos ); - delete bitmapInfo; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::SetSize -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::SetSize( - TVtUiBitmapPoolId aId, - const TSize& aSize ) - { - const TInt pos = Find( aId ); - if ( pos != KErrNotFound ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ pos ]; - bitmapInfo->SetSize( aSize ); - bitmapInfo->Require( iTmpFileName ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::SetAspectRatio -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::SetAspectRatio( - TVtUiBitmapPoolId aId, - TBool aPreserve ) - { - const TInt pos = Find( aId ); - if ( pos != KErrNotFound ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ pos ]; - bitmapInfo->SetAspectRatio( aPreserve ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::SetSizeAndColor -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::SetSizeAndColor( - TVtUiBitmapPoolId aId, - const TSize& aSize, - const TRgb& aDefaultColor ) - { - const TInt pos = Find( aId ); - if ( pos != KErrNotFound ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ pos ]; - bitmapInfo->SetSize( aSize ); - bitmapInfo->SetDefaultColor( aDefaultColor ); - bitmapInfo->Require( iTmpFileName ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::RequireBitmap -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::RequireBitmap( TVtUiBitmapPoolId aId ) - { - const TInt pos = Find( aId ); - if ( pos != KErrNotFound ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ pos ]; - bitmapInfo->Require( iTmpFileName ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::GetBitmaps -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::GetBitmaps( - TVtUiBitmapPoolId aId, - CFbsBitmap*& aBitmap, - CFbsBitmap*& aBitmapMask ) - { - aBitmap = NULL; - aBitmapMask = NULL; - - const TInt pos = Find( aId ); - if ( pos != KErrNotFound ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ pos ]; - bitmapInfo->GetBitmap( aBitmap, aBitmapMask ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::GetBitmap -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::GetBitmap( - TVtUiBitmapPoolId aId, - CFbsBitmap*& aBitmap ) - { - CFbsBitmap* dummy = NULL; - GetBitmaps( aId, aBitmap, dummy ); - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::InvalidateBitmaps -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::InvalidateBitmaps() - { - const TInt count = iBitmapArray.Count(); - for ( TInt index = 0; index < count; index++ ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ index ]; - bitmapInfo->Reset(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::Find -// ----------------------------------------------------------------------------- -// -TInt CVtUiBitmapManager::Find( TVtUiBitmapPoolId aId ) const - { - TInt result = KErrNotFound; - const TInt count = iBitmapArray.Count(); - for ( TInt index = 0; index < count; index++ ) - { - CBitmapInfo* bitmapInfo = iBitmapArray[ index ]; - if ( bitmapInfo->BitmapPoolId() == aId ) - { - result = index; - index = count; // out of the loop - } - } - - return result; - } - -// Implementation of CBitmapInfo: - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::CBitmapInfo -// ----------------------------------------------------------------------------- -// -inline CVtUiBitmapManager::CBitmapInfo::CBitmapInfo( - TVtUiBitmapPoolId aId ) - : iBitmapPoolId( aId ), - iBitmapId( EVtUiBitmapNone ), - iBitmapMaskId( EVtUiBitmapNone ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::~CBitmapInfo -// ----------------------------------------------------------------------------- -// -CVtUiBitmapManager::CBitmapInfo::~CBitmapInfo() - { - delete iBitmap; - delete iBitmapMask; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::SetBitmaps -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::SetBitmaps( - TVtUiBitmapId aBitmapId, - TVtUiBitmapId aBitmapMaskId ) - { - iBitmapId = aBitmapId; - iBitmapMaskId = aBitmapMaskId; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::SetBitmap -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::SetBitmap( - TVtUiBitmapId aBitmapId ) - { - iBitmapId = aBitmapId; - iBitmapMaskId = EVtUiBitmapNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::SetSize -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::SetSize( - const TSize& aSize ) - { - if ( iHasSize ) - { - iSizeChanged = ( iSize != aSize ); - } - - iHasSize = ETrue; - iSize = aSize; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::SetAspectRatio -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::SetAspectRatio( TBool aPreserve ) - { - iHasAspectRatioPreserve = ETrue; - iAspectRatioPreserve = aPreserve; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::SetDefaultColorRequired -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::SetDefaultColorRequired( - TBool aRequireDefaultColor ) - { - iRequireDefaultColor = aRequireDefaultColor; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::SetDefaultColor -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::SetDefaultColor( - const TRgb& aDefaultColor ) - { - __ASSERT_DEBUG( iRequireDefaultColor, - VtUiPanic::Panic( EVtUiPanicDefaultColorRequireMismatch ) ); - iHasDefaultColor = ETrue; - iDefaultColor = aDefaultColor; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::BitmapPoolId -// ----------------------------------------------------------------------------- -// -inline TVtUiBitmapPoolId CVtUiBitmapManager::CBitmapInfo::BitmapPoolId() const - { - return iBitmapPoolId; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::GetBitmap -// ----------------------------------------------------------------------------- -// -inline void CVtUiBitmapManager::CBitmapInfo::GetBitmap( - CFbsBitmap*& aBitmap, - CFbsBitmap*& aBitmapMask ) - { - if ( iDoCreateBitmaps && iDoSetSize ) - { - aBitmap = iBitmap; - aBitmapMask = iBitmapMask; - } - else - { - aBitmap = NULL; - aBitmapMask = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::Reset -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::CBitmapInfo::Reset() - { - delete iBitmap; - iBitmap = NULL; - - delete iBitmapMask; - iBitmapMask = NULL; - - iSize = TSize(); - iHasSize = EFalse; - iSizeChanged = EFalse; - iHasDefaultColor = EFalse; - iDefaultColor = TRgb(); - iDoCreateBitmaps = EFalse; - iDoSetSize = EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::Require -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::CBitmapInfo::Require( TFileName& aTmpFileName ) - { - // Bitmap can be created when the following has been satisfied - // a) It has not been created yet and default color is not required, - // b) It has not been created yet and default color is required and - // default color is available. - if ( !iDoCreateBitmaps && !( iRequireDefaultColor && !iHasDefaultColor ) ) - { - TRAP_IGNORE( DoCreateBitmapsL( aTmpFileName ) ); - } - - DoSetSize(); - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::DoCreateBitmapsL -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::CBitmapInfo::DoCreateBitmapsL( - TFileName& aTmpFileName ) - { - if ( !iDoCreateBitmaps ) - { - TInt bitmapIndex = KErrNotFound; - - VtUiLayout::Resolve( iBitmapId, aTmpFileName, bitmapIndex ); - - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TAknsItemID skinId = VtUiLayout::MapBitmapToSkinId( iBitmapId ); - - TAknsItemID colorId = KAknsIIDNone; - TInt colorIndex = KErrNotFound; - TBool colorAvailable = EFalse; - if ( iHasDefaultColor ) - { - colorAvailable = - VtUiLayout::MapBitmapToColorId( - iBitmapId, colorId, colorIndex ); - } - - if ( iBitmapMaskId != EVtUiBitmapNone ) - { - TInt bitmapMaskIndex = KErrNotFound; -#ifdef _DEBUG - TFileName fileName; - VtUiLayout::Resolve( iBitmapMaskId, fileName, bitmapMaskIndex ); - __ASSERT_ALWAYS( aTmpFileName == fileName, - VtUiPanic::Panic( EVtUiPanicMismatchInBitmapFileNames ) ); -#else - VtUiLayout::Resolve( iBitmapMaskId, aTmpFileName, bitmapMaskIndex ); -#endif - if ( colorAvailable ) - { - AknsUtils::CreateColorIconL( - skin, skinId, - colorId, colorIndex, - iBitmap, iBitmapMask, - aTmpFileName, - bitmapIndex, - bitmapMaskIndex, - iDefaultColor ); - } - else - { - AknsUtils::CreateIconL( - skin, skinId, - iBitmap, iBitmapMask, - aTmpFileName, - bitmapIndex, - bitmapMaskIndex ); - } - } - else - { - // Only normal skinning for these. - AknsUtils::CreateIconL( - skin, - skinId, - iBitmap, - aTmpFileName, - bitmapIndex ); - } - - iDoCreateBitmaps = ETrue; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBitmapManager::CBitmapInfo::DoSetSize -// ----------------------------------------------------------------------------- -// -void CVtUiBitmapManager::CBitmapInfo::DoSetSize() - { - if ( iDoCreateBitmaps && iHasSize && ( !iDoSetSize || iSizeChanged ) ) - { - iSizeChanged = EFalse; - TInt retBitmap = KErrNone; - if ( !iHasAspectRatioPreserve ) - { - retBitmap = AknIconUtils::SetSize( iBitmap, iSize ); - } - else - { - TScaleMode scaleMode = - iAspectRatioPreserve ? - EAspectRatioPreserved : - EAspectRatioNotPreserved; - retBitmap = AknIconUtils::SetSize( iBitmap, iSize, scaleMode ); - } - - iDoSetSize = ( retBitmap == KErrNone ); - } - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiBlankControl.cpp --- a/vtuis/videotelui/src/CVtUiBlankControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiBlankControl control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiBlankControl.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::CVtUiBlankControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiBlankControl::CVtUiBlankControl() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiBlankControl::ConstructL( const TRect& aRect ) - { - CreateWindowL(); - MakeVisible( EFalse ); - SetRect( aRect ); - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::~CVtUiBlankControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiBlankControl::~CVtUiBlankControl() - { - AknsUtils::DeregisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::SetActive -// ----------------------------------------------------------------------------- -// -void CVtUiBlankControl::SetActive( TBool aStatus ) - { - iBlankerActive = aStatus; - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::OfferKeyEventL -// ----------------------------------------------------------------------------- -// -TKeyResponse CVtUiBlankControl::OfferKeyEventL( - const TKeyEvent& /*aKeyEvent*/, - TEventCode /*aType*/ ) - { - return iBlankerActive ? EKeyWasConsumed : EKeyWasNotConsumed; - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::Draw -// ----------------------------------------------------------------------------- -// -void CVtUiBlankControl::Draw( const TRect& /*aRect*/ ) const - { - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiBlankControl::SizeChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankControl::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiBlankControl::PositionChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiBlankDialog.cpp --- a/vtuis/videotelui/src/CVtUiBlankDialog.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiBlankDialog class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiBlankDialog.h" -#include -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::CVtUiBlankDialog -// ----------------------------------------------------------------------------- -// -CVtUiBlankDialog::CVtUiBlankDialog( - CEikDialog** aSelfPtr ) - : iSelfPtr( aSelfPtr ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::~CVtUiBlankDialog -// ----------------------------------------------------------------------------- -// -CVtUiBlankDialog::~CVtUiBlankDialog() - { - if ( iSelfPtr ) - { - *iSelfPtr = NULL; - iSelfPtr = NULL; - } - - if ( iRequest ) - { - User::RequestComplete( iRequest, KErrCancel ); - iRequest = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::ExecuteDialogNoWaitLD -// ----------------------------------------------------------------------------- -// -void CVtUiBlankDialog::ExecuteDialogNoWaitLD() - { - ExecuteLD( R_VIDEOTELUI_BLANK_NOWAIT_DLG ); - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::ExecuteDialogLD -// ----------------------------------------------------------------------------- -// -void CVtUiBlankDialog::ExecuteDialogLD( - TRequestStatus* aRequest ) - { - if ( !aRequest ) - { - TInt error = KErrNone; - iError = &error; - - ExecuteLD( R_VIDEOTELUI_BLANK_DLG ); - User::LeaveIfError( error ); - } - else - { - // It's assumed that either ExecuteLD leaves or - // then dialog is started (& dialog is not immediately deleted). - *aRequest = KRequestPending; - ExecuteLD( R_VIDEOTELUI_BLANK_NOWAIT_DLG ); - iRequest = aRequest; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::Complete -// ----------------------------------------------------------------------------- -// -void CVtUiBlankDialog::Complete( const TInt aError ) - { - if ( iError ) - { - *iError = aError; - } - - if ( iRequest ) - { - User::RequestComplete( iRequest, aError ); - iRequest = NULL; - } - - delete this; - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::PreLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CVtUiBlankDialog::PreLayoutDynInitL() - { - MakeVisible( EFalse ); - ButtonGroupContainer().MakeVisible( EFalse ); - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::PostLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CVtUiBlankDialog::PostLayoutDynInitL() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::OkToExitL -// ----------------------------------------------------------------------------- -// -TBool CVtUiBlankDialog::OkToExitL( TInt aButtonId ) - { - if ( aButtonId != EEikBidCancel ) - { - return EFalse; - } - else - { - return CEikDialog::OkToExitL( aButtonId ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiBlankDialog::Draw -// ----------------------------------------------------------------------------- -// -void CVtUiBlankDialog::Draw( const TRect& /*aRect*/ ) const - { - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiContextControl.cpp --- a/vtuis/videotelui/src/CVtUiContextControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,333 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Implementation of the CVtUiContextControl control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiContextControl.h" -#include "VtUiLayout.h" -#include -#include -#include -#include -#include "CVtUiAppUi.h" -#include "tvtuistates.h" -#include -#include "tVtuifeaturevariation.h" - - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::NewL -// Constructor that may leave. -// ----------------------------------------------------------------------------- -// -CVtUiContextControl* CVtUiContextControl::NewL( - CVtUiBitmapManager& aBitmapManager, CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates) - { - __VTPRINTENTER( "CtxCtrl.NewL" ) - CVtUiContextControl* self = new ( ELeave ) CVtUiContextControl( - aBitmapManager, aAppUi, aUiStates ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CtxCtrl.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::~CVtUiContextControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiContextControl::~CVtUiContextControl() - { - __VTPRINTENTER( "CtxCtrl.~" ) - BitmapManager().RemoveBitmap( iBackgroundId ); - BitmapManager().RemoveBitmap( iBlindId ); - BitmapManager().RemoveBitmap( iBlindMaskId ); - if ( iAppUi.EventMonitor() ) - { - iAppUi.EventMonitor()->RemoveObserver( this ); - } - __VTPRINTEXIT( "CtxCtrl.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::HandlePointerEventL -// ----------------------------------------------------------------------------- -// -void CVtUiContextControl::HandlePointerEventL( - const TPointerEvent& aPointerEvent) - { - __VTPRINTENTER( "CtxCtrl.HandlePointerEventL" ) - __VTPRINT2( DEBUG_GEN, "CtxCtrl.HandlePtr ok= %d", iOkToSwapOnButtonUp ) - if ( AknLayoutUtils::PenEnabled() ) - { - if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) - { - TRect window( Size() ); - if ( !window.Contains( aPointerEvent.iPosition ) ) - { - iOkToSwapOnButtonUp = ETrue; - SetGloballyCapturing( EFalse ); - SetPointerCapture( EFalse); - } - else if( iOkToSwapOnButtonUp ) - { - if ( !iUiStates.IsWhiteBalanceModeOn() && - !iUiStates.IsColorToneModeOn() && - !iUiStates.IsZoomModeOn() && - !iUiStates.IsCaptureModeOn() && - !iUiStates.IsContrastModeOn() && - !iUiStates.IsBrightnessModeOn() && - !iUiStates.IsVolumeModeOn() ) - { - if ( !( iAppUi.CanSwapImagePlaces() ) ) - { - return; - } - iAppUi.HandleCommandL( EVtUiCmdSwapImagesPlaces ); - } - } - else - { - SetGloballyCapturing( EFalse ); - SetPointerCapture( EFalse); - iOkToSwapOnButtonUp = ETrue; - } - } - } - __VTPRINTEXIT( "CtxCtrl.HandlePointerEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::HandleSizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiContextControl::HandleSizeChanged() - { - __VTPRINTENTER( "CtxCtrl.HandleSizeChanged" ) - TRect screen; - VtUiLayout::GetApplicationParentRect( screen ); - - TAknWindowLineLayout control; - VtUiLayout::GetFirstWindowBackgroundLayout( control ); - TAknLayoutRect backLayout; - backLayout.LayoutRect( screen, control ); - BitmapManager().SetSize( iBackgroundId, backLayout.Rect().Size() ); - - const TPoint positionRelativeToScreen( -PositionRelativeToScreen() ); - - VtUiLayout::GetFirstWindowStreamDisabledIconLayout( control ); - TAknLayoutRect blindLayout; - blindLayout.LayoutRect( screen, control ); - iBlindRect = blindLayout.Rect(); - iBlindRect.Move( positionRelativeToScreen ); - BitmapManager().SetSize( iBlindId, iBlindRect.Size() ); - BitmapManager().SetSize( iBlindMaskId, iBlindRect.Size() ); - - VtUiLayout::GetFirstWindowStreamLayout( control ); - TAknLayoutRect streamLayout; - streamLayout.LayoutRect( screen, control ); - iStreamRect = streamLayout.Rect(); - iStreamRect.Move( positionRelativeToScreen ) ; - __VTPRINTEXIT( "CtxCtrl.HandleSizeChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::StreamBlitPosition -// ----------------------------------------------------------------------------- -// -TPoint CVtUiContextControl::StreamBlitPosition() const - { - __VTPRINTENTER( "CtxCtrl.StreamBlitPosition" ) - __VTPRINTEXIT( "CtxCtrl.StreamBlitPosition" ) - return iStreamRect.iTl; - } - -// --------------------------------------------------------------------------- -// CVtUiContextControl::StreamClippingRect -// --------------------------------------------------------------------------- -// -TRect CVtUiContextControl::StreamClippingRect() const - { - __VTPRINTENTER( "CtxCtrl.StreamClippingRect" ) - __VTPRINTEXIT( "CtxCtrl.StreamClippingRect" ) - return iStreamRect; - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::DrawColoredBackground -// ----------------------------------------------------------------------------- -// -void CVtUiContextControl::DrawColoredBackground( CWindowGc& aGc ) const - { - __VTPRINTENTER( "CtxCtrl.DrawColoredBackground" ) - CVtUiVideoControlBase::DrawColoredBackground( aGc ); - // Draw background image - CFbsBitmap* bg = NULL; - CFbsBitmap* bgMask = NULL; - BitmapManager().GetBitmaps( iBackgroundId, bg, bgMask ); - if ( bg ) - { - const TPoint origin; - const TRect rect( origin, bg->SizeInPixels() ); - if ( bgMask ) - { - aGc.BitBltMasked( origin, bg, rect, bgMask, ETrue ); - } - else - { - aGc.BitBlt( origin, bg ); - } - } - __VTPRINTEXIT( "CtxCtrl.DrawColoredBackground" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContextControl::BlindImage -// --------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiContextControl::BlindImage() const - { - __VTPRINTENTER( "CtxCtrl.BlindImage" ) - __VTPRINTEXIT( "CtxCtrl.BlindImage" ) - return Bitmap( iBlindId ); - } - -// --------------------------------------------------------------------------- -// CVtUiContextControl::BlindMask -// --------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiContextControl::BlindMask() const - { - __VTPRINTENTER( "CtxCtrl.BlindImage" ) - __VTPRINTEXIT( "CtxCtrl.BlindImage" ) - return Bitmap( iBlindMaskId ); - } - -// --------------------------------------------------------------------------- -// CVtUiContextControl::BlindBlitPosition -// --------------------------------------------------------------------------- -// -TPoint CVtUiContextControl::BlindBlitPosition() const - { - __VTPRINTENTER( "CtxCtrl.BlindBlitPosition" ) - __VTPRINTEXIT( "CtxCtrl.BlindBlitPosition" ) - return iBlindRect.iTl; - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::CVtUiContextControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiContextControl::CVtUiContextControl( - CVtUiBitmapManager& aBitmapManager, - CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates ) - : CVtUiVideoControlBase( aBitmapManager ), - iAppUi( aAppUi ), - iUiStates( aUiStates ) - { - __VTPRINTENTER( "CtxCtrl.ctor" ) - SetRenderingHint( ENoWaitingText ); - SetRenderingHint( EColoredBackground ); - __VTPRINTEXIT( "CtxCtrl.ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiContextControl::ConstructL() - { - __VTPRINTENTER( "CtxCtrl.ConstructL" ) - BaseConstructL(); - iBackgroundId = - BitmapManager().AddBitmapsL( - EVtUiBitmap_qgn_graf_call_video_out_bg, - EVtUiBitmap_qgn_graf_call_video_out_bg_mask, - EFalse ); - BitmapManager().SetAspectRatio( iBackgroundId, EFalse ); - iBlindId = - BitmapManager().AddBitmapL( - EVtUiBitmap_qgn_indi_call_video_blind_out, - EFalse ); - BitmapManager().SetAspectRatio( iBlindId, EFalse ); - iBlindMaskId = - BitmapManager().AddBitmapL( - EVtUiBitmap_qgn_indi_call_video_blind_out_mask_icon, - EFalse ); - BitmapManager().SetAspectRatio( iBlindMaskId, EFalse ); - SetNonFocusing(); - if ( iAppUi.EventMonitor() ) - { - iAppUi.EventMonitor()->AddObserverL( this ); - } - - iOkToSwapOnButtonUp = ETrue; - __VTPRINTEXIT( "CtxCtrl.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::HandleWsEventL -// ----------------------------------------------------------------------------- -// -void CVtUiContextControl::HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* aDestination ) - { - __VTPRINTENTER( "CVtUiContextControl.HandleWsEventL" ) - if( aEvent.Type() == EEventPointer ) - { - // Touch outside of volume popup, close volume popup - if ( aEvent.Pointer()->iType == TPointerEvent::EButton1Down ) - { - if ( aDestination == this ) - { - iOkToSwapOnButtonUp = !iUiStates.IsZoomModeOn() && - !iUiStates.IsCaptureModeOn() && - !iUiStates.IsContrastModeOn() && - !iUiStates.IsBrightnessModeOn() && - !iUiStates.IsVolumeModeOn(); - SetGloballyCapturing( ETrue ); - SetPointerCapture( ETrue ); - } - } - } - __VTPRINTEXIT( "CVtUiContextControl.HandleWsEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiContextControl::LayoutRemoteVideo -// ----------------------------------------------------------------------------- -// -void CVtUiContextControl::LayoutRemoteVideo() - { - __VTPRINTENTER( "CVtUiContextControl.LayoutRemoteVideo" ) - if ( NULL != iRemoteVideoControl ) - { - TRect rectRemoteVideo(StreamClippingRect()); - rectRemoteVideo.Move(PositionRelativeToScreen()); - iRemoteVideoControl->SetExtent(rectRemoteVideo.iTl,rectRemoteVideo.Size()); - } - __VTPRINTEXIT( "CVtUiContextControl.LayoutRemoteVideo" ) - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiDoc.cpp --- a/vtuis/videotelui/src/CVtUiDoc.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiDoc document class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiDoc.h" -#include "CVtUiAppUi.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiDoc::CVtUiDoc -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiDoc::CVtUiDoc( CEikApplication& aApp ) - : CAknDocument( aApp ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiDoc::CreateAppUiL -// Creates application UI instance. -// ----------------------------------------------------------------------------- -// -CEikAppUi* CVtUiDoc::CreateAppUiL() - { - return new ( ELeave ) CVtUiAppUi; - } - -// ----------------------------------------------------------------------------- -// CVtUiDoc::UpdateTaskNameL -// Creates application UI instance. -// ----------------------------------------------------------------------------- -// -void CVtUiDoc::UpdateTaskNameL( CApaWindowGroupName* aWgName ) - { - CAknDocument::UpdateTaskNameL( aWgName ); - aWgName->SetHidden( ETrue ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiExecuteCmdDialog.cpp --- a/vtuis/videotelui/src/CVtUiExecuteCmdDialog.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,312 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of the CVtUiExecuteCmdDialog class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiExecuteCmdDialog.h" -#include "MVtUiEngineCommandManager.h" -#include -#include - -// MODULE DATA STRUCTURES - -/** -* Active object to perform asynchronous commands. -* @since Series 60 2.6 -*/ -class CVtUiExecuteCmdDialog::CActiveCmd - : public CActive - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CActiveCmd( - CVtUiExecuteCmdDialog& aDialog, - MVtEngCommandHandler& aCommandHandler, - TVtEngCommandId aCommand, - TDesC8* aParams ); - - /** - * Destructor. - */ - ~CActiveCmd(); - - public: // New functions - - /** - * Starts active object. Command will be performed in RunL. - */ - void Start(); - - /** - * Checks if command has been performed. - * @return ETrue if command has been performed. - */ - TBool CommandPerformed() const; - - private: - - /** - * @see CActive::RunL - */ - void RunL(); - - /** - * @see CActive::DoCancel. - */ - void DoCancel(); - - /** - * @see CActive::RunError. - */ - TInt RunError( TInt aResult ); - - private: - - // Ref to dialog. - CVtUiExecuteCmdDialog& iDialog; - - // Ref to command handler. - MVtEngCommandHandler& iCommandHandler; - - // Command to be executed. - TVtEngCommandId iCommand; - - // Owned parameters. - TDesC8* iCommandParams; - - // ETrue if command has been performed. - TBool iCommandPerformed; - - }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CVtUiExecuteCmdDialog -// ----------------------------------------------------------------------------- -// -CVtUiExecuteCmdDialog::CVtUiExecuteCmdDialog( - CEikDialog** aSelfPtr, - MVtEngCommandHandler& aCommandHandler, - MVtUiEngineCommandManager& aCommandManager ) - : CVtUiBlankDialog( aSelfPtr ), - iCommandHandler( aCommandHandler ), - iCommandManager( aCommandManager ) - { - __VTPRINT2( DEBUG_GEN, "Ui.Dlg.Ctor this=%d", (TInt)this ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::~CVtUiExecuteCmdDialog -// ----------------------------------------------------------------------------- -// -CVtUiExecuteCmdDialog::~CVtUiExecuteCmdDialog() - { - __VTPRINTENTER( "VtUiExCmdDlg.~" ) - __VTPRINT2( DEBUG_GEN, "VtUiExCmdDlg.~ this=%d", (TInt)this ) - if ( iActiveCmd ) - { - if ( !iCommandCompleted && iActiveCmd->CommandPerformed() ) - { - iCommandHandler.CancelCommand( iCommand ); // ignore error - } - } - delete iCommandParams; - delete iActiveCmd; - - iCommandManager.RemoveObserver( *this ); - __VTPRINTEXIT( "VtUiExCmdDlg.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::ExecuteCmdLD -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::ExecuteCmdLD( - const TVtEngCommandId aCommandId, - TDesC8* aParams, - TRequestStatus* aRequest ) - { - __VTPRINTENTER( "VtUiExCmdDlg.ExecuteCmd" ) - __VTPRINT2( DEBUG_GEN, "Ui.Dlg.Exec this=%d", (TInt)this ) - iCommand = aCommandId; - CleanupStack::PushL( this ); - if ( aParams ) - { - iCommandParams = aParams->AllocL(); - } - - iCommandManager.AddObserverL( *this ); - CleanupStack::Pop( this ); - - CVtUiBlankDialog::ExecuteDialogLD( aRequest ); - __VTPRINTEXIT( "VtUiExCmdDlg.ExecuteCmd" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::PostLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::PostLayoutDynInitL() - { - __VTPRINTENTER( "VtUiExCmdDlg.PostL" ) - iActiveCmd = - new ( ELeave ) CActiveCmd( - *this, iCommandHandler, iCommand, iCommandParams ); - iActiveCmd->Start(); - __VTPRINTEXITR( "VtUiExCmdDlg.PostL this=%d", (TInt)this ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ) - { - __VTPRINTENTER( "VtUiExCmdDlg.HandleVTCommandPerformed" ) - __VTPRINT2( DEBUG_GEN, "VtUiExCmdDlg.cmd.%d", aCommand ) - __VTPRINT2( DEBUG_GEN, "VtUiExCmdDlg.err.%d", aError ) - if ( iActiveCmd && ( aCommand == iCommand ) ) - { - if ( iActiveCmd->CommandPerformed() && !iCommandCompleted ) - { - __VTPRINT( DEBUG_GEN, "VtUiExCmdDlg.match" ) - iCommandCompleted = ETrue; - // Corrupted images may leave during initialization, thus we have - // to mask out errors when they happen during share initialize. - // Error code is handled correctly in CVtUiAppUi::CEventObserver:: - // HandleVTCommandPerformedL() method, thus it will not be ignored. - if ( aCommand == KVtEngInitializeShareImage ) - { - Complete( KErrNone ); - } - else - { - Complete( aError ); - } - } - } - __VTPRINTEXIT( "VtUiExCmdDlg.HandleVTCommandPerformed" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::HandleExecuteFailed -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::HandleExecuteFailed( TInt aResult ) - { - __VTPRINT3( DEBUG_GEN, "VtUiExCmdDlg.Fail this=%d res=%d", - (TInt)this, aResult ) - Complete( aResult ); - } - -// Implementation of CVtUiExecuteCmdDialog::CActiveCmd: - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::CActiveCmd -// ----------------------------------------------------------------------------- -// -CVtUiExecuteCmdDialog::CActiveCmd::CActiveCmd( - CVtUiExecuteCmdDialog& aDialog, - MVtEngCommandHandler& aCommandHandler, - TVtEngCommandId aCommand, - TDesC8* aParams) - : CActive( CActive::EPriorityHigh ), - iDialog( aDialog ), - iCommandHandler( aCommandHandler ), - iCommand( aCommand ), - iCommandParams( aParams ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::~CActiveCmd -// ----------------------------------------------------------------------------- -// -CVtUiExecuteCmdDialog::CActiveCmd::~CActiveCmd() - { - __VTPRINT2( DEBUG_GEN, "VtUiExCmdDlgCmd.Dtor this=%d", (TInt)this ) - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::Start -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::CActiveCmd::Start() - { - __VTPRINTENTER( "VtUiExCmdDlgCmd.Start" ) - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - SetActive(); - __VTPRINTEXITR( "VtUiExCmdDlgCmd.Start this=%d", (TInt)this ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::CommandPerformed -// ----------------------------------------------------------------------------- -// -TBool CVtUiExecuteCmdDialog::CActiveCmd::CommandPerformed() const - { - __VTPRINT3( DEBUG_GEN, "VtUiExCmdDlgCmd.Perf this=%d,cmd=%d", - (TInt)this, iCommandPerformed ) - return iCommandPerformed; - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::RunL -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::CActiveCmd::RunL() - { - __VTPRINTENTER( "VtUiExCmdDlgCmd.RunL" ) - iCommandHandler.ExecuteL( iCommand, iCommandParams ); - iCommandPerformed = ETrue; - __VTPRINTEXITR( "VtUiExCmdDlgCmd.RunL this=%d", (TInt)this ) - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtUiExecuteCmdDialog::CActiveCmd::DoCancel() - { - __VTPRINT2( DEBUG_GEN, "VtUiExCmdDlgCmd.DoCnl this=%d", (TInt)this ) - // Request is completed immediately. - } - -// ----------------------------------------------------------------------------- -// CVtUiExecuteCmdDialog::CActiveCmd::RunError -// ----------------------------------------------------------------------------- -// -TInt CVtUiExecuteCmdDialog::CActiveCmd::RunError( TInt aResult ) - { - __VTPRINTENTER( "VtUiExCmdDlgCmd.RunError" ) - // Exception was raised in RunL. Inform the dialog to close itself. - iDialog.HandleExecuteFailed( aResult ); - __VTPRINTEXITR( "VtUiExCmdDlgCmd.RunError this=%d", (TInt)this ) - return KErrNone; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiMainControl.cpp --- a/vtuis/videotelui/src/CVtUiMainControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,245 +0,0 @@ -/* -* Copyright (c) 2004 - 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: Implementation of the CVtUiMainControl control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiMainControl.h" -#include "VtUiLayout.h" -#include -#include -#include -#include -#include "CVtUiAppUi.h" -#include "tvtuistates.h" -#include -#include "tVtuifeaturevariation.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::NewL -// ----------------------------------------------------------------------------- -CVtUiMainControl* CVtUiMainControl::NewL( CVtUiBitmapManager& aBitmapManager, - TVtUiStates& aUiStates ) - { - __VTPRINTENTER( "MainCtrl.NewL" ) - CVtUiMainControl* self = - new ( ELeave ) CVtUiMainControl( aBitmapManager, aUiStates ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "MainCtrl.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::CVtUiMainControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiMainControl::CVtUiMainControl( CVtUiBitmapManager& aBitmapManager, - TVtUiStates& aUiStates ) : CVtUiVideoControlBase( aBitmapManager ), - iUiStates ( aUiStates ) - { - __VTPRINTENTER( "MainCtrl.Ctor" ) - SetRenderingHint( ESkinnedBackground ); - __VTPRINTEXIT( "MainCtrl.Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiMainControl::ConstructL() - { - __VTPRINTENTER( "MainCtrl.ConstructL" ) - BaseConstructL(); - iBlindId = - BitmapManager().AddBitmapL( - EVtUiBitmap_qgn_indi_call_video_blind_in, - EFalse ); - BitmapManager().SetAspectRatio( iBlindId, EFalse ); - iBlindMaskId = - BitmapManager().AddBitmapL( - EVtUiBitmap_qgn_indi_call_video_blind_in_mask_icon, - EFalse ); - BitmapManager().SetAspectRatio( iBlindMaskId, EFalse ); - __VTPRINTEXIT( "MainCtrl.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::~CVtUiMainControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiMainControl::~CVtUiMainControl() - { - __VTPRINTENTER( "MainCtrl.~" ) - BitmapManager().RemoveBitmap( iBlindId ); - BitmapManager().RemoveBitmap( iBlindMaskId ); - __VTPRINTEXIT( "MainCtrl.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::HandleSizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiMainControl::HandleSizeChanged() - { - __VTPRINTENTER( "MainCtrl.HandleSizeChanged" ) - const TRect mainPaneRect( Rect() ); - - // blind icon and mask - TAknWindowLineLayout blind; - VtUiLayout::GetSecondWindowDisabledIconLayout( blind ); - iBlindLayout.LayoutRect( mainPaneRect, blind ); - const TSize blindSize( iBlindLayout.Rect().Size() ); - BitmapManager().SetSize( iBlindId, blindSize ); - BitmapManager().SetSize( iBlindMaskId, blindSize ); - - // stream - TAknWindowLineLayout stream; - VtUiLayout::GetSecondWindowStreamWholeLayout( stream, - iUiStates.IsToolbarAvailable(), iSQCifRemote ); - - iStreamLayoutRect.LayoutRect( mainPaneRect, stream ); - - __VTPRINTEXIT( "MainCtrl.HandleSizeChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::DrawWaitingText -// ----------------------------------------------------------------------------- -// -TBool CVtUiMainControl::DrawWaitingText( CWindowGc& aGc ) const - { - __VTPRINTENTER( "MainCtrl.DrawWaitingText" ) - TBool wasDrawn( EFalse ); - if ( !iSQCifRemote) - { - wasDrawn = CVtUiVideoControlBase::DrawWaitingText( aGc ); - } - __VTPRINTEXITR( "MainCtrl.DrawWaitingText %d", wasDrawn ) - return wasDrawn; - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::StreamBlitPosition -// ----------------------------------------------------------------------------- -// -TPoint CVtUiMainControl::StreamBlitPosition() const - { - __VTPRINTENTER( "MainCtrl.StreamBlitPosition" ) - const TSize videoSize( iStreamBitmap->SizeInPixels() ); - const TSize streamSize( iStreamLayoutRect.Rect().Size() ); - __VTPRINTEXIT( "MainCtrl.StreamBlitPosition" ) - return AdjustPointForDP( iStreamLayoutRect.Rect().iTl ); - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::StreamClippingRect -// ----------------------------------------------------------------------------- -// -TRect CVtUiMainControl::StreamClippingRect() const - { - __VTPRINTENTER( "MainCtrl.StreamClippingRect" ) - __VTPRINTEXIT( "MainCtrl.StreamClippingRect" ) - return AdjustRectForDP( iStreamLayoutRect.Rect() ); - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::BlindImage -// ----------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiMainControl::BlindImage() const - { - __VTPRINTENTER( "MainCtrl.BlindImage" ) - __VTPRINTEXIT( "MainCtrl.BlindImage" ) - return Bitmap( iBlindId ); - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::BlindMask -// ----------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiMainControl::BlindMask() const - { - __VTPRINTENTER( "MainCtrl.BlindMask" ) - __VTPRINTEXIT( "MainCtrl.BlindMask" ) - return Bitmap( iBlindMaskId ); - } - -// --------------------------------------------------------------------------- -// CVtUiMainControl::BlindBlitPosition -// --------------------------------------------------------------------------- -// -TPoint CVtUiMainControl::BlindBlitPosition() const - { - __VTPRINTENTER( "CVtUiMainControl.BlindBlitPosition" ) - __VTPRINTEXIT( "CVtUiMainControl.BlindBlitPosition" ) - return iBlindLayout.Rect().iTl; - } - -// --------------------------------------------------------------------------- -// CVtUiMainControl::WaitingTextLayout -// --------------------------------------------------------------------------- -// -TAknTextLineLayout CVtUiMainControl::WaitingTextLayout( TInt aLine ) - { - __VTPRINTENTER( "MainCtrl.WaitingTextLayout" ) - TAknTextLineLayout textLayout; - VtUiLayout::GetSecondWindowWaitingTextLayout( textLayout, - aLine ? EFalse : ETrue ); - __VTPRINTEXIT( "MainCtrl.WaitingTextLayout" ) - return textLayout; - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::SupportSQCif -// ----------------------------------------------------------------------------- -// -void CVtUiMainControl::SupportSQCif( TBool aIsSupported ) - { - __VTPRINTENTER( "MainCtrl.SupportSQCif" ) - const TBool layoutUpdateRequired( aIsSupported != iSQCifRemote ); - iSQCifRemote = aIsSupported; - if ( layoutUpdateRequired ) - { - HandleSizeChanged(); - } - __VTPRINTEXITR( "MainCtrl.SupportSQCif %d", iSQCifRemote ) - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::LayoutRemoteVideo -// ----------------------------------------------------------------------------- -// -void CVtUiMainControl::LayoutRemoteVideo( ) - { - __VTPRINTENTER( "MainCtrl.LayoutRemoteVideo" ) - if ( NULL != iRemoteVideoControl ) - { - TRect rectRemoteVideo(StreamClippingRect()); - rectRemoteVideo.Move(PositionRelativeToScreen()); - iRemoteVideoControl->SetExtent(rectRemoteVideo.iTl,rectRemoteVideo.Size()); - } - __VTPRINTEXIT( "MainCtrl.LayoutRemoteVideo" ) - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiMutedControl.cpp --- a/vtuis/videotelui/src/CVtUiMutedControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiMutedControl control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiMutedControl.h" -#include "VtUiLayout.h" -#include -#include -#include -#include -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::CVtUiMutedControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiMutedControl::CVtUiMutedControl() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiMutedControl::ConstructL() - { - HBufC* mutedText = - StringLoader::LoadLC( R_VIDEOTELUI_QTN_INCAL_MUTED_PANE ); - - iMutedLabel = new ( ELeave ) CEikLabel; - iMutedLabel->SetContainerWindowL( *this ); - iMutedLabel->SetTextL( *mutedText ); - - CleanupStack::PopAndDestroy( mutedText ); - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::~CVtUiMutedControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiMutedControl::~CVtUiMutedControl() - { - AknsUtils::DeregisterControlPosition( this ); - - delete iMutedLabel; - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::HandleResourceChange -// ----------------------------------------------------------------------------- -// -void CVtUiMutedControl::HandleResourceChange( - TInt aType ) - { - CCoeControl::HandleResourceChange( aType ); - - if ( aType == KAknsMessageSkinChange ) - { - SizeChanged(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::Draw -// ----------------------------------------------------------------------------- -// -void CVtUiMutedControl::Draw( const TRect& /*aRect*/ ) const - { - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiMutedControl::SizeChanged() - { - AknsUtils::RegisterControlPosition( this ); - - TRect naviPane( Rect() ); - if ( naviPane.IsEmpty() ) - { - return; - } - - TAknTextLineLayout label; - VtUiLayout::GetMutedTextLayout( label ); - - AknLayoutUtils::LayoutLabel( iMutedLabel, naviPane, label ); - - // Update label color - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TRgb skinColor; - - TInt error = - AknsUtils::GetCachedColor( - skin, - skinColor, - KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG2 ); - - if ( ( error == KErrNone ) && iMutedLabel ) - { - // Ignore error - TRAP_IGNORE( - iMutedLabel->OverrideColorL( EColorLabelText, skinColor ) ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiMutedControl::PositionChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::CountComponentControls -// ----------------------------------------------------------------------------- -// -TInt CVtUiMutedControl::CountComponentControls() const - { - return 1; // one label - } - -// ----------------------------------------------------------------------------- -// CVtUiMutedControl::ComponentControl -// ----------------------------------------------------------------------------- -// -CCoeControl* CVtUiMutedControl::ComponentControl( - TInt /*aIndex*/ ) const - { - return iMutedLabel; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiNaviPane.cpp --- a/vtuis/videotelui/src/CVtUiNaviPane.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,362 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of the CVtUiNaviPane class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiNaviPane.h" -#include "CVtUiNaviPaneControl.h" -#include "CVtUiMutedControl.h" -#include "CVtUiAppUi.h" - -#include -#include -#include -#include -#include -#include "tVtuifeaturevariation.h" -#include -#include - -// CONSTANTS - -// Timeout after which voice volume bar is switched back to indicators. -const TInt KVtUiVoiceVolumeTimeout = 2000000; - -// LOCAL FUNCTION PROTOTYPES - -/** -* Creates navigation decorator. -* @param aNaviPane reference to navi pane. -* @param aControl control to be decorated, ownership passed. -* @return new navigation decorator instance. -*/ -CAknNavigationDecorator* CreateDecoratorL( - CAknNavigationControlContainer& aNaviPane, - CCoeControl* aControl ); - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CreateDecoratorL Creates navigation decorator. -// Returns: new navigation decorator instance. -// ----------------------------------------------------------------------------- -// -CAknNavigationDecorator* CreateDecoratorL( - CAknNavigationControlContainer& aNaviPane, - CCoeControl* aControl ) - { - CAknNavigationDecorator* decoratedFolder = - CAknNavigationDecorator::NewL( - &aNaviPane, - aControl, - CAknNavigationDecorator::ENotSpecified ); - - CleanupStack::PushL( decoratedFolder ); - decoratedFolder->SetContainerWindowL( aNaviPane ); - aControl->SetContainerWindowL( *decoratedFolder ); - CleanupStack::Pop( decoratedFolder ); - - decoratedFolder->MakeScrollButtonVisible( EFalse ); - - return decoratedFolder; - } - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::CVtUiNaviPane -// ----------------------------------------------------------------------------- -// -CVtUiNaviPane::CVtUiNaviPane( - CAknNavigationControlContainer& aNaviPane, - CVtUiAppUi& aAppUi ) - : CActive( CActive::EPriorityStandard ), - iNaviPane( aNaviPane ), - iAppUi ( aAppUi ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::ConstructL( ) - { - // Create the navi pane indicator (call duration). - { - CVtUiNaviPaneControl* naviControl = - new ( ELeave ) CVtUiNaviPaneControl( *this ); - CleanupStack::PushL( naviControl ); - naviControl->ConstructL(); - CleanupStack::Pop( naviControl ); - - iMainIndicators = - CreateDecoratorL( iNaviPane, naviControl ); - - iNaviPaneControl = naviControl; - } - - // Create muted indicator. - { - HBufC* mutedText = - StringLoader::LoadLC( R_VIDEOTELUI_QTN_INCAL_MUTED_PANE ); - - iMutedIndicator = iNaviPane.CreateNavigationLabelL( *mutedText ); - - CleanupStack::PopAndDestroy( mutedText ); - } - - User::LeaveIfError( iTimer.CreateLocal() ); - - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::NewL -// ----------------------------------------------------------------------------- -// -CVtUiNaviPane* CVtUiNaviPane::NewL( - CAknNavigationControlContainer& aNaviPane, - CVtUiAppUi& aAppUi ) - { - CVtUiNaviPane* self = - new ( ELeave ) CVtUiNaviPane( - aNaviPane, aAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::~CVtUiNaviPane -// ----------------------------------------------------------------------------- -// -CVtUiNaviPane::~CVtUiNaviPane() - { - Cancel(); - - delete iMainIndicators; - delete iMutedIndicator; - - iTimer.Close(); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::SetCurrentSpeaker -// Parameter aLoudspeaker defines which speaker is used. -// ETrue for loudspeaker, EFalse for handset. -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::SetCurrentSpeaker( const TBool aLoudspeaker ) - { - if( iLoudspeaker != aLoudspeaker ) - { - Cancel(); - if( iCallDurationEnabled || iMicrophoneMuted ) - { - iSliderType = ENone; - } - } - iLoudspeaker = aLoudspeaker; - } - - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::SetMuted -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::SetMuted( - const TBool aStatus ) - { - __VTPRINT2( DEBUG_GEN, "NaviPane.SetMuted.aStatus=%d", aStatus ) - if( iMicrophoneMuted != aStatus ) - { - Cancel(); - // if volume indicator is shown when audio is umuted - // volume indicator won't be dismissed and call duration - // will not be shown - if( iCallDurationEnabled || aStatus ) - { - iSliderType = ENone; - } - } - iMicrophoneMuted = aStatus; - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::SetCallDuration -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::SetCallDuration( - const TTimeIntervalSeconds& aDuration, - const TBool aEnabled ) - { - iCallDurationEnabled = aEnabled; - iNaviPaneControl->SetCallDuration( aDuration, aEnabled ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::CommitL -// -// Priority order of different navi pane elements is the following: -// 1. Muted indicator -// 2. Main indicators (call duration) -// -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::CommitL() - { - CAknNavigationDecorator* selected = DefaultIndicator(); - - PushL( selected ); - - // If current is main indicators, then update now. - if ( iCurrent == iMainIndicators ) - { - iNaviPaneControl->CommitL(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::GetSpeakerVolume -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::GetSpeakerVolume( - const TBool , - TInt& aValue ) const - { - aValue = 0; - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::HandleResourceChange -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::HandleResourceChange( - TInt aType ) - { - // iCurrent will get event through navi pane. - if ( iMainIndicators != iCurrent ) - { - iMainIndicators->HandleResourceChange( aType ); - iNaviPaneControl->HandleResourceChange( aType ); - } - if ( iMutedIndicator != iCurrent ) - { - iMutedIndicator->HandleResourceChange( aType ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::DoCancel -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::DoCancel() - { - iTimer.Cancel(); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::RunL -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::RunL() - { - iSliderType = ENone; - CAknNavigationDecorator* selected = DefaultIndicator(); - if ( selected ) - { - PushL( selected ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::PushAfterTimeout -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::PushAfterTimeout() - { - Cancel(); - iTimer.After( iStatus, KVtUiVoiceVolumeTimeout ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::PushL -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPane::PushL( CAknNavigationDecorator* aNew ) - { - if ( !aNew ) - { - if ( iCurrent ) - { - iNaviPane.Pop(); - iCurrent = NULL; - } - else - { - iNaviPane.PushDefaultL(); - } - } - else if ( iCurrent != aNew ) - { - // If current not defined, then push to navi pane. This should be called - // during construction. - if ( !iCurrent ) - { - iNaviPane.PushL( *aNew ); - iCurrent = aNew; - } - // Otherwise replace the old one. - else - { - iNaviPane.ReplaceL( *iCurrent, *aNew ); - iCurrent = aNew; - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::DefaultIndicator -// Returns default indicator. Note that this does not include temporary -// zoom indicator. -// ----------------------------------------------------------------------------- -// -CAknNavigationDecorator* CVtUiNaviPane::DefaultIndicator() const - { - CAknNavigationDecorator* selected = NULL; - - if ( IsActive() ) - { - selected = iMainIndicators; - } - else if ( iMicrophoneMuted && iSliderType != EVolume && iSliderType != EZoom ) - { - selected = iMutedIndicator; - } - else if ( iCallDurationEnabled && iSliderType != EVolume && iSliderType != EZoom ) - { - selected = iMainIndicators; - } - - return selected; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiNaviPaneControl.cpp --- a/vtuis/videotelui/src/CVtUiNaviPaneControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Implementation of the CVtUiNaviPaneControl control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiNaviPaneControl.h" -#include "CVtUiNaviPane.h" -#include "VtUiLayout.h" -#include -#include - -// CONSTANTS - -// There are sixty seconds in one minute. -const TInt KVtUiOneMinuteInSeconds = 60; - -// There are sixty minutes in one hour. -const TInt KVtUiOneHourInSeconds = 3600; - -// Maximum duration is 99:59:59. -const TInt KVtUiMaxDurationInSeconds = - 99*KVtUiOneHourInSeconds + - 59*KVtUiOneMinuteInSeconds + - 59; - -// Amount of digits. -const TInt KVtUiDigits = 10; - -// Index of time separator. -const TInt KVtUiSeparatorTime = 0; - -// Index of hour separator. -const TInt KVtUiSeparatorHour = 1; - -// Index of minute separator. -const TInt KVtUiSeparatorMinute = 2; - -// Index of second separator. -const TInt KVtUiSeparatorSecond = 3; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::CVtUiNaviPaneControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiNaviPaneControl::CVtUiNaviPaneControl( CVtUiNaviPane& aNaviPane ) - : iNaviPane ( aNaviPane ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::~CVtUiNaviPaneControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiNaviPaneControl::~CVtUiNaviPaneControl() - { - AknsUtils::DeregisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::SetCallDuration -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::SetCallDuration( - const TTimeIntervalSeconds& aDuration, - const TBool aEnabled ) - { - iCallDurationEnabled = aEnabled; - iCallDuration = aDuration; - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::CommitL -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::CommitL() - { - ReportEventL( MCoeControlObserver::EEventStateChanged ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::Draw -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::Draw( const TRect& /*aRect*/ ) const - { - CWindowGc& gc = SystemGc(); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - - const TDesC& callDurationText = GetCallDurationText(); - if ( callDurationText.Length() ) - { - TRgb color = iCallDurationLayout.Color(); - // Color is not updated if it not found from the skin - AknsUtils::GetCachedColor( - skin, - color, - KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG2 ); - iCallDurationLayout.DrawText( gc, callDurationText, EFalse, color ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::SizeChanged() - { - AknsUtils::RegisterControlPosition( this ); - TAknWindowLineLayout rect; - TRect parent( Rect() ); - if ( parent.IsEmpty() ) - { - return; - } - - TAknTextLineLayout text; - VtUiLayout::GetCallDurationTextLayout( text ); - iCallDurationLayout.LayoutText( parent, text ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::PositionChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::GetCallDurationText -// ----------------------------------------------------------------------------- -// -const TDesC& CVtUiNaviPaneControl::GetCallDurationText() const - { - iCallDurationBuffer.Zero(); - - if ( iCallDurationEnabled ) - { - TLocale locale; - - TInt durationInseconds = iCallDuration.Int(); - if ( durationInseconds > KVtUiMaxDurationInSeconds ) - { - durationInseconds = KVtUiMaxDurationInSeconds; - } - - const TInt hours = durationInseconds / KVtUiOneHourInSeconds; - const TInt secondsLeft = - durationInseconds - ( hours * KVtUiOneHourInSeconds ); - - const TInt minutes = secondsLeft / KVtUiOneMinuteInSeconds; - const TInt seconds = - secondsLeft - ( minutes * KVtUiOneMinuteInSeconds ); - - AppendChar( - iCallDurationBuffer, - locale.TimeSeparator( KVtUiSeparatorTime ) ); - - AppendNum( - iCallDurationBuffer, - hours ); - - AppendChar( - iCallDurationBuffer, - locale.TimeSeparator( KVtUiSeparatorHour ) ); - - AppendNum( - iCallDurationBuffer, - minutes ); - - AppendChar( - iCallDurationBuffer, - locale.TimeSeparator( KVtUiSeparatorMinute ) ); - - AppendNum( - iCallDurationBuffer, - seconds ); - - AppendChar( - iCallDurationBuffer, - locale.TimeSeparator( KVtUiSeparatorSecond ) ); - - // Convert numbers to display language. - AknTextUtils::DisplayTextLanguageSpecificNumberConversion( - iCallDurationBuffer ); - } - - return iCallDurationBuffer; - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::AppendChar -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::AppendChar( - TDes& aBuffer, - const TChar& aChar ) - { - if ( aChar ) - { - aBuffer.Append( aChar ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPaneControl::AppendNum -// ----------------------------------------------------------------------------- -// -void CVtUiNaviPaneControl::AppendNum( - TDes& aBuffer, - TInt aNumber ) - { - if ( aNumber < 0 ) - { - aNumber = 0; - } - - const TInt firstDigit = ( aNumber / KVtUiDigits ) % KVtUiDigits; - const TInt secondDigit = ( aNumber % KVtUiDigits ); - - aBuffer.AppendNum( firstDigit ); - aBuffer.AppendNum( secondDigit ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiNumberEntryActivationControl.cpp --- a/vtuis/videotelui/src/CVtUiNumberEntryActivationControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiNumberEntryActivationControl -* control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiNumberEntryActivationControl.h" -#include "CVtUiAppUi.h" -#include "VtUiUtility.h" - -#include -#include -#include -#include - -// CONSTANTS - -// Control priority for the forwarder control. Above all other controls. -extern const TInt KVtUiNumberEntryActivationPriority = - ECoeStackPriorityEnvironmentFilter + 100; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::CVtUiNumberEntryActivationControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiNumberEntryActivationControl::CVtUiNumberEntryActivationControl( - CVtUiAppUi& aAppUi ) - : iAppUi( aAppUi ), iIsActive ( ETrue ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryActivationControl::ConstructL( const TRect& aRect ) - { - // Create invisible control. - CreateWindowL(); - MakeVisible( EFalse ); - SetRect( aRect ); - - iAppUi.AddToStackL( - this, - KVtUiNumberEntryActivationPriority, - ECoeStackFlagRefusesFocus ); - iAddedToStack = ETrue; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::~CVtUiNumberEntryActivationControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiNumberEntryActivationControl::~CVtUiNumberEntryActivationControl() - { - AknsUtils::DeregisterControlPosition( this ); - - if ( iAddedToStack ) - { - iAppUi.RemoveFromStack( this ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::Draw -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryActivationControl::Draw( const TRect& /*aRect*/ ) const - { - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryActivationControl::SizeChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryActivationControl::PositionChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::OfferKeyEventL -// ----------------------------------------------------------------------------- -// -TKeyResponse CVtUiNumberEntryActivationControl::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - __VTPRINTENTER( "VtUiNumberEntryAC.OfferKeyEvent" ) - TBool numberEntryOpen = EFalse; - TChar dtmfTone; - TBool playDtmfTone = EFalse; - TKeyResponse keyResponse = EKeyWasNotConsumed; - if ( aKeyEvent.iScanCode == EStdKeyYes ) - { - // send key is always consumed to prevent event forwarding to telephony - // EStdKeyYes is scan code for send key, iCode cannot be used because - // it is valid only when event type is EEventKey (not in up/down events) - keyResponse = EKeyWasConsumed; - } - if ( !iIsActive ) - { - return keyResponse; - } - - if ( !aKeyEvent.iRepeats ) - { - if ( VtUiUtility::IsDTMFEvent( aKeyEvent, dtmfTone ) ) - { - numberEntryOpen = iAppUi.OpenNumberEntryL(); - playDtmfTone = ( aType == EEventKey ); - } - else if ( aKeyEvent.iCode == EKeyPhoneSend ) - { - keyResponse = iAppUi.HandlePhoneSendKeyL( aKeyEvent, aType ); - } - } - - if ( numberEntryOpen ) - { - iEikonEnv->SyncNotifyFocusObserversOfChangeInFocus(); - } - - // Tone actions are delegated to current state for validation. - if ( playDtmfTone ) - { - iAppUi.State().StartDtmfTone( dtmfTone ); - } - else if ( aType == EEventKeyUp ) - { - iAppUi.State().StopDtmfTone(); - } - __VTPRINTEXITR( "VtUiNumberEntryAC.OfferKeyEvent %d", keyResponse ) - return keyResponse; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryActivationControl::SetActive -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryActivationControl::SetActive( TBool aIsActive ) - { - iIsActive = aIsActive; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiRemoteVideoControl.cpp --- a/vtuis/videotelui/src/CVtUiRemoteVideoControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CVtUiRemoteVideoControl -* control class. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "CVtUiRemoteVideoControl.h" -#include "CVtUiAppUi.h" -#include "CVtUiContextControl.h" - - -// Implementation of CVtUiRemoteVideoControl - -// ----------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::NewL -// ----------------------------------------------------------------------------- - -CVtUiRemoteVideoControl* CVtUiRemoteVideoControl::NewL( CVtUiAppUi& aAppUi) - { - __VTPRINTENTER( "RemoteVideoControl.NewL" ) - CVtUiRemoteVideoControl* self = new ( ELeave ) CVtUiRemoteVideoControl(aAppUi); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "RemoteVideoControl.NewL" ) - return self; - - } -// --------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::~CVtUiRemoteVideoControl -// --------------------------------------------------------------------------- -// -CVtUiRemoteVideoControl::~CVtUiRemoteVideoControl() - { - __VTPRINTENTER( "RemoteVideoControl.~" ) - __VTPRINTEXIT( "RemoteVideoControl.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::CVtUiVideoControlBase -// --------------------------------------------------------------------------- -// -CVtUiRemoteVideoControl::CVtUiRemoteVideoControl( CVtUiAppUi& aAppUi): - iAppUi(aAppUi) - { - __VTPRINTENTER( "RemoteVideoControl.ctor" ) - __VTPRINTEXIT( "RemoteVideoControl.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::BaseConstructL -// --------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::ConstructL() - { - __VTPRINTENTER( "RemoteVideoControl.ConstructL" ) - CreateWindowL(); - SetExtent( TPoint(), TSize() ); - ActivateL(); - //Window().SetNonFading( ETrue ); - __VTPRINTEXIT( "RemoteVideoControl.ConstructL" ) - } - -RWindow& CVtUiRemoteVideoControl::GetRWindow() - { - __VTPRINTENTER( "RemoteVideoControl.GetRWindow" ) - __VTPRINTEXIT( "RemoteVideoControl.GetRWindow" ) - return Window(); - } - -// --------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::HandleSizeChanged -// --------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::HandleSizeChanged() - { - __VTPRINTENTER( "RemoteVideoControl.HandleSizeChanged" ) - __VTPRINTEXIT( "RemoteVideoControl.HandleSizeChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::SizeChanged() - { - __VTPRINTENTER( "RemoteVideoControl.SizeChanged" ) - TPoint position = Position(); - TRect rect = Rect(); - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl position x:%d", position.iX ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl position y:%d", position.iY ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iTl.x:%d", rect.iTl.iX ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iTl.y:%d", rect.iTl.iY ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iBr.x:%d", rect.iBr.iX ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iBr.y:%d", rect.iBr.iY ) - - __VTPRINTEXIT( "RemoteVideoControl.SizeChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::PositionChanged() - { - __VTPRINTENTER( "RemoteVideoControl.PositionChanged" ) - __VTPRINTEXIT( "RemoteVideoControl.PositionChanged" ) - } - -// --------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::Draw -// --------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::Draw( const TRect& ) const - { - __VTPRINTENTER( "RemoteVideoControl.Draw" ) - //DoDraw( SystemGc() ); - __VTPRINTEXIT( "RemoteVideoControl.Draw" ) - } - -// --------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::DoDraw -// --------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::DoDraw( CWindowGc& aGc ) const - { - __VTPRINTENTER( "RemoteVideoControl.DoDraw(gc)" ) - - aGc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - aGc.SetPenStyle( CGraphicsContext::ENullPen ); - aGc.SetBrushColor( KRgbRed ); - aGc.DrawRect( Rect() ); - aGc.SetBrushStyle( CGraphicsContext::ENullBrush ); - - TPoint position = Position(); - TRect rect = Rect(); - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl position x:%d", position.iX ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl position y:%d", position.iY ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iTl.x:%d", rect.iTl.iX ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iTl.y:%d", rect.iTl.iY ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iBr.x:%d", rect.iBr.iX ) - __VTPRINT2( DEBUG_GEN, "CVtUiRemoteVideoControl rect iBr.y:%d", rect.iBr.iY ) - - __VTPRINTEXIT( "RemoteVideoControl.DoDraw(gc)" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::HandlePointerEventL -// ----------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::HandlePointerEventL( - const TPointerEvent& aPointerEvent) - { - __VTPRINTENTER( "RemoteVideoControl.HandlePointerEventL" ) - - if(iAppUi.ContextControl().RemoteVideoControl()) - { - iAppUi.ContextControl().HandlePointerEventL(aPointerEvent); - } - - __VTPRINTEXIT( "RemoteVideoControl.HandlePointerEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiRemoteVideoControl::HandleWsEventL -// ----------------------------------------------------------------------------- -// -void CVtUiRemoteVideoControl::HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* aDestination ) - { - __VTPRINTENTER( "RemoteVideoControl.HandleWsEventL" ) - - if(iAppUi.ContextControl().RemoteVideoControl()) - { - iAppUi.ContextControl().HandleWsEventL( aEvent, aDestination ); - } - - __VTPRINTEXIT( "RemoteVideoControl.HandleWsEventL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/CVtUiZoomControl.cpp --- a/vtuis/videotelui/src/CVtUiZoomControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,856 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Implementation of the CVtUiZoomControl control class. -* -*/ - - - -// INCLUDE FILES -#include "CVtUiZoomControl.h" -#include "VtUiLayout.h" -#include -#include -#include "videotelui.hrh" - -#include -// CONSTANTS - -// Maximum amount of steps. -const TInt KVtUiZoomControlMaxSteps = 11; - -// Minimum amount of steps. -const TInt KVtUiZoomControlMinSteps = 1; - -// Fixed point position. -const TInt KVtUiZoomControlFixed = 16; - -// Fixed point number, corresponds to one. -const TInt KVtUiZoomControlOne = ( 1 << KVtUiZoomControlFixed ); - -// Amount of partial bits. It is expected that -// KVtUiZoomControlFixed >= KVtUiZoomControlPartial. -const TInt KVtUiZoomControlPartial = 8; - -// Maximum duration of zooming from minimum to maximum, in microseconds. -const TInt KVtUiZoomDurationMax = 2000000; - -// Maximum duration to increase zoom step by one, in microseconds. -const TInt KVtUiZoomStepDurationMax = 200000; - -// Index of transparent color. -const TInt KVtUiZoomTransparent = 0; - -// MODULE DATA STRUCTURES - -/** -* Inner class to hold everything related to one bitmap. -* @since Series 60 2.6 -*/ -class CVtUiZoomControl::CBitmap - : public CBase - { - public: // Constructors and destructors. - - /** - * Constructor. - */ - CBitmap(); - - /** - * Symbian OS constructor. - * @param aSize size of the bitmap. - * @param aMode display mode of the bitmap. - */ - void ConstructL( - const TSize& aSize, - const TDisplayMode aMode ); - - /** - * Destructor. - */ - ~CBitmap(); - - public: - - /** - * Returns bitmap. - * @return bitmap, ownership not passed. - */ - inline CFbsBitmap* Bitmap() const; - - /** - * Returns bitmap context. - * @return bitmap context, ownership not passed. - */ - inline CFbsBitGc* Context() const; - - private: - - // Owned bitmap. - CFbsBitmap* iBitmap; - - // Owned device. - CFbsBitmapDevice* iDevice; - - // Owned context. - CFbsBitGc* iContext; - - }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CVtUiZoomControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiZoomControl::CVtUiZoomControl( CVtUiBitmapManager& aBitmapManager ) - : iBitmapManager( aBitmapManager ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::ConstructL() - { - iZoomDirId = - iBitmapManager.AddBitmapsL( - EVtUiBitmap_qgn_indi_zoom_dir, - EVtUiBitmap_qgn_indi_zoom_dir_mask, - ETrue ); - iZoomAreaId = - iBitmapManager.AddBitmapL( EVtUiBitmap_qgn_graf_zoom_area, EFalse ); - iBitmapManager.SetAspectRatio( iZoomAreaId, EFalse ); - - iZoomMinId = - iBitmapManager.AddBitmapL( EVtUiBitmap_qgn_indi_zoom_min, EFalse ); - iBitmapManager.SetAspectRatio( iZoomMinId, EFalse ); - - iZoomMaxId = - iBitmapManager.AddBitmapL( EVtUiBitmap_qgn_indi_zoom_max, EFalse ); - iBitmapManager.SetAspectRatio( iZoomMaxId, EFalse ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::~CVtUiZoomControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiZoomControl::~CVtUiZoomControl() - { - AknsUtils::DeregisterControlPosition( this ); - - iBitmapManager.RemoveBitmap( iZoomDirId ); - iBitmapManager.RemoveBitmap( iZoomAreaId ); - iBitmapManager.RemoveBitmap( iZoomMinId ); - iBitmapManager.RemoveBitmap( iZoomMaxId ); - - delete iZoomPartialMask; - delete iZoomPartialShade; - delete iZoomPartialShadeMask; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::SetZoomParams -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::SetZoomParams( - const TInt aStepCount, - const TInt aCurrentStep ) - { - iCurrentZoomStep = aCurrentStep; - iMaxZoomStep = aStepCount; - if ( iMaxZoomStep < 0 ) - { - iMaxZoomStep = 0; - } - iCurrentZoomStep = Max( Min( iCurrentZoomStep, iMaxZoomStep ), 0 ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CommitL -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::CommitL() - { - ReportEventL( MCoeControlObserver::EEventStateChanged ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::IsZoomEnabled -// ----------------------------------------------------------------------------- -// -TBool CVtUiZoomControl::IsZoomEnabled() const - { - return ( iMaxZoomStep > 0 ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::GetZoomParams -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::GetZoomParams( - TInt& aStepCount, - TInt& aCurrentStep ) const - { - aStepCount = iMaxZoomStep; - aCurrentStep = iCurrentZoomStep; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::UpdateZoomL -// ----------------------------------------------------------------------------- -// -TBool CVtUiZoomControl::UpdateZoomL() - { - const TInt oldZoomStep = iCurrentZoomStep; - if ( iZoomDirection ) - { - __VTPRINT( DEBUG_GEN, "VtUiZmCtl.UpdZoom" ) - TTime timeNow; - timeNow.UniversalTime(); - - const TTimeIntervalMicroSeconds duration = - timeNow.MicroSecondsFrom( iZoomStartTime ); - - if ( duration >= TInt64( KVtUiZoomDurationMax ) ) - { - // Duration is over maximum, so we can stop zooming. - if ( iZoomDirection > 0 ) - { - iCurrentZoomStep = iMaxZoomStep; - } - else - { - iCurrentZoomStep = 0; - } - - iZoomDirection = 0; - } - else if ( duration < TInt64( 0 ) ) - { - // Clock has been changed. Stop zooming. - iZoomDirection = 0; - } - else - { - // Zoom is increased at least by one step per 0.2 seconds. - TInt64 minimum( duration.Int64() ); - minimum /= KVtUiZoomStepDurationMax; - - // Zoom is increased from minimum to maximum in 2 seconds. - TInt64 maximum( duration.Int64() ); - maximum *= iMaxZoomStep; - maximum /= KVtUiZoomDurationMax; - - // Select maximum. - TInt zoomStepDelta = - iZoomDirection * Max( I64INT( minimum ), I64INT( maximum ) ); - TInt zoomStep = iZoomStepStart + zoomStepDelta; - - // If minimum has been reached, zooming can be stopped. - if ( zoomStep < 0 ) - { - zoomStep = 0; - iZoomDirection = 0; - } - // If maximum has been reached, zooming can be stopped. - if ( zoomStep > iMaxZoomStep ) - { - zoomStep = iMaxZoomStep; - iZoomDirection = 0; - } - - iCurrentZoomStep = zoomStep; - } - __VTPRINT( DEBUG_GEN, "VtUiZmCtl.chk" ) - } - - const TBool updateNeeded = ( oldZoomStep != iCurrentZoomStep ); - if ( updateNeeded ) - { - __VTPRINT( DEBUG_GEN, "VtUiZmCtl.upd" ) - ReportEventL( MCoeControlObserver::EEventStateChanged ); - } - - return updateNeeded; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::StopZoom -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::StopZoom() - { - iZoomDirection = 0; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::OfferKeyEventL -// ----------------------------------------------------------------------------- -// -TKeyResponse CVtUiZoomControl::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - TKeyResponse response = EKeyWasNotConsumed; - - if ( aKeyEvent.iScanCode == EStdKeyUpArrow || - aKeyEvent.iScanCode == EStdKeyDownArrow || - aKeyEvent.iCode == EKeyZoomIn || - aKeyEvent.iCode == EKeyZoomOut ) - { - switch ( aType ) - { - case EEventKey: - { - TInt direction = +1; - if ( aKeyEvent.iScanCode == EStdKeyDownArrow || - aKeyEvent.iCode == EKeyZoomOut ) - { - direction = -1; - } - - if ( !aKeyEvent.iRepeats ) - { - // Update start parameters. - iZoomDirection = direction; - iZoomStepStart = iCurrentZoomStep + direction; - iZoomStepStart = Min( iZoomStepStart, iMaxZoomStep ); - iZoomStepStart = Max( iZoomStepStart, 0 ); - iZoomStartTime.UniversalTime(); - } - - (void)UpdateZoomL(); - } - break; - - case EEventKeyUp: - // Stop zooming. - iZoomDirection = 0; - break; - - default: - // Do nothing. - break; - } - - response = EKeyWasConsumed; - } - - return response; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::HandleResourceChange -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::HandleResourceChange( - TInt aType ) - { - if ( aType == KAknsMessageSkinChange ) - { - // We must refresh partial bitmap upon next redraw. - iZoomMaskPartial = KErrNotFound; - iZoomMaskRow = KErrNotFound; - } - - CCoeControl::HandleResourceChange( aType ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::Draw -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::Draw( const TRect& /*aRect*/ ) const - { - __VTPRINT( DEBUG_GEN, "VtUiZmCtl.Draw" ) - iBitmapManager.SetSizeAndColor( - iZoomDirId, - iZoomDirLayout.Rect().Size(), - iZoomDirLayout.Color() ); - iBitmapManager.SetSize( - iZoomAreaId, - iZoomAreaLayout.Rect().Size() ); - iBitmapManager.SetSize( - iZoomMinId, - iZoomAreaLayout.Rect().Size() ); - iBitmapManager.SetSize( - iZoomMaxId, - iZoomAreaLayout.Rect().Size() ); - - CFbsBitmap* maxBitmap = NULL; - CFbsBitmap* minBitmap = NULL; - CFbsBitmap* areaBitmap = NULL; - iBitmapManager.GetBitmap( iZoomMaxId, maxBitmap ); - iBitmapManager.GetBitmap( iZoomMinId, minBitmap ); - iBitmapManager.GetBitmap( iZoomAreaId, areaBitmap ); - - TInt full; - TInt partial; - TRect drawRect; - TPoint drawPos; - - DetermineSteps( full, partial ); - if ( areaBitmap && partial && ( full < KVtUiZoomControlMaxSteps ) ) - { - // First generate bitmaps, so that drawing can be done - // quickly in sequence. - GetPositionAndRect( - drawPos, - drawRect, - full + 1 ); - - if ( !GenerateZoomMaskBitmap( - areaBitmap, - partial, - drawRect.iTl.iY, - drawRect.Size() ) ) - { - // If zoom mask generation fails, then we have no choice - // than not to draw. - partial = 0; - } - } - - CWindowGc& gc = SystemGc(); - gc.SetBrushStyle( CGraphicsContext::ENullBrush ); - - // Draw zoom direction indicator: - - CFbsBitmap* zoomDirBitmap = NULL; - CFbsBitmap* zoomDirMask = NULL; - iBitmapManager.GetBitmaps( iZoomDirId, zoomDirBitmap, zoomDirMask ); - if ( zoomDirBitmap && zoomDirMask ) - { - iZoomDirLayout.DrawImage( gc, zoomDirBitmap, zoomDirMask ); - } - - // Draw zoom indicator: - if ( !areaBitmap ) - { - // If area bitmap is invalid, then we have to return. - return; - } - - if ( maxBitmap ) - { - // First, draw maximum area. - for ( TInt index = KVtUiZoomControlMinSteps; - index <= full; - index++ ) - { - GetPositionAndRect( - drawPos, - drawRect, - index ); - gc.BitBltMasked( - drawPos, - maxBitmap, - drawRect, - areaBitmap, - ETrue ); - } - } - - if ( minBitmap && ( full < KVtUiZoomControlMaxSteps ) ) - { - // Then draw minimum area. - for ( TInt index = full + 1; - index <= KVtUiZoomControlMaxSteps; - index++ ) - { - GetPositionAndRect( - drawPos, - drawRect, - index ); - gc.BitBltMasked( - drawPos, - minBitmap, - drawRect, - areaBitmap, - ETrue ); - } - - if ( maxBitmap && partial && iZoomPartialMask ) - { - // Finally draw partial area. - GetPositionAndRect( - drawPos, - drawRect, - full + 1 ); - gc.BitBltMasked( - drawPos, - maxBitmap, - drawRect, - iZoomPartialMask->Bitmap(), - ETrue ); - } - } - - __VTPRINT( DEBUG_GEN, "VtUiZmCtl.Draw.ok" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::SizeChanged() - { - AknsUtils::RegisterControlPosition( this ); - - TRect parent( Rect() ); - TAknWindowLineLayout rect; - if ( parent.IsEmpty() ) - { - return; - } - - { - TAknLayoutRect& tmpRect = iZoomDirLayout; - VtUiLayout::GetZoomPaneLayout( rect ); - tmpRect.LayoutRect( parent, rect ); - parent = tmpRect.Rect(); - iZoomPaneRect = parent; - } - - VtUiLayout::GetZoomDirLayout( rect ); - iZoomDirLayout.LayoutRect( parent, rect ); - iBitmapManager.SetSizeAndColor( - iZoomDirId, - iZoomDirLayout.Rect().Size(), - iZoomDirLayout.Color() ); - - VtUiLayout::GetZoomAreaLayout( rect ); - iZoomAreaLayout.LayoutRect( parent, rect ); - iBitmapManager.SetSize( - iZoomAreaId, - iZoomAreaLayout.Rect().Size() ); - iBitmapManager.SetSize( - iZoomMinId, - iZoomAreaLayout.Rect().Size() ); - iBitmapManager.SetSize( - iZoomMaxId, - iZoomAreaLayout.Rect().Size() ); - (void) CreateBitmaps(); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::PositionChanged() - { - AknsUtils::RegisterControlPosition( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::DetermineSteps -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::DetermineSteps( - TInt& aFullSteps, - TInt& aPartialStep ) const - { - aFullSteps = 1; - aPartialStep = 0; - - TInt currentZoomStep = Max( Min( iCurrentZoomStep, iMaxZoomStep ), 0 ); - - if ( iMaxZoomStep > 0 ) - { - TInt zoomDeltaSteps = 0; - TInt zoomDeltaMaxSteps = 0; - - // Formula equals: x = ( N * ( y - 1 ) ) / 10. - - aFullSteps = KVtUiZoomControlMinSteps; - const TInt divider = - KVtUiZoomControlMaxSteps - KVtUiZoomControlMinSteps; - for ( TInt row = KVtUiZoomControlMaxSteps - 1; - row >= KVtUiZoomControlMinSteps - 1; - row-- ) - { - const TInt zoomStartSteps = - ( iMaxZoomStep * row ) / divider; - const TInt previousZoomStartSteps = - ( iMaxZoomStep * ( row - 1 ) ) / divider; - - if ( ( currentZoomStep >= zoomStartSteps ) && - ( previousZoomStartSteps != zoomStartSteps ) ) - { - aFullSteps = ( row + 1 ); - zoomDeltaSteps = currentZoomStep - zoomStartSteps; - zoomDeltaMaxSteps = ( iMaxZoomStep * ( row + 1 ) ) / divider; - zoomDeltaMaxSteps -= zoomStartSteps; - break; - } - } - - aPartialStep = 0; - if ( zoomDeltaSteps && zoomDeltaMaxSteps ) - { - TInt64 partial( zoomDeltaSteps ); - partial *= KVtUiZoomControlOne; - partial /= zoomDeltaMaxSteps; - - partial >>= ( KVtUiZoomControlFixed - KVtUiZoomControlPartial ); - aPartialStep = I64INT( partial ); - } - } - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::GenerateZoomMaskBitmap -// ----------------------------------------------------------------------------- -// -TBool CVtUiZoomControl::GenerateZoomMaskBitmap( - CFbsBitmap* aMaskBitmap, - const TInt aPartial, - const TInt aRow, - const TSize& aRowSize ) const - { - if ( iZoomPartialMask && - ( ( iZoomMaskPartial != aPartial ) || - ( iZoomMaskRow != aRow ) ) ) - { - DoGenerateZoomMaskBitmap( - aMaskBitmap, - aPartial, - aRow, - aRowSize ); - } - return ( iZoomPartialMask != NULL ); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::DoGenerateZoomMaskBitmap -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::DoGenerateZoomMaskBitmap( - CFbsBitmap* aMaskBitmap, - const TInt aPartial, - const TInt aRow, - const TSize& aRowSize ) const - { - CFbsBitGc* bitmapMaskGc = iZoomPartialMask->Context(); - - CFbsBitmap* shade = iZoomPartialShade->Bitmap(); - CFbsBitGc* shadeGc = iZoomPartialShade->Context(); - - // Fill shade with aPartial. - shadeGc->SetPenStyle( CGraphicsContext::ENullPen ); - shadeGc->SetBrushColor( TRgb::Gray256( aPartial ) ); - shadeGc->SetBrushStyle( CGraphicsContext::ESolidBrush ); - shadeGc->Clear(); - - // Now grab one row from iZoomAreaBitmap. - CFbsBitmap* mask = iZoomPartialShadeMask->Bitmap(); - CFbsBitGc* maskGc = iZoomPartialShadeMask->Context(); - - // Clear with transparency. - maskGc->SetPenStyle( CGraphicsContext::ENullPen ); - maskGc->SetBrushColor( TRgb::Gray2( 1 ) ); // transparency - maskGc->SetBrushStyle( CGraphicsContext::ESolidBrush ); - maskGc->Clear(); - - maskGc->SetPenStyle( CGraphicsContext::ENullPen ); - // Blit appropriate region from aMaskBitmap to maskGc. - maskGc->BitBlt( - TPoint( 0, aRow ), - aMaskBitmap, - TRect( TPoint( 0, aRow ), aRowSize ) ); - - // Now fill bitmapMask with black (= transparency). - bitmapMaskGc->SetPenStyle( CGraphicsContext::ENullPen ); - bitmapMaskGc->SetBrushColor( TRgb::Gray256( KVtUiZoomTransparent ) ); - bitmapMaskGc->SetBrushStyle( CGraphicsContext::ESolidBrush ); - bitmapMaskGc->Clear(); - - // Then blit shade masked - TPoint origin; - TRect rect( origin, shade->SizeInPixels() ); - - bitmapMaskGc->BitBltMasked( origin, shade, rect, mask, ETrue ); - - iZoomMaskPartial = aPartial; - iZoomMaskRow = aRow; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CreateBitmaps -// ----------------------------------------------------------------------------- -// -TInt CVtUiZoomControl::CreateBitmaps() - { - TRAPD( err, CreateBitmapsL() ); - return err; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CreateBitmapsL -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::CreateBitmapsL() - { - TBool requiredToCreate = ETrue; - TSize requiredSize = SizeOfBitmap(); - if ( iZoomPartialMask ) - { - requiredToCreate = - ( requiredSize != iZoomPartialMask->Bitmap()->SizeInPixels() ); - } - - if ( requiredToCreate ) - { - iZoomMaskPartial = KErrNotFound; - iZoomMaskRow = KErrNotFound; - - // Delete old ones away. - delete iZoomPartialMask; - iZoomPartialMask = NULL; - - delete iZoomPartialShade; - iZoomPartialShade = NULL; - - delete iZoomPartialShadeMask; - iZoomPartialShadeMask = NULL; - - CBitmap* zoomPartialMask = new ( ELeave ) CBitmap; - CleanupStack::PushL( zoomPartialMask ); - zoomPartialMask->ConstructL( requiredSize, EGray256 ); - - CBitmap* zoomPartialShade = new ( ELeave ) CBitmap; - CleanupStack::PushL( zoomPartialShade ); - zoomPartialShade->ConstructL( requiredSize, EGray256 ); - - CBitmap* zoomPartialShadeMask = new ( ELeave ) CBitmap; - CleanupStack::PushL( zoomPartialShadeMask ); - zoomPartialShadeMask->ConstructL( requiredSize, EGray2 ); - - // Pop zoomPartialShadeMask, zoomPartialShade & zoomPartialMask. - CleanupStack::Pop( 3, zoomPartialMask ); - iZoomPartialMask = zoomPartialMask; - iZoomPartialShade = zoomPartialShade; - iZoomPartialShadeMask = zoomPartialShadeMask; - } - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::SizeOfBitmap -// ----------------------------------------------------------------------------- -// -TSize CVtUiZoomControl::SizeOfBitmap() const - { - // Bitmaps fill the whole zoom area. - return iZoomAreaLayout.Rect().Size(); - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::GetPositionAndRect -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::GetPositionAndRect( - TPoint& aPosition, - TRect& aSourceRect, - const TInt aZoomStep ) const - { - TAknWindowLineLayout rect; - TAknLayoutRect layout; - const TRect zoomAreaRect = iZoomAreaLayout.Rect(); - const TRect& zoomParentRect = iZoomPaneRect; - - VtUiLayout::GetZoomStepLayout( - rect, - aZoomStep ); - layout.LayoutRect( zoomParentRect, rect ); - aSourceRect = layout.Rect(); - aPosition = aSourceRect.iTl; - - aSourceRect.iTl -= zoomAreaRect.iTl; - aSourceRect.iBr -= zoomAreaRect.iTl; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CBitmap::CBitmap -// ----------------------------------------------------------------------------- -// -CVtUiZoomControl::CBitmap::CBitmap() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CBitmap::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiZoomControl::CBitmap::ConstructL( - const TSize& aSize, - const TDisplayMode aMode ) - { - CFbsBitmap* bitmap = new ( ELeave ) CFbsBitmap; - CleanupStack::PushL( bitmap ); - - User::LeaveIfError( - bitmap->Create( aSize, aMode ) ); - - CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( bitmap ); - CleanupStack::PushL( device ); - - CFbsBitGc* context = NULL; - User::LeaveIfError( device->CreateContext( context ) ); - User::LeaveIfNull( context ); - - CleanupStack::Pop( device ); - CleanupStack::Pop( bitmap ); - - iContext = context; - iDevice = device; - iBitmap = bitmap; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CBitmap::~CBitmap -// ----------------------------------------------------------------------------- -// -CVtUiZoomControl::CBitmap::~CBitmap() - { - delete iContext; - delete iDevice; - delete iBitmap; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CBitmap::Bitmap -// ----------------------------------------------------------------------------- -// -inline CFbsBitmap* CVtUiZoomControl::CBitmap::Bitmap() const - { - return iBitmap; - } - -// ----------------------------------------------------------------------------- -// CVtUiZoomControl::CBitmap::Context -// ----------------------------------------------------------------------------- -// -inline CFbsBitGc* CVtUiZoomControl::CBitmap::Context() const - { - return iContext; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/TVtUiCallParameters.cpp --- a/vtuis/videotelui/src/TVtUiCallParameters.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the TVtUiCallParameters class. -* -*/ - - - -// INCLUDE FILES -#include "TVtUiCallParameters.h" - -// CONSTANTS - -// Enumerates call parameter flags. -enum TVtUiCallParameterFlags - { - // Audio status has been updated. - EVtUiCallParameterFlagHasAudio = 1, - // Audio status equals to ETrue. - EVtUiCallParameterFlagAudioEnabled = 2, - // Video status has been updated. - EVtUiCallParameterFlagHasVideo = 4, - // Video status equals to ETrue. - EVtUiCallParameterFlagVideoEnabled = 8, - // Selected camera has been updated. - EVtUiCallParameterFlagHasSelectedCamera = 16, - // Primary camera has been selected. Otherwise secondary has been selected. - EVtUiCallParameterFlagHasSelectedPrimary = 32, - }; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::TVtUiCallParameters -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -TVtUiCallParameters::TVtUiCallParameters() - : iFlags( 0 ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::Reset -// ----------------------------------------------------------------------------- -// -void TVtUiCallParameters::Reset() - { - iFlags = 0; - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::SetAudioStatus -// ----------------------------------------------------------------------------- -// -void TVtUiCallParameters::SetAudioStatus( const TBool aEnabled ) - { - iFlags |= ( EVtUiCallParameterFlagAudioEnabled + - EVtUiCallParameterFlagHasAudio ); - if ( !aEnabled ) - { - iFlags &= ~EVtUiCallParameterFlagAudioEnabled; - } - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::GetAudioStatus -// ----------------------------------------------------------------------------- -// -TInt TVtUiCallParameters::GetAudioStatus( TBool& aEnabled ) const - { - TInt err = KErrNotFound; - if ( iFlags & EVtUiCallParameterFlagHasAudio ) - { - err = KErrNone; - aEnabled = ( iFlags & EVtUiCallParameterFlagAudioEnabled ); - } - - return err; - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::SetVideoStatus -// ----------------------------------------------------------------------------- -// -void TVtUiCallParameters::SetVideoStatus( const TBool aEnabled ) - { - iFlags |= ( EVtUiCallParameterFlagVideoEnabled + - EVtUiCallParameterFlagHasVideo ); - if ( !aEnabled ) - { - iFlags &= ~EVtUiCallParameterFlagVideoEnabled; - } - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::GetVideoStatus -// ----------------------------------------------------------------------------- -// -TInt TVtUiCallParameters::GetVideoStatus( TBool& aEnabled ) - { - TInt err = KErrNotFound; - if ( iFlags & EVtUiCallParameterFlagHasVideo ) - { - err = KErrNone; - aEnabled = ( iFlags & EVtUiCallParameterFlagVideoEnabled ); - } - - return err; - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::SetSelectedCamera -// ----------------------------------------------------------------------------- -// -void TVtUiCallParameters::SetSelectedCamera( const TBool aPrimary ) - { - iFlags |= EVtUiCallParameterFlagHasSelectedCamera; - - if ( aPrimary ) - { - iFlags |= EVtUiCallParameterFlagHasSelectedPrimary; - } - else - { - iFlags &= ~EVtUiCallParameterFlagHasSelectedPrimary; - } - } - -// ----------------------------------------------------------------------------- -// TVtUiCallParameters::GetSelectedCamera -// ----------------------------------------------------------------------------- -// -TInt TVtUiCallParameters::GetSelectedCamera( TBool& aPrimary ) - { - TInt err = KErrNotFound; - if ( iFlags & EVtUiCallParameterFlagHasSelectedCamera ) - { - err = KErrNone; - aPrimary = ( iFlags & EVtUiCallParameterFlagHasSelectedPrimary ); - } - - return err; - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/VtUiLayout.cpp --- a/vtuis/videotelui/src/VtUiLayout.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,700 +0,0 @@ -/* -* Copyright (c) 2004, 2005 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: Implementation of the VtUiLayout class. -* -*/ - - - -// INCLUDE FILES -#include "VtUiLayout.h" -#include "VtUiPanic.h" -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - - -// DATA TYPES - -// Enumerates files in which there can be bitmaps. -enum TVtUiBitmapFiles - { - // Video Telephone bitmap file. - EVtUiVideoBitmapFile, - // AVKON bitmap file. - EVtUiAvkonBitmapFile - }; - -// Video Telephone application bitmaps -_LIT( KVtUiVideoBitmapFileName, - "z:\\resource\\apps\\videotelui.mbm" ); -// Minimum step for zoom. -const TInt KVtUiZoomMinStep = 1; - -// Maximum step for zoom. -const TInt KVtUiZoomMaxStep = 11; - -// ============================ LOCAL FUNCTIONS =============================== - -inline TAknWindowComponentLayout DoCompose( TAknWindowComponentLayout aLine1, - TAknWindowComponentLayout aLine2 ) - { - return TAknWindowComponentLayout::Compose( aLine1, aLine2 ); - } - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetApplicationParentRect -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetApplicationParentRect( - TRect& aRect ) - { - // Calculate screen rectangle. - TSize screenSize = CCoeEnv::Static()->ScreenDevice()->SizeInPixels(); - TRect screenRect( screenSize ); - - // Calculate application window. - TAknLayoutRect appRect; - appRect.LayoutRect( - screenRect, - AknLayout::application_window( screenRect ) ); - aRect = appRect.Rect(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetMainPaneLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetMainPaneLayout( - TAknWindowLineLayout& aLayout ) - { - TRect parent; - GetApplicationParentRect( parent ); - // Calculate main pane layout. - // First 1 = normal status pane, second 1 = control pane. - aLayout = AknLayout::main_pane( parent, 0, 1, 1 ); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetFirstWindowBackgroundLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetFirstWindowBackgroundLayout( - TAknWindowLineLayout& aLayout ) - { - //aLayout = AppLayout::Uplink_video_image__large__Line_1(); - TInt main_pane_variety( 0 ); - TInt vid_upl_variety( 14 ); - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - main_pane_variety = 4; - vid_upl_variety = 0; - } - - TAknWindowComponentLayout layout1 = - AknLayoutScalable_Apps::main_pane( main_pane_variety ); - TAknWindowComponentLayout layout2 = - AknLayoutScalable_Apps::main_video_tele_pane(); - TAknWindowComponentLayout layout3 = - AknLayoutScalable_Apps:: - call_video_uplink_pane_cp1( vid_upl_variety ); - TAknWindowComponentLayout layout4 = - AknLayoutScalable_Apps::call_video_uplink_pane_g1(); - aLayout = - DoCompose( - DoCompose( layout1, layout2 ), - DoCompose( layout3, layout4 ) ).LayoutLine(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetFirstWindowStreamLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetFirstWindowStreamLayout( - TAknWindowLineLayout& aLayout ) - { - TInt main_pane_variety( 0 ); - TInt vid_upl_variety( 14 ); - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - main_pane_variety = 4; - vid_upl_variety = 0; - } - - TAknWindowComponentLayout layout1 = - AknLayoutScalable_Apps::main_pane( main_pane_variety ); - TAknWindowComponentLayout layout2 = - AknLayoutScalable_Apps::main_video_tele_pane(); - TAknWindowComponentLayout layout3 = - AknLayoutScalable_Apps:: - call_video_uplink_pane_cp1( vid_upl_variety ); - TAknWindowComponentLayout layout4 = - AknLayoutScalable_Apps::video_uplink_pane(); - aLayout = - DoCompose( - DoCompose( layout1, layout2 ), - DoCompose( layout3, layout4 ) ).LayoutLine(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetFirstWindowStreamDisabledIconLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetFirstWindowStreamDisabledIconLayout( - TAknWindowLineLayout& aLayout ) - { - //aLayout = AppLayout::Uplink_video_image__large__Line_3(); - TInt main_pane_variety( 0 ); - TInt vid_upl_variety( 14 ); - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - main_pane_variety = 4; - vid_upl_variety = 0; - } - - TAknWindowComponentLayout layout1 = - AknLayoutScalable_Apps::main_pane( main_pane_variety ); - TAknWindowComponentLayout layout2 = - AknLayoutScalable_Apps::main_video_tele_pane(); - TAknWindowComponentLayout layout3 = - AknLayoutScalable_Apps:: - call_video_uplink_pane_cp1( vid_upl_variety ); - TAknWindowComponentLayout layout4 = - AknLayoutScalable_Apps::call_video_uplink_pane_g2(); - aLayout = - DoCompose( - DoCompose( layout1, layout2 ), - DoCompose( layout3, layout4 ) ).LayoutLine(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetSecondWindowBackgroundLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetSecondWindowBackgroundLayout( - TAknWindowLineLayout& aLayout ) - { - aLayout = AppLayout::Downlink_video_image_Line_1(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetSecondWindowStreamLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetSecondWindowStreamLayout( - TAknWindowLineLayout& aLayout, TBool aIsToolbar, TBool aIsSubQCIF ) - { - if( aIsSubQCIF ) - { - aLayout = AppLayout::video_down_subqcif_pane(); - } - else - { - if ( aIsToolbar ) - { - // non touch - TInt varietyPr = 8; // portrait - TInt varietyLs = 10; // landscape - if ( AknLayoutUtils::PenEnabled() ) - { - varietyPr = 11; // portrait - varietyLs = 12; // landscape - } - - TInt varietyIndex = Layout_Meta_Data::IsLandscapeOrientation() - ? varietyLs : varietyPr ; - TAknWindowComponentLayout layout1 = AknLayoutScalable_Apps:: - main_video_tele_pane(); - TAknWindowComponentLayout layout2 = AknLayoutScalable_Apps:: - video_down_crop_pane( varietyIndex ); - aLayout = TAknWindowComponentLayout::Compose( layout1, layout2 ). - LayoutLine(); - - } - else - { - aLayout = AppLayout::downlink_stream(); - } - } - } - - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetSecondWindowStreamWholeLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetSecondWindowStreamWholeLayout( - TAknWindowLineLayout& aLayout, TBool aIsToolbar, TBool aIsSubQCIF ) - { - if( aIsSubQCIF ) - { - aLayout = AppLayout::video_down_subqcif_pane(); - } - else - { - if ( aIsToolbar ) - { - // non touch - TInt varietyPr = 5; // portrait - TInt varietyLs = 7; // landscape - if ( AknLayoutUtils::PenEnabled() ) - { - varietyPr = 8; // portrait - varietyLs = 1; // landscape - } - - TInt varietyIndex = Layout_Meta_Data::IsLandscapeOrientation() - ? varietyLs : varietyPr; - TAknWindowComponentLayout layout1 = AknLayoutScalable_Apps:: - main_video_tele_pane(); - TAknWindowComponentLayout layout2 = AknLayoutScalable_Apps:: - video_down_pane( varietyIndex ); - aLayout = TAknWindowComponentLayout::Compose( layout1, layout2 ) - .LayoutLine(); - } - else - { - aLayout = AppLayout::downlink_stream_area(); - } - } - } -// ----------------------------------------------------------------------------- -// VtUiLayout::GetSecondWindowDisabledIconLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetSecondWindowDisabledIconLayout( - TAknWindowLineLayout& aLayout ) - { - aLayout = AppLayout::Downlink_video_image_Line_3(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetSecondWindowWaitingTextLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetSecondWindowWaitingTextLayout( - TAknTextLineLayout& aLayout, - const TBool aFirstLine ) - { - TBool layoutFound = EFalse; - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - layoutFound = ETrue; - - TAknWindowComponentLayout layout1 = - AknLayoutScalable_Apps::main_video_tele_pane(); - - TAknTextComponentLayout layout2 = - aFirstLine ? - AknLayoutScalable_Apps::call_video_pane_t1() : - AknLayoutScalable_Apps::call_video_pane_t2(); - - aLayout = - TAknWindowComponentLayout::ComposeText( - layout1, layout2 ).LayoutLine(); - } - - if ( !layoutFound ) - { - const TInt line( ( aFirstLine ) ? 0 : 1 ); - TAknWindowComponentLayout l1 = AknLayoutScalable_Apps:: - main_video_tele_pane(); - TAknTextComponentLayout l2; - if ( !line ) - { - l2 = AknLayoutScalable_Apps::call_video_pane_t1( 1 ); - } - else - { - l2 = AknLayoutScalable_Apps::call_video_pane_t2( 1 ); - } - aLayout = TAknWindowComponentLayout::ComposeText( l1, l2 ); - } - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetNumberEntryAreaLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetNumberEntryAreaLayout( - TAknWindowLineLayout& aLayout ) - { - TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 2 : 0; - - TAknWindowComponentLayout layout1 = - AknLayoutScalable_Apps::main_call_pane(); - TAknWindowComponentLayout layout2 = - AknLayoutScalable_Apps::popup_number_entry_window( variety ); - - aLayout = - TAknWindowComponentLayout::Compose( layout1, layout2 ).LayoutLine(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetAudioRoutingIconLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetAudioRoutingIconLayout( - TAknWindowLineLayout& aLayout ) - { - aLayout = AppLayout::Navipane_elements_and_descendant_panes_Line_1(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetCallDurationTextLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetCallDurationTextLayout( - TAknTextLineLayout& aLayout ) - { - aLayout = AppLayout::Navipanetexts_Line_1(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetMutedTextLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetMutedTextLayout( - TAknTextLineLayout& aLayout ) - { - aLayout = AppLayout::Navipanetexts_Line_2(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetZoomPaneLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetZoomPaneLayout( - TAknWindowLineLayout& aLayout ) - { - aLayout = AppLayout::zooming_pane(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetZoomDirLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetZoomDirLayout( - TAknWindowLineLayout& aLayout ) - { - aLayout = AppLayout::Zooming_pane_elements_Line_1(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetZoomAreaLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetZoomAreaLayout( - TAknWindowLineLayout& aLayout ) - { - aLayout = AppLayout::Zooming_pane_elements_Line_2(); - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::GetZoomStepLayout -// ----------------------------------------------------------------------------- -// -void VtUiLayout::GetZoomStepLayout( - TAknWindowLineLayout& aLayout, - TInt aZoomStep ) - { - aZoomStep = Max( Min( aZoomStep, KVtUiZoomMaxStep ), KVtUiZoomMinStep ); - aZoomStep--; // 1 .. 11 is mapped to 0 .. 10. - - // Function pointer table would be more efficient, but AppLayout methods - // are inline. - - switch ( aZoomStep ) - { - case 0: - aLayout = AppLayout::Zooming_steps_sizes_Line_1(); - break; - - case 1: - aLayout = AppLayout::Zooming_steps_sizes_Line_2(); - break; - - case 2: - aLayout = AppLayout::Zooming_steps_sizes_Line_3(); - break; - - case 3: - aLayout = AppLayout::Zooming_steps_sizes_Line_4(); - break; - - case 4: - aLayout = AppLayout::Zooming_steps_sizes_Line_5(); - break; - - case 5: - aLayout = AppLayout::Zooming_steps_sizes_Line_6(); - break; - - case 6: - aLayout = AppLayout::Zooming_steps_sizes_Line_7(); - break; - - case 7: - aLayout = AppLayout::Zooming_steps_sizes_Line_8(); - break; - - case 8: - aLayout = AppLayout::Zooming_steps_sizes_Line_9(); - break; - - case 9: - aLayout = AppLayout::Zooming_steps_sizes_Line_10(); - break; - - case 10: - default: - aLayout = AppLayout::Zooming_steps_sizes_Line_11(); - break; - } - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::MapBitmapToSkinId -// ----------------------------------------------------------------------------- -// -TAknsItemID VtUiLayout::MapBitmapToSkinId( TVtUiBitmapId aId ) - { - TAknsItemID skinId = KAknsIIDNone; - - switch ( aId ) - { - case EVtUiBitmap_qgn_graf_call_video_out_bg: - skinId = KAknsIIDQgnGrafCallVideoOutBg; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_in: - skinId = KAknsIIDQgnIndiCallVideoBlindIn; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_out: - skinId = KAknsIIDQgnIndiCallVideoBlindOut; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_in_mask_icon: - skinId = KAknsIIDQgnIndiCallVideoBlindInMaskIcon; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_out_mask_icon: - skinId = KAknsIIDQgnIndiCallVideoBlindOutMaskIcon; - break; - - case EVtUiBitmap_qgn_indi_earpiece: - skinId = KAknsIIDQgnIndiEarpiece; - break; - - case EVtUiBitmap_qgn_indi_speaker: - skinId = KAknsIIDQgnIndiSpeaker; - break; - - case EVtUiBitmap_qgn_indi_zoom_dir: - skinId = KAknsIIDQgnIndiZoomDir; - break; - - case EVtUiBitmap_qgn_graf_zoom_area: - skinId = KAknsIIDQgnGrafZoomArea; - break; - - case EVtUiBitmap_qgn_indi_zoom_min: - skinId = KAknsIIDQgnIndiZoomMin; - break; - - case EVtUiBitmap_qgn_indi_zoom_max: - skinId = KAknsIIDQgnIndiZoomMax; - break; - - case EVtUiBitmap_qgn_prop_sub_current: - case EVtUiBitmap_qgn_prop_sub_current_mask: - skinId = KAknsIIDQgnPropSubCurrent; - break; - - default: - // Default value is OK. - break; - } - - return skinId; - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::MapBitmapToColorId -// ----------------------------------------------------------------------------- -// -TBool VtUiLayout::MapBitmapToColorId( - TVtUiBitmapId aId, - TAknsItemID& aColorId, - TInt& aColorIndex ) - { - TBool result = EFalse; - - aColorId = KAknsIIDNone; - aColorIndex = KErrNotFound; - - switch ( aId ) - { - case EVtUiBitmap_qgn_indi_earpiece: - case EVtUiBitmap_qgn_indi_earpiece_mask: - case EVtUiBitmap_qgn_indi_speaker: - case EVtUiBitmap_qgn_indi_speaker_mask: - case EVtUiBitmap_qgn_indi_zoom_dir: - case EVtUiBitmap_qgn_indi_zoom_dir_mask: - result = ETrue; - aColorId = KAknsIIDQsnIconColors; - aColorIndex = EAknsCIQsnIconColorsCG7; - break; - - default: - // Default value is OK. - break; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::Resolve -// ----------------------------------------------------------------------------- -// -void VtUiLayout::Resolve( - TVtUiBitmapId aId, - TFileName& aFileName, - TInt& aIndex ) - { - TInt index = KErrNotFound; - TVtUiBitmapFiles file = EVtUiVideoBitmapFile; - - switch ( aId ) - { - case EVtUiBitmap_qgn_graf_call_video_out_bg: - index = EMbmVideoteluiQgn_graf_call_video_out_bg; - break; - - case EVtUiBitmap_qgn_graf_call_video_out_bg_mask: - index = EMbmVideoteluiQgn_graf_call_video_out_bg_mask; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_in: - index = EMbmVideoteluiQgn_indi_call_video_blind_in; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_out: - index = EMbmVideoteluiQgn_indi_call_video_blind_out; - break; - - case EVtUiBitmap_qgn_indi_earpiece: - file = EVtUiAvkonBitmapFile; - index = EMbmAvkonQgn_indi_earpiece; - break; - - case EVtUiBitmap_qgn_indi_earpiece_mask: - file = EVtUiAvkonBitmapFile; - index = EMbmAvkonQgn_indi_earpiece_mask; - break; - - case EVtUiBitmap_qgn_indi_speaker: - file = EVtUiAvkonBitmapFile; - index = EMbmAvkonQgn_indi_speaker; - break; - - case EVtUiBitmap_qgn_indi_speaker_mask: - file = EVtUiAvkonBitmapFile; - index = EMbmAvkonQgn_indi_speaker_mask; - break; - - case EVtUiBitmap_qgn_graf_zoom_area: - index = EMbmVideoteluiQgn_graf_zoom_area; - break; - - case EVtUiBitmap_qgn_indi_zoom_dir: - index = EMbmVideoteluiQgn_indi_zoom_dir; - break; - - case EVtUiBitmap_qgn_indi_zoom_dir_mask: - index = EMbmVideoteluiQgn_indi_zoom_dir_mask; - break; - - case EVtUiBitmap_qgn_indi_zoom_min: - index = EMbmVideoteluiQgn_indi_zoom_min; - break; - - case EVtUiBitmap_qgn_indi_zoom_max: - index = EMbmVideoteluiQgn_indi_zoom_max; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_in_mask_icon: - index = EMbmVideoteluiQgn_indi_call_video_blind_in_mask_icon; - break; - - case EVtUiBitmap_qgn_indi_call_video_blind_out_mask_icon: - index = EMbmVideoteluiQgn_indi_call_video_blind_out_mask_icon; - break; - - case EVtUiBitmap_qgn_prop_sub_current: - file = EVtUiAvkonBitmapFile; - index = EMbmAvkonQgn_prop_sub_current; - break; - - case EVtUiBitmap_qgn_prop_sub_current_mask: - file = EVtUiAvkonBitmapFile; - index = EMbmAvkonQgn_prop_sub_current_mask; - break; - - default: - VtUiPanic::Panic( EVtUiPanicInvalidBitmapId ); - break; - } - - aIndex = index; - switch ( file ) - { - case EVtUiVideoBitmapFile: - aFileName = KVtUiVideoBitmapFileName; - break; - - case EVtUiAvkonBitmapFile: - aFileName = AknIconUtils::AvkonIconFileName(); - break; - - default: - VtUiPanic::Panic( EVtUiPanicInvalidBitmapFile ); - break; - } - } - -// ----------------------------------------------------------------------------- -// VtUiLayout::IsLandscapeOrientation -// ----------------------------------------------------------------------------- -// -TBool VtUiLayout::IsLandscapeOrientation() - { - return Layout_Meta_Data::IsLandscapeOrientation(); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/VtUiPanic.cpp --- a/vtuis/videotelui/src/VtUiPanic.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the VtUiPanic class. -* -*/ - - - -// INCLUDE FILES -#include "VtUiPanic.h" - -// CONSTANTS - -// Panic category for Video Telephone application. -_LIT( KVtUiPanicCategory, "Videotelui" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// VtUiPanic::Panic -// ----------------------------------------------------------------------------- -// -void VtUiPanic::Panic( TVtUiPanicReason aReason ) - { - User::Panic( KVtUiPanicCategory, aReason ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/VtUiUtility.cpp --- a/vtuis/videotelui/src/VtUiUtility.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,336 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the VtUiUtility class. -* -*/ - - - -// INCLUDE FILES -#include "VtUiUtility.h" -#include "VtUiPanic.h" -#include -#include -#include -#include -#include "tVtuifeaturevariation.h" - -// Characters to open number entry. -_LIT( KVtUiDTMFCharacters, "0123456789*#" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// VtUiUtility::GetAudioRoutingAvailability -// ----------------------------------------------------------------------------- -// -void VtUiUtility::GetAudioRoutingAvailability( - MVtEngAudio& aAudio, - TInt& aAvailable ) - { - aAvailable = 0; - TVtUiBTVariation btvariation; - const TBool bluetoothAudioSupported = - btvariation.IsBTSupported(); - - MVtEngAudio::TAudioRoutingState routingState; - if ( aAudio.GetRoutingState( routingState ) == KErrNone ) - { - // Deactivate BT handsfree. - if ( bluetoothAudioSupported && - IsAudioRoutingAvailable( - aAudio, - routingState, - MVtEngAudio::EAudioBT, - MVtEngAudio::EAudioHandset ) ) - { - aAvailable |= EDeactivateBtHandsfree; - } - - // Activate BT handsfree. - if ( bluetoothAudioSupported && - ( IsAudioRoutingAvailable( - aAudio, - routingState, - MVtEngAudio::EAudioHandset, - MVtEngAudio::EAudioBT ) || - IsAudioRoutingAvailable( - aAudio, - routingState, - MVtEngAudio::EAudioLoudspeaker, - MVtEngAudio::EAudioBT ) ) ) - { - aAvailable |= EActivateBtHandsfree; - } - - // Deactivate loudspeaker - if ( IsAudioRoutingAvailable( - aAudio, - routingState, - MVtEngAudio::EAudioLoudspeaker, - MVtEngAudio::EAudioHandset ) ) - { - aAvailable |= EDeactivateLoudspeaker; - } - - // Activate loudspeaker - if ( IsAudioRoutingAvailable( - aAudio, - routingState, - MVtEngAudio::EAudioHandset, - MVtEngAudio::EAudioLoudspeaker ) || - ( bluetoothAudioSupported && - IsAudioRoutingAvailable( - aAudio, - routingState, - MVtEngAudio::EAudioBT, - MVtEngAudio::EAudioLoudspeaker ) ) ) - { - aAvailable |= EActivateLoudspeaker; - } - } - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::GetOutgoingMediaState -// ----------------------------------------------------------------------------- -// -void VtUiUtility::GetOutgoingMediaState( - MVtEngMedia& aMedia, - TInt& aAvailable ) - { - TInt outgoingMediaState; - const TInt err = - aMedia.GetMediaState( - MVtEngMedia::EMediaOutgoing, - outgoingMediaState ); - if ( err == KErrNone ) - { - // If source is still image, then video sending is off. - MVtEngMedia::TMediaSource source; - if ( aMedia.GetSource( source ) == KErrNone ) - { - if ( source == MVtEngMedia::EMediaStillImage ) - { - outgoingMediaState &= ~MVtEngMedia::EMediaVideo; - } - } - TBool freezeSupported; - if( aMedia.GetFreezeSupported( freezeSupported ) == KErrNone ) - { - TBool isFrozen; - if( freezeSupported && aMedia.GetFreezeState( isFrozen ) == KErrNone ) - { - if( isFrozen ) - { - outgoingMediaState &= ~MVtEngMedia::EMediaVideo; - } - } - } - } - else - { - outgoingMediaState = - ( MVtEngMedia::EMediaAudio | MVtEngMedia::EMediaVideo ); - } - aAvailable = outgoingMediaState; - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::GetIncomingMediaState -// ----------------------------------------------------------------------------- -// -void VtUiUtility::GetIncomingMediaState( - MVtEngMedia& aMedia, - TInt& aAvailable ) - { - TInt mediaState; - const TInt err = - aMedia.GetMediaState( - MVtEngMedia::EMediaIncoming, - mediaState ); - if ( err != KErrNone ) - { - mediaState = - ( MVtEngMedia::EMediaAudio | MVtEngMedia::EMediaVideo ); - } - - aAvailable = mediaState; - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::HasStillImage -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::HasStillImage( - MVtEngMedia& aMedia ) - { - TInt caps; - const TInt capsErr = aMedia.GetSourcesCaps( caps ); - return ( capsErr == KErrNone ) && - ( caps & MVtEngMedia::ESourceCapsStillImage ); - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::GetFreezeState -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::GetFreezeState( - MVtEngMedia& aMedia ) - { - TBool isFrozen; - const TInt err = aMedia.GetFreezeState( isFrozen ); - if ( err == KErrNone ) - { - return isFrozen; - } - else //provider was not ready - { - return EFalse; - } - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::IsFreezeSupported -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::IsFreezeSupported( - MVtEngMedia& aMedia ) - { - TBool isFreezeSupported; - const TInt err = aMedia.GetFreezeSupported( isFreezeSupported ); - if ( err == KErrNone ) - { - return isFreezeSupported; - } - else //provider was not ready - { - return EFalse; - } - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::GetVideoQuality -// ----------------------------------------------------------------------------- -// -void VtUiUtility::GetVideoQuality( - MVtEngMedia& aMedia, - MVtEngMedia::TVideoQuality& aVideoQuality ) - { - aMedia.GetVideoQuality( aVideoQuality ); - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::GetObjectSharingState -// ----------------------------------------------------------------------------- -// -void VtUiUtility::GetObjectSharingState( - MVtEngMedia& aMedia, - MVtEngMedia::TShareObjectState& aShareObjectState ) - { - aMedia.GetObjectSharingState( aShareObjectState ); - } - - -// ----------------------------------------------------------------------------- -// VtUiUtility::IsZoomAllowed -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::IsZoomAllowed( - MVtEngMedia& aMedia ) - { - TBool result = EFalse; - - TInt currentStep; - if ( aMedia.GetCurrentZoomStep( currentStep ) == KErrNone ) - { - TInt max; - if ( aMedia.GetMaxZoomStep( max ) == KErrNone ) - { - // Zooming is allowed if maximum zoom step is greater than - // zero and camera is in use (and not still image / none). - TInt avail; - GetOutgoingMediaState( aMedia, avail ); - - result = ( max > 0 ) && ( avail & MVtEngMedia::EMediaVideo ); - } - } - - __VTPRINT2( DEBUG_GEN, "Ui.AllowZoom.%d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::HasCameras -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::HasCameras( MVtEngMedia& aMedia ) - { - TInt sourceCaps; - if ( aMedia.GetSourcesCaps( sourceCaps ) != KErrNone ) - { - sourceCaps = 0; - } - return ( sourceCaps & MVtEngMedia::ESourceCapsPrimaryCamera ) || - ( sourceCaps & MVtEngMedia::ESourceCapsSecondaryCamera ); - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::IsAudioRoutingAvailable -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::IsAudioRoutingAvailable( - MVtEngAudio& aAudio, - const MVtEngAudio::TAudioRoutingState aCurrent, - const MVtEngAudio::TAudioRoutingState aSource, - const MVtEngAudio::TAudioRoutingState aTarget ) - { - TBool result = EFalse; - if ( aCurrent == aSource ) - { - TBool available = EFalse; - TInt err = aAudio.GetRoutingAvailability( aTarget, available ); - - result = ( ( err == KErrNone ) && ( available ) ); - } - - return result; - } - - -// ----------------------------------------------------------------------------- -// VtUiUtility::IsDTMFEvent -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::IsDTMFEvent( const TKeyEvent& aKeyEvent, TChar& aDtmfTone ) - { - TBuf<1> buffer; // one character - buffer.Append( aKeyEvent.iCode ); - AknTextUtils::ConvertDigitsTo( buffer, EDigitTypeWestern ); - aDtmfTone = buffer[ 0 ]; - return - ( KVtUiDTMFCharacters().Locate( buffer[ 0 ] ) != KErrNotFound ); - } - -// ----------------------------------------------------------------------------- -// VtUiUtility::IsDTMFCharacter -// ----------------------------------------------------------------------------- -// -TBool VtUiUtility::IsDTMFCharacter( const TChar aChar ) - { - return - ( KVtUiDTMFCharacters().Locate( aChar ) != KErrNotFound ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicmdbase.cpp --- a/vtuis/videotelui/src/commands/cvtuicmdbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 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: UI command bases class implementation. -* -*/ - - -#include "cvtuicmdbase.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// FindCVtUiCmdBaseById -// --------------------------------------------------------------------------- -// -TInt FindCVtUiCmdBaseById( const CVtUiCmdBase& aC1, const CVtUiCmdBase& aC2 ) - { - return ( aC1.CommandId() - aC2.CommandId() ); - } - -// --------------------------------------------------------------------------- -// FindCVtUiCmdBaseByKey -// --------------------------------------------------------------------------- -// -TInt FindCVtUiCmdBaseByKey( const TInt* aKey, const CVtUiCmdBase& aC ) - { - return ( *aKey - aC.CommandId() ); - } - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCmdBase::CommandId -// --------------------------------------------------------------------------- -// -TInt CVtUiCmdBase::CommandId() const - { - return iCommandId; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdBase::LinearOrder -// --------------------------------------------------------------------------- -// -TLinearOrder< CVtUiCmdBase > CVtUiCmdBase::LinearOrder() - { - return TLinearOrder< CVtUiCmdBase >( ::FindCVtUiCmdBaseById ); - } - -// --------------------------------------------------------------------------- -// CVtUiCmdBase::LinearOrder -// --------------------------------------------------------------------------- -// -CVtUiCmdBase::TKeyOrder CVtUiCmdBase::KeyOrder() - { - return ::FindCVtUiCmdBaseByKey; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdBase::CVtUiCmdBase -// --------------------------------------------------------------------------- -// -CVtUiCmdBase::CVtUiCmdBase( TInt aCommandId ) : iCommandId( aCommandId ) - { - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicmdcontext.cpp --- a/vtuis/videotelui/src/commands/cvtuicmdcontext.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* -* 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: Command context base class. -* -*/ - - -#include - -#include "cvtuicmdcontext.h" -#include "cvtuicmdvalidatorbase.h" -#include "cvtuicmdvalidationactionbase.h" -#include "mvtuicommandmanager.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Compare routine used by InsertInOrder() and FindInOrder() to sort validator -// instances by priority. -// --------------------------------------------------------------------------- -// -TInt ValidatorPriCmpFunc( const CVtUiCmdValidatorBase& aV1, - const CVtUiCmdValidatorBase& aV2 ) - { - return aV1.Priority() - aV2.Priority(); - } - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::~CVtUiCmdContext -// --------------------------------------------------------------------------- -// -CVtUiCmdContext::~CVtUiCmdContext() - { - __VTPRINTENTER( "CmdCtx.~" ) - iValidators.Reset(); - __VTPRINTEXIT( "CmdCtx.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::ReferencePriority -// --------------------------------------------------------------------------- -// -TInt CVtUiCmdContext::ReferencePriority() const - { - __VTPRINTENTER( "CmdCtx.ReferencePriority" ) - __VTPRINTEXITR( "CmdCtx.ReferencePriority %d", iReferencePriority ) - return iReferencePriority; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::ContextType -// --------------------------------------------------------------------------- -// -TVtUiCmdContextType CVtUiCmdContext::ContextType() const - { - __VTPRINTENTER( "CmdCtx.ContextType" ) - __VTPRINTEXITR( "CmdCtx.ContextType %d", iContextType ) - return iContextType; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::AddValidator -// --------------------------------------------------------------------------- -// -TInt CVtUiCmdContext::AddValidator( CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdCtx.AddValidator" ) - TInt result( KErrNone ); - if ( !aValidator.ValidatesContext( iContextType ) ) - { - result = KErrNotSupported; - } - else - { - result = iValidators.InsertInOrderAllowRepeats( &aValidator, - TLinearOrder< CVtUiCmdValidatorBase >( ::ValidatorPriCmpFunc ) ); - } - __VTPRINTEXITR( "CmdCtx.AddValidator %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::RemoveValidator -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::RemoveValidator( const CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdCtx.RemoveValidator" ) - TInt idx( iValidators.FindInOrder( &aValidator, - TLinearOrder< CVtUiCmdValidatorBase >( ::ValidatorPriCmpFunc ) ) ); - - if ( idx != KErrNotFound ) - { - iValidators.Remove( idx ); - } - __VTPRINTEXIT( "CmdCtx.RemoveValidator" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::CVtUiCmdContext -// --------------------------------------------------------------------------- -// -CVtUiCmdContext::CVtUiCmdContext( MVtUiCommandManager& aCommandManager, - TVtUiCmdContextType aCtxType, TInt aReferencePriority ) - : iCommandManager( aCommandManager ), - iReferencePriority( aReferencePriority ), iContextType( aCtxType ) - { - __VTPRINTENTER( "CmdCtx.ctor" ) - __VTPRINTEXIT( "CmdCtx.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::ValidateMenuItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdCtx.ValidateMenuItemsL" ) - __VTPRINT2( DEBUG_GEN, " count = %d", iValidators.Count() ) - for ( TInt i = iValidators.Count() - 1; i >= 0; i-- ) - { - iValidators[ i ]->ValidateMenuItemsL( aAction, iReferencePriority ); - } - __VTPRINTEXIT( "CmdCtx.ValidateMenuItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::ValidateSoftkeyItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdCtx.ValidateSoftkeyItemsL" ) - __VTPRINT2( DEBUG_GEN, " count = %d", iValidators.Count() ) - for ( TInt i = iValidators.Count() - 1; i >= 0; i-- ) - { - iValidators[ i ]->ValidateSoftkeyItemsL( aAction, iReferencePriority ); - } - __VTPRINTEXIT( "CmdCtx.ValidateSoftkeyItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::ValidateToolbarItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdCtx.ValidateToolbarItemsL" ) - __VTPRINT2( DEBUG_GEN, " count = %d", iValidators.Count() ) - for ( TInt i = iValidators.Count() - 1; i >= 0; i-- ) - { - iValidators[ i ]->ValidateToolbarItemsL( aAction, iReferencePriority ); - } - __VTPRINTEXIT( "CmdCtx.ValidateToolbarItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::CustomValidationL -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::CustomValidationL( - CVtUiCmdCustomValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdCtx.CustomValidationL" ) - __VTPRINT2( DEBUG_GEN, " count = %d", iValidators.Count() ) - for ( TInt i = iValidators.Count() - 1; i >= 0; i-- ) - { - iValidators[ i ]->CustomValidationL( aAction, iReferencePriority ); - } - __VTPRINTEXIT( "CmdCtx.CustomValidationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::RegisterCommandContextL -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::RegisterCommandContextL() - { - __VTPRINTENTER( "CmdCtx.RegisterCommandContextL" ) - User::LeaveIfError( iCommandManager.RegisterCommandContext( *this ) ); - __VTPRINTEXIT( "CmdCtx.RegisterCommandContextL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdContext::UnregisterCommandContext -// --------------------------------------------------------------------------- -// -void CVtUiCmdContext::UnregisterCommandContext() - { - __VTPRINTENTER( "CmdCtx.UnregisterCommandContext" ) - iCommandManager.UnregisterCommandContext( *this ); - __VTPRINTEXIT( "CmdCtx.UnregisterCommandContext" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicmdcustomvalidationactionbase.cpp --- a/vtuis/videotelui/src/commands/cvtuicmdcustomvalidationactionbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* 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: Custom command validation action base class. -* -*/ - - -#include - -#include "cvtuicmdcustomvalidationactionbase.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCmdCustomValidationActionBase::CustomTypeId -// --------------------------------------------------------------------------- -// -CVtUiCmdCustomValidationActionBase::TCustomTypeId -CVtUiCmdCustomValidationActionBase::CustomTypeId() const - { - return iCustomTypeId; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdCustomValidationActionBase::BeginProcess -// --------------------------------------------------------------------------- -// -CVtUiCmdCustomValidationActionBase::CVtUiCmdCustomValidationActionBase( - TCustomTypeId aCustomTypeId ) - : iCustomTypeId( aCustomTypeId ) - { - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicmdstatecheckaction.cpp --- a/vtuis/videotelui/src/commands/cvtuicmdstatecheckaction.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* 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: Menu item dimmer action class. -* -*/ - - -#include - -#include "cvtuicmdstatecheckaction.h" -#include "tvtuicmdvalidatorcallback.h" -#include "tvtuicmdcontexttype.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCmdStateCheckAction::NewL -// --------------------------------------------------------------------------- -// -CVtUiCmdStateCheckAction* CVtUiCmdStateCheckAction::NewL() - { - __VTPRINTENTER( "CmdStChkAct.NewL" ) - CVtUiCmdStateCheckAction* self = - new ( ELeave ) CVtUiCmdStateCheckAction(); - __VTPRINTEXIT( "CmdStChkAct.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdStateCheckAction::SetCommand -// --------------------------------------------------------------------------- -// -void CVtUiCmdStateCheckAction::SetCommand( TInt aCommandId ) - { - __VTPRINTENTER( "CmdStChkAct.SetCommand" ) - iCommandId = aCommandId; - iIsCommandAllowed = EFalse; - __VTPRINTEXIT( "CmdStChkAct.SetCommand" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdStateCheckAction::IsCommandAllowed -// --------------------------------------------------------------------------- -// -TBool CVtUiCmdStateCheckAction::IsCommandAllowed() const - { - return iIsCommandAllowed; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdStateCheckAction::ProcessL -// --------------------------------------------------------------------------- -// -void CVtUiCmdStateCheckAction::ProcessL( - const MVtUiCmdValidatorCallBack& aCallBack ) - { - __VTPRINTENTER( "CmdStChkAct.ProcessL" ) - if ( !IsCommandHandled( iCommandId ) ) - { - if ( aCallBack.Call( iCommandId ) ) - { - CommandHandledL( iCommandId ); - iIsCommandAllowed = ETrue; - } - } - __VTPRINTEXIT( "CmdStChkAct.ProcessL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdStateCheckAction::CVtUiCmdStateCheckAction -// --------------------------------------------------------------------------- -// -CVtUiCmdStateCheckAction::CVtUiCmdStateCheckAction() - : CVtUiCmdCustomValidationActionBase( EVtUiCmdContextTypeExecution ) - { - __VTPRINTENTER( "CmdStChkAct.ctor" ) - __VTPRINTEXIT( "CmdStChkAct.ctor" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicmdvalidationactionbase.cpp --- a/vtuis/videotelui/src/commands/cvtuicmdvalidationactionbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* 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: Command validation action base class. -* -*/ - - -#include - -#include "cvtuicmdvalidationactionbase.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCmdValidationActionBase::~CVtUiCmdValidationActionBase -// --------------------------------------------------------------------------- -// -CVtUiCmdValidationActionBase::~CVtUiCmdValidationActionBase() - { - __VTPRINTENTER( "ValActBase.~" ) - iHandledCommands.Reset(); - __VTPRINTEXIT( "ValActBase.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdValidationActionBase::BeginProcess -// --------------------------------------------------------------------------- -// -void CVtUiCmdValidationActionBase::BeginProcess() - { - __VTPRINTENTER( "ValActBase.BeginProcess" ) - iHandledCommands.Reset(); - __VTPRINTEXIT( "ValActBase.BeginProcess" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdValidationActionBase::EndProcess -// --------------------------------------------------------------------------- -// -void CVtUiCmdValidationActionBase::EndProcess() - { - __VTPRINTENTER( "ValActBase.EndProcess" ) - __VTPRINTEXIT( "ValActBase.EndProcess" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdValidationActionBase::CommandHandledL -// --------------------------------------------------------------------------- -// -void CVtUiCmdValidationActionBase::CommandHandledL( TInt aCommandId ) - { - __VTPRINTENTER( "ValActBase.CommandHandledL" ) - __VTPRINT2( DEBUG_GEN, " cmdId = %d", aCommandId ); - User::LeaveIfError( iHandledCommands.InsertInOrder( aCommandId ) ); - __VTPRINTEXIT( "ValActBase.CommandHandledL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdValidationActionBase::IsCommandHandled -// --------------------------------------------------------------------------- -// -TBool CVtUiCmdValidationActionBase::IsCommandHandled( TInt aCommandId ) const - { - __VTPRINTENTER( "ValActBase.IsCommandHandled" ) - TBool result( iHandledCommands.FindInOrder( aCommandId ) != KErrNotFound ); - __VTPRINTEXITR( "ValActBase.IsCommandHandled %d", result ) - return result; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicmdvalidatorbase.cpp --- a/vtuis/videotelui/src/commands/cvtuicmdvalidatorbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* 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: Command validator base class. -* -*/ - - -#include - -#include "cvtuicmdvalidatorbase.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCmdValidatorBase::Priority -// --------------------------------------------------------------------------- -// -TInt CVtUiCmdValidatorBase::Priority() const - { - __VTPRINTENTER( "ValidatorBase.Priority" ) - __VTPRINTEXITR( "ValidatorBase.Priority %d", iPriority ) - return iPriority; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdValidatorBase::CVtUiCmdValidatorBase -// --------------------------------------------------------------------------- -// -CVtUiCmdValidatorBase::CVtUiCmdValidatorBase( TInt aPriority ) - : iPriority( aPriority ) - { - __VTPRINTENTER( "ValidatorBase.ctor" ) - __VTPRINTEXIT( "ValidatorBase.ctor" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicommandmanager.cpp --- a/vtuis/videotelui/src/commands/cvtuicommandmanager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,421 +0,0 @@ -/* -* 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: Command manager class. -* -*/ - - -#include - -#include "cvtuicmdbase.h" -#include "cvtuicommandmanager.h" -#include "cvtuicommandpolicymanager.h" -#include "cvtuiprimarycmdpolicy.h" -#include "cvtuiexecutioncontext.h" -#include "cvtuimenuitemdimmeraction.h" -#include "tvtuistates.h" -#include "mvtuicommandui.h" -#include "cvtuicommandmodifybase.h" -#include "cvtuicmdstatecheckaction.h" - -// Default array granularity. -static const TInt KVtUiArrayGranularity = 1; - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::NewL -// ----------------------------------------------------------------------------- -// -CVtUiCommandManager* CVtUiCommandManager::NewL( const TVtUiStates& aUiStates, - CVtUiAppUi& aAppUi ) - { - __VTPRINTENTER( "CmdMgr.NewL" ) - CVtUiCommandManager* self = new ( ELeave ) CVtUiCommandManager( aUiStates, - aAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CmdMgr.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::~CVtUiCommandManager -// ----------------------------------------------------------------------------- -// -CVtUiCommandManager::~CVtUiCommandManager() - { - __VTPRINTENTER( "CmdMgr.~" ) - iCommands.Reset(); - iCommandUis.Reset(); - iCommandModifiers.Reset(); - delete iExecutionContext; - delete iCmdStateCheckAction; - delete iCmdPolicyMgr; - __VTPRINTEXIT( "CmdMgr.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::UiStates -// ----------------------------------------------------------------------------- -// -const TVtUiStates& CVtUiCommandManager::UiStates() const - { - return iUiStates; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::AppUi -// ----------------------------------------------------------------------------- -// -const CVtUiAppUi& CVtUiCommandManager::AppUi() const - { - return iAppUi; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::VideoTelephonyVariation -// ----------------------------------------------------------------------------- -// -const TVtUiVideoTelephonyVariation& -CVtUiCommandManager::VideoTelephonyVariation() const - { - return iVtVariation; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::HandleCommandL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::HandleCommandL( TInt aCommandId ) - { - TInt index( iCommands.FindInOrder( aCommandId, CVtUiCmdBase::KeyOrder() ) ); - if ( index != KErrNotFound ) - { - iCommands[ index ]->HandleL(); - } - /* - - This was commented out, because current CVtUiAppUi silently ignores - commands that are not handled, changed this to emulate same kind of - behaviour. - - else - { - User::Leave( KErrNotFound ); - } - */ - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::AddCommandUi -// ----------------------------------------------------------------------------- -// -TInt CVtUiCommandManager::AddCommandUi( MVtUiCommandUi& aCommandUi ) - { - __VTPRINTENTER( "CmdMgr.AddCommandUi" ) - TInt result( KErrAlreadyExists ); - TInt idx( iCommandUis.Find( &aCommandUi ) ); - if ( idx == KErrNotFound ) - { - result = iCommandUis.Append( &aCommandUi ); - if ( result == KErrNone ) - { - result = CommandUiAdded( aCommandUi ); - } - } - __VTPRINTEXITR( "CmdMgr.AddCommandUi %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::RemoveCommandUi -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::RemoveCommandUi( MVtUiCommandUi& aCommandUi ) - { - __VTPRINTENTER( "CmdMgr.RemoveCommandUi" ) - TInt idx( iCommandUis.Find( &aCommandUi ) ); - if ( idx != KErrNotFound ) - { - iCommandUis.Remove( idx ); - CommandUiRemoved( aCommandUi ); - } - __VTPRINTEXIT( "CmdMgr.RemoveCommandUi" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::ValidateMenuItemsL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdMgr.ValidateMenuItemsL" ) - iCmdPolicyMgr->ValidateMenuItemsL( aAction ); - __VTPRINTEXIT( "CmdMgr.ValidateMenuItemsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::ValidateSoftkeyItemsL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdMgr.ValidateSoftkeyItemsL" ) - iCmdPolicyMgr->ValidateSoftkeyItemsL( aAction ); - __VTPRINTEXIT( "CmdMgr.ValidateSoftkeyItemsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::ValidateToolbarItemsL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdMgr.ValidateToolbarItemsL" ) - iCmdPolicyMgr->ValidateToolbarItemsL( aAction ); - __VTPRINTEXIT( "CmdMgr.ValidateToolbarItemsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::IsCommandAllowedL -// ----------------------------------------------------------------------------- -// -TBool CVtUiCommandManager::IsCommandAllowedL( TInt aCommandId ) - { - __VTPRINTENTER( "CmdMgr.IsCommandAllowedL" ) - TInt index( iCommands.FindInOrder( aCommandId, CVtUiCmdBase::KeyOrder() ) ); - if ( index == KErrNotFound ) - { - iCmdStateCheckAction->SetCommand( aCommandId ); - iCmdPolicyMgr->CustomValidateL( *iCmdStateCheckAction ); - } - else - { - return iCommands[ index ]->IsEnabled(); - } - __VTPRINTEXIT( "CmdMgr.IsCommandAllowedL" ) - return iCmdStateCheckAction->IsCommandAllowed(); - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::RegisterCommandContext -// ----------------------------------------------------------------------------- -// -TInt CVtUiCommandManager::RegisterCommandContext( CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdMgr.RegisterCommandContext" ) - TInt result( iCmdPolicyMgr->RegisterCommandContext( aContext ) ); - __VTPRINTEXITR( "CmdMgr.RegisterCommandContext %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::UnregisterCommandContext -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::UnregisterCommandContext( CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdMgr.UnregisterCommandContext" ) - iCmdPolicyMgr->UnregisterCommandContext( aContext ); - __VTPRINTEXIT( "CmdMgr.UnregisterCommandContext" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::AddValidator -// ----------------------------------------------------------------------------- -// -TInt CVtUiCommandManager::AddValidator( CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdMgr.AddValidator" ) - TInt result( iCmdPolicyMgr->AddValidator( aValidator ) ); - __VTPRINTEXITR( "CmdMgr.AddValidator %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::RemoveValidator -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::RemoveValidator( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdMgr.RemoveValidator" ) - iCmdPolicyMgr->RemoveValidator( aValidator ); - __VTPRINTEXIT( "CmdMgr.RemoveValidator" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::RefreshL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::RefreshL() - { - __VTPRINTENTER( "CmdMgr.RefreshL" ) - for ( TInt i = iCommandUis.Count() - 1; i >= 0; i-- ) - { - iCommandUis[ i ]->RefreshL(); - } - __VTPRINTEXIT( "CmdMgr.RefreshL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::AddCommandModifier -// ----------------------------------------------------------------------------- -// -TInt CVtUiCommandManager::AddCommandModifier( - CVtUiCommandModifyBase& aModifier ) - { - __VTPRINTENTER( "CmdMgr.AddCommandModifier" ) - TInt result( - iCommandModifiers.InsertInOrder( &aModifier, - CVtUiCommandModifyBase::PriorityOrder() ) ); - if ( result == KErrNone ) - { - result = CommandModifierAdded( aModifier ); - } - __VTPRINTEXITR( "CmdMgr.AddCommandModifier %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::RemoveCommandModifier -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::RemoveCommandModifier( - CVtUiCommandModifyBase& aModifier ) - { - __VTPRINTENTER( "CmdMgr.RemoveCommandModifier" ) - TInt idx( iCommandModifiers.FindInOrder( &aModifier, - CVtUiCommandModifyBase::PriorityOrder() ) ); - if ( idx != KErrNotFound ) - { - iCommandModifiers.Remove( idx ); - CommandModifierRemoved( aModifier ); - } - __VTPRINTEXIT( "CmdMgr.RemoveCommandModifier" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::RegisterCommandL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::RegisterCommandL( CVtUiCmdBase& aCommand ) - { - __VTPRINTENTER( "CmdMgr.RegisterCommandL" ) - iCommands.InsertInOrderL( &aCommand, CVtUiCmdBase::LinearOrder() ); - __VTPRINTEXIT( "CmdMgr.RegisterCommandL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::UnregisterCommand -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::UnregisterCommand( const CVtUiCmdBase& aCommand ) - { - __VTPRINTENTER( "CmdMgr.UnregisterCommand" ) - TInt index( iCommands.FindInOrder( &aCommand, - CVtUiCmdBase::LinearOrder() ) ); - if ( index != KErrNotFound ) - { - iCommands.Remove( index ); - } - __VTPRINTEXIT( "CmdMgr.UnregisterCommand" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::CVtUiCommandManager -// ----------------------------------------------------------------------------- -// -CVtUiCommandManager::CVtUiCommandManager( const TVtUiStates& aUiStates, - CVtUiAppUi& aAppUi ) -: iCommandUis( KVtUiArrayGranularity ), - iCommandModifiers( KVtUiArrayGranularity ), - iCommands( KVtUiArrayGranularity ), - iUiStates( aUiStates ), - iAppUi( aAppUi ) - { - __VTPRINTENTER( "CmdMgr.ctor" ) - __VTPRINTEXIT( "CmdMgr.ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::ConstructL() - { - __VTPRINTENTER( "CmdMgr.ConstructL" ) - iVtVariation.ReadL(); - iCmdPolicyMgr = CVtUiCommandPolicyManager::NewL( *this ); - iCmdStateCheckAction = CVtUiCmdStateCheckAction::NewL(); - iExecutionContext = CVtUiExecutionContext::NewL( *this ); - __VTPRINTEXIT( "CmdMgr.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::CommandModifierAdded -// ----------------------------------------------------------------------------- -// -TInt CVtUiCommandManager::CommandModifierAdded( - CVtUiCommandModifyBase& aModifier ) - { - TInt error( KErrNone ); - for ( TInt i = iCommandUis.Count() - 1; !error && i >= 0; i-- ) - { - error = iCommandUis[ i ]->AddCommandModifier( aModifier ); - } - return error; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::CommandModifierRemoved -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::CommandModifierRemoved( - CVtUiCommandModifyBase& aModifier ) - { - for ( TInt i = iCommandUis.Count() - 1; i >= 0; i-- ) - { - iCommandUis[ i ]->RemoveCommandModifier( aModifier ); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::CommandUiAdded -// ----------------------------------------------------------------------------- -// -TInt CVtUiCommandManager::CommandUiAdded( MVtUiCommandUi& aCommandUi ) - { - TInt error( KErrNone ); - for ( TInt i = iCommandModifiers.Count() - 1; !error && i >= 0; i-- ) - { - error = aCommandUi.AddCommandModifier( *iCommandModifiers[ i ] ); - } - return error; - } - -// ----------------------------------------------------------------------------- -// CVtUiCommandManager::CommandUiRemoved -// ----------------------------------------------------------------------------- -// -void CVtUiCommandManager::CommandUiRemoved( MVtUiCommandUi& aCommandUi ) - { - for ( TInt i = iCommandModifiers.Count() - 1; i >= 0; i-- ) - { - aCommandUi.RemoveCommandModifier( *iCommandModifiers[ i ] ); - } - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicommandmodifybase.cpp --- a/vtuis/videotelui/src/commands/cvtuicommandmodifybase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* 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: Command context base class. -* -*/ - - -#include - -#include "cvtuicommandmodifybase.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCommandModifyBase::CVtUiCommandModifyBase -// --------------------------------------------------------------------------- -// -CVtUiCommandModifyBase::CVtUiCommandModifyBase( TInt aPriority ) - : iPriority( aPriority ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiCommandModifyBase::PriorityOrder -// --------------------------------------------------------------------------- -// -TLinearOrder< CVtUiCommandModifyBase > CVtUiCommandModifyBase::PriorityOrder() - { - return TLinearOrder< CVtUiCommandModifyBase >( PriorityOrderFunc ); - } - -// --------------------------------------------------------------------------- -// CVtUiCommandModifyBase::PriorityOrderFunc -// --------------------------------------------------------------------------- -// -TInt CVtUiCommandModifyBase::PriorityOrderFunc( - const CVtUiCommandModifyBase& aM1, const CVtUiCommandModifyBase& aM2 ) - { - return aM1.iPriority - aM2.iPriority; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuicommandpolicymanager.cpp --- a/vtuis/videotelui/src/commands/cvtuicommandpolicymanager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,334 +0,0 @@ -/* -* 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: Command policy manager class. -* -*/ - - -#include - -#include "cvtuicommandpolicymanager.h" -#include "cvtuicmdcontext.h" -#include "cvtuicmdvalidatorbase.h" -#include "cvtuicmdvalidationactionbase.h" -#include "cvtuicmdcustomvalidationactionbase.h" -#include "cvtuiprimarycmdpolicy.h" -#include "cvtuicommandmanager.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Used in InsertInOrder() method to compare two instances of CVtUiCmdContext. -// --------------------------------------------------------------------------- -// -TInt ContextTypeCmpFunc( const CVtUiCmdContext& aV1, - const CVtUiCmdContext& aV2 ) - { - return static_cast< TInt >( aV1.ContextType() ) - - static_cast< TInt >( aV2.ContextType() ); - } - -// --------------------------------------------------------------------------- -// Used in FindInOrder() method to compare instances of CVtUiCmdContext versus -// given key value. -// --------------------------------------------------------------------------- -// -TInt ContextTypeCmpFuncVsKey( const TVtUiCmdContextType* aKey, - const CVtUiCmdContext& aValue ) - { - return static_cast< TInt > ( *aKey ) - - static_cast< TInt >( aValue.ContextType() ); - } - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::NewL -// --------------------------------------------------------------------------- -// -CVtUiCommandPolicyManager* -CVtUiCommandPolicyManager::NewL( const CVtUiCommandManager& aCmdManager ) - { - CVtUiCommandPolicyManager* self = - new ( ELeave ) CVtUiCommandPolicyManager( aCmdManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::~CVtUiCommandPolicyManager -// --------------------------------------------------------------------------- -// -CVtUiCommandPolicyManager::~CVtUiCommandPolicyManager() - { - __VTPRINTENTER( "CmdPolicyMgr.~" ) - iContexts.Reset(); - iValidators.Reset(); - delete iPrimaryCommandPolicy; - __VTPRINTEXIT( "CmdPolicyMgr.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::RegisterCommandContext -// --------------------------------------------------------------------------- -// -TInt CVtUiCommandPolicyManager::RegisterCommandContext( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.RegisterCommandContext" ) - TLinearOrder< CVtUiCmdContext > cmpFunc( ::ContextTypeCmpFunc ); - TInt result( KErrNone ); - TInt index( iContexts.FindInOrder( &aContext, cmpFunc ) ); - if ( index == KErrNotFound ) - { - TInt error( iContexts.InsertInOrder( &aContext, cmpFunc ) ); - if ( !error ) - { - CommandContextRegistered( aContext ); - } - result = error; - } - else - { - result = KErrAlreadyExists; - } - __VTPRINTEXITR( "CmdPolicyMgr.RegisterCommandContext %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::UnregisterCommandContext -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::UnregisterCommandContext( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.UnregisterCommandContext" ) - TLinearOrder< CVtUiCmdContext > cmpFunc( ::ContextTypeCmpFunc ); - TInt index( iContexts.FindInOrder( &aContext, cmpFunc ) ); - if ( index != KErrNotFound ) - { - iContexts.Remove( index ); - CommandContextUnregistered( aContext ); - } - __VTPRINTEXIT( "CmdPolicyMgr.UnregisterCommandContext" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::AddValidator -// --------------------------------------------------------------------------- -// -TInt CVtUiCommandPolicyManager::AddValidator( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.AddValidator" ) - TInt error( iValidators.Append( &aValidator ) ); - if ( !error ) - { - ValidatorAdded( aValidator ); - } - __VTPRINTEXITR( "CmdPolicyMgr.AddValidator %d", error ) - return error; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::RemoveValidator -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::RemoveValidator( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.RemoveValidator" ) - TInt index( iValidators.Find( &aValidator ) ); - if ( index != KErrNotFound ) - { - iValidators.Remove( index ); - ValidatorRemoved( aValidator ); - } - __VTPRINTEXIT( "CmdPolicyMgr.RemoveValidator" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateMenuItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateMenuItemsL" ) - ValidateL( EVtUiCmdContextTypeMenu, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.ValidateMenuItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateSoftkeyItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateSoftkeyItemsL" ) - ValidateL( EVtUiCmdContextTypeSoftkey, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.ValidateSoftkeyItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateToolbarItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateToolbarItemsL" ) - ValidateL( EVtUiCmdContextTypeToolbar, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.ValidateToolbarItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CustomValidateL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::CustomValidateL( - CVtUiCmdCustomValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.CustomValidateL" ) - ValidateL( EVtUiCmdContextTypeExecution, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.CustomValidateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CVtUiCommandPolicyManager -// --------------------------------------------------------------------------- -// -CVtUiCommandPolicyManager::CVtUiCommandPolicyManager( - const CVtUiCommandManager& aCmdManager ) : iCommandManager( aCmdManager ) - { - __VTPRINTENTER( "CmdPolicyMgr.ctor" ) - __VTPRINTEXIT( "CmdPolicyMgr.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ConstructL() - { - __VTPRINTENTER( "CmdPolicyMgr.ConstructL" ) - iPrimaryCommandPolicy = - CVtUiPrimaryCmdPolicy::NewL( iCommandManager.UiStates(), - iCommandManager.AppUi() ); - User::LeaveIfError( AddValidator( *iPrimaryCommandPolicy ) ); - __VTPRINTEXIT( "CmdPolicyMgr.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CommandContextRegistered -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::CommandContextRegistered( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.CommandContextRegistered" ) - for ( TInt i = iValidators.Count() - 1 ; i >= 0; i-- ) - { - aContext.AddValidator( *iValidators[ i ] ); - } - __VTPRINTEXIT( "CmdPolicyMgr.CommandContextRegistered" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CommandContextUnregistered -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::CommandContextUnregistered( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.CommandContextUnregistered" ) - for ( TInt i = iValidators.Count() - 1 ; i >= 0; i-- ) - { - aContext.RemoveValidator( *iValidators[ i ] ); - } - __VTPRINTEXIT( "CmdPolicyMgr.CommandContextUnregistered" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidatorAdded -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidatorAdded( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidatorAdded" ) - for ( TInt i = iContexts.Count() - 1 ; i >= 0; i-- ) - { - iContexts[ i ]->AddValidator( aValidator ); - } - __VTPRINTEXIT( "CmdPolicyMgr.ValidatorAdded" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidatorRemoved -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidatorRemoved( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidatorRemoved" ) - for ( TInt i = iContexts.Count() - 1 ; i >= 0; i-- ) - { - iContexts[ i ]->RemoveValidator( aValidator ); - } - __VTPRINTEXIT( "CmdPolicyMgr.ValidatorRemoved" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::FindCommandContextByType -// --------------------------------------------------------------------------- -// -CVtUiCmdContext* CVtUiCommandPolicyManager::FindCommandContextByType( - TVtUiCmdContextType aContextType ) - { - __VTPRINTENTER( "CmdPolicyMgr.FindCommandContextByType" ) - CVtUiCmdContext* result = NULL; - TInt index( iContexts.FindInOrder( aContextType, - ::ContextTypeCmpFuncVsKey ) ); - if ( index != KErrNotFound ) - { - result = iContexts[ index ]; - } - __VTPRINTEXIT( "CmdPolicyMgr.FindCommandContextByType" ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateL( TVtUiCmdContextType aContextType, - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateL" ) - CVtUiCmdContext* context = - FindCommandContextByType( aContextType ); - if ( context ) - { - aAction.BeginProcess(); - context->ValidateL( aAction ); - aAction.EndProcess(); - } - __VTPRINTEXIT( "CmdPolicyMgr.ValidateL" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuiexecutioncontext.cpp --- a/vtuis/videotelui/src/commands/cvtuiexecutioncontext.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* 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: Execution context class. -* -*/ - - -#include - -#include "cvtuiexecutioncontext.h" -#include "cvtuicmdcustomvalidationactionbase.h" - -/** Execution context reference priority */ -static const TInt KVtUiExecutionContextPriority = 1000; - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiExecutionContext::~CVtUiExecutionContext -// --------------------------------------------------------------------------- -// -CVtUiExecutionContext::~CVtUiExecutionContext() - { - __VTPRINTENTER( "ExecCtx.~" ) - UnregisterCommandContext(); - __VTPRINTEXIT( "ExecCtx.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiExecutionContext::NewL -// --------------------------------------------------------------------------- -// -CVtUiExecutionContext* CVtUiExecutionContext::NewL( - MVtUiCommandManager& aCommandManager ) - { - __VTPRINTENTER( "ExecCtx.NewL" ) - CVtUiExecutionContext* self = - new ( ELeave ) CVtUiExecutionContext( aCommandManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "ExecCtx.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiExecutionContext::ValidateL -// --------------------------------------------------------------------------- -// -void CVtUiExecutionContext::ValidateL( CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "ExecCtx.ValidateL" ) - CustomValidationL( - static_cast< CVtUiCmdCustomValidationActionBase& >( aAction ) ); - __VTPRINTEXIT( "ExecCtx.ValidateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiExecutionContext::CVtUiExecutionContext -// --------------------------------------------------------------------------- -// -CVtUiExecutionContext::CVtUiExecutionContext( - MVtUiCommandManager& aCommandManager ) - : CVtUiCmdContext( aCommandManager, EVtUiCmdContextTypeExecution, - KVtUiExecutionContextPriority ) - { - __VTPRINTENTER( "ExecCtx.ctor" ) - __VTPRINTEXIT( "ExecCtx.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiExecutionContext::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiExecutionContext::ConstructL() - { - __VTPRINTENTER( "ExecCtx.ConstructL" ) - RegisterCommandContextL(); - __VTPRINTEXIT( "ExecCtx.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuifeaturecmdbase.cpp --- a/vtuis/videotelui/src/commands/cvtuifeaturecmdbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 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: Feature based UI command base class implementation. -* -*/ - - -#include "cvtuifeaturecmdbase.h" -#include "mvtuifeature.h" - -// --------------------------------------------------------------------------- -// CVtUiFeatureCmdBase::HandleL -// --------------------------------------------------------------------------- -// -void CVtUiFeatureCmdBase::HandleL() - { - iFeature.StartL(); - } - -// --------------------------------------------------------------------------- -// CVtUiFeatureCmdBase::IsEnabled -// --------------------------------------------------------------------------- -// -TBool CVtUiFeatureCmdBase::IsEnabled() const - { - return ( iFeature.State() == MVtUiFeature::EReady ) || - ( iFeature.State() == MVtUiFeature::EUnprepared ); - } - -// --------------------------------------------------------------------------- -// CVtUiFeatureCmdBase::CVtUiFeatureCmdBase -// --------------------------------------------------------------------------- -// -CVtUiFeatureCmdBase::CVtUiFeatureCmdBase( MVtUiFeature& aFeature, - TInt aCommandId ) : CVtUiCmdBase( aCommandId ), iFeature( aFeature ) - { - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/cvtuiprimarycmdpolicy.cpp --- a/vtuis/videotelui/src/commands/cvtuiprimarycmdpolicy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,532 +0,0 @@ -/* -* 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: Primary policy class. -* -*/ - - -#include -#include -#include -#include -#include - -#include "cvtuiprimarycmdpolicy.h" -#include "cvtuicmdvalidationactionbase.h" -#include "cvtuicmdcustomvalidationactionbase.h" -#include "tvtuicmdvalidatorcallback.h" -#include "tvtuistates.h" -#include "videotelui.hrh" -#include "tVtuifeaturevariation.h" -#include "CVtUiAppUi.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::NewL -// --------------------------------------------------------------------------- -// -CVtUiPrimaryCmdPolicy* CVtUiPrimaryCmdPolicy::NewL( - const TVtUiStates& aUiStates, const CVtUiAppUi& aAppUi ) - { - __VTPRINTENTER( "PrimaryCmdPolicy.NewL" ) - CVtUiPrimaryCmdPolicy* self = - new ( ELeave ) CVtUiPrimaryCmdPolicy( aUiStates, aAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "PrimaryCmdPolicy.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::~CVtUiPrimaryCmdPolicy -// --------------------------------------------------------------------------- -// -CVtUiPrimaryCmdPolicy::~CVtUiPrimaryCmdPolicy() - { - __VTPRINTENTER( "PrimaryCmdPolicy.~" ) - __VTPRINTEXIT( "PrimaryCmdPolicy.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateMenuItemsL -// --------------------------------------------------------------------------- -// -void CVtUiPrimaryCmdPolicy::ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction, TInt ) - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateMenuItemsL" ) - aAction.ProcessL( - TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( *this, - ValidateMenuCommand ) ); - __VTPRINTEXIT( "PrimaryCmdPolicy.ValidateMenuItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateSoftkeyItemsL -// --------------------------------------------------------------------------- -// -void CVtUiPrimaryCmdPolicy::ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& aAction, TInt ) - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateSoftkeyItemsL" ) - aAction.ProcessL( - TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( *this, - ValidateSoftkey ) ); - __VTPRINTEXIT( "PrimaryCmdPolicy.ValidateSoftkeyItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateSoftkeyItemsL -// --------------------------------------------------------------------------- -// -void CVtUiPrimaryCmdPolicy::ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& aAction, TInt ) - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateToolbarItemsL" ) - aAction.ProcessL( - TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( *this, - ValidateToolbarCommand ) ); - __VTPRINTEXIT( "PrimaryCmdPolicy.ValidateToolbarItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::CustomValidationL -// --------------------------------------------------------------------------- -// -void CVtUiPrimaryCmdPolicy::CustomValidationL( - CVtUiCmdCustomValidationActionBase& aAction, TInt ) - { - __VTPRINTENTER( "PrimaryCmdPolicy.CustomValidationL" ) - switch ( aAction.CustomTypeId() ) - { - // Command state validation - case EVtUiCmdContextTypeExecution: - aAction.ProcessL( TVtUiCmdValidatorCallBack< CVtUiPrimaryCmdPolicy >( - *this, ValidateCommandState ) ); - break; - - default: - __VTPRINT2( DEBUG_GEN, - "PrimaryCmdPolicy.CustomValidationL unknown typeId = %d", - aAction.CustomTypeId() ); - break; - } - __VTPRINTEXIT( "PrimaryCmdPolicy.CustomValidationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidatesContext -// --------------------------------------------------------------------------- -// -TBool CVtUiPrimaryCmdPolicy::ValidatesContext( - const TVtUiCmdContextType& aCtxType ) const - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidatesContext" ) - - TBool result( EFalse ); - - switch ( aCtxType ) - { - case EVtUiCmdContextTypeMenu: - case EVtUiCmdContextTypeSoftkey: - case EVtUiCmdContextTypeToolbar: - case EVtUiCmdContextTypeExecution: - result = ETrue; - break; - - default: - break; - } - - __VTPRINTEXITR( "PrimaryCmdPolicy.ValidatesContext %d", result ) - - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::CVtUiPrimaryCmdPolicy -// --------------------------------------------------------------------------- -// -CVtUiPrimaryCmdPolicy::CVtUiPrimaryCmdPolicy( const TVtUiStates& aUiStates, - const CVtUiAppUi& aAppUi ) - : CVtUiCmdValidatorBase( EVtUiCmdPolicyPriorityPrimary ), - iUiStates( aUiStates ), iAppUi( aAppUi ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiPrimaryCmdPolicy::ConstructL() - { - TVtUiActiveIdleVariation activeIdleVariation; - iAIEnabled = activeIdleVariation.IsActiveIdleEnabled(); - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateMenuCommand -// --------------------------------------------------------------------------- -// -TBool CVtUiPrimaryCmdPolicy::ValidateMenuCommand( TInt aCommandId ) const - { - TBool handled; - return ValidateCommand( aCommandId, handled ); - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateSoftkey -// --------------------------------------------------------------------------- -// -TBool CVtUiPrimaryCmdPolicy::ValidateSoftkey( TInt aResourceId ) const - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateSoftkey" ) - TBool result( EFalse ); - switch ( aResourceId ) - { - case R_VIDEOTELUI_SOFTKEYS_EMPTY_ACTIVE_COMMAND: - result = iUiStates.IsCommandActivating(); - break; - - case R_VIDEOTELUI_SOFTKEYS_EMPTY_DIALEREXIT: - result = iUiStates.IsDialerActivating(); - break; - - case R_VIDEOTELUI_SOFTKEYS_SHARE_OBJECT_IMAGE: - result = iUiStates.MediaState().IsSharing(); - break; - - case R_VIDEOTELUI_SOFTKEYS_CAPTURE_VIDEO: - result = iUiStates.IsCaptureModeOn(); - break; - - case R_VIDEOTELUI_SOFTKEYS_ENABLE_AUDIO: - result = !iUiStates.AudioState().IsAudio(); - break; - - case R_VIDEOTELUI_SOFTKEYS_ENABLE_VIDEO: - result = !iUiStates.MediaState().IsVideo() && - iUiStates.MediaState().HasCamera() && - ( iUiStates.ExecState() == TVtUiStates::EExecStateRunning ); - break; - - case R_VIDEOTELUI_SOFTKEYS_DIALER: - case R_VIDEOTELUI_SOFTKEYS_BT_HANDSFREE: - case R_VIDEOTELUI_SOFTKEYS_LOUDSPEAKER: - case R_VIDEOTELUI_SOFTKEYS_HANDSET_B: - { - if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) && - ( iUiStates.ExecState() == TVtUiStates::EExecStateRunning ) ) - { - switch ( aResourceId ) - { - case R_VIDEOTELUI_SOFTKEYS_DIALER: - result = ETrue; - break; - } - } - else - { - switch ( aResourceId ) - { - case R_VIDEOTELUI_SOFTKEYS_BT_HANDSFREE: - result = iUiStates.AudioState().CanActivateBtHf(); - break; - - case R_VIDEOTELUI_SOFTKEYS_LOUDSPEAKER: - result = iUiStates.AudioState().CanActivateLoudspeaker(); - break; - - case R_VIDEOTELUI_SOFTKEYS_HANDSET_B: - result = iUiStates.AudioState().CanDeactivateLoudspeaker(); - break; - } - } - } - break; - - case R_VIDEOTELUI_SOFTKEYS_END_CALL: - result = ETrue; - break; - } - __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateSoftkey %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateToolbarCommand -// --------------------------------------------------------------------------- -// -TBool CVtUiPrimaryCmdPolicy::ValidateToolbarCommand( TInt aCommandId ) const - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateToolbarCommand" ) - __VTPRINT2( DEBUG_GEN, "cmdId = %d", aCommandId ) - TBool result( ETrue ); - switch( aCommandId ) - { - case EVtUiCmdZoom: - case EVtUiCmdShareObjectImage: - case EVtUiCmdSwapImagesPlaces: - //case EVtUiCmdSnapshot: - - result = EFalse; - break; - - default: - result = ValidateMenuCommand( aCommandId ); - break; - } - __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateToolbarCommand %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateCommandState -// --------------------------------------------------------------------------- -// -TBool CVtUiPrimaryCmdPolicy::ValidateCommandState( TInt aCommandId ) const - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateCommandState" ) - TBool handled; - TBool allowed( !ValidateCommand( aCommandId, handled ) ); - if ( !handled ) - { - switch ( aCommandId ) - { - case EVtUiCmdCapture: - case EVtUiCmdCancelCapture: - allowed = iUiStates.IsCaptureModeOn(); - break; - - case EVtUiCmdStopSharingObjectImage: - allowed = iUiStates.MediaState().IsSharing() && - !iUiStates.MediaState().IsVideoPermanentlyStopped(); - break; - - default: - allowed = ETrue; - break; - } - } - __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateCommandState %d", allowed ) - return allowed; - } - -// --------------------------------------------------------------------------- -// CVtUiPrimaryCmdPolicy::ValidateCommand -// --------------------------------------------------------------------------- -// -TBool CVtUiPrimaryCmdPolicy::ValidateCommand( TInt aCommandId, - TBool& aHandled ) const - { - __VTPRINTENTER( "PrimaryCmdPolicy.ValidateCommand" ) - - __VTPRINT2( DEBUG_GEN, " cmdId = %d", aCommandId ) - - TBool result( ETrue ); - - aHandled = ETrue; - - const TVtUiMediaState& mediaState( iUiStates.MediaState() ); - const TVtUiAudioState& audioState( iUiStates.AudioState() ); - const TBool disabledVideo( !mediaState.IsVideo() || - mediaState.IsSharing() ); - const TBool disabledAudio( !audioState.IsAudio() ); - const TBool disableVideoOptions( !mediaState.HasCamera() ); - const TBool freezeSupported( mediaState.IsFreezeSupported() ); - const TBool frozen( mediaState.IsFrozen() ); - - const TBool videoPermStopped( mediaState.IsVideoPermanentlyStopped() ); - const TBool audioPermStopped( audioState.IsAudioPermanentlyStopped() ); - - switch( aCommandId ) - { - case EVtUiCmdSnapshot: - result = ( disabledVideo && !frozen ) || - disableVideoOptions || - !freezeSupported; - break; - - case EVtUiCmdUsePrimaryCamera: - result = mediaState.IsPrimaryCameraInUse() || frozen || - !mediaState.HasPrimaryCamera() || mediaState.IsSharing() || - videoPermStopped; - break; - - case EVtUiCmdUseSecondaryCamera: - result = mediaState.IsSecondaryCameraInUse() || frozen || - !mediaState.HasSecondaryCamera() || mediaState.IsSharing() || - videoPermStopped; - break; - - case EVtUiCmdDeactivateBT: - result = !audioState.CanDeactivateBtHf(); - break; - - case EVtUiCmdSwitchFromBTToIHF: - result = !audioState.CanDeactivateBtHf() || - !audioState.CanActivateLoudspeaker(); - break; - - case EVtUiCmdActivateBT: - result = !audioState.CanActivateBtHf(); - break; - - case EVtUiCmdDeactivateLoudspeaker: - result = !audioState.CanDeactivateLoudspeaker(); - break; - - case EVtUiCmdActivateLoudspeaker: - result = !audioState.CanActivateLoudspeaker(); - break; - - case EVtUiCmdSwapImagesPlaces: - // Swap image places is always shown in menu. - result = EFalse; - break; - - case EVtUiCmdAdjustVideo: - // Adjust video is always shown in menu. - result = EFalse; - break; - - case EVtUiCmdAdjustVideoVideoQuality: - result = EFalse; - break; - - case EVtUiCmdAdjustVideoWhiteBalance: - result = !iUiStates.IsWhiteBalanceSettingAvailable() || frozen; - break; - - case EVtUiCmdAdjustVideoBrightness: - result =!iUiStates.IsBrightnessSettingAvailable() || frozen; - break; - - case EVtUiCmdAdjustVideoContrast: - result =!iUiStates.IsContrastSettingAvailable() || frozen; - break; - - case EVtUiCmdAdjustVideoColourTone: - result = !iUiStates.IsColorToneSettingAvailable() || frozen; - - break; - case EVtUiCmdZoom: - result = frozen || disableVideoOptions || disabledVideo; - break; - - case EVtUiCmdCreateVoice: - // Downgrading to voice call is not possible if remote end MSISDN - // is unavailable or there is waiting call. - result = !iUiStates.IsCLIReceived() || iUiStates.IsWaitingCall(); - break; - - case EVtUiCmdGoToIdle: -#ifndef RD_BOOT_CUSTOMIZABLE_AI - result = !iAIEnabled; -#else - // When RD_BOOT_CUSTOMIZABLE_AI is defined, active idle is always - // shown in menu - result = EFalse; -#endif //RD_BOOT_CUSTOMIZABLE_AI - break; - - case EAknCmdHelp: - { - TVtUiHelpVariation hlpvariation; - result = !hlpvariation.IsHelpSupported(); - } - break; - - case EAknCmdExit: - // Exit option is disabled by default. Change ETrue to EFalse - // and it is in the menu. - break; - - case EVtUiCmdEndActiveCall: - // End active call always shown in menu. - result = EFalse; - break; - - case EVtUiCmdShareObjectImage: - result = frozen || mediaState.IsNotAbleToShare() || - mediaState.IsInitializingShare() || videoPermStopped || - iAppUi.IsActiveCommand( EVtUiCmdShareObjectImage ); - break; - - case EVtUiCmdEnableMain: - result = ( iAppUi.IsActiveCommand( EVtUiCmdEnableVideo ) || - iAppUi.IsActiveCommand( EVtUiCmdDisableVideo ) || - !disabledVideo || disableVideoOptions || videoPermStopped ) - && ( iAppUi.IsActiveCommand ( EVtUiCmdEnableAudio ) || - !disabledAudio || audioPermStopped ); - break; - - case EVtUiCmdEnableVideo: - result = !disabledVideo || disableVideoOptions || - videoPermStopped; - break; - - case EVtUiCmdEnableAudio: - result = !disabledAudio || audioPermStopped; - break; - - case EVtUiCmdEnableBoth: - result = !disabledVideo || !disabledAudio || disableVideoOptions || - videoPermStopped || audioPermStopped; - break; - - case EVtUiCmdDisableMain: - result = ( iAppUi.IsActiveCommand( EVtUiCmdDisableVideo ) || - iAppUi.IsActiveCommand( EVtUiCmdEnableVideo ) || - disabledVideo || disableVideoOptions || videoPermStopped ) && - ( iAppUi.IsActiveCommand( EVtUiCmdDisableAudio ) || - disabledAudio || audioPermStopped ); - break; - - case EVtUiCmdDisableVideo: - result = disabledVideo || disableVideoOptions || videoPermStopped; - break; - - case EVtUiCmdDisableAudio: - result = disabledAudio || audioPermStopped; - break; - - case EVtUiCmdDisableBoth: - result = disableVideoOptions || disabledVideo || disabledAudio || - videoPermStopped || audioPermStopped; - break; - - case EVtUiCmdSendDTMF: - if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) ) - { - result = EFalse; - } - else - { - result = ETrue; - } - break; - - default: - aHandled = EFalse; - break; - } - - __VTPRINTEXITR( "PrimaryCmdPolicy.ValidateCommand %d", result ) - - return result; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/tVtuifeaturevariation.cpp --- a/vtuis/videotelui/src/commands/tVtuifeaturevariation.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* -* Copyright (c) 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: Video Telephone feature variation class definition. -* -*/ - - -#include "tVtuifeaturevariation.h" - -// TVtUiFeatureVariationBase - -// ----------------------------------------------------------------------------- -// TVtUiFeatureVariationBase::IsFeatureSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiFeatureVariationBase::IsFeatureSupported( const TUint32 aId ) const - { - return FeatureManager::FeatureSupported( aId ); - } - -//TVtUiHelpVariation -// ----------------------------------------------------------------------------- -// TVtUiHelpVariation::FeatureId -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiHelpVariation::FeatureId() const - { - return KFeatureIdHelp; - } -// ----------------------------------------------------------------------------- -// TVtUiHelpVariation::IsHelpSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiHelpVariation::IsHelpSupported() const - { - return IsFeatureSupported( FeatureId() ); - } -//TVtUiDPVariation -// ----------------------------------------------------------------------------- -// TVtUiDPVariation::FeatureId -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiDPVariation::FeatureId() const - { - return KFeatureIdDisplayPost; - } -// ----------------------------------------------------------------------------- -// TVtUiDPVariation::IsDPSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiDPVariation::IsDPSupported() const - { - return IsFeatureSupported( FeatureId() ); - } -//TVtUiBTVariation -// ----------------------------------------------------------------------------- -// TVtUiBTVariation::FeatureId -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiBTVariation::FeatureId() const - { - return KFeatureIdBt; - } -// ----------------------------------------------------------------------------- -// TVtUiBTVariation::IsBTSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiBTVariation::IsBTSupported() const - { - return IsFeatureSupported( FeatureId() ); - } -//TVtUiSideVolumeKeysVariation -// ----------------------------------------------------------------------------- -// TVtUiSideVolumeKeysVariation::FeatureId -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiSideVolumeKeysVariation::FeatureId() const - { - return KFeatureIdSideVolumeKeys; - } -// ----------------------------------------------------------------------------- -// TVtUiSideVolumeKeysVariation::IsSideVolumeKeysSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiSideVolumeKeysVariation::IsSideVolumeKeysSupported() const - { - return IsFeatureSupported( FeatureId() ); - } -//TVtUiActiveIdleFetManVariation -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleFetManVariation::FeatureId -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiActiveIdleFetManVariation::FeatureId() const - { - return KFeatureIdActiveIdle; - } -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleFetManVariation::IsActiveIdleFetManSupported -// ----------------------------------------------------------------------------- -// -TBool TVtUiActiveIdleFetManVariation::IsActiveIdleFetManSupported() const - { - return IsFeatureSupported( FeatureId() ); - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/tvtuiaudiostate.cpp --- a/vtuis/videotelui/src/commands/tvtuiaudiostate.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* 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: Audio state class. -* -*/ - -#include -#include - -#include "tvtuiaudiostate.h" -#include "VtUiUtility.h" - -// ----------------------------------------------------------------------------- -// TVtUiAudioState::UpdateFlags -// ----------------------------------------------------------------------------- -// -void TVtUiAudioState::UpdateFlags() - { - __VTPRINTENTER( "AudioState.UpdateFlags" ) - TInt avail( 0 ); - - VtUiUtility::GetAudioRoutingAvailability( iModel.Audio(), avail ); - - const TBool videoCallConnected ( iModel.Media().VideoCallConnected()); - //Before update AudioRouting, video call state must to be checked. - //AudioRouting can not be changed if call is not in EConnected state. - if ( videoCallConnected ) - { - __VTPRINT( DEBUG_GEN, " videoCallConnected " ) - if ( avail & VtUiUtility::EDeactivateBtHandsfree ) - { - SetFlag( ECanDeactivateBtHf ); - } - if ( avail & VtUiUtility::EActivateBtHandsfree ) - { - SetFlag( ECanActivateBtHf ); - } - if ( avail & VtUiUtility::EDeactivateLoudspeaker ) - { - SetFlag( ECanDeactivateLoudspeaker ); - } - if ( avail & VtUiUtility::EActivateLoudspeaker ) - { - SetFlag( ECanActivateLoudspeaker ); - } - } - - VtUiUtility::GetOutgoingMediaState( iModel.Media(), avail ); - - if ( avail & MVtEngMedia::EMediaAudio ) - { - SetFlag( EIsAudio ); - } - - TInt status ( 0 ); - iModel.Media().GetMediaState( MVtEngMedia::EMediaOutgoing, status ); - if ( !(status & MVtEngMedia::EMediaAudioChannelOpen ) ) - { - SetFlag( EIsAudioPermanentlyStopped ); - } - - __VTPRINTEXITR( "AudioState.UpdateFlags bits = %b", Value() ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/tvtuilocalvariation.cpp --- a/vtuis/videotelui/src/commands/tvtuilocalvariation.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* 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: Video Telephone local variation class. -* -*/ - - -#include -#include -#include - -#include "VideoTelephonyInternalCRKeys.h" -#include "tvtuilocalvariation.h" -#include "tVtuifeaturevariation.h" - -// TVtUiVariationBase - -// ----------------------------------------------------------------------------- -// TVtUiVariationBase::ReadL -// ----------------------------------------------------------------------------- -// -void TVtUiVariationBase::ReadL( const TInt adefault ) - { - __VTPRINTENTER( "VtUi.LocalVariation.ReadL" ) - CRepository* repository = CRepository::NewL( Uid() ); - TInt value( 0 ); - if ( !repository->Get( Key(), value ) ) - { - SetValue( value ); - } - // incase of error - else - { - // If default is set - if ( adefault != -1 ) - { - __VTPRINT2( DEBUG_GEN, "VtUi.LocalVariation.ReadL def=%d", adefault ) - SetValue( adefault ); - } - } - delete repository; - __VTPRINTEXIT( "VtUi.LocalVariation.ReadL" ) - } -// ----------------------------------------------------------------------------- -// TVtUiVariationBase::Value -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiVariationBase::ReceiveValue() const - { - __VTPRINTENTER( "VtUi.LocalVariation.ReceiveValue" ) - __VTPRINTEXIT( "VtUi.LocalVariation.ReceiveValue" ) - return Value(); - } - -// TVtUiVideoTelephonyVariation -// ----------------------------------------------------------------------------- -// TVtUiVideoTelephonyVariation::Uid -// ----------------------------------------------------------------------------- -// -const TUid& TVtUiVideoTelephonyVariation::Uid() const - { - return KCRUidVTVariation; - } - -// ----------------------------------------------------------------------------- -// TVtUiVideoTelephonyVariation::Key -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiVideoTelephonyVariation::Key() const - { - return KVTLocalVariationFlags; - } - -// TVtUiActiveIdleVariation -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleVariation::IsActiveIdleEnabled -// ----------------------------------------------------------------------------- -// -TBool TVtUiActiveIdleVariation::IsActiveIdleEnabled() - { - __VTPRINTENTER( "VtUi.LocalVariation.AI.IsActiveIdleEnabled" ) - #ifndef RD_BOOT_CUSTOMIZABLE_AI - TVtUiActiveIdleFetManVariation featman; - TRAP_IGNORE( ReadL() ); - __VTPRINTEXIT( "VtUi.LocalVariation.AI.IsActiveIdleEnabled" ) - return featman.IsActiveIdleFetManSupported() && Value(); - // AI 2 implementation always true - #else - __VTPRINTEXIT( "VtUi.LocalVariation.AI.IsActiveIdleEnabled" ) - return ETrue; - #endif // RD_BOOT_CUSTOMIZABLE_AI - } - -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleVariation::Uid -// ----------------------------------------------------------------------------- -// -const TUid& TVtUiActiveIdleVariation::Uid() const - { - return KCRUidPersonalizationSettings; - } - -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleVariation::Key -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiActiveIdleVariation::Key() const - { - return KSettingsActiveIdleState; - } - -// TVtUiGsMuteVariation -// ----------------------------------------------------------------------------- -// TVtUiGsMuteVariation::GsMuteState -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiGsMuteVariation::GsMuteState() - { - __VTPRINTENTER( "VtUi.LocalVariation.Gs.GsMuteState" ) - TRAP_IGNORE( ReadL( KAllwaysQuery ) ); - __VTPRINTEXIT( "VtUi.LocalVariation.Gs.GsMuteState" ) - return ReceiveValue(); - } -// ----------------------------------------------------------------------------- -// TVtUiGsMuteVariation::Uid -// ----------------------------------------------------------------------------- -// -const TUid& TVtUiGsMuteVariation::Uid() const - { - return KCRUidTelephonySettings; - } - -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleVariation::Key -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiGsMuteVariation::Key() const - { - return KSettingsVTVideoSending; - } -// TVtUiToolbarVariation -// ----------------------------------------------------------------------------- -// TVtUiToolbarVariation::NumberOfButtons -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiToolbarVariation::NumberOfButtons() - { - __VTPRINTENTER( "VtUi.LocalVariation.Tb.NumberOfButtons" ) - TRAP_IGNORE( ReadL( KNumberOfTbButtons ) ); - __VTPRINTEXIT( "VtUi.LocalVariation.Tb.NumberOfButtons" ) - return ReceiveValue(); - } -// ----------------------------------------------------------------------------- -// TVtUiToolbarVariation::Uid -// ----------------------------------------------------------------------------- -// -const TUid& TVtUiToolbarVariation::Uid() const - { - return KCRUidVTConfiguration; - } - -// ----------------------------------------------------------------------------- -// TVtUiActiveIdleVariation::Key -// ----------------------------------------------------------------------------- -// -TUint32 TVtUiToolbarVariation::Key() const - { - return KVTToolbarCommands; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/tvtuimediastate.cpp --- a/vtuis/videotelui/src/commands/tvtuimediastate.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* 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: Media state class. -* -*/ - - -#include -#include -#include - -#include "tvtuimediastate.h" -#include "VtUiUtility.h" - -// ----------------------------------------------------------------------------- -// TVtUiMediaState::UpdateFlags -// ----------------------------------------------------------------------------- -// -void TVtUiMediaState::UpdateFlags() - { - __VTPRINTENTER( "MediaState.UpdateFlags" ) - TInt avail( 0 ); - - VtUiUtility::GetOutgoingMediaState( iMedia, avail ); - - if ( avail & MVtEngMedia::EMediaVideo ) - { - SetFlag( EIsVideo ); - } - - if ( VtUiUtility::HasCameras( iMedia ) ) - { - SetFlag( EHasCamera ); - } - - if ( VtUiUtility::IsFreezeSupported( iMedia ) ) - { - SetFlag( EIsFreezeSupported ); - } - - if ( VtUiUtility::GetFreezeState( iMedia ) ) - { - SetFlag( EIsFrozen ); - } - - MVtEngMedia::TShareObjectState shareObjectState; - VtUiUtility::GetObjectSharingState( iMedia, shareObjectState ); - - if ( shareObjectState == MVtEngMedia::ESharingImage ) - { - SetFlag( EIsSharing ); - } - else if ( ( shareObjectState == MVtEngMedia::EInitializingShareImage ) || - ( shareObjectState == MVtEngMedia::EInitializingShareVideoClip ) ) - { - SetFlag( EIsInitializingShare ); - } - else if ( shareObjectState == MVtEngMedia::ENotAbleToShare ) - { - SetFlag( EIsNotAbleToShare ); - } - // Camera configuration - - MVtEngMedia::TCameraId cameraId; - TInt err = iMedia.GetCurrentCameraId( cameraId ); - - // Don't care if camera is not ready, just what is selected camera - if ( err == KErrNone || err == KErrNotReady ) - { - SetFlag( ( cameraId == MVtEngMedia::EPrimaryCamera ) ? - EIsPrimaryCameraInUse : EIsSecondaryCameraInUse ); - } - - TInt sourcesCaps( 0 ); - iMedia.GetSourcesCaps( sourcesCaps ); - if ( sourcesCaps & MVtEngMedia::ESourceCapsPrimaryCamera ) - { - SetFlag( EHasPrimaryCamera ); - } - if ( sourcesCaps & MVtEngMedia::ESourceCapsSecondaryCamera ) - { - SetFlag( EHasSecondaryCamera ); - } - - TInt status ( 0 ); - iMedia.GetMediaState( MVtEngMedia::EMediaOutgoing, status ); - if ( !( status & MVtEngMedia::EMediaVideoChannelOpen ) ) - { - SetFlag( EIsVideoPermanentlyStopped ); - } - - __VTPRINTEXITR( "MediaState.UpdateFlags bits = %b", Value() ) - - // Video preferences -/* - TInt caps( iCommandHandler.GetCommandCaps( KVtEngSetContrast ) ); - if ( caps & MVtEngCommandHandler::EAttribEnabled ) - { - SetFlag( EIsContrastSupported ); - } - - caps = iCommandHandler.GetCommandCaps( KVtEngSetBrightness ); - if ( caps & MVtEngCommandHandler::EAttribEnabled ) - { - SetFlag( EIsBrightnessSupported ); - } - - caps = iCommandHandler.GetCommandCaps( KVtEngSetWhiteBalance ); - if ( caps & MVtEngCommandHandler::EAttribEnabled ) - { - SetFlag( EIsWhiteBalanceSupported ); - } - - caps = iCommandHandler.GetCommandCaps( KVtEngSetColorTone ); - if ( caps & MVtEngCommandHandler::EAttribEnabled ) - { - SetFlag( EIsColorToneSupported ); - } - -*/ - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/commands/tvtuistates.cpp --- a/vtuis/videotelui/src/commands/tvtuistates.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -/* -* Copyright (c) 2006 - 2008 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: Video UI states class. -* -*/ - - -#include -#include -#include - -#include "tvtuistates.h" - -// ----------------------------------------------------------------------------- -// TVtUiStates::TVtUiStates -// ----------------------------------------------------------------------------- -// -TVtUiStates::TVtUiStates( CVtEngModel& aModel ) - : iMediaState( aModel.Media(), aModel.CommandHandler() ), iAudioState( aModel ), - iModel( aModel ), iExecState( EExecStateStarting), - iCommandActivatingRefCount( 0 ) - { - // get camera preferences - iCameraPref = static_cast - ( iModel.Extension( KVtEngExtensionCameraPreferences ) ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::Update -// ----------------------------------------------------------------------------- -// -void TVtUiStates::Update() - { - iMediaState.Update(); - iAudioState.Update(); - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsColorToneSettingAvailable -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsColorToneSettingAvailable() const - { - __VTPRINTENTER( "TVtUiStates.IsColorToneSettingAvailable" ) - TUint32 supportedModes; - // Get supported whitebalance modes - if ( iCameraPref ) - { - if ( iCameraPref->GetSupportedColorTones( supportedModes ) ) - { - // error occured - __VTPRINTEXIT( "TVtUiStates.IsColorToneSettingAvailableErr" ) - return EFalse; - } - } - - // Clean the flag, flags that are possible are - // A bitfield of suported colortones - // ENormal = 0x00, - // ESepia = 0x01, - // EGrayscale = 0x02, - // ENegative = 0x04 - supportedModes &= 0x07; - - // If supported modes is 0 automatic,then return EFalse - return supportedModes; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsWhiteBalanceSettingAvailable -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsWhiteBalanceSettingAvailable() const - { - __VTPRINTENTER( "TVtUiStates.IsWhiteBalanceSettingAvailable" ) - TUint32 supportedModes; - // Get supported whitebalance modes - if ( iCameraPref ) - { - if ( iCameraPref->GetSupportedWhiteBalanceModes( supportedModes ) ) - { - // error occured - __VTPRINTEXIT( "TVtUiStates.IsWhiteBalanceSettingAvailableErr" ) - return EFalse; - } - } - __VTPRINT2( DEBUG_GEN, "IsWhiteBalanceSettingAvailable=%d", supportedModes ) - // If supported modes is 0 ,then return EFalse - __VTPRINTEXIT( "TVtUiStates.IsWhiteBalanceSettingAvailable2" ) - return supportedModes; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsContrastSettingAvailable -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsContrastSettingAvailable() const - { - __VTPRINTENTER( "TVtUiStates.IsContrastSettingAvailable" ) - TBool ret( ETrue ); - if ( iCameraPref ) - { - TInt temp; - ret = !iCameraPref->GetBrightness( temp ); - } - return ret; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::IsBrightnessSettingAvailable -// ----------------------------------------------------------------------------- -// -TBool TVtUiStates::IsBrightnessSettingAvailable() const - { - __VTPRINTENTER( "TVtUiStates.IsBrightnessSettingAvailable" ) - TBool ret( ETrue ); - if ( iCameraPref ) - { - TInt temp; - ret = !iCameraPref->GetBrightness( temp ); - } - return ret; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetExecState -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetExecState( const TVtUiExecState aState ) - { - iExecState = aState; - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::SetIsCommandActivating -// ----------------------------------------------------------------------------- -// -void TVtUiStates::SetIsCommandActivating( TBool aSet ) - { - if ( aSet ) - { - iCommandActivatingRefCount++; - } - else if ( iCommandActivatingRefCount > 0 ) - { - iCommandActivatingRefCount--; - } - } - -// ----------------------------------------------------------------------------- -// TVtUiStates::ExecState -// ----------------------------------------------------------------------------- -// -TVtUiStates::TVtUiExecState TVtUiStates::ExecState() const - { - return iExecState; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/compman/cvtuicomponentmanager.cpp --- a/vtuis/videotelui/src/compman/cvtuicomponentmanager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,777 +0,0 @@ -/* -* Copyright (c) 2009 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: Component manager implementation. -* -*/ - - -#include - -#include "cvtuicomponentmanager.h" -#include "mvtuiwindowservereventobserver.h" -#include "mvtuiresourcechangeobserver.h" -#include "mvtuikeyeventobserver.h" -#include "mvtuilayoutchangeobserver.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CmpByPtr -// --------------------------------------------------------------------------- -// -template < class T > -TInt CmpByPtr( const T& aObj1, const T& aObj2 ) - { - return reinterpret_cast< TInt >( &aObj1 ) - - reinterpret_cast< TInt >( &aObj2 ); - } - -// --------------------------------------------------------------------------- -// FindByPtr -// --------------------------------------------------------------------------- -// -template < class T > -TInt FindByPtr( const TInt* aPtr, const T& aObj ) - { - return *aPtr - reinterpret_cast< TInt >( &aObj ); - } - -// --------------------------------------------------------------------------- -// CmpMVtUiComponent -// --------------------------------------------------------------------------- -// -TInt CmpMVtUiComponent( const MVtUiComponent& aC1, const MVtUiComponent& aC2 ) - { - return ( aC1.ComponentId() - aC2.ComponentId() ); - } - -// --------------------------------------------------------------------------- -// CmpTVtUiComponentState -// --------------------------------------------------------------------------- -// -TInt CmpTVtUiComponentState( const TVtUiComponentState& aC1, - const TVtUiComponentState& aC2 ) - { - return ( aC1.Component().ComponentId() - aC2.Component().ComponentId() ); - } - -// --------------------------------------------------------------------------- -// CmpTVtUiComponentStateByKey -// --------------------------------------------------------------------------- -// -TInt CmpTVtUiComponentStateByKey( const MVtUiComponent::TComponentId* aKey, - const TVtUiComponentState& aC ) - { - return ( *aKey - aC.Component().ComponentId() ); - } - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::NewL -// --------------------------------------------------------------------------- -// -CVtUiComponentManager* CVtUiComponentManager::NewL() - { - __VTPRINTENTER( "CompMgr.NewL" ) - CVtUiComponentManager* self = new ( ELeave ) CVtUiComponentManager(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CompMgr.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::~CVtUiComponentManager -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::~CVtUiComponentManager() - { - __VTPRINTENTER( "CompMgr.~" ) - iWsEventObservers.Close(); - iResourceChangeObservers.Close(); - iKeyEventObservers.Close(); - iLayoutChangeObservers.Close(); - iComponents.Close(); - __VTPRINTEXIT( "CompMgr.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::HandleWsEventL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::HandleWsEventL( const TWsEvent& aEvent, - CCoeControl* aDestination ) - { - for ( TInt i = iWsEventObservers.Count() - 1; i >= 0; i-- ) - { - iWsEventObservers[ i ]->HandleWsEventL( aEvent, aDestination ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::HandleResourceChangeL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::HandleResourceChangeL( TInt aType ) - { - for ( TInt i = iResourceChangeObservers.Count() - 1; i >= 0; i-- ) - { - iResourceChangeObservers[ i ]->HandleResourceChangeL( aType ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager:OfferKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiComponentManager::OfferKeyEventL( - const TKeyEvent& aEvent, TEventCode aCode ) - { - TKeyResponse response( EKeyWasNotConsumed ); - for ( TInt i = iKeyEventObservers.Count() - 1; i >= 0; i-- ) - { - response = iKeyEventObservers[ i ]->OfferKeyEventL( aEvent, aCode ); - if ( response == EKeyWasConsumed ) - { - break; - } - } - return response; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::HandleLayoutChangeL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::HandleLayoutChangeL() - { - for ( TInt i = iLayoutChangeObservers.Count() - 1; i >= 0; i-- ) - { - iLayoutChangeObservers[ i ]->HandleLayoutChangeL(); - } - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ChangeWsEventRegistration -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::ChangeWsEventRegistration( - MVtUiWindowServerEventObserver& aObserver, TAction aAction ) - { - return AddOrRemoveComponent( iWsEventObservers, &aObserver, aAction ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ChangeResourceChangeRegistration -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::ChangeResourceChangeRegistration( - MVtUiResourceChangeObserver& aObserver, TAction aAction ) - { - return AddOrRemoveComponent( iResourceChangeObservers, &aObserver, - aAction ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ChangeKeyEventRegistration -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::ChangeKeyEventRegistration( - MVtUiKeyEventObserver& aObserver, TAction aAction ) - { - return AddOrRemoveComponent( iKeyEventObservers, &aObserver, aAction ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ChangeLayoutChangeRegistration -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::ChangeLayoutChangeRegistration( - MVtUiLayoutChangeObserver& aObserver, TAction aAction ) - { - return AddOrRemoveComponent( iLayoutChangeObservers, &aObserver, aAction ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ChangeComponentRegistration -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::ChangeComponentRegistration( - TVtUiComponentState& aComponentState, TAction aAction ) - { - __VTPRINTENTER( "CompMgr.ChangeComponentRegistrationL" ) - TInt result( KErrNone ); - if ( aAction == ERegister ) - { - result = - iComponents.InsertInOrder( &aComponentState, - ComponentStateOrder() ); - } - else - { - TInt index( iComponents.FindInOrder( - &aComponentState, ComponentStateOrder() ) ); - if ( index != KErrNotFound ) - { - iComponents.Remove( index ); - } - } - __VTPRINTEXITR( "CompMgr.ChangeComponentRegistrationL %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::RequestActivationL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::RequestActivationL( - MVtUiComponent::TComponentId aId ) - { - __VTPRINTENTER( "CompMgr.RequestActivationL" ) - TInt index( iComponents.FindInOrder( aId, ::CmpTVtUiComponentStateByKey ) ); - if ( index == KErrNotFound ) - { - User::Leave( index ); - } - else - { - TVtUiComponentState& state( *iComponents[ index ] ); - if ( state.State() == TVtUiComponentState::EActive ) - { - User::Leave( KErrNotReady ); - } - else - { - DoActivationL( state, TVtUiComponentState::EActive ); - } - } - __VTPRINTEXIT( "CompMgr.RequestActivationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::DeActivateComponentL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::DeActivateComponentL( - MVtUiComponent::TComponentId aId ) - { - __VTPRINTENTER( "CompMgr.DeActivateComponentL" ) - TInt index( iComponents.FindInOrder( aId, ::CmpTVtUiComponentStateByKey ) ); - if ( index == KErrNotFound ) - { - User::Leave( index ); - } - else - { - TVtUiComponentState& state( *iComponents[ index ] ); - if ( state.State() == TVtUiComponentState::EInactive ) - { - User::Leave( KErrNotReady ); - } - else - { - DoDeactivationL( state, TVtUiComponentState::EInactive ); - } - } - __VTPRINTEXIT( "CompMgr.DeActivateComponentL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::DoActivationL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::DoActivationL( - TVtUiComponentState& aComponentState, - TVtUiComponentState::TState aNewState ) - { - __VTPRINTENTER( "CompMgr.DoActivationL" ) - TStateList stateList; - ConstructStateListL( stateList ); - TInt index( stateList.FindItem( - aComponentState.Component().ComponentId() ) ); - if ( index != KErrNotFound ) - { - TStateListItem& sli( stateList.At( index ) ); - TVtUiBlockListBitField exclList; - for ( TInt i = stateList.ItemCount() - 1; i >= 0; i-- ) - { - TStateListItem& sli2( stateList.At( i ) ); - if ( sli2.ComponentId() != sli.ComponentId() ) - { - if ( sli2.State() == TVtUiComponentState::EActive && - !sli.BlockList().Contains( sli2.ComponentId() ) ) - { - exclList.Union( sli2.BlockList() ); - } - } - } - sli.SetRoot(); - sli.SetState( aNewState ); - CalculateActivationL( sli.BlockList(), exclList, stateList, EHide ); - } - CommitStateListL( stateList ); - __VTPRINTEXIT( "CompMgr.DoActivationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::DoDeactivationL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::DoDeactivationL( - TVtUiComponentState& aComponentState, - TVtUiComponentState::TState aNewState ) - { - __VTPRINTENTER( "CompMgr.DoDeactivationL" ) - TStateList stateList; - ConstructStateListL( stateList ); - TInt index( stateList.FindItem( - aComponentState.Component().ComponentId() ) ); - if ( index != KErrNotFound ) - { - TStateListItem& sli( stateList.At( index ) ); - TVtUiBlockListBitField exclList; - if ( sli.State() == TVtUiComponentState::EActive ) - { - for ( TInt i = stateList.ItemCount() - 1; i >= 0; i-- ) - { - TStateListItem& sli2( stateList.At( i ) ); - if ( sli2.ComponentId() != sli.ComponentId() ) - { - if ( sli2.State() == TVtUiComponentState::EActive ) - { - exclList.Union( sli2.BlockList() ); - } - } - } - } - sli.SetRoot(); - sli.SetState( aNewState ); - CalculateActivationL( sli.BlockList(), exclList, stateList, EShow ); - } - CommitStateListL( stateList ); - __VTPRINTEXIT( "CompMgr.DoDeactivationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::CommitStateListL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::CommitStateListL( TStateList& aList ) - { - __VTPRINTENTER( "CompMgr.CommitStateListL" ) - // Sort list by component state. Components will first deactivated, then - // blocked and finally activated. - aList.Sort( TStateListItem::StateOrder() ); - for ( TInt i = 0; i < aList.ItemCount(); i++ ) - { - const TStateListItem& sli( aList.At( i ) ); - TInt index( iComponents.FindInOrder( sli.ComponentId(), - ::CmpTVtUiComponentStateByKey ) ); - if ( index != KErrNotFound ) - { - TVtUiComponentState& cs( *iComponents[ index ] ); - if ( cs.State() != sli.State() ) - { - switch ( sli.State() ) - { - case TVtUiComponentState::EInactive: - cs.DeActivateComponentL(); - break; - - case TVtUiComponentState::EActive: - cs.ActivateComponentL(); - break; - - case TVtUiComponentState::EWaiting: - cs.BlockComponentL(); - break; - - default: - User::Leave( KErrArgument ); - break; - } - } - } - } - __VTPRINTEXIT( "CompMgr.CommitStateListL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::CalculateActivationL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::CalculateActivationL( - const TVtUiBlockList& aBlockList, - const TVtUiBlockList& aExclList, - TStateList& aStateList, TActivationAction aAction ) - { - __VTPRINTENTER( "CompMgr.CalculateActivationL" ) - __VTPRINT2( DEBUG_GEN, "aAction = %d", (TInt)aAction ) - TVtUiBlockListBitField blockList; - CVtUiBlockListIterator* iterator = aBlockList.IteratorLC(); - while ( iterator->HasNext() ) - { - MVtUiComponent::TComponentId cid( iterator->Next() ); - if ( aExclList.Contains( cid ) ) - { - continue; - } - TInt index( aStateList.FindItem( cid ) ); - if ( index != KErrNotFound ) - { - TStateListItem& sli( aStateList.At( index ) ); - __VTPRINT3( DEBUG_GEN, "@1, Id = %d, state = %d", (TInt)sli.ComponentId(), (TInt)sli.State() ) - if ( !sli.IsRoot() ) - { - if ( aAction == EShow ) - { - // if action == EShow and component is being blocked, - // then activate component - if ( sli.State() == TVtUiComponentState::EWaiting ) - { - sli.SetState( TVtUiComponentState::EActive ); - if ( !sli.IsVisited() ) - { - blockList.Union( sli.BlockList() ); - } - sli.SetVisited(); - } - } - else // aAction == EHide - { - // if action == EHide and component is active, then - // block component - if ( sli.State() == TVtUiComponentState::EActive ) - { - sli.SetState( TVtUiComponentState::EWaiting ); - if ( !sli.IsVisited() ) - { - blockList.Union( sli.BlockList() ); - } - sli.SetVisited(); - } - } - } - __VTPRINT3( DEBUG_GEN, "@2, Id = %d, state = %d", (TInt)sli.ComponentId(), (TInt)sli.State() ) - } - } - CleanupStack::PopAndDestroy(); // iterator - if ( !blockList.IsEmpty() ) - { - CalculateActivationL( blockList, aExclList, aStateList, - ( aAction == EShow ) ? EHide : EShow ); - } - __VTPRINTEXIT( "CompMgr.CalculateActivationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ConstructStateListL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::ConstructStateListL( TStateList& aList ) - { - for ( TInt i = iComponents.Count() - 1; i >= 0; i-- ) - { - TStateListItem sli( *iComponents[ i ] ); - aList.AddItemL( sli ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::CVtUiComponentManager -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::CVtUiComponentManager() - : iWsEventObservers( 1 ), iResourceChangeObservers( 1 ), - iKeyEventObservers( 1 ),iLayoutChangeObservers( 1 ), iComponents( 1 ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::ConstructL() - { - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::AddOrRemoveComponent -// --------------------------------------------------------------------------- -// -template < class T > -TInt CVtUiComponentManager::AddOrRemoveComponent( RPointerArray< T >& aArray, - T* aComponent, TAction aAction ) - { - __VTPRINTENTER( "CompMgr.AddOrRemoveComponent" ) - TInt result( KErrNone ); - if ( aAction == ERegister ) - { - result = aArray.InsertInOrder( aComponent, ::CmpByPtr ); - } - else - { - TInt index( aArray.FindInOrder( aComponent, ::CmpByPtr ) ); - if ( index != KErrNotFound ) - { - aArray.Remove( index ); - } - } - __VTPRINTEXITR( "CompMgr.AddOrRemoveComponent %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ComponentOrder -// --------------------------------------------------------------------------- -// -TLinearOrder< MVtUiComponent > CVtUiComponentManager::ComponentOrder() - { - return TLinearOrder< MVtUiComponent >( ::CmpMVtUiComponent ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::ComponentStateOrder -// --------------------------------------------------------------------------- -// -TLinearOrder< TVtUiComponentState > CVtUiComponentManager::ComponentStateOrder() - { - return TLinearOrder< TVtUiComponentState >( ::CmpTVtUiComponentState ); - } - -// Implementation of CVtUiComponentManager::TStateListItem - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::TStateListItem -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::TStateListItem::TStateListItem( - const TVtUiComponentState& aState ) - : iComponentId( aState.Component().ComponentId() ), - iState( aState.State() ), iIsRoot( EFalse ), iIsVisited( EFalse ) - { - iBlockList.Union( aState.BlockList() ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::ComponentId -// --------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId -CVtUiComponentManager::TStateListItem::ComponentId() const - { - return iComponentId; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::State -// --------------------------------------------------------------------------- -// -TVtUiComponentState::TState CVtUiComponentManager::TStateListItem::State() const - { - return iState; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::SetState -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::TStateListItem::SetState( - TVtUiComponentState::TState aState ) - { - iState = aState; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::BlockList -// --------------------------------------------------------------------------- -// -const TVtUiBlockList& CVtUiComponentManager::TStateListItem::BlockList() const - { - return iBlockList; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::SetRoot -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::TStateListItem::SetRoot() - { - iIsRoot = ETrue; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::IsRoot -// --------------------------------------------------------------------------- -// -TBool CVtUiComponentManager::TStateListItem::IsRoot() const - { - return iIsRoot; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::SetVisited -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::TStateListItem::SetVisited() - { - iIsVisited = ETrue; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::IsVisited -// --------------------------------------------------------------------------- -// -TBool CVtUiComponentManager::TStateListItem::IsVisited() const - { - return iIsVisited; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::KeyOrder -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::TStateListItem::TKeyCmpFunc -CVtUiComponentManager::TStateListItem::KeyOrder() - { - return KeyCmpFunc; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::LinearOrder -// --------------------------------------------------------------------------- -// -TLinearOrder< CVtUiComponentManager::TStateListItem > -CVtUiComponentManager::TStateListItem::LinearOrder() - { - return TLinearOrder< TStateListItem >( ItemCmpFunc ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::StateOrder -// --------------------------------------------------------------------------- -// -TLinearOrder< CVtUiComponentManager::TStateListItem > -CVtUiComponentManager::TStateListItem::StateOrder() - { - return TLinearOrder< TStateListItem >( StateCmpFunc ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::ItemCmpFunc -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::TStateListItem::ItemCmpFunc( - const TStateListItem& aItem1, const TStateListItem& aItem2 ) - { - return ( aItem1.ComponentId() - aItem2.ComponentId() ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::KeyCmpFunc -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::TStateListItem::KeyCmpFunc( - const MVtUiComponent::TComponentId* aKey, const TStateListItem& aItem ) - { - return ( *aKey - aItem.ComponentId() ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateListItem::StateCmpFunc -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::TStateListItem::StateCmpFunc( - const TStateListItem& aItem1, const TStateListItem& aItem2 ) - { - return ( aItem1.State() - aItem2.State() ); - } -// Implementation of CVtUiComponentManager::TStateList - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::TStateList -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::TStateList::TStateList() : iItems( 1 ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::~TStateList -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::TStateList::~TStateList() - { - iItems.Close(); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::AddItemL -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::TStateList::AddItemL( TStateListItem& aItem ) - { - iItems.InsertInOrderL( aItem, TStateListItem::LinearOrder() ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::ItemCount -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::TStateList::ItemCount() const - { - return iItems.Count(); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::FindItem -// --------------------------------------------------------------------------- -// -TInt CVtUiComponentManager::TStateList::FindItem( - MVtUiComponent::TComponentId aComponentId ) const - { - return iItems.FindInOrder( aComponentId, TStateListItem::KeyOrder() ); - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::At -// --------------------------------------------------------------------------- -// -CVtUiComponentManager::TStateListItem& -CVtUiComponentManager::TStateList::At( TInt aIndex ) - { - return iItems[ aIndex ]; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::At -// --------------------------------------------------------------------------- -// -const CVtUiComponentManager::TStateListItem& -CVtUiComponentManager::TStateList::At( TInt aIndex ) const - { - return iItems[ aIndex ]; - } - -// --------------------------------------------------------------------------- -// CVtUiComponentManager::TStateList::Sort -// --------------------------------------------------------------------------- -// -void CVtUiComponentManager::TStateList::Sort( - TLinearOrder< CVtUiComponentManager::TStateListItem > aOrder ) - { - iItems.Sort( aOrder ); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/compman/tvtuiblocklists.cpp --- a/vtuis/videotelui/src/compman/tvtuiblocklists.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* 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: Component ID block lists implementation. -* -*/ - - -#include "tvtuiblocklists.h" - -const static TUint KNullBlockMask = 0; - -// Implementation for TVtUiBlockList - -// ----------------------------------------------------------------------------- -// TVtUiBlockList::~TVtUiBlockList -// ----------------------------------------------------------------------------- -// -TVtUiBlockList::~TVtUiBlockList() - { - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockList::TVtUiBlockList -// ----------------------------------------------------------------------------- -// -TVtUiBlockList::TVtUiBlockList() - { - } - -// Implementation for TVtUiBlockListBitField - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::TVtUiBlockListBitField -// ----------------------------------------------------------------------------- -// -TVtUiBlockListBitField::TVtUiBlockListBitField() : iBlockMask( KNullBlockMask ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::TVtUiBlockListBitField -// ----------------------------------------------------------------------------- -// -TVtUiBlockListBitField::TVtUiBlockListBitField( TUint aBlockMask ) - : iBlockMask( aBlockMask ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::IsEmpty -// ----------------------------------------------------------------------------- -// -TBool TVtUiBlockListBitField::IsEmpty() const - { - return !iBlockMask; - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::Contains -// ----------------------------------------------------------------------------- -// -TBool TVtUiBlockListBitField::Contains( MVtUiComponent::TComponentId aId ) const - { - return ( iBlockMask & aId ) && ( aId != MVtUiComponent::EComponentIdNull ); - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::Union -// ----------------------------------------------------------------------------- -// -void TVtUiBlockListBitField::Union( const TVtUiBlockList& aBlockList ) - { - iBlockMask |= - static_cast< const TVtUiBlockListBitField& >( aBlockList ).iBlockMask; - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::IteratorLC -// ----------------------------------------------------------------------------- -// -CVtUiBlockListIterator* TVtUiBlockListBitField::IteratorLC() const - { - return TVtUiBlockListBitField::CVtUiBListIteratorBF::NewLC( iBlockMask ); - } - -// Implementation for TVtUiBlockListBitField::CVtUiBListIteratorBF - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::CVtUiBListIteratorBF::NewLC -// ----------------------------------------------------------------------------- -// -TVtUiBlockListBitField::CVtUiBListIteratorBF* -TVtUiBlockListBitField::CVtUiBListIteratorBF::NewLC( - const TUint& aBlockMask ) - { - CVtUiBListIteratorBF* self = new ( ELeave ) - CVtUiBListIteratorBF( aBlockMask ); - CleanupStack::PushL( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::CVtUiBListIteratorBF::CVtUiBListIteratorBF -// ----------------------------------------------------------------------------- -// -TVtUiBlockListBitField::CVtUiBListIteratorBF::CVtUiBListIteratorBF( - const TUint& aBlockMask ) : iBlockMask( aBlockMask ), iCurrent( 1 ) - { - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::CVtUiBListIteratorBF::HasNext -// ----------------------------------------------------------------------------- -// -TBool TVtUiBlockListBitField::CVtUiBListIteratorBF::HasNext() const - { - return ( iCurrent && ( iCurrent <= iBlockMask ) ); - } - -// ----------------------------------------------------------------------------- -// TVtUiBlockListBitField::CVtUiBListIteratorBF::Next -// ----------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId -TVtUiBlockListBitField::CVtUiBListIteratorBF::Next() - { - MVtUiComponent::TComponentId id( MVtUiComponent::EComponentIdNull ); - - while ( HasNext() && !( iCurrent & iBlockMask ) ) - { - iCurrent <<= 1; - } - - if ( iCurrent ) - { - id = static_cast< MVtUiComponent::TComponentId >( iCurrent ); - } - - iCurrent <<= 1; - - return id; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/compman/tvtuicomponentstate.cpp --- a/vtuis/videotelui/src/compman/tvtuicomponentstate.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* 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: Component state base class. -* -*/ - - -#include - -#include "tvtuicomponentstate.h" - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::ActivateComponentL -// ----------------------------------------------------------------------------- -// -void TVtUiComponentState::ActivateComponentL() - { - __VTPRINTENTER( "CompState.ActivateComponentL" ) - iComponent.DoActivateL(); - iState = EActive; - __VTPRINTEXITR( "CompState.ActivateComponentL %d", iState ) - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::BlockComponentL -// ----------------------------------------------------------------------------- -// -void TVtUiComponentState::BlockComponentL() - { - __VTPRINTENTER( "CompState.BlockComponentL" ) - iComponent.DoDeactivateL(); - iState = EWaiting; - __VTPRINTEXITR( "CompState.BlockComponentL %d", iState ) - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::DeActivateComponentL -// ----------------------------------------------------------------------------- -// -void TVtUiComponentState::DeActivateComponentL() - { - __VTPRINTENTER( "CompState.DeActivateComponentL" ) - iComponent.DoDeactivateL(); - iState = EInactive; - __VTPRINTEXITR( "CompState.DeActivateComponentL %d", iState ) - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::State -// ----------------------------------------------------------------------------- -// -TVtUiComponentState::TState TVtUiComponentState::State() const - { - return iState; - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::Component -// ----------------------------------------------------------------------------- -// -const MVtUiComponent& TVtUiComponentState::Component() const - { - return iComponent; - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::BlockMask -// ----------------------------------------------------------------------------- -// -const TVtUiBlockList& TVtUiComponentState::BlockList() const - { - return iBlockList; - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::BlockMask -// ----------------------------------------------------------------------------- -// -TVtUiBlockList& TVtUiComponentState::BlockList() - { - return iBlockList; - } - -// ----------------------------------------------------------------------------- -// TVtUiComponentState::InformDeactivation -// ----------------------------------------------------------------------------- -// -TVtUiComponentState::TVtUiComponentState( MVtUiComponent& aComponent, - const TVtUiBlockList& aBlockList ) - : iComponent( aComponent ), iState( EInactive ) - { - __VTPRINTENTER( "CompState.ctor" ) - - if( MVtUiComponent::EComponentIdToolbar == iComponent.ComponentId() ) - return; - - iBlockList.Union( aBlockList ); - __VTPRINTEXIT( "CompState.ctor" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/cvtuiappshutter.cpp --- a/vtuis/videotelui/src/cvtuiappshutter.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* -* Copyright (c) 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: Class responsible for application exit. -* -*/ - - -#include "cvtuiappshutter.h" -#include "mvtuishutterobserver.h" -#include "mvtuistatecontext.h" -#include "mvtuinumbersource.h" -#include "tvtuilocalvariation.h" -#include -#include -#include -#include -#include - -// singleton instance -static CVtUiAppShutter* iAppShutter = NULL; - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::InstanceL -// ----------------------------------------------------------------------------- -// -CVtUiAppShutter* CVtUiAppShutter::InstanceL( - MVtUiShutterObserver& aObserver ) - { - __VTPRINTENTER( "CVtUiAppShutter.InstanceL" ) - if ( iAppShutter == NULL ) - { - iAppShutter = new ( ELeave ) - CVtUiAppShutter( aObserver ); - } - __VTPRINTEXIT( "CVtUiAppShutter.InstanceL" ) - return iAppShutter; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::CVtUiAppShutter -// ----------------------------------------------------------------------------- -// -CVtUiAppShutter::CVtUiAppShutter( - MVtUiShutterObserver& aObserver ) : - iPendingStateFlags( 0 ), - iObserver( aObserver ) - { - iPendingStateFlags.Set( EShutterWaitingStart ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::~CVtUiAppShutter -// ----------------------------------------------------------------------------- -// -CVtUiAppShutter::~CVtUiAppShutter() - { - __VTPRINTENTER( "CVtUiAppShutter.~" ) - // mark singleton null - iAppShutter = NULL; - delete iCallback; - __VTPRINTEXIT( "CVtUiAppShutter.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::StartShutdown -// Called when application may exit, i.e TVtUiStateResetting state receives -// ShutdownDoneL message. -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::StartShutdown() - { - __VTPRINTENTER( "CVtUiAppShutter.StartShutdown" ) - iPendingStateFlags.Clear( EShutterWaitingStart ); - ShutdownIfReadyAndDestroy(); - __VTPRINTEXITR( "CVtUiAppShutter.StartShutdown flags %d", - iPendingStateFlags.Value() ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::ShutdownWithEmergencyCallL -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::ShutdownWithEmergencyCallL( - MVtUiStateContext& aStateContext ) - { - // Leaves if other than emergency number is supplied... - CEmergencyCaller* emergency = CEmergencyCaller::DialEmergencyL( *this, - aStateContext ); - // therefore the flag and member variable must not be set before above call. - iPendingStateFlags.Set( EShutterWaitingEmergencyCallback ); - iEmergencyCaller = emergency; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::EmergencyCallDoneL -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::EmergencyCallDoneL() - { - // Destruction of emergency handler is done asynchrounously to avoid - // problems that might - iPendingStateFlags.Clear( EShutterWaitingEmergencyCallback ); - TCallBack cb( EmergencyResponseCallback, this ); - EnqueCallbackL( cb ); - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::EmergencyResponseCallback -// ----------------------------------------------------------------------------- -// -TInt CVtUiAppShutter::EmergencyResponseCallback( TAny* aAny ) - { - CVtUiAppShutter* shutter = - reinterpret_cast( aAny ); - // delete callback - delete shutter->iCallback; - shutter->iCallback = NULL; - // delete emergency caller - delete shutter->iEmergencyCaller; - shutter->iEmergencyCaller = NULL; - - shutter->ShutdownIfReadyAndDestroy(); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::EnqueCallbackL -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::EnqueCallbackL( TCallBack& aCallback ) - { - __VTPRINTENTER( "CVtUiAppShutter.EnqueAsyncCommsCommandL" ) - if ( !iCallback ) - { - iCallback = new ( ELeave ) CAsyncCallBack( aCallback, EPriorityHigh ); - } - iCallback->Call(); - __VTPRINTEXIT( "CVtUiAppShutter.EnqueAsyncCommsCommandL" ) - __VTPRINTEXIT( "CVtUiAppShutter.EnqueCallbackL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::ShutdownIfReadyAndDestroy -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::ShutdownIfReadyAndDestroy() - { - __VTPRINTENTER( "CVtUiAppShutter.ShutdownIfReadyAndDestroy" ) - __VTPRINT2( DEBUG_GEN, " shutter flags %d", - iPendingStateFlags.Value() ); - if ( !iPendingStateFlags.Value() ) - { - iObserver.HandleShutdownReady(); - delete this; - } - __VTPRINTEXIT( "CVtUiAppShutter.ShutdownIfReadyAndDestroy" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::CEmergencyCaller::DialEmergencyL -// ----------------------------------------------------------------------------- -// -CVtUiAppShutter::CEmergencyCaller* CVtUiAppShutter::CEmergencyCaller:: - DialEmergencyL( - CVtUiAppShutter& aObserver, - MVtUiStateContext& aStateContext ) - { - __VTPRINTENTER( "CEmergencyCaller.DialEmergencyL" ) - CVtUiAppShutter::CEmergencyCaller* self = new ( ELeave ) - CVtUiAppShutter::CEmergencyCaller( aObserver, aStateContext ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - __VTPRINTEXIT( "CEmergencyCaller.DialEmergencyL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::CEmergencyCaller::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::CEmergencyCaller::ConstructL() - { - __VTPRINTENTER( "CEmergencyCaller.ConstructL" ) - const MVtUiNumberSource* source = iStateContext.NumberSource(); - if ( source ) - { - source->GetContents( iNumber ); - AknTextUtils::ConvertDigitsTo( iNumber, EDigitTypeWestern ); - User::LeaveIfError( iServer.Connect() ); - iEmergency = CPhCltEmergencyCall::NewL( this ); - TBool isEmergenyNumber = EFalse; - const TInt err = - iEmergency->FindEmergencyPhoneNumber( iNumber, isEmergenyNumber ); - - if ( err == KErrNone && isEmergenyNumber ) - { - __VTPRINT( DEBUG_GEN, "iEmergency->DialEmergencyCallL") - iEmergency->DialEmergencyCallL( iNumber ); - } - if ( !isEmergenyNumber || err ) - { - __VTPRINT( DEBUG_GEN, " not EC number => leave" ) - // Not an emergency call number. Abort emergency call process. - User::Leave( KErrArgument ); - } - } - __VTPRINTEXIT( "CEmergencyCaller.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::CEmergencyCaller::CEmergencyCaller -// ----------------------------------------------------------------------------- -// -CVtUiAppShutter::CEmergencyCaller::CEmergencyCaller( - CVtUiAppShutter& aObserver, - MVtUiStateContext& aStateContext ) : - iObserver( aObserver ), - iStateContext( aStateContext ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::CEmergencyCaller::~CEmergencyCaller -// ----------------------------------------------------------------------------- -// -CVtUiAppShutter::CEmergencyCaller::~CEmergencyCaller() - { - __VTPRINTENTER( "CEmergencyCaller.~" ) - delete iEmergency; - iServer.Close(); - __VTPRINTEXIT( "CEmergencyCaller.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiAppShutter::CEmergencyCaller::HandleEmergencyDialL -// ----------------------------------------------------------------------------- -// -void CVtUiAppShutter::CEmergencyCaller::HandleEmergencyDialL( - const TInt ) - { - __VTPRINTENTER( "CEmergencyCaller.HandleEmergencyDialL" ) - iObserver.EmergencyCallDoneL(); - __VTPRINTEXIT( "CEmergencyCaller.HandleEmergencyDialL" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/cvtuidtmfbuffer.cpp --- a/vtuis/videotelui/src/cvtuidtmfbuffer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,218 +0,0 @@ -/* -* Copyright (c) 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: Implementation of DTMF buffer class -* -*/ - - -#include -#include -#include "cvtuidtmfbuffer.h" -#include "tvtuiwsevent.h" -#include "VtUiUtility.h" - -// Time after which buffer will be automatically reset (4 seconds). -const TInt KBufferResetInterval = 4 * 1000000; - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::NewL -// --------------------------------------------------------------------------- -// -CVtUiDTMFBuffer* CVtUiDTMFBuffer::NewL( const CCoeEnv& aCoeEnv ) - { - __VTPRINTENTER( "CVtUiDTMFBuffer.NewL" ) - CVtUiDTMFBuffer* self = new ( ELeave ) CVtUiDTMFBuffer( aCoeEnv ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CVtUiDTMFBuffer.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::~CVtUiDTMFBuffer -// --------------------------------------------------------------------------- -// -CVtUiDTMFBuffer::~CVtUiDTMFBuffer() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.~" ) - Cancel(); - iTimer.Close(); - __VTPRINTEXIT( "CVtUiDTMFBuffer.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::Append -// --------------------------------------------------------------------------- -// -TBool CVtUiDTMFBuffer::Append( TChar aChar ) - { - __VTPRINTENTER( "CVtUiDTMFBuffer.Append" ) - TBool result( EFalse ); - if ( VtUiUtility::IsDTMFCharacter( aChar ) ) - { - if ( iBuffer.Length() == iBuffer.MaxLength() ) - { - iBuffer = iBuffer.Right( 1 ); - } - iBuffer.Append( aChar ); - StartTimer(); - result = ETrue; - } - __VTPRINTEXITR( "CVtUiDTMFBuffer.Append %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::Reset -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::Reset() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.Reset" ) - Cancel(); - ResetBuffer(); - __VTPRINTEXIT( "CVtUiDTMFBuffer.Reset" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::Activate -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::Activate() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.Activate" ) - TVtUiWsEvent< MVtUiNumberSource > event( - EVtUiWsEventNumberSourceActivate, this ); - iCoeEnv.WsSession().SendEventToWindowGroup( - iCoeEnv.RootWin().WindowGroupId(), event ); - __VTPRINTEXIT( "CVtUiDTMFBuffer.Activate" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::Deactivate -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::Deactivate() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.Deactivate" ) - TVtUiWsEvent< MVtUiNumberSource > event( - EVtUiWsEventNumberSourceDeactivate, this ); - iCoeEnv.WsSession().SendEventToWindowGroup( - iCoeEnv.RootWin().WindowGroupId(), event ); - __VTPRINTEXIT( "CVtUiDTMFBuffer.Deactivate" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::GetContents -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::GetContents( TDes& aContents ) const - { - __VTPRINTENTER( "CVtUiDTMFBuffer.GetContents" ) - const TInt length( aContents.MaxLength() < iBuffer.Length() ? - aContents.MaxLength() : iBuffer.Length() ); - if ( length ) - { - aContents = iBuffer.Mid( 0, length ); - } - else - { - aContents.Zero(); - } - __VTPRINTEXIT( "CVtUiDTMFBuffer.GetContents" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::DoCancel -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::DoCancel() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.DoCancel" ) - iTimer.Cancel(); - __VTPRINTEXIT( "CVtUiDTMFBuffer.DoCancel" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::RunL -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::RunL() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.RunL" ) - TimerExpired( iStatus.Int() ); - __VTPRINTEXIT( "CVtUiDTMFBuffer.RunL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::CVtUiDTMFBuffer -// --------------------------------------------------------------------------- -// -CVtUiDTMFBuffer::CVtUiDTMFBuffer( const CCoeEnv& aCoeEnv ) : - CActive( EPriorityStandard ), iCoeEnv( aCoeEnv ) - { - __VTPRINTENTER( "CVtUiDTMFBuffer.ctor" ) - CActiveScheduler::Add( this ); - __VTPRINTEXIT( "CVtUiDTMFBuffer.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::ConstructL() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.ConstructL" ) - User::LeaveIfError( iTimer.CreateLocal() ); - __VTPRINTEXIT( "CVtUiDTMFBuffer.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::StartTimer -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::StartTimer() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.StartTimer" ) - Cancel(); - SetActive(); - iTimer.After( iStatus, KBufferResetInterval ); - __VTPRINTEXIT( "CVtUiDTMFBuffer.StartTimer" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::TimerExpired -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::TimerExpired( TInt aError ) - { - __VTPRINTENTER( "CVtUiDTMFBuffer.TimerExpired" ) - if ( aError != KErrCancel ) - { - ResetBuffer(); - } - __VTPRINTEXIT( "CVtUiDTMFBuffer.TimerExpired" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDTMFBuffer::ResetBuffer -// --------------------------------------------------------------------------- -// -void CVtUiDTMFBuffer::ResetBuffer() - { - __VTPRINTENTER( "CVtUiDTMFBuffer.ResetBuffer" ) - iBuffer.Zero(); - __VTPRINTEXIT( "CVtUiDTMFBuffer.ResetBuffer" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/cvtuivideocontrolbase.cpp --- a/vtuis/videotelui/src/cvtuivideocontrolbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,782 +0,0 @@ -/* -* 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: Video control base class implementation. -* -*/ - - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include "cvtuivideocontrolbase.h" -#include "mvtuicomponentmanager.h" -#include "VtUiLayout.h" - -// CONSTANTS - -// Index of white color. -const TInt KVtUiColorWhite = 0; - -// Amount of characters reserved per line. -const TInt KVtUiWaitingExtraSpacePerLine = KAknBidiExtraSpacePerLine + 1; - -// Amount of lines used for 'waiting text' -const TInt KVtUiWaitingLineCount = 2; - -// Implementation of CVtUiVideoControlBase - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::~CVtUiVideoControlBase -// --------------------------------------------------------------------------- -// -CVtUiVideoControlBase::~CVtUiVideoControlBase() - { - __VTPRINTENTER( "VidCtrlBase.~" ) - AknsUtils::DeregisterControlPosition( this ); - iStreamBitmap = NULL; // not owned. - delete iWaitingTextWrappedArray; - delete iWaitingTextWrapped; - delete iBgContext; - __VTPRINTEXIT( "VidCtrlBase.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::CVtUiVideoControlBase -// --------------------------------------------------------------------------- -// -CVtUiVideoControlBase::CVtUiVideoControlBase( - CVtUiBitmapManager& aBitmapManager ) : - iBitmapManager( &aBitmapManager ) - { - __VTPRINTENTER( "VidCtrlBase.ctor" ) - __VTPRINTEXIT( "VidCtrlBase.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::BaseConstructL -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::BaseConstructL() - { - __VTPRINTENTER( "VidCtrlBase.BaseConstructL" ) - iBgContext = CAknsBasicBackgroundControlContext::NewL( - KAknsIIDQsnBgAreaMain, Rect(), ETrue ); - CreateWindowL(); - SetExtent( TPoint(), TSize() ); - ActivateL(); - // Disable fading when using DP (eliminates nasty color error) - if ( FeatureManager::FeatureSupported( KFeatureIdDisplayPost ) ) - { - Window().SetNonFading( ETrue ); - } - WrapOnDemand(); - __VTPRINTEXIT( "VidCtrlBase.BaseConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetRenderingHint -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetRenderingHint( TRenderingHint aHint ) - { - __VTPRINTENTER( "VidCtrlBase.SetRenderingHint" ) - __VTPRINT2( DEBUG_GEN, "VidCtrlBase.SetRenderingHint aHint = %d", aHint ) - iHints.Set( aHint ); - __VTPRINTEXIT( "VidCtrlBase.SetRenderingHint" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::ClearRenderingHint -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::ClearRenderingHint( TRenderingHint aHint ) - { - __VTPRINTENTER( "VidCtrlBase.ClearRenderingHint" ) - __VTPRINT2( DEBUG_GEN, "VidCtrlBase.ClearRenderingHint aHint = %d", aHint ) - iHints.Clear( aHint ); - __VTPRINTEXIT( "VidCtrlBase.ClearRenderingHint" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::BitmapManager -// --------------------------------------------------------------------------- -// -CVtUiBitmapManager& CVtUiVideoControlBase::BitmapManager() const - { - return *iBitmapManager; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::Bitmap -// --------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiVideoControlBase::Bitmap( TVtUiBitmapPoolId aId ) const - { - __VTPRINTENTER( "VidCtrlBase.Bitmap" ) - CFbsBitmap* bitmap = NULL; - iBitmapManager->GetBitmap( aId, bitmap ); - __VTPRINTEXITR( "VidCtrlBase.Bitmap %d", TInt( bitmap ) ) - return bitmap; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::AdjustPointForDP -// --------------------------------------------------------------------------- -// -TPoint CVtUiVideoControlBase::AdjustPointForDP( const TPoint aPoint ) const - { - __VTPRINTENTER( "VidCtrlBase.AdjustPointForDP" ) - TPoint result( aPoint ); - if ( FeatureManager::FeatureSupported( KFeatureIdDisplayPost ) ) - { - if ( result.iX & 1 ) - { - result.iX++; - } - } - __VTPRINTEXIT( "VidCtrlBase.AdjustPointForDP" ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::AdjustRectForDP -// --------------------------------------------------------------------------- -// -TRect CVtUiVideoControlBase::AdjustRectForDP( const TRect aRect ) const - { - __VTPRINTENTER( "VidCtrlBase.AdjustRectForDP" ) - TRect result( aRect ); - if ( FeatureManager::FeatureSupported( KFeatureIdDisplayPost ) ) - { - if ( result.iTl.iX & 1 ) - { - result.Move( 1, 0 ); - result.SetWidth( Max( 0, result.Width() - 1 ) ); - } - if ( result.Width() & 1 ) - { - result.SetWidth( result.Width() - 1 ); - } - } - __VTPRINTEXIT( "VidCtrlBase.AdjustRectForDP" ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::WaitingTextLayout -// --------------------------------------------------------------------------- -// -TAknTextLineLayout CVtUiVideoControlBase::WaitingTextLayout( TInt ) - { - return TAknTextLineLayout(); - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::HandleSizeChanged -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::HandleSizeChanged() - { - __VTPRINTENTER( "VidCtrlBase.HandleSizeChanged" ) - __VTPRINTEXIT( "VidCtrlBase.HandleSizeChanged" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DrawSkinnedBackground -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DrawSkinnedBackground( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DrawSkinnedBackground" ) - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); - AknsDrawUtils::Background( skin, cc, this, aGc, Rect() ); - __VTPRINTEXIT( "VidCtrlBase.DrawSkinnedBackground" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::MopSupplyObject -// ----------------------------------------------------------------------------- -// - -TTypeUid::Ptr CVtUiVideoControlBase::MopSupplyObject( TTypeUid aId ) - { - __VTPRINTENTER( "VidCtrlBase.MopSupplyObject" ) - // Required during rendering of the background skin in Draw() - if (aId.iUid == MAknsControlContext::ETypeId) - { - __VTPRINTEXIT( "VidCtrlBase.MopSupplyObject.1" ) - return MAknsControlContext::SupplyMopObject( aId, iBgContext ); - } - __VTPRINTEXIT( "VidCtrlBase.MopSupplyObject.2" ) - return CCoeControl::MopSupplyObject( aId ); - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DrawColoredBackground -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DrawColoredBackground( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DrawColoredBackground" ) - aGc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - aGc.SetPenStyle( CGraphicsContext::ENullPen ); - aGc.SetBrushColor( AKN_LAF_COLOR( KVtUiColorWhite ) ); - aGc.DrawRect( Rect() ); - aGc.SetBrushStyle( CGraphicsContext::ENullBrush ); - __VTPRINTEXIT( "VidCtrlBase.DrawColoredBackground" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DrawWaitingText -// --------------------------------------------------------------------------- -// -TBool CVtUiVideoControlBase::DrawWaitingText( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DrawWaitingText" ) - const TInt count( iWaitingTextWrappedArray->Count() ); - if ( count > 0 ) - { - aGc.SetClippingRect( StreamClippingRect() ); - aGc.SetBrushStyle( CGraphicsContext::ENullBrush ); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TRgb color( iWaitingTextLine1Layout.Color() ); - AknsUtils::GetCachedColor( - skin, - color, - KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG6 ); - iWaitingTextLine1Layout.DrawText( - aGc, - iWaitingTextWrappedArray->At( 0 ), // first line - EFalse, - color ); - if ( count > 1 ) // two lines - { - iWaitingTextLine2Layout.DrawText( - aGc, - iWaitingTextWrappedArray->At( 1 ), // second line - EFalse, - color ); - } - } - __VTPRINTEXITR( "VidCtrlBase.DrawWaitingText %d", ETrue ) - return ETrue; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DrawBlind -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DrawBlind( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DrawBlind" ) - CFbsBitmap* icon = BlindImage(); - if ( icon ) - { - CFbsBitmap* mask = BlindMask(); - if ( mask ) - { - aGc.BitBltMasked( - BlindBlitPosition(), - icon, - TRect( icon->SizeInPixels() ), - mask, - ETrue ); - } - else - { - aGc.BitBlt( - BlindBlitPosition(), - icon ); - } - } - __VTPRINTEXIT( "VidCtrlBase.DrawBlind" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DrawStream -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DrawStream( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DrawStream" ) - aGc.SetBrushStyle( CGraphicsContext::ENullBrush ); - aGc.SetClippingRect( StreamClippingRect() ); - aGc.BitBlt( StreamBlitPosition(), iStreamBitmap ); - aGc.CancelClippingRect(); - __VTPRINTEXIT( "VidCtrlBase.DrawStream" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::StreamBlitPosition -// --------------------------------------------------------------------------- -// -TPoint CVtUiVideoControlBase::StreamBlitPosition() const - { - __VTPRINTENTER( "VidCtrlBase.StreamBlitPosition" ) - __VTPRINTEXIT( "VidCtrlBase.StreamBlitPosition" ) - return Rect().iTl; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::StreamClippingRect -// --------------------------------------------------------------------------- -// -TRect CVtUiVideoControlBase::StreamClippingRect() const - { - __VTPRINTENTER( "VidCtrlBase.StreamClippingRect" ) - __VTPRINTEXIT( "VidCtrlBase.StreamClippingRect" ) - return Rect(); - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::BlindImage -// --------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiVideoControlBase::BlindImage() const - { - __VTPRINTENTER( "VidCtrlBase.BlindImage" ) - __VTPRINTEXIT( "VidCtrlBase.BlindImage" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::BlindMask -// --------------------------------------------------------------------------- -// -CFbsBitmap* CVtUiVideoControlBase::BlindMask() const - { - __VTPRINTENTER( "VidCtrlBase.BlindMask" ) - __VTPRINTEXIT( "VidCtrlBase.BlindMask" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::BlindBlitPosition -// --------------------------------------------------------------------------- -// -TPoint CVtUiVideoControlBase::BlindBlitPosition() const - { - __VTPRINTENTER( "VidCtrlBase.BlindBlitPosition" ) - __VTPRINTEXIT( "VidCtrlBase.BlindBlitPosition" ) - return TPoint(); - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::Reset -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::Reset() - { - __VTPRINTENTER( "VidCtrlBase.Reset" ) - iBlindStatus = EFalse; - iStreamBitmap = NULL; - iWaitingTextShow = EFalse; - __VTPRINTEXIT( "VidCtrlBase.Reset" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetBlind -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetBlind( TBool aBlindStatus ) - { - __VTPRINTENTER( "VidCtrlBase.SetBlind" ) - /* Once SetBlind called, re-draw the control anyway */ -// if ( iBlindStatus != aBlindStatus ) -// { - iBlindStatus = aBlindStatus; - DrawNow(); -// } - __VTPRINTEXITR( "VidCtrlBase.SetBlind %d", iBlindStatus ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::IsAlphaZero -// Checks if the alpha has been set to zero. -// ----------------------------------------------------------------------------- -// -TBool CVtUiVideoControlBase::IsAlphaZero() const - { - __VTPRINTENTER( "VidCtrlBase.IsAlphaZero" ) - TBool isZero( EFalse ); - const CWsScreenDevice& sdev( - *static_cast< CWsScreenDevice*>( SystemGc().Device() ) ); - if ( sdev.DisplayMode() == EColor16MA ) - { - TRgb color; - TPoint point( Rect().Center() ); - sdev.GetPixel( color, point ); - isZero = ( color.Alpha() == 0 ); - } - __VTPRINTEXITR( "VidCtrlBase.IsAlphaZero %d", isZero ) - return isZero; - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetAlpha -// Sets alpha. -// ----------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetAlpha( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.SetAlpha" ) - aGc.SetDrawMode( CGraphicsContext::EDrawModeOR ); - aGc.SetBrushColor( TRgb( 0, 0, 0, 255 ) ); - aGc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - aGc.Clear(); - aGc.Reset(); - __VTPRINTEXIT( "VidCtrlBase.SetAlpha" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetStreamBitmap -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetStreamBitmap( CFbsBitmap* aStreamBitmap ) - { - __VTPRINTENTER( "VidCtrlBase.SetStreamBitmap" ) - __VTPRINT2( DEBUG_GEN, "VidCtrlBase.SetStreamBitmap %d", - (TInt) aStreamBitmap ) - const CFbsBitmap* oldBitmap( iStreamBitmap ); - iStreamBitmap = aStreamBitmap; - iSetAlpha = IsAlphaZero(); - if ( iStreamBitmap ) - { - RedrawStream(); - } - else if ( oldBitmap ) - { - DrawNow(); - } - __VTPRINTEXIT( "VidCtrlBase.SetStreamBitmap" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetStreamBitmapReserve -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetStreamBitmapReserve( - CFbsBitmap* aStreamBitmap ) - { - __VTPRINTENTER( "VidCtrlBase.SetStreamBitmapReserve" ) - __VTPRINT2( DEBUG_GEN, "VidCtrlBase.SetStreamBitmapReserve %d", - (TInt) aStreamBitmap ) - const CFbsBitmap* oldBitmap( iStreamBitmap ); - iStreamBitmap = aStreamBitmap; - if ( iStreamBitmap ) - { - RedrawStream(); - } - else if ( oldBitmap ) - { - DrawNow(); - } - __VTPRINTEXIT( "VidCtrlBase.SetStreamBitmapReserve" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetWaiting -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetWaiting( TBool aShowWaitingText ) - { - __VTPRINTENTER( "VidCtrlBase.SetWaiting" ) - if ( iWaitingTextShow != aShowWaitingText ) - { - iWaitingTextShow = aShowWaitingText; - WrapOnDemand(); - DrawNow(); - } - __VTPRINTEXITR( "VidCtrlBase.SetWaiting %d", iWaitingTextShow ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::Redraw -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::Redraw() - { - __VTPRINTENTER( "VidCtrlBase.Redraw" ) - if ( iStreamBitmap ) - { - __VTPRINT( DEBUG_GEN, "VidCtrlBase.Redraw drawing" ); - DrawNow(); - } - __VTPRINTEXIT( "VidCtrlBase.Redraw" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::Draw -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::Draw( const TRect& ) const - { - __VTPRINTENTER( "VidCtrlBase.Draw" ) - DoDraw( SystemGc() ); - __VTPRINTEXIT( "VidCtrlBase.Draw" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::SizeChanged -// ----------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SizeChanged() - { - __VTPRINTENTER( "VidCtrlBase.SizeChanged" ) - AknsUtils::RegisterControlPosition( this ); - - TRect bgRect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, bgRect ); - iBgContext->SetRect( bgRect ); - - HandleSizeChanged(); - TRect parent( Rect() ); - if ( !parent.IsEmpty() ) - { - TAknTextLineLayout text( WaitingTextLayout( 0 ) ); - iWaitingTextLine1Layout.LayoutText( parent, text ); - text = WaitingTextLayout( 1 ); - iWaitingTextLine2Layout.LayoutText( parent, text ); - delete iWaitingTextWrapped; - iWaitingTextWrapped = NULL; - delete iWaitingTextWrappedArray; - iWaitingTextWrappedArray = NULL; - WrapOnDemand(); - } - __VTPRINTEXIT( "VidCtrlBase.SizeChanged" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::PositionChanged -// ----------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::PositionChanged() - { - __VTPRINTENTER( "VidCtrlBase.SizeChanged" ) - AknsUtils::RegisterControlPosition( this ); - __VTPRINTEXIT( "VidCtrlBase.SizeChanged" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::RedrawStream -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::RedrawStream() - { - __VTPRINTENTER( "VidCtrlBase.RedrawStream" ) - const TRect clippingRect( StreamClippingRect() ); - Window().Invalidate( clippingRect ); - Window().BeginRedraw( clippingRect ); - ActivateGc(); - CWindowGc& gc = SystemGc(); - if ( iSetAlpha ) - { - SetAlpha( gc ); - iSetAlpha = EFalse; - } - DoDrawStream( gc ); - DoDrawBlind( gc ); - DeactivateGc(); - Window().EndRedraw(); - __VTPRINTEXIT( "VidCtrlBase.RedrawStream" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::WrapOnDemand -// ----------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::WrapOnDemand() - { - __VTPRINTENTER( "VidCtrlBase.WrapOnDemand" ) - if ( iWaitingTextShow && !iWaitingTextWrapped ) - { - TRAP_IGNORE( WrapWaitingTextL() ); - } - __VTPRINTEXIT( "VidCtrlBase.WrapOnDemand" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoControlBase::WrapWaitingTextL -// ----------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::WrapWaitingTextL() - { - __VTPRINTENTER( "VidCtrlBase.WrapWaitingTextL" ) - HBufC* waitingText = - StringLoader::LoadLC( R_VIDEOTELUI_QTN_INCAL_WAITING_IMAGE ); - - CArrayFix< TInt >* lines = - new ( ELeave ) CArrayFixFlat< TInt >( KVtUiWaitingLineCount ); - CleanupStack::PushL( lines ); - lines->AppendL( iWaitingTextLine1Layout.TextRect().Width() ); - lines->AppendL( iWaitingTextLine2Layout.TextRect().Width() ); - - CArrayFix* wrap = - new ( ELeave ) CArrayFixFlat< TPtrC >( KVtUiWaitingLineCount ); - CleanupStack::PushL( wrap ); - wrap->AppendL( TPtrC() ); - wrap->AppendL( TPtrC() ); - - HBufC* waitingTextWrapped = - HBufC::NewLC( - waitingText->Length() + - lines->Count() * KVtUiWaitingExtraSpacePerLine ); - - TPtr textBuf = waitingTextWrapped->Des(); - textBuf.Zero(); - textBuf.Append( *waitingText ); - - AknBidiTextUtils::ConvertToVisualAndWrapToArrayL( - textBuf, - *lines, - *iWaitingTextLine1Layout.Font(), - *wrap, - ETrue ); - - CleanupStack::Pop( waitingTextWrapped ); - iWaitingTextWrapped = waitingTextWrapped; - - CleanupStack::Pop( wrap ); - iWaitingTextWrappedArray = wrap; - - CleanupStack::PopAndDestroy( lines ); - CleanupStack::PopAndDestroy( waitingText ); - __VTPRINTEXIT( "VidCtrlBase.WrapWaitingTextL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DoDraw -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DoDraw( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.Draw(gc)" ) - if ( iSetAlpha ) - { - SetAlpha( aGc ); - iSetAlpha = EFalse; - } - DoDrawBackground( aGc ); - if ( !DoDrawWaitingText( aGc ) ) - { - DoDrawStream( aGc ); - DoDrawBlind( aGc ); - } - __VTPRINTEXIT( "VidCtrlBase.Draw(gc)" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DoDrawBackground -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DoDrawBackground( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DoDrawBackground" ) - if ( iHints.IsSet( ESkinnedBackground ) ) - { - DrawSkinnedBackground( aGc ); - } - else if ( iHints.IsSet( EColoredBackground ) ) - { - DrawColoredBackground( aGc ); - } - __VTPRINTEXIT( "VidCtrlBase.DoDrawBackground" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DoDrawWaitingText -// --------------------------------------------------------------------------- -// -TBool CVtUiVideoControlBase::DoDrawWaitingText( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DoDrawWaitingText" ) - TBool wasDrawn( EFalse ); - if ( iHints.IsClear( ENoWaitingText ) && iWaitingTextShow && - iWaitingTextWrapped && iWaitingTextWrappedArray ) - { - wasDrawn = DrawWaitingText( aGc ); - } - __VTPRINTEXITR( "VidCtrlBase.DoDrawWaitingText %d", wasDrawn ) - return wasDrawn; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DoDrawBlind -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DoDrawBlind( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DoDrawBlind" ) - if ( iBlindStatus && iHints.IsClear( ENoBlindIcon ) ) - { - DrawBlind( aGc ); - } - __VTPRINTEXIT( "VidCtrlBase.DoDrawBlind" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::DoDrawStream -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::DoDrawStream( CWindowGc& aGc ) const - { - __VTPRINTENTER( "VidCtrlBase.DoDrawStream" ) - if ( iStreamBitmap ) - { - DrawStream( aGc ); - } - __VTPRINTEXIT( "VidCtrlBase.DoDrawStream" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::SetRemoteVideoControl -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase::SetRemoteVideoControl( CCoeControl* aRemoteControl ) - { - __VTPRINTENTER( "VidCtrlBase.SetRemoteVideoControl" ) - iRemoteVideoControl = aRemoteControl; - __VTPRINTEXIT( "VidCtrlBase.SetRemoteVideoControl" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::LayoutRemoteVideo -// --------------------------------------------------------------------------- -// -void CVtUiVideoControlBase:: LayoutRemoteVideo() - { - __VTPRINTENTER( "VidCtrlBase.LayoutRemoteVideo" ) - __VTPRINTEXIT( "VidCtrlBase.LayoutRemoteVideo" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoControlBase::RemoteVideoControl -// --------------------------------------------------------------------------- -// -CCoeControl * CVtUiVideoControlBase::RemoteVideoControl() - { - __VTPRINTENTER( "VidCtrlBase.RemoteVideoControl" ) - __VTPRINTEXIT( "VidCtrlBase.RemoteVideoControl" ) - return iRemoteVideoControl; - - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/cvtuifeaturebase.cpp --- a/vtuis/videotelui/src/features/cvtuifeaturebase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* 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: CVtUiFeatureBase implementation. -* -*/ - - -// INCLUDE FILES - -#include "cvtuifeaturebase.h" -#include "mvtuifeature.h" -#include "cvtuicommandpolicymanager.h" -#include -#include "cvtuifeaturemanager.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::CVtUiFeatureBase -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiFeatureBase::CVtUiFeatureBase( TVtUiFeatureId aId, - CVtUiFeatureManager& aFeatureManager ) : iId( aId ), - iFeatureManager ( aFeatureManager ), - iFeatureState ( EUnprepared ) - { - __VTPRINTENTER( "CVtUiFeatureBase.CVtUiFeatureBase" ) - __VTPRINTEXIT( "CVtUiFeatureBase.CVtUiFeatureBase" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::BaseConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiFeatureBase::StartL() - { - if ( iFeatureState == EUnprepared ) - { - iAsyncCallback->Cancel(); - InitFeatureL(); - } - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::BaseConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiFeatureBase::BaseConstructL() - { - __VTPRINTENTER( "CVtUiFeatureBase.BaseConstructL" ) - iAsyncCallback = - new ( ELeave ) CAsyncCallBack ( CActive::EPriorityLow ); - iAsyncCallback->Set( TCallBack( &DoInitFeaturesL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "CVtUiFeatureBase.BaseConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::~CVtUiFeatureBase -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiFeatureBase::~CVtUiFeatureBase() - { - __VTPRINTENTER( "CVtUiFeatureBase.~" ) - delete iAsyncCallback; - __VTPRINTEXIT( "CVtUiFeatureBase.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::State -// ----------------------------------------------------------------------------- -// -MVtUiFeature::TVtUiFeatureState CVtUiFeatureBase::State() const - { - __VTPRINTENTER( "CVtUiFeatureBase.State" ) - __VTPRINTEXITR( "CVtUiFeatureBase.State. %d", (TInt)iFeatureState ) - return iFeatureState; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::Id -// ----------------------------------------------------------------------------- -// -TVtUiFeatureId CVtUiFeatureBase::Id() const - { - __VTPRINTENTER( "CVtUiFeatureBase.Id" ) - __VTPRINTEXITR( "CVtUiFeatureBase.Id %d", iId ) - return iId; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureBase::DoInitFeaturesL -// ----------------------------------------------------------------------------- -// -TInt CVtUiFeatureBase::DoInitFeaturesL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiFeatureBase.DoInitFeaturesL" ) - CVtUiFeatureBase* self = static_cast< CVtUiFeatureBase* >( aAny ); - self->InitFeatureL(); - __VTPRINTEXIT( "CVtUiFeatureBase.DoInitFeaturesL" ) - return KErrNone; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/cvtuifeaturemanager.cpp --- a/vtuis/videotelui/src/features/cvtuifeaturemanager.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ -/* -* 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: Feature manager for Video Telephone application. -* -*/ - - - -// INCLUDE FILES -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" -#include "cvtuifixedtoolbar.h" -#include "cvtuifloatingtoolbar.h" -#include "cvtuimenus.h" -#include "cvtuifeaturebase.h" -#include "tvtuistates.h" -#include -#include "cvtuicommandpolicymanager.h" -#include "cvtuisoftkeys.h" -#include "cvtuinumberentry.h" -#include "cvtuivideoquality.h" -#include "cvtuiwhitebalance.h" -#include "cvtuicolortone.h" -#include "cvtuidialer.h" -#include "cvtuibrightness.h" -#include "cvtuicontrast.h" -#include "cvtuivolume.h" -#include "cvtuizoom.h" - -#include - -// CONSTANTS -const TInt KFeatureCount = 9; - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Used in Attach() method to compare two instances of MVtUiFeature. -// --------------------------------------------------------------------------- -// -TInt FeatureCmpFunc( const CVtUiFeatureBase& aV1, const CVtUiFeatureBase& aV2 ) - { - return ( aV1.Id() - aV2.Id() ); - } - -// --------------------------------------------------------------------------- -// Used in GetFeature() method to search feature by id. -// --------------------------------------------------------------------------- -// -TInt FeatureIdCmpFunc( const TInt* aId, const CVtUiFeatureBase& aFeature ) - { - return ( *aId - aFeature.Id() ); - } - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CVtUiFeatureManager* CVtUiFeatureManager::NewL( CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates, MVtUiCommandManager& aCommandManager, - MVtUiComponentManager& aComponentManager ) - { - CVtUiFeatureManager* self = new( ELeave ) CVtUiFeatureManager( aAppUi, - aUiStates, aCommandManager, aComponentManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::CVtUiFeatureManager -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiFeatureManager::CVtUiFeatureManager( CVtUiAppUi& aAppUi, - TVtUiStates& aUiStates, MVtUiCommandManager& aCommandManager, - MVtUiComponentManager& aComponentManager ) - : iAppUi( aAppUi ), iUiStates( aUiStates ), - iCommandManager( aCommandManager ), iComponentManager( aComponentManager ) - { - __VTPRINTENTER( "CVtUiFeatureManager.CVtUiFeatureManager" ) - __VTPRINTEXIT( "CVtUiFeatureManager.CVtUiFeatureManager" ) - } - - -// ----------------------------------------------------------------------------- -//CVtUiFeatureManager::~CVtUiFeatureManager() -// ----------------------------------------------------------------------------- -// -CVtUiFeatureManager::~CVtUiFeatureManager() - { - __VTPRINTENTER( "CVtUiFeatureManager.~" ) - iFeatures.ResetAndDestroy(); - __VTPRINTEXIT( "CVtUiFeatureManager.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CVtUiFeatureManager::ConstructL() - { - __VTPRINTENTER( "CVtUiFeatureManager.ConstructL" ) - iFeatures.ReserveL( KFeatureCount ); - CreateFeaturesL(); - __VTPRINTEXIT( "CVtUiFeatureManager.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::CreateFeaturesL -// ----------------------------------------------------------------------------- -// -void CVtUiFeatureManager::CreateFeaturesL() - { - __VTPRINTENTER( "CVtUiFeatureManager.CreateFeaturesL" ) - CVtUiFeatureBase* feature = NULL; - TLinearOrder< CVtUiFeatureBase > - linOrder( ::FeatureCmpFunc ); - - if ( AknLayoutUtils::PenEnabled() ) - { - feature = CVtUiFixedToolbar::NewL( *this ); - } - else - { - feature = CVtUiFloatingToolbar::NewL( *this ); - } - - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiMenus::NewL( *this ); - iFeatures.InsertInOrderL( feature, linOrder ); - - feature = CVtUiSoftkeys::NewL( *this, *iAppUi.GetCba() ); - iFeatures.InsertInOrderL( feature, linOrder ); - - feature = CVtUiNumberEntry::NewL( *this ); - iFeatures.InsertInOrderL( feature, linOrder ); - - if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) ) - { - feature = CVtUiDialer::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - } - - feature = CVtUiVideoQuality::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiWhiteBalance::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiColorTone::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiBrightness::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiContrast::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiVolume::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - feature = CVtUiZoom::NewL( *this ); - if ( feature ) - { - iFeatures.InsertInOrderL( feature, linOrder ); - } - - __VTPRINTEXIT( "CVtUiFeatureManager.CreateFeaturesL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::AppUi -// ----------------------------------------------------------------------------- -// -CVtUiAppUi& CVtUiFeatureManager::AppUi() - { - __VTPRINTENTER( "CVtUiFeatureManager.AppUi" ) - __VTPRINTEXIT( "CVtUiFeatureManager.AppUi" ) - return iAppUi; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::GetFeatureById -// ----------------------------------------------------------------------------- -// -MVtUiFeature* CVtUiFeatureManager::GetFeatureById( TInt aId ) - { - __VTPRINTENTER( "CVtUiFeatureManager.GetFeatureById" ) - CVtUiFeatureBase* result = NULL; - - TInt index( iFeatures.FindInOrder( aId, ::FeatureIdCmpFunc ) ); - if ( index != KErrNotFound ) - { - result = iFeatures[ index ]; - } - __VTPRINTEXITR( "CVtUiFeatureManager.GetFeatureById %d", (TInt)result ) - return result; - - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::UiStates -// ----------------------------------------------------------------------------- -// - -TVtUiStates& CVtUiFeatureManager::UiStates() - { - return iUiStates; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::CommandManager -// ----------------------------------------------------------------------------- -// -MVtUiCommandManager& CVtUiFeatureManager::CommandManager() - { - return iCommandManager; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::ComponentManager -// ----------------------------------------------------------------------------- -// -MVtUiComponentManager& CVtUiFeatureManager::ComponentManager() - { - return iComponentManager; - } - -// ----------------------------------------------------------------------------- -// CVtUiFeatureManager::Model -// ----------------------------------------------------------------------------- -// -CVtEngModel& CVtUiFeatureManager::Model() - { - return iAppUi.Model(); - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/dialer/cvtuicmdclosedialer.cpp --- a/vtuis/videotelui/src/features/dialer/cvtuicmdclosedialer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* 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: Mini dialer open command implementation. -* -*/ - - -#include - -#include "cvtuicmdclosedialer.h" -#include "mvtuicommandmanager.h" -#include "mvtuifeature.h" -#include "videotelui.hrh" - -// --------------------------------------------------------------------------- -// CVtUiCmdCloseDialer::NewL -// --------------------------------------------------------------------------- -// -CVtUiCmdCloseDialer* CVtUiCmdCloseDialer::NewL( - MVtUiCommandManager& aCommandManager, MVtUiFeature& aFeature ) - { - __VTPRINTENTER( "CmdCloseDial.NewL" ) - CVtUiCmdCloseDialer* self = - new ( ELeave ) CVtUiCmdCloseDialer( aCommandManager, aFeature ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CmdCloseDial.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdCloseDialer::~CVtUiCmdCloseDialer -// --------------------------------------------------------------------------- -// -CVtUiCmdCloseDialer::~CVtUiCmdCloseDialer() - { - __VTPRINTENTER( "CmdCloseDial.~" ) - iCommandManager.UnregisterCommand( *this ); - __VTPRINTEXIT( "CmdCloseDial.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdCloseDialer::HandleL -// --------------------------------------------------------------------------- -// -void CVtUiCmdCloseDialer::HandleL() - { - __VTPRINTENTER( "CmdCloseDial.HandleL" ) - iFeature.Stop(); - __VTPRINTEXIT( "CmdCloseDial.HandleL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdCloseDialer::IsEnabled -// --------------------------------------------------------------------------- -// -TBool CVtUiCmdCloseDialer::IsEnabled() const - { - __VTPRINTENTER( "CmdCloseDial.IsEnabled" ) - const TBool enabled( iFeature.State() == MVtUiFeature::EActive ); - __VTPRINTEXITR( "CmdCloseDial.IsEnabled %d", enabled ) - return enabled; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdCloseDialer::CVtUiCmdCloseDialer -// --------------------------------------------------------------------------- -// -CVtUiCmdCloseDialer::CVtUiCmdCloseDialer( - MVtUiCommandManager& aCommandManager, MVtUiFeature& aFeature ) - : CVtUiFeatureCmdBase( aFeature, EVtUiDialerExit ), - iCommandManager( aCommandManager ) - { - __VTPRINTENTER( "CmdCloseDial.ctor" ) - __VTPRINTEXIT( "CmdCloseDial.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdCloseDialer::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiCmdCloseDialer::ConstructL() - { - __VTPRINTENTER( "CmdCloseDial.ConstructL" ) - iCommandManager.RegisterCommandL( *this ); - __VTPRINTEXIT( "CmdCloseDial.ConstructL" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/dialer/cvtuicmdopendialer.cpp --- a/vtuis/videotelui/src/features/dialer/cvtuicmdopendialer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* 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: Mini dialer open command implementation. -* -*/ - - -#include - -#include "cvtuicmdopendialer.h" -#include "mvtuicommandmanager.h" -#include "videotelui.hrh" - -// --------------------------------------------------------------------------- -// CVtUiCmdOpenDialer::NewL -// --------------------------------------------------------------------------- -// -CVtUiCmdOpenDialer* CVtUiCmdOpenDialer::NewL( - MVtUiCommandManager& aCommandManager, MVtUiFeature& aFeature ) - { - __VTPRINTENTER( "CmdOpenDial.NewL" ) - CVtUiCmdOpenDialer* self = - new ( ELeave ) CVtUiCmdOpenDialer( aCommandManager, aFeature ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CmdOpenDial.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiCmdOpenDialer::~CVtUiCmdOpenDialer -// --------------------------------------------------------------------------- -// -CVtUiCmdOpenDialer::~CVtUiCmdOpenDialer() - { - __VTPRINTENTER( "CmdOpenDial.~" ) - iCommandManager.UnregisterCommand( *this ); - __VTPRINTEXIT( "CmdOpenDial.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdOpenDialer::CVtUiCmdOpenDialer -// --------------------------------------------------------------------------- -// -CVtUiCmdOpenDialer::CVtUiCmdOpenDialer( - MVtUiCommandManager& aCommandManager, MVtUiFeature& aFeature ) - : CVtUiFeatureCmdBase( aFeature, EVtUiCmdSendDTMF ), - iCommandManager( aCommandManager ) - { - __VTPRINTENTER( "CmdOpenDial.ctor" ) - __VTPRINTEXIT( "CmdOpenDial.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCmdOpenDialer::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiCmdOpenDialer::ConstructL() - { - __VTPRINTENTER( "CmdOpenDial.ConstructL" ) - iCommandManager.RegisterCommandL( *this ); - __VTPRINTEXIT( "CmdOpenDial.ConstructL" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/dialer/cvtuidialer.cpp --- a/vtuis/videotelui/src/features/dialer/cvtuidialer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* 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: Mini dialer feature -* -*/ - - -#include -#include -#include - -#include "cvtuidialer.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicommandmanager.h" -#include "mvtuicomponentmanager.h" -#include "cvtuicmdopendialer.h" -#include "cvtuicmdclosedialer.h" -#include "cvtuidialercontainer.h" -#include "cvtuidialervideocontrol.h" -#include "CVtUiAppUi.h" -#include "tvtuistates.h" -#include "CVtUiContextControl.h" - -// ======== LOCAL FUNCTIONS ======== - -// Implementation of CVtUiDialer - -// --------------------------------------------------------------------------- -// CVtUiDialer::NewL -// --------------------------------------------------------------------------- -// -CVtUiDialer* CVtUiDialer::NewL( CVtUiFeatureManager& aFeatureManager ) - { - __VTPRINTENTER( "Dial.NewL" ) - CVtUiDialer* self = NULL; - self = new ( ELeave ) CVtUiDialer( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "Dial.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::~CVtUiDialer -// --------------------------------------------------------------------------- -// -CVtUiDialer::~CVtUiDialer() - { - __VTPRINTENTER( "Dial.~" ) - delete iCmdOpen; - delete iCmdClose; - delete iDialerContainer; - __VTPRINTEXIT( "Dial.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::VideoWindow -// --------------------------------------------------------------------------- -// -MVtUiVideoWindow& CVtUiDialer::VideoWindow() const - { - __VTPRINTENTER( "Dial.VideoWindow" ) - __VTPRINTEXIT( "Dial.VideoWindow" ) - return *iDialerContainer->ComponentAsVideoWindow(); - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::VideoControl -// --------------------------------------------------------------------------- -// -CCoeControl& CVtUiDialer::VideoControl() const - { - __VTPRINTENTER( "Dial.VideoControl" ) - __VTPRINTEXIT( "Dial.VideoControl" ) - return *static_cast< MVtUiComponent* > - ( iDialerContainer )->ComponentAsControl(); - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::StartL -// --------------------------------------------------------------------------- -// -void CVtUiDialer::StartL() - { - __VTPRINTENTER( "Dial.StartL" ) - if ( State() == MVtUiFeature::EUnprepared ) - { - // fixed toolbar is set to be hidden - iFeatureManager.AppUi().ContextControl().MakeVisible( EFalse ); - iFeatureManager.UiStates().SetIsDialerActivating( ETrue ); - iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse ); - iFeatureManager.CommandManager().RefreshL(); - PrepareL(); - iFeatureManager.ComponentManager().RequestActivationL( - MVtUiComponent::EComponentIdDialer ); - iFeatureState = EActive; - iFeatureManager.AppUi().SwitchLayoutToFlatStatusPaneL( ETrue ); - } - __VTPRINTEXIT( "Dial.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::Stop -// --------------------------------------------------------------------------- -// -void CVtUiDialer::Stop() - { - __VTPRINTENTER( "Dial.Stop" ) - if ( State() == MVtUiFeature::EActive ) - { - TInt error; - TRAP( error, - { - iFeatureManager.AppUi().SwitchLayoutToFlatStatusPaneL( EFalse ); - iFeatureManager.ComponentManager().DeActivateComponentL( - MVtUiComponent::EComponentIdDialer ); - } ); - Unprepare(); - iFeatureManager.AppUi().ContextControl().MakeVisible( ETrue ); - } - __VTPRINTEXIT( "Dial.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiDialer::InitFeatureL() - { - __VTPRINTENTER( "Dial.InitFeatureL" ) - iDialerContainer = - CVtUiDialerContainer::NewL( iFeatureManager ); - iCmdOpen = CVtUiCmdOpenDialer::NewL( iFeatureManager.CommandManager(), - *this ); - iCmdClose = CVtUiCmdCloseDialer::NewL( iFeatureManager.CommandManager(), - *this ); - __VTPRINTEXIT( "Dial.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::CVtUiDialer -// --------------------------------------------------------------------------- -// -CVtUiDialer::CVtUiDialer( CVtUiFeatureManager& aFeatureManager ) - : CVtUiFeatureBase( EVtUiFeatureIdDialer, aFeatureManager ) - { - __VTPRINTENTER( "Dial.ctor" ) - __VTPRINTEXIT( "Dial.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiDialer::ConstructL() - { - __VTPRINTENTER( "Dial.ConstructL" ) - BaseConstructL(); - __VTPRINTEXIT( "Dial.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::PrepareL -// --------------------------------------------------------------------------- -// -void CVtUiDialer::PrepareL() - { - __VTPRINTENTER( "Dial.PrepareL" ) - iDialerContainer->RegisterComponentL(); - iFeatureState = EReady; - __VTPRINTEXIT( "Dial.PrepareL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialer::Unprepare -// --------------------------------------------------------------------------- -// -void CVtUiDialer::Unprepare() - { - __VTPRINTENTER( "Dial.Unprepare" ) - iDialerContainer->UnregisterComponent(); - iFeatureState = EUnprepared; - __VTPRINTEXIT( "Dial.Unprepare" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/dialer/cvtuidialercontainer.cpp --- a/vtuis/videotelui/src/features/dialer/cvtuidialercontainer.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,482 +0,0 @@ -/* -* 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: Dialer feature -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "VtUiUtility.h" -#include "VtUiLayout.h" -#include "mvtuicomponentmanager.h" -#include "cvtuidialercontainer.h" -#include "cvtuidialervideocontrol.h" -#include "tvtuiwsevent.h" -#include "tvtuistates.h" -#include "cvtuidialerskmodifier.h" -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" -#include "mvtuicommandmanager.h" -#include "cvtuidtmfbuffer.h" - -// Index of white color. -const TInt KVtUiColorWhite = 0; - -// Implementation of TVtUiMiniDialerComponentState - -// --------------------------------------------------------------------------- -// TVtUiDialerComponentState::TVtUiDialerComponentState -// --------------------------------------------------------------------------- -// -TVtUiDialerComponentState::TVtUiDialerComponentState( - MVtUiComponent& aComponent ) : - TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry ) ) - { - } - -// Implementation of CVtUiDialerContainer - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::NewL -// --------------------------------------------------------------------------- -// -CVtUiDialerContainer* CVtUiDialerContainer::NewL( - CVtUiFeatureManager& aFeatureManager ) - { - __VTPRINTENTER( "DialContainer.NewL" ) - CVtUiDialerContainer* self = - new ( ELeave ) CVtUiDialerContainer( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL( aFeatureManager.AppUi().BitmapManager() ); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "DialContainer.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::~CVtUiDialerContainer -// --------------------------------------------------------------------------- -// -CVtUiDialerContainer::~CVtUiDialerContainer() - { - __VTPRINTENTER( "DialContainer.~" ) - delete iAsyncDeactivate; - delete iVideoControl; - delete iDialer; - delete iSKModifier; - delete iInputBuffer; - delete iBgContext; - AknsUtils::DeregisterControlPosition( this ); - __VTPRINTEXIT( "DialContainer.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::HandleResourceChangeL -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::HandleResourceChangeL( TInt aType ) - { - __VTPRINTENTER( "DialContainer.HandleResourceChangeL" ) - switch ( aType ) - { - case KEikDynamicLayoutVariantSwitch: - case KAknsMessageSkinChange: - LayoutDialerContainer(); - break; - default: - break; - } - __VTPRINTEXIT( "DialContainer.HandleResourceChangeL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::ComponentId -// --------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiDialerContainer::ComponentId() const - { - return EComponentIdDialer; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::ComponentAsControl -// --------------------------------------------------------------------------- -// -CCoeControl* CVtUiDialerContainer::ComponentAsControl() - { - return iVideoControl; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::DoActivateL() - { - __VTPRINTENTER( "DialContainer.DoActivateL" ) - iUiStates.SetIsDialerActivating( EFalse ); - LayoutDialerContainer(); - Reset(); - iVideoControl->MakeVisible( ETrue ); - iDialer->MakeVisible( ETrue ); - MakeVisible( ETrue ); - User::LeaveIfError( iFeatureManager-> - CommandManager().AddCommandModifier( *iSKModifier ) ); - iInputBuffer->Activate(); - iMode = CVtUiAppUi::ERenderingModeDialer; - TVtUiWsEvent< CVtUiAppUi::TRenderingMode > renderingEvent( - EVtUiWsEventBeginRenderingMode, &iMode ); - iCoeEnv->WsSession().SendEventToWindowGroup( - Window().WindowGroupId(), renderingEvent ); - iUiStates.SetIsDialerOpen( ETrue ); - iAsyncDeactivate->Cancel(); - __VTPRINTEXIT( "DialContainer.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::DoDeactivateL -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::DoDeactivateL() - { - __VTPRINTENTER( "DialContainer.DoDeactivateL" ) - iFeatureManager->CommandManager(). - RemoveCommandModifier( *iSKModifier ); - iUiStates.SetIsDialerOpen( EFalse ); - iVideoControl->MakeVisible( EFalse ); - iDialer->MakeVisible( EFalse ); - MakeVisible( EFalse ); - Reset(); - iInputBuffer->Deactivate(); - iAsyncDeactivate->CallBack(); - __VTPRINTEXIT( "DialContainer.DoDeactivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::GetContents -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::GetContents( TDes& aContents ) const - { - __VTPRINTENTER( "DialContainer.GetContents" ) - iInputBuffer->GetContents( aContents ); - __VTPRINTEXIT( "DialContainer.GetContents" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::OfferKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiDialerContainer::OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aType ) - { - __VTPRINTENTER( "DialContainer.OfferKeyEventL" ) - TKeyResponse response( EKeyWasNotConsumed ); - TChar dtmfTone; - if ( VtUiUtility::IsDTMFEvent( aEvent, dtmfTone ) && - ( aType == EEventKey ) ) - { - response = EKeyWasConsumed; - AppendDigit( dtmfTone ); - } - __VTPRINTEXIT( "DialContainer.OfferKeyEventL" ) - return response; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::Draw -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::Draw( const TRect& ) const - { - __VTPRINTENTER( "DialContainer.Draw" ) - CWindowGc& gc( SystemGc() ); - gc.SetBrushStyle( CWindowGc::ESolidBrush ); - gc.SetPenStyle( CGraphicsContext::ENullPen ); - gc.SetBrushColor( AKN_LAF_COLOR( KVtUiColorWhite ) ); - gc.Clear(); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); - AknsDrawUtils::Background( skin, cc, this, gc, Rect() ); - __VTPRINTEXIT( "DialContainer.Draw" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::SizeChanged -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::SizeChanged() - { - __VTPRINTENTER( "DialContainer.SizeChanged" ) - TRect bgRect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, bgRect ); - iBgContext->SetRect( bgRect ); - - AknsUtils::RegisterControlPosition( this ); - CCoeControl::SizeChanged(); - __VTPRINTEXIT( "DialContainer.SizeChanged" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::PositionChanged -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::PositionChanged() - { - __VTPRINTENTER( "DialContainer.PositionChanged" ) - AknsUtils::RegisterControlPosition( this ); - CCoeControl::PositionChanged(); - __VTPRINTEXIT( "DialContainer.PositionChanged" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::CountComponentControls -// --------------------------------------------------------------------------- -// -TInt CVtUiDialerContainer::CountComponentControls() const - { - return iDialer ? 1 : 0; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::ComponentControl -// --------------------------------------------------------------------------- -// -CCoeControl* CVtUiDialerContainer::ComponentControl( TInt aIndex ) const - { - CCoeControl* result = NULL; - switch ( aIndex ) - { - case 0: - result = iDialer; - break; - default: - break; - } - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::CVtUiDialerContainer -// --------------------------------------------------------------------------- -// -CVtUiDialerContainer::CVtUiDialerContainer( - CVtUiFeatureManager& aFeatureManager ) : - iComponentState( *this ), - iFeatureManager( &aFeatureManager ), - iComponentManager( &aFeatureManager.ComponentManager() ), - iUiStates( aFeatureManager.UiStates() ) - { - __VTPRINTENTER( "DialContainer.ctor" ) - __VTPRINTEXIT( "DialContainer.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::ConstructL( CVtUiBitmapManager& aBitmapManager ) - { - __VTPRINTENTER( "DialContainer.ConstructL" ) - iBgContext = CAknsBasicBackgroundControlContext::NewL( - KAknsIIDQsnBgScreen, Rect(), ETrue ); - CreateWindowL(); - DrawableWindow()->SetPointerGrab( ETrue ); - SetExtent( TPoint(), TSize() ); - ActivateL(); - MakeVisible( EFalse ); - iInputBuffer = CVtUiDTMFBuffer::NewL( *iCoeEnv ); - iVideoControl = CVtUiDialerVideoControl::NewL( aBitmapManager ); - iDialer = CVideoDTMFDialer::NewL( *this, *iVideoControl, DialerRect() ); - iSKModifier = CVtUiDialerSKModifier::NewL( *iFeatureManager ); - // Disable fading when using DP (eliminates nasty color error) - if ( FeatureManager::FeatureSupported( KFeatureIdDisplayPost ) ) - { - Window().SetNonFading( ETrue ); - } - iAsyncDeactivate = new ( ELeave ) CAsyncCallBack( - TCallBack( ASyncDoDeactivate, this ), CActive::EPriorityLow ); - __VTPRINTEXIT( "DialContainer.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::RegisterComponentL -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::RegisterComponentL() - { - __VTPRINTENTER( "DialContainer.RegisterComponentL" ) - User::LeaveIfError( iComponentManager->ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - User::LeaveIfError( - iComponentManager->ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - User::LeaveIfError( iComponentManager->ChangeKeyEventRegistration( - *this, MVtUiComponentManager::ERegister ) ); - __VTPRINTEXIT( "DialContainer.RegisterComponentL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::UnregisterComponent -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::UnregisterComponent() - { - __VTPRINTENTER( "DialContainer.UnregisterComponent" ) - iComponentManager->ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - iComponentManager->ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - iComponentManager->ChangeKeyEventRegistration( - *this, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "DialContainer.UnregisterComponent" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::UnregisterComponent -// --------------------------------------------------------------------------- -// -MVtUiVideoWindow* CVtUiDialerContainer::ComponentAsVideoWindow() - { - __VTPRINTENTER( "DialContainer.ComponentAsVideoWindow" ) - __VTPRINTEXIT( "DialContainer.ComponentAsVideoWindow" ) - return iVideoControl; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::LayoutDialerContainer -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::LayoutDialerContainer() - { - __VTPRINTENTER( "DialContainer.LayoutDialerContainer" ) - - TAknWindowLineLayout mainPaneLL; - - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - // Landscape: Option11 (thin status pane, lsc) - mainPaneLL = AknLayoutScalable_Avkon::main_pane( 9 ).LayoutLine(); - } - else - { - // Portrait: main pane with status pane off, control pane on - mainPaneLL = AknLayoutScalable_Avkon::main_pane( 7 ).LayoutLine(); - } - - TRect appWinRect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EApplicationWindow, - appWinRect ); - - // Layout container - AknLayoutUtils::LayoutControl( this, appWinRect, mainPaneLL ); - - // Layout dialer - const TInt variety( Layout_Meta_Data::IsLandscapeOrientation() ? - 1 : 0 ); - TAknWindowLineLayout dialerLLout( - AknLayoutScalable_Apps::main_video_tele_dialer_pane( - variety ).LayoutLine() ); - AknLayoutUtils::LayoutControl( iDialer, Rect(), dialerLLout ); - - // Layout video control - AknLayoutUtils::LayoutControl( iVideoControl, iDialer->Rect(), - AknLayoutScalable_Apps::video_down_pane_cp( - variety ).LayoutLine() ); - - __VTPRINTEXIT( "DialContainer.LayoutDialerContainer" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::DialerRect -// --------------------------------------------------------------------------- -// -TRect CVtUiDialerContainer::DialerRect() const - { - __VTPRINTENTER( "DialContainer.DialerRect" ) - TRect mainPaneRect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, - mainPaneRect ); - __VTPRINTEXIT( "DialContainer.DialerRect" ) - return mainPaneRect; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::Reset -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::Reset() - { - __VTPRINTENTER( "DialContainer.Reset" ) - iInputBuffer->Reset(); - __VTPRINTEXIT( "DialContainer.Reset" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::AppendDigit -// --------------------------------------------------------------------------- -// -void CVtUiDialerContainer::AppendDigit( TChar aDigit ) - { - __VTPRINTENTER( "DialContainer.AppendDigit" ) - iInputBuffer->Append( aDigit ); - __VTPRINTEXIT( "DialContainer.AppendDigit" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::MopSupplyObject -// --------------------------------------------------------------------------- -// -TTypeUid::Ptr CVtUiDialerContainer::MopSupplyObject( TTypeUid aId ) - { - __VTPRINTENTER( "CVtUiDialerContainer.MopSupplyObject" ) - // Required during rendering of the background skin in Draw() - if (aId.iUid == MAknsControlContext::ETypeId) - { - __VTPRINTEXIT( "CVtUiDialerContainer.MopSupplyObject.1" ) - return MAknsControlContext::SupplyMopObject( aId, iBgContext ); - } - __VTPRINTEXIT( "CVtUiDialerContainer.MopSupplyObject.2" ) - return CCoeControl::MopSupplyObject( aId ); - } - -// --------------------------------------------------------------------------- -// CVtUiDialerContainer::ASyncDoDeactivate -// --------------------------------------------------------------------------- -// -TInt CVtUiDialerContainer::ASyncDoDeactivate( TAny* aSelf ) - { - __VTPRINTENTER( "DialContainer.ASyncDoDeactivate" ) - CVtUiDialerContainer* self = - reinterpret_cast< CVtUiDialerContainer* >( aSelf ); - self->iMode = CVtUiAppUi::ERenderingModeDialer; - TVtUiWsEvent< CVtUiAppUi::TRenderingMode > renderingEvent( - EVtUiWsEventEndRenderingMode, &self->iMode ); - self->iCoeEnv->WsSession().SendEventToWindowGroup( - self->Window().WindowGroupId(), renderingEvent ); - __VTPRINTEXIT( "DialContainer.ASyncDoDeactivate" ) - return KErrNone; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/dialer/cvtuidialerskmodifier.cpp --- a/vtuis/videotelui/src/features/dialer/cvtuidialerskmodifier.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* Copyright (c) 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: Softkey modifier class. -* -*/ - - -#include -#include "cvtuidialerskmodifier.h" -#include "mvtuicommandsetting.h" -#include "tvtuicommandmodifierpriority.h" -#include "cvtuifeaturemanager.h" -#include "tvtuistates.h" -#include "tvtuifeatureids.h" -#include "CVtUiAppUi.h" -#include -#include - - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiDialerSKModifier::NewL -// --------------------------------------------------------------------------- -// -CVtUiDialerSKModifier* CVtUiDialerSKModifier::NewL( - CVtUiFeatureManager& aFeatureMgr ) - { - __VTPRINTENTER( "CVtUiDialerSKModifier.NewL" ) - CVtUiDialerSKModifier* self = - new ( ELeave ) CVtUiDialerSKModifier( aFeatureMgr ); - __VTPRINTEXIT( "CVtUiDialerSKModifier.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerSKModifier::~CVtUiDialerSKModifier -// --------------------------------------------------------------------------- -// -CVtUiDialerSKModifier::~CVtUiDialerSKModifier() - { - __VTPRINTENTER( "CVtUiDialerSKModifier.~" ) - __VTPRINTEXIT( "CVtUiDialerSKModifier.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerSKModifier::CVtUiDialerSKModifier -// --------------------------------------------------------------------------- -// -CVtUiDialerSKModifier::CVtUiDialerSKModifier( - CVtUiFeatureManager& aFeatureMgr ) - : CVtUiCommandModifyBase( EVtUiCmdModifierPriorityNumberEntry ), - iFeatureMgr( aFeatureMgr ) - { - __VTPRINTENTER( "CVtUiDialerSKModifier.Ctr" ) - __VTPRINTEXIT( "CVtUiDialerSKModifier.Ctr" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerSKModifier::ModifyCommandsL -// --------------------------------------------------------------------------- -// -void CVtUiDialerSKModifier::ModifyCommandsL( MVtUiCommandSetting& ) - { - __VTPRINTENTER( "CVtUiDialerSKModifier.ModifyCommandsL" ) - CEikButtonGroupContainer* cba = iFeatureMgr.AppUi().GetCba(); - cba->SetCommandSetL( R_VIDEOTELUI_SOFTKEYS_EMPTY_DIALEREXIT ); - __VTPRINTEXIT( "CVtUiDialerSKModifier.ModifyCommandsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerSKModifier::Supports -// --------------------------------------------------------------------------- -// -TBool CVtUiDialerSKModifier::Supports( - MVtUiCommandSetting::Type aType ) const - { - __VTPRINTENTER( "CVtUiDialerSKModifier.Supports" ) - __VTPRINTEXIT( "CVtUiDialerSKModifier.Supports" ) - return ( aType == MVtUiCommandSetting::ECommandTypeSoftkeys ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/dialer/cvtuidialervideocontrol.cpp --- a/vtuis/videotelui/src/features/dialer/cvtuidialervideocontrol.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* 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: Mini dialer feature -* -*/ - - -#include -#include -#include -#include - -#include "cvtuidialervideocontrol.h" - -// Portrait variety constant -const static TInt KVarietyPortrait = 0; - -// Landscape variety constant -const static TInt KVarietyLandscape = 1; - -// Implementation of CVtUiDialerVideoControl - -// --------------------------------------------------------------------------- -// CVtUiDialerVideoControl::NewL -// --------------------------------------------------------------------------- -// -CVtUiDialerVideoControl* CVtUiDialerVideoControl::NewL( - CVtUiBitmapManager& aBitmapManager ) - { - __VTPRINTENTER( "DialCtrl.NewL" ) - CVtUiDialerVideoControl* self = - new ( ELeave ) CVtUiDialerVideoControl( aBitmapManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "DialCtrl.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiDialerVideoControl::~CVtUiDialerVideoControl -// --------------------------------------------------------------------------- -// -CVtUiDialerVideoControl::~CVtUiDialerVideoControl() - { - __VTPRINTENTER( "DialCtrl.~" ) - __VTPRINTEXIT( "DialCtrl.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerVideoControl::CVtUiDialerVideoControl -// --------------------------------------------------------------------------- -// -CVtUiDialerVideoControl::CVtUiDialerVideoControl( - CVtUiBitmapManager& aBitmapManager ) : - CVtUiVideoControlBase( aBitmapManager ) - { - __VTPRINTENTER( "DialCtrl.ctor" ) - // Disable blind icon drawing - SetRenderingHint( ENoBlindIcon ); - __VTPRINTEXIT( "DialCtrl.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiDialerVideoControl::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiDialerVideoControl::ConstructL() - { - __VTPRINTENTER( "DialCtrl.ConstructL" ) - BaseConstructL(); - __VTPRINTEXIT( "DialCtrl.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiDialerVideoControl::WaitingTextLayout -// ----------------------------------------------------------------------------- -// -TAknTextLineLayout CVtUiDialerVideoControl::WaitingTextLayout( TInt aLine ) - { - __VTPRINTENTER( "DialCtrl.WaitingTextLayout" ) - - TInt variety( Layout_Meta_Data::IsLandscapeOrientation() ? - KVarietyLandscape : KVarietyPortrait ); - - TAknWindowComponentLayout l2( - AknLayoutScalable_Apps::main_video_tele_dialer_pane( variety ) ); - - TAknTextComponentLayout l3; - -#if 0 - if ( variety == KVarietyPortrait ) - { - if ( !aLine ) - { - l3 = AknLayoutScalable_Apps::main_video_tele_dialer_pane_t1( 0 ); - } - else - { - l3 = AknLayoutScalable_Apps::main_video_tele_dialer_pane_t2( 0 ); - } - } - else - { - if ( !aLine ) - { - l3 = AknLayoutScalable_Apps::call_video_pane_t1(); - } - else - { - l3 = AknLayoutScalable_Apps::call_video_pane_t2(); - } - } -#endif - - if ( !aLine ) - { - l3 = AknLayoutScalable_Apps::main_video_tele_dialer_pane_t1( 0 ); - } - else - { - l3 = AknLayoutScalable_Apps::main_video_tele_dialer_pane_t2( 0 ); - } - - __VTPRINTEXIT( "DialCtrl.WaitingTextLayout" ) - return TAknWindowComponentLayout::ComposeText( l2, l3 ).LayoutLine(); - } - -// ----------------------------------------------------------------------------- -// CVtUiMainControl::LayoutRemoteVideo -// ----------------------------------------------------------------------------- -// -void CVtUiDialerVideoControl::LayoutRemoteVideo( ) - { - __VTPRINTENTER( "DialCtrl.LayoutRemoteVideo" ) - if ( NULL != iRemoteVideoControl ) - { - TRect rectRemoteVideo(StreamClippingRect()); - rectRemoteVideo.Move(PositionRelativeToScreen()); - iRemoteVideoControl->SetExtent(rectRemoteVideo.iTl,rectRemoteVideo.Size()); - } - __VTPRINTEXIT( "DialCtrl.LayoutRemoteVideo" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/menu/cvtuimenucontext.cpp --- a/vtuis/videotelui/src/features/menu/cvtuimenucontext.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* 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: Menu context class. -* -*/ - - -#include - -#include "cvtuimenucontext.h" - -/** Menu context reference priority */ -const TInt KVtUiMenuContextPriority = 100; - -// --------------------------------------------------------------------------- -// CVtUiMenuContext::~CVtUiMenuContext -// --------------------------------------------------------------------------- -// -CVtUiMenuContext::~CVtUiMenuContext() - { - __VTPRINTENTER( "MenuCtx.~" ) - UnregisterCommandContext(); - __VTPRINTEXIT( "MenuCtx.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuContext::NewL -// --------------------------------------------------------------------------- -// -CVtUiMenuContext* CVtUiMenuContext::NewL( - MVtUiCommandManager& aCommandManager ) - { - __VTPRINTENTER( "MenuCtx.NewL" ) - CVtUiMenuContext* self = new ( ELeave ) CVtUiMenuContext( aCommandManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "MenuCtx.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiMenuContext::ValidateL -// --------------------------------------------------------------------------- -// -void CVtUiMenuContext::ValidateL( CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "MenuCtx.ValidateL" ) - ValidateMenuItemsL( aAction ); - __VTPRINTEXIT( "MenuCtx.ValidateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuContext::CVtUiMenuContext -// --------------------------------------------------------------------------- -// -CVtUiMenuContext::CVtUiMenuContext( MVtUiCommandManager& aCommandManager ) - : CVtUiCmdContext( aCommandManager, EVtUiCmdContextTypeMenu, - KVtUiMenuContextPriority ) - { - __VTPRINTENTER( "MenuCtx.ctor" ) - __VTPRINTEXIT( "MenuCtx.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuContext::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiMenuContext::ConstructL() - { - __VTPRINTENTER( "MenuCtx.ConstructL" ) - RegisterCommandContextL(); - __VTPRINTEXIT( "MenuCtx.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/menu/cvtuimenuitemdimmeraction.cpp --- a/vtuis/videotelui/src/features/menu/cvtuimenuitemdimmeraction.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* 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: Menu item dimmer action class. -* -*/ - - -#include -#include - -#include "cvtuimenuitemdimmeraction.h" -#include "tvtuicmdvalidatorcallback.h" -#include "tvtuimenucommanditerator.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiMenuItemDimmerAction::NewL -// --------------------------------------------------------------------------- -// -CVtUiMenuItemDimmerAction* CVtUiMenuItemDimmerAction::NewL() - { - __VTPRINTENTER( "MenuDimAct.NewL" ) - CVtUiMenuItemDimmerAction* self = - new ( ELeave ) CVtUiMenuItemDimmerAction(); - __VTPRINTEXIT( "MenuDimAct.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiMenuItemDimmerAction::SetMenuPane -// --------------------------------------------------------------------------- -// -void CVtUiMenuItemDimmerAction::SetMenuPane( CEikMenuPane* aMenuPane ) - { - __VTPRINTENTER( "MenuDimAct.SetMenuPane" ) - iMenuPane = aMenuPane; - __VTPRINTEXIT( "MenuDimAct.SetMenuPane" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuItemDimmerAction::ProcessL -// --------------------------------------------------------------------------- -// -void CVtUiMenuItemDimmerAction::ProcessL( - const MVtUiCmdValidatorCallBack& aCallBack ) - { - __VTPRINTENTER( "MenuDimAct.ProcessL" ) - - if ( iMenuPane ) - { - for ( TVtUiMenuCommandIterator i( *iMenuPane ); i.HasNext(); ) - { - TInt commandId( i.Next() ); - if ( !IsCommandHandled( commandId ) ) - { - if ( aCallBack.Call( commandId ) ) - { - CommandHandledL( commandId ); - SetItemDimmed( commandId ); - } - } - } - } - __VTPRINTEXIT( "MenuDimAct.ProcessL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuItemDimmerAction::EndProcess -// --------------------------------------------------------------------------- -// -void CVtUiMenuItemDimmerAction::EndProcess() - { - __VTPRINTENTER( "MenuDimAct.EndProcess" ) - iMenuPane = NULL; - __VTPRINTEXIT( "MenuDimAct.EndProcess" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuItemDimmerAction::CVtUiMenuItemDimmerAction -// --------------------------------------------------------------------------- -// -CVtUiMenuItemDimmerAction::CVtUiMenuItemDimmerAction() - { - __VTPRINTENTER( "MenuDimAct.ctor" ) - __VTPRINTEXIT( "MenuDimAct.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenuItemDimmerAction::SetItemDimmed -// --------------------------------------------------------------------------- -// -void CVtUiMenuItemDimmerAction::SetItemDimmed( TInt aCommandId ) - { - __VTPRINTENTER( "MenuDimAct.SetItemDimmed" ) - iMenuPane->SetItemDimmed( aCommandId, ETrue ); - __VTPRINTEXIT( "MenuDimAct.SetItemDimmed" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/menu/cvtuimenus.cpp --- a/vtuis/videotelui/src/features/menu/cvtuimenus.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -/* -* Copyright (c) 2006 - 2008 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: Mennu Ui feature class. -* -*/ - - -#include - -#include "cvtuimenus.h" -#include "cvtuimenucontext.h" -#include "cvtuimenuitemdimmeraction.h" -#include "cvtuifeaturemanager.h" -#include "cvtuicommandmanager.h" - -// --------------------------------------------------------------------------- -// CVtUiMenus::NewL -// --------------------------------------------------------------------------- -// -CVtUiMenus* CVtUiMenus::NewL( CVtUiFeatureManager& aFeatureManager ) - { - __VTPRINTENTER( "Menus.NewL" ) - CVtUiMenus* self = new ( ELeave ) CVtUiMenus( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "Menus.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::~CVtUiMenus -// --------------------------------------------------------------------------- -// -CVtUiMenus::~CVtUiMenus() - { - __VTPRINTENTER( "Menus.~" ) - delete iMenuCommandContext; - delete iMenuDimmerAction; - __VTPRINTEXIT( "Menus.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::SetMenuPane -// --------------------------------------------------------------------------- -// -void CVtUiMenus::SetMenuPane( CEikMenuPane* aMenuPane ) - { - __VTPRINTENTER( "Menus.SetMenuPane" ) - iMenuDimmerAction->SetMenuPane( aMenuPane ); - __VTPRINTEXIT( "Menus.SetMenuPane" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::StartL -// --------------------------------------------------------------------------- -// -void CVtUiMenus::StartL() - { - __VTPRINTENTER( "Menus.StartL" ) - __VTPRINTEXIT( "Menus.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::Stop -// --------------------------------------------------------------------------- -// -void CVtUiMenus::Stop() - { - __VTPRINTENTER( "Menus.Stop" ) - __VTPRINTEXIT( "Menus.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiMenus::InitFeatureL() - { - __VTPRINTENTER( "Menus.InitFeatureL" ) - __VTPRINTEXIT( "Menus.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::RefreshL -// --------------------------------------------------------------------------- -// -void CVtUiMenus::RefreshL() - { - __VTPRINTENTER( "Menus.RefreshL" ) - iFeatureManager.CommandManager().ValidateMenuItemsL( *iMenuDimmerAction ); - __VTPRINTEXIT( "Menus.RefreshL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::AddCommandModifier -// --------------------------------------------------------------------------- -// -TInt CVtUiMenus::AddCommandModifier( CVtUiCommandModifyBase& ) - { - __VTPRINTENTER( "Menus.AddCommandModifier" ) - __VTPRINTEXIT( "Menus.AddCommandModifier" ) - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::RemoveCommandModifier -// --------------------------------------------------------------------------- -// -void CVtUiMenus::RemoveCommandModifier( CVtUiCommandModifyBase& ) - { - __VTPRINTENTER( "Menus.RemoveCommandModifier" ) - __VTPRINTEXIT( "Menus.RemoveCommandModifier" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::CVtUiMenus -// --------------------------------------------------------------------------- -// -CVtUiMenus::CVtUiMenus( CVtUiFeatureManager& aFeatureManager ) - : CVtUiFeatureBase( EVtUiFeatureIdMenu, aFeatureManager ) - { - __VTPRINTENTER( "Menus.ctor" ) - __VTPRINTEXIT( "Menus.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiMenus::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiMenus::ConstructL() - { - __VTPRINTENTER( "Menus.ConstructL" ) - iMenuCommandContext = - CVtUiMenuContext::NewL( iFeatureManager.CommandManager() ); - iMenuDimmerAction = CVtUiMenuItemDimmerAction::NewL(); - - // No need to add this to command manager as command UI. Menu is explicitly - // updated by CVtUiAppUi::DynInitMenuPaneL and in all other situations - // update is not needed because menu is not open. - // NOTE: If a command modifier is implemented for menu then it needs - // to be added to command UI. - __VTPRINTEXIT( "Menus.ConstructL" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/menu/tvtuimenucommanditerator.cpp --- a/vtuis/videotelui/src/features/menu/tvtuimenucommanditerator.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* 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: Menu command iterator. -* -*/ - - -#include - -#include "tvtuimenucommanditerator.h" - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// TVtUiMenuCommandIterator::TVtUiMenuCommandIterator -// --------------------------------------------------------------------------- -// -TVtUiMenuCommandIterator::TVtUiMenuCommandIterator( CEikMenuPane& aMenuPane ) -: iMenuPane( &aMenuPane ), iCurrent( 0 ) - { - } - -// --------------------------------------------------------------------------- -// TVtUiMenuCommandIterator::HasNext -// --------------------------------------------------------------------------- -// -TBool TVtUiMenuCommandIterator::HasNext() const - { - return ( iCurrent < iMenuPane->NumberOfItemsInPane() ); - } - -// --------------------------------------------------------------------------- -// TVtUiMenuCommandIterator::Next -// --------------------------------------------------------------------------- -// -TInt TVtUiMenuCommandIterator::Next() - { - return iMenuPane->MenuItemCommandId( iCurrent++ ); - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/numberentry/CVtUiNumberEntryControl.cpp --- a/vtuis/videotelui/src/features/numberentry/CVtUiNumberEntryControl.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,315 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of the CVtUiNumberEntryControl control class. -* -*/ - - -// INCLUDE FILES -#include "CVtUiNumberEntryControl.h" -#include "VtUiLayout.h" -#include "VtUiUtility.h" -#include "mvtuicomponentmanager.h" -#include "tvtuistates.h" -#include "tvtuiwsevent.h" -#include "mvtuifeature.h" -#include "mvtuinumberentrycontrolobserver.h" -#include "cvtuidtmfbuffer.h" - -#include -#include -#include - -// CONSTANTS - -// ============================ MEMBER FUNCTIONS =============================== - -// Implementation for TVtUiNumberEntryComponentState - -// ----------------------------------------------------------------------------- -// TVtUiNumberEntryComponentState::TVtUiNumberEntryComponentState -// ----------------------------------------------------------------------------- -// -TVtUiNumberEntryComponentState::TVtUiNumberEntryComponentState( - MVtUiComponent& aComponent ) - : TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdDialer ) ) - { - } - -// Implementation for CVtUiNumberEntryControl - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::CVtUiNumberEntryControl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiNumberEntryControl::CVtUiNumberEntryControl( - MVtUiFeature& aFeature, - TVtUiStates& aUiStates ) - : iFeature( aFeature ), - iComponentState( *this ), - iUiStates( aUiStates ) - { - __VTPRINTENTER( "NECtrl.ctor" ) - __VTPRINTEXIT( "NECtrl.ctor" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::ConstructL( const TRect& aRect ) - { - __VTPRINTENTER( "NECtrl.ConstructL" ) - CreateWindowL(); - SetRect( aRect ); - ActivateL(); - MakeVisible( EFalse ); - iInputBuffer = CVtUiDTMFBuffer::NewL( *iCoeEnv ); - __VTPRINTEXIT( "NECtrl.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::~CVtUiNumberEntryControl -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiNumberEntryControl::~CVtUiNumberEntryControl() - { - __VTPRINTENTER( "NECtrl.~" ) - AknsUtils::DeregisterControlPosition( this ); - delete iInputBuffer; - __VTPRINTEXIT( "NECtrl.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::OpenNumberEntry -// ----------------------------------------------------------------------------- -// -TBool CVtUiNumberEntryControl::OpenNumberEntry() - { - __VTPRINTENTER( "NECtrl.OpenNumberEntry" ) - TBool result( EFalse ); - if ( !iUiStates.IsNumberEntryOpen() ) - { - __VTPRINT( DEBUG_GEN, "VtUiNumberEntry.OPEN" ) - iInputBuffer->Activate(); - iUiStates.SetIsNumberEntryOpen( ETrue ); - result = ETrue; - } - __VTPRINTEXITR( "NECtrl.OpenNumberEntry %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::IsNumberEntryOpen -// ----------------------------------------------------------------------------- -// -TBool CVtUiNumberEntryControl::IsNumberEntryOpen() const - { - __VTPRINTENTER( "NECtrl.IsNumberEntryOpen" ) - const TBool result( iUiStates.IsNumberEntryOpen() ); - __VTPRINTEXITR( "NECtrl.IsNumberEntryOpen %d",result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::CloseNumberEntry -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::CloseNumberEntry() - { - __VTPRINTENTER( "NECtrl.CloseNumberEntry" ) - if ( iUiStates.IsNumberEntryOpen() ) - { - __VTPRINT( DEBUG_GEN, "NECtrl.CloseNumberEntry CLOSE" ) - iUiStates.SetIsNumberEntryOpen( EFalse ); - iInputBuffer->Deactivate(); - } - __VTPRINTEXIT( "NECtrl.CloseNumberEntry" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::RegisterComponentL -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::RegisterComponentL( - MVtUiComponentManager& aComponentManager ) - { - __VTPRINTENTER( "NECtrl.RegisterComponentL" ) - User::LeaveIfError( aComponentManager.ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - __VTPRINTEXIT( "NECtrl.RegisterComponentL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::UnregisterComponent -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::UnregisterComponent( - MVtUiComponentManager& aComponentManager ) - { - __VTPRINTENTER( "NECtrl.UnregisterComponent" ) - iInputBuffer->Reset(); - aComponentManager.ChangeComponentRegistration( iComponentState, - MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "NECtrl.UnregisterComponent" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::SetNumberEntryControlObserver -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::SetNumberEntryControlObserver( - MVtUiNumberEntryControlObserver* aObserver ) - { - __VTPRINTENTER( "NECtrl.SetNumberEntryControlObserver" ) - iControlObserver = aObserver; - __VTPRINTEXIT( "NECtrl.SetNumberEntryControlObserver" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::OfferKeyEventL -// ----------------------------------------------------------------------------- -// -TKeyResponse CVtUiNumberEntryControl::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode ) - { - __VTPRINTENTER( "NECtrl.OfferKeyEventL" ) - - TKeyResponse resp( EKeyWasNotConsumed ); - - if ( IsDisplayingMenuOrDialog() || - aKeyEvent.iCode == EKeyLeftArrow || - aKeyEvent.iCode == EKeyRightArrow || - aKeyEvent.iCode == EKeyUpArrow || - aKeyEvent.iCode == EKeyDownArrow || - aKeyEvent.iCode == EKeyBackspace || - aKeyEvent.iCode == EKeyZoomIn || - aKeyEvent.iCode == EKeyZoomOut || - aKeyEvent.iScanCode == EStdKeyUpArrow || - aKeyEvent.iScanCode == EStdKeyDownArrow || - aKeyEvent.iScanCode == EStdKeyLeftArrow || - aKeyEvent.iScanCode == EStdKeyRightArrow ) - { - return resp; - } - - TChar dtmfTone; - if ( VtUiUtility::IsDTMFEvent( aKeyEvent, dtmfTone ) ) - { - iInputBuffer->Append( dtmfTone ); - } - - __VTPRINTEXITR( "NECtrl.OfferKeyEvent %d", resp ) - return resp; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::DoCloseNumberEntry -// ----------------------------------------------------------------------------- -// -TInt CVtUiNumberEntryControl::DoCloseNumberEntry( TAny* aAny ) - { - __VTPRINTENTER( "NECtrl.DoCloseNumberEntry" ) - CVtUiNumberEntryControl* self = - reinterpret_cast< CVtUiNumberEntryControl* >( aAny ); - self->HandleTimeoutCloseNumberEntry(); - __VTPRINTEXIT( "NECtrl.DoCloseNumberEntry" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::HandleTimeoutCloseNumberEntry -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::HandleTimeoutCloseNumberEntry() - { - __VTPRINTENTER( "NECtrl.HandleTimeoutCloseNumberEntry" ) - __VTPRINTEXIT( "NECtrl.HandleTimeoutCloseNumberEntry" ) - iFeature.Stop(); - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::IsDisplayingMenuOrDialog -// ----------------------------------------------------------------------------- -// -TBool CVtUiNumberEntryControl::IsDisplayingMenuOrDialog() const - { - __VTPRINTENTER( "NECtrl.IsDisplayingMenuOrDialog" ) - CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar(); - const TBool result( CCoeEnv::Static()->AppUi()->IsDisplayingDialog() || - ( menuBar && menuBar->IsDisplayed() ) ); - __VTPRINTEXITR( "NECtrl.IsDisplayingMenuOrDialog %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::ComponentId -// ----------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiNumberEntryControl::ComponentId() const - { - __VTPRINTENTER( "NECtrl.ComponentId" ) - __VTPRINTEXIT( "NECtrl.ComponentId" ) - return MVtUiComponent::EComponentIdNumberEntry; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::ComponentAsControl -// ----------------------------------------------------------------------------- -// -CCoeControl* CVtUiNumberEntryControl::ComponentAsControl() - { - __VTPRINTENTER( "NECtrl.ComponentAsControl" ) - __VTPRINTEXIT( "NECtrl.ComponentAsControl" ) - return this; - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::DoActivateL -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::DoActivateL() - { - __VTPRINTENTER( "NECtrl.DoActivateL" ) - OpenNumberEntry(); - if ( iControlObserver ) - { - iControlObserver->ControlActivatedL(); - } - __VTPRINTEXIT( "NECtrl.DoActivateL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::DoDeactivateL -// ----------------------------------------------------------------------------- -// -void CVtUiNumberEntryControl::DoDeactivateL() - { - __VTPRINTENTER( "NECtrl.DoDeactivateL" ) - CloseNumberEntry(); - if ( iControlObserver ) - { - iControlObserver->ControlDeactivated(); - } - __VTPRINTEXIT( "NECtrl.DoDeactivateL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/numberentry/cvtuinumberentry.cpp --- a/vtuis/videotelui/src/features/numberentry/cvtuinumberentry.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* 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: Number entry UI feature implementation. -* -*/ - - -#include - -#include "cvtuinumberentry.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicommandmanager.h" -#include "mvtuicomponentmanager.h" -#include "mvtuicommandui.h" -#include "tvtuifeatureids.h" -#include "CVtUiNumberEntryControl.h" -#include "CVtUiAppUi.h" - - -// We need this to be able to make control's priority lower than activation -// control's priority is -extern const TInt KVtUiNumberEntryActivationPriority; - -// Priority of number entry control. -const TInt KVtUiNumberEntryControlPriorityHidden = - KVtUiNumberEntryActivationPriority - 1; - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::NewL -// --------------------------------------------------------------------------- -// -CVtUiNumberEntry* CVtUiNumberEntry::NewL( - CVtUiFeatureManager& aFeatureManager ) - { - __VTPRINTENTER( "NE.NewL" ) - CVtUiNumberEntry* self = - new ( ELeave ) CVtUiNumberEntry( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "NE.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::~CVtUiNumberEntry -// --------------------------------------------------------------------------- -// -CVtUiNumberEntry::~CVtUiNumberEntry() - { - __VTPRINTENTER( "NE.~" ) - DeleteNumberEntryControl(); - __VTPRINTEXIT( "NE.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::StartL -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::StartL() - { - __VTPRINTENTER( "NE.StartL" ) - if ( State() == MVtUiFeature::EUnprepared ) - { - PrepareL(); - iFeatureManager.ComponentManager().RequestActivationL( - MVtUiComponent::EComponentIdNumberEntry ); - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXIT( "NE.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::Stop -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::Stop() - { - __VTPRINTENTER( "NE.Stop" ) - if ( State() == MVtUiFeature::EActive ) - { - TRAP_IGNORE( iFeatureManager.ComponentManager().DeActivateComponentL( - MVtUiComponent::EComponentIdNumberEntry ) ); - iFeatureState = MVtUiFeature::EReady; - } - Unprepare(); - __VTPRINTEXIT( "NE.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::InitFeatureL() - { - __VTPRINTENTER( "NE.InitFeatureL" ) - CreateNumberEntryControlL(); - __VTPRINTEXIT( "NE.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::ControlActivated -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::ControlActivatedL() - { - __VTPRINTENTER( "NE.ControlActivatedL" ) - __VTPRINTEXIT( "NE.ControlActivatedL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::ControlDeactivated -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::ControlDeactivated() - { - __VTPRINTENTER( "NE.ControlDeactivated" ) - __VTPRINTEXIT( "NE.ControlDeactivated" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::CVtUiNumberEntry -// --------------------------------------------------------------------------- -// -CVtUiNumberEntry::CVtUiNumberEntry( CVtUiFeatureManager& aFeatureManager ) - : CVtUiFeatureBase( EVtUiFeatureIdNumberEntry, aFeatureManager ) - { - __VTPRINTENTER( "NE.ctor" ) - __VTPRINTEXIT( "NE.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::ConstructL() - { - __VTPRINTENTER( "NE.ConstructL" ) - BaseConstructL(); - __VTPRINTEXIT( "NE.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::PrepareL -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::PrepareL() - { - __VTPRINTENTER( "NE.PrepareL" ) - iNumberEntryControl->SetNumberEntryControlObserver( this ); - iNumberEntryControl->RegisterComponentL( - iFeatureManager.ComponentManager() ); - iFeatureManager.AppUi().AddToStackL( iNumberEntryControl, - KVtUiNumberEntryControlPriorityHidden, ECoeStackFlagRefusesFocus ); - iFeatureState = MVtUiFeature::EReady; - __VTPRINTEXIT( "NE.PrepareL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::Unprepare() -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::Unprepare() - { - __VTPRINTENTER( "NE.Unprepare" ) - if ( iFeatureState > MVtUiFeature::EUnprepared ) - { - iNumberEntryControl->SetNumberEntryControlObserver( NULL ); - iFeatureManager.AppUi().RemoveFromStack( iNumberEntryControl ); - iNumberEntryControl->UnregisterComponent( - iFeatureManager.ComponentManager() ); - iFeatureState = MVtUiFeature::EUnprepared; - } - __VTPRINTEXIT( "NE.Unprepare" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::CreateNumberEntryControlL -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::CreateNumberEntryControlL() - { - __VTPRINTENTER( "NE.CreateNumberEntryControlL" ) - iNumberEntryControl = new ( ELeave ) CVtUiNumberEntryControl( *this, - iFeatureManager.UiStates() ); - iNumberEntryControl->ConstructL( TRect() ); - iNumberEntryControl->SetMopParent( &iFeatureManager.AppUi() ); - __VTPRINTEXIT( "NE.CreateNumberEntryControlL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiNumberEntry::DeleteNumberEntryControl -// --------------------------------------------------------------------------- -// -void CVtUiNumberEntry::DeleteNumberEntryControl() - { - __VTPRINTENTER( "NE.DeleteNumberEntryControl" ) - delete iNumberEntryControl; - iNumberEntryControl = NULL; - iFeatureState = MVtUiFeature::EUnprepared; - __VTPRINTEXIT( "NE.DeleteNumberEntryControl" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuibrightness.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuibrightness.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* 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: implementation. -* -*/ - - -#include -#include "cvtuibrightness.h" -#include "tvtuifeatureids.h" -#include "cvtuibrightnesspopup.h" -#include "cvtuipopupbase.h" -#include "cvtuiprefsliderbase.h" -#include "videotelui.hrh" -#include "cvtuifeaturemanager.h" -#include "tvtuistates.h" - -// --------------------------------------------------------------------------- -// CVtUiBrightness::NewL -// --------------------------------------------------------------------------- -// -CVtUiBrightness* CVtUiBrightness::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiBrightness.NewL" ) - CVtUiBrightness* self = - new ( ELeave ) CVtUiBrightness( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiBrightness.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiBrightness::~CVtUiBrightness -// --------------------------------------------------------------------------- -// -CVtUiBrightness::~CVtUiBrightness() - { - __VTPRINTENTER( "CVtUiBrightness.~" ) - __VTPRINTEXIT( "CVtUiBrightness.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiBrightness::StartL -// --------------------------------------------------------------------------- -// -void CVtUiBrightness::StartL() - { - __VTPRINTENTER( "CVtUiBrightness.StartL" ) - CVtUiPrefSliderBase::StartL(); - iFeatureManager.UiStates().SetBrightnessModeOn( ETrue ); - __VTPRINTEXIT( "CVtUiBrightness.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiBrightness::Stop -// --------------------------------------------------------------------------- -// -void CVtUiBrightness::Stop() - { - __VTPRINTENTER( "CVtUiBrightness.Stop" ) - CVtUiPrefSliderBase::Stop(); - iFeatureManager.UiStates().SetBrightnessModeOn( EFalse ); - __VTPRINTEXIT( "CVtUiBrightness.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiBrightness::CVtUiBrightness -// --------------------------------------------------------------------------- -// -CVtUiBrightness::CVtUiBrightness( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefSliderBase( aFeatureManager, EVtUiFeatureIdBrightness ) - { - __VTPRINTENTER( "CVtUiBrightness.CVtUiBrightness" ) - __VTPRINTEXIT( "CVtUiBrightness.CVtUiBrightness" ) - } - -// --------------------------------------------------------------------------- -// CVtUiBrightness::CVtUiBrightness -// --------------------------------------------------------------------------- -// -void CVtUiBrightness:: ConstructL() - { - __VTPRINTENTER( "CVtUiBrightness.ConstructL" ) - BaseConstructL(); - SetPopup( CVtUiBrightnessPopup::NewL( iFeatureManager ) ); - __VTPRINTEXIT( "CVtUiBrightness.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuibrightnesspopup.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuibrightnesspopup.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* -* 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: implementation. -* -*/ - - - -#include -#include -#include "cvtuibrightnesspopup.h" -#include "tvtuilocalvariation.h" -#include "mvtuicomponent.h" -#include "CVtUiAppUi.h" -#include "mvtuicomponentmanager.h" -#include "tvtuicomponentstate.h" -#include - -// --------------------------------------------------------------------------- -// CVtUiBrightnessPopup::NewL -// --------------------------------------------------------------------------- -// -CVtUiBrightnessPopup* CVtUiBrightnessPopup::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiBrightnessPopup.NewL" ) - CVtUiBrightnessPopup* self = - new ( ELeave ) CVtUiBrightnessPopup( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiBrightnessPopup.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiBrightnessPopup::~CVtUiBrightnessPopup -// --------------------------------------------------------------------------- -// -CVtUiBrightnessPopup::~CVtUiBrightnessPopup() - { - __VTPRINTENTER( "CVtUiBrightnessPopup.~" ) - __VTPRINTEXIT( "CVtUiBrightnessPopup.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiBrightnessPopup::CurrentValue -// --------------------------------------------------------------------------- -// -TInt CVtUiBrightnessPopup::CurrentValue() - { - __VTPRINTENTER( "CVtUiBrightnessPopup.CurrentValue" ) - // ask from engine current value - TInt value; - if ( iCameraPref->GetBrightness( value) ) - { - __VTPRINTEXIT( "CVtUiBrightnessPopup.CurrentValueERR" ) - return 0; - } - __VTPRINTEXIT( "CVtUiBrightnessPopup.CurrentValue" ) - return value; - } -// --------------------------------------------------------------------------- -// CVtUiBrightnessPopup::CVtUiBrightnessPopup -// --------------------------------------------------------------------------- -// -CVtUiBrightnessPopup::CVtUiBrightnessPopup( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefPopupBase( aFeatureManager, TVtUiBlockListBitField( - MVtUiComponent::EComponentIdDialer | - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry | - MVtUiComponent::EComponentIdVolume | - MVtUiComponent::EComponentIdZoom | - MVtUiComponent::EVComponentIdContrast ), EVComponentIdBrightness, - KVtEngSetBrightness ) - { - - __VTPRINTENTER( "CVtUiBrightnessPopup.CVtUiBrightnessPopup" ) - __VTPRINTEXIT( "CVtUiBrightnessPopup.CVtUiBrightnessPopup" ) - } - -// --------------------------------------------------------------------------- -// CVtUiBrightnessPopup::CVtUiBrightnessPopup -// --------------------------------------------------------------------------- -// -void CVtUiBrightnessPopup:: ConstructL() - { - __VTPRINTENTER( "CVtUiBrightnessPopup.ConstructL" ) - BaseConstructL(); - __VTPRINTEXIT( "CVtUiBrightnessPopup.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuicolortone.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuicolortone.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,383 +0,0 @@ -/* -* Copyright (c) 2006 - 2008 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: Color tone UI feature implementation. -* -*/ - - -#include -#include -#include -#include -#include "cvtuicolortone.h" -#include "tvtuifeatureids.h" -#include -#include "mvtuicomponentmanager.h" -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" -#include "tvtuilocalvariation.h" -#include "cvtuifeaturemanager.h" -#include "tvtuistates.h" -#include "cvtuicommandmanager.h" - -// Implementation of TVtUiColorToneComponentState - -// --------------------------------------------------------------------------- -// TVtUiColorToneComponentState::TVtUiColorToneComponentState -// --------------------------------------------------------------------------- -// -TVtUiColorToneComponentState::TVtUiColorToneComponentState( - MVtUiComponent& aComponent ) : - TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdDialer | - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry ) ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::NewL -// --------------------------------------------------------------------------- -// -CVtUiColorTone* CVtUiColorTone::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "UiColorTone.NewL" ) - CVtUiColorTone* self = - new ( ELeave ) CVtUiColorTone( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "UiColorTone.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::~CVtUiColorTone -// --------------------------------------------------------------------------- -// -CVtUiColorTone::~CVtUiColorTone() - { - __VTPRINTENTER( "UiColorTone.~" ) - // unregister layout change - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - // unregister component - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "UiColorTone.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::StartL -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::StartL() - { - __VTPRINTENTER( "UiColorTone.StartL" ) - if ( iFeatureState == MVtUiFeature::EReady ) - { - iFeatureManager.AppUi().EnableCommandActivatingAndCleanupPushL(); - iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse ); - iFeatureManager.ComponentManager(). - RequestActivationL ( MVtUiComponent::EComponentIdColorTone ); - CleanupStack::Pop(); // EnableCommandActivatingAndCleanupPushL - // set state - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXIT( "UiColorTone.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::Stop -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::Stop() - { - __VTPRINTENTER( "UiColorTone.Stop" ) - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoStopL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "UiColorTone.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::InitFeatureL() - { - __VTPRINTENTER( "UiColorTone.InitFeatureL" ) - CVtUiPrefSettingListBase::InitFeatureL(); - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - iFeatureState = EReady; - __VTPRINTEXIT( "UiColorTone.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::ComponentId -// --------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiColorTone::ComponentId() const - { - __VTPRINTENTER( "UiColorTone.ComponentId" ) - __VTPRINTEXIT( "UiColorTone.ComponentId" ) - return MVtUiComponent::EComponentIdColorTone; - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::ComponentAsControl -// --------------------------------------------------------------------------- -// -CCoeControl* CVtUiColorTone::ComponentAsControl() - { - __VTPRINTENTER( "UiColorTone.ComponentAsControl" ) - __VTPRINTEXIT( "UiColorTone.ComponentAsControl" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::DoActivateL() - { - __VTPRINTENTER( "UiColorTone.DoActivateL" ) - // get supported color tone modes - iCameraPref->GetSupportedColorTones( iSupportedModes ); - __VTPRINT2( DEBUG_GEN, "UiColorTone.ConstructL=%d", iSupportedModes ) - iFeatureManager.UiStates().SetColorToneModeOn( ETrue ); - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoStartL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "UiColorTone.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::DoDeactivateL -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::DoDeactivateL() - { - __VTPRINTENTER( "UiColorTone.DoDeactivateL" ) - iFeatureManager.UiStates().SetColorToneModeOn( EFalse ); - CVtUiPrefSettingListBase::StopSettingPageL(); - __VTPRINTEXIT( "UiColorTone.DoDeactivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::HandleLayoutChangeL -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::HandleLayoutChangeL() - { - __VTPRINTENTER( "UiColorTone.HandleLayoutChangeL" ) - if ( iFeatureState == MVtUiFeature::EActive ) - { - SizeChanged(); - } - __VTPRINTEXIT( "UiColorTone.HandleLayoutChangeL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::CurrentSelection -// --------------------------------------------------------------------------- -// -TInt CVtUiColorTone::CurrentSelection() - { - __VTPRINTENTER( "UiColorTone.CurrentSelection" ) - // ask from engine which item is currently active - MVtEngCameraPreferences::TColorTone wb; - if ( iCameraPref->GetColorTone( wb ) ) - { - __VTPRINTEXIT( "UiColorTone.CurrentSelectionERR" ) - // if error occured return 0 i.e. first list item - return 0; - } - __VTPRINTEXIT( "UiColorTone.CurrentSelection" ) - return MapCTEnumToArrayIndex( wb ); - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::SetItemsL -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::SetItemsL( CDesCArray& aArray ) - { - __VTPRINTENTER( "UiColorTone.SetItemsL<" ) - __VTPRINT2( DEBUG_GEN, "UiColorTone.SetItemsL=%d", iSupportedModes ) - // Normal mode allways supported - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_CT_NORMAL_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ENormal ); - - if( iSupportedModes & MVtEngCameraPreferences::ESepia ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_SEPIA_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ESepia ); - } - if( iSupportedModes & MVtEngCameraPreferences::EGrayscale ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_B_AND_W_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EGrayscale ); - } - if( iSupportedModes & MVtEngCameraPreferences::ENegative ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_NEGATIVE_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ENegative ); - } - __VTPRINTEXIT( "UiColorTone.SetItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::SettingPageResId -// --------------------------------------------------------------------------- -// -TInt CVtUiColorTone::SettingPageResId() const - { - __VTPRINTENTER( "UiColorTone.SettingPageResId" ) - __VTPRINTEXIT( "UiColorTone.SettingPageResId" ) - return R_VIDEOTELUI_COLOR_TONE_SETTING_PAGE; - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::SettingPageItemChanged -// --------------------------------------------------------------------------- -// -void CVtUiColorTone::SettingPageItemChangedL( TInt aIndex ) - { - __VTPRINTENTER( "CVtUiColorTone.SettingPageItemChangedL" ) - __VTPRINT2( DEBUG_GEN, "CVtUiColorTone.index=%d", aIndex ) - if ( iFeatureManager.UiStates().ExecState() == TVtUiStates::EExecStateResetting ) - { - __VTPRINTEXIT( "CVtUiColorTone.SettingPageItemChangedL" ) - return; - } - // Map index to right color tone value - MVtEngCameraPreferences::TColorTone ct = MapArrayIndexToCTEnum( aIndex ); - - // cast the parameter - TPtrC8 params( reinterpret_cast< TUint8* >( &ct ), - sizeof( MVtEngCameraPreferences::TColorTone ) ); - - // Adjust color tone - MVtEngMedia::TCameraId currentCamId; - iFeatureManager.AppUi().Model().Media().GetCurrentCameraId( currentCamId ); - if( currentCamId == MVtEngMedia::ESecondaryCamera ) - { - iFeatureManager.AppUi().DoExecuteCmdL( KVtEngSetColorTone, ¶ms ); - iPendingSettingChangeCmd = EFalse; - } - else - iPendingSettingChangeCmd = ETrue; - __VTPRINTEXIT( "CVtUiColorTone.SettingPageItemChangedL" ) - } - - -// --------------------------------------------------------------------------- -// CVtUiColorTone::CVtUiColorTone -// --------------------------------------------------------------------------- -// -CVtUiColorTone::CVtUiColorTone( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefSettingListBase( aFeatureManager, EVtUiFeatureIdColourTone ), - iComponentState( *this ) - { - __VTPRINTENTER( "UiColorTone.UiColorTone" ) - __VTPRINTEXIT( "UiColorTone.UiColorTone" ) - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::MapCTEnumToArrayIndex -// --------------------------------------------------------------------------- -// -TInt CVtUiColorTone::MapCTEnumToArrayIndex( MVtEngCameraPreferences:: - TColorTone& aColorTone ) const - { - __VTPRINTENTER( "CVtUiColorTone.MapCTEnumToArrayIndex" ) - __VTPRINT2( DEBUG_GEN, "CVtUiColorTone.cpunt=%d", iActiveItems.Count() ) - for ( TInt i = 0; i < iActiveItems.Count(); ++i ) - { - if ( iActiveItems [ i ] == aColorTone ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiColorTone.index=%d", i ) - __VTPRINTEXIT( "CVtUiColorTone.MapCTEnumToArrayIndex" ) - return i; - } - } - __VTPRINTEXIT( "CVtUiColorTone.MapCTEnumToArrayIndex" ) - // not found - return KErrNotFound; - } -// --------------------------------------------------------------------------- -// CVtUiColorTone::MapArrayIndexToCTEnum -// --------------------------------------------------------------------------- -// -MVtEngCameraPreferences::TColorTone CVtUiColorTone::MapArrayIndexToCTEnum( - TInt aIndex) const - { - __VTPRINTENTER( "TColorTone.MapArrayIndexToCTEnum" ) - __VTPRINT2( DEBUG_GEN, "TColorTone.index=%d", aIndex ) - __VTPRINT2( DEBUG_GEN, "TColorTone.count=%d", iActiveItems.Count() ) - const TInt count = iActiveItems.Count(); - if ( count > 0 && aIndex < count && aIndex >= 0 ) - { - __VTPRINTEXIT( "TColorTone.MapArrayIndexToCTEnum" ) - return static_cast< MVtEngCameraPreferences::TColorTone > - ( iActiveItems[ aIndex ] ); - } - else // not valid index return first item in the list - { - __VTPRINTEXIT( "TColorTone.MapArrayIndexToCTEnum_ERROR_INDEX" ) - return static_cast< MVtEngCameraPreferences::TColorTone > - ( iActiveItems[ 0 ] ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::DoStop -// --------------------------------------------------------------------------- -// -TInt CVtUiColorTone::DoStopL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiColorTone.DoStopL" ) - CVtUiColorTone* self = static_cast< CVtUiColorTone* >( aAny ); - if ( self->iFeatureState == MVtUiFeature::EActive ) - { - self->iFeatureManager.ComponentManager(). - DeActivateComponentL ( MVtUiComponent::EComponentIdColorTone ); - // set state - self->iFeatureState = MVtUiFeature::EReady; - } - __VTPRINTEXIT( "CVtUiColorTone.DoStopL" ) - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CVtUiColorTone::DoStart -// --------------------------------------------------------------------------- -// -TInt CVtUiColorTone::DoStartL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiColorTone.DoStart" ) - CVtUiColorTone* self = static_cast< CVtUiColorTone* >( aAny ); - self->CVtUiPrefSettingListBase::StartSettingPageL(); - self->iFeatureManager.UiStates().SetIsCommandActivating( EFalse ); - __VTPRINTEXIT( "CVtUiColorTone.DoStart" ) - return KErrNone; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuicontrast.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuicontrast.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* 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: implementation. -* -*/ - - -#include -#include "cvtuicontrast.h" -#include "tvtuifeatureids.h" -#include "cvtuicontrastpopup.h" -#include "cvtuipopupbase.h" -#include "videotelui.hrh" -#include "cvtuifeaturemanager.h" -#include "tvtuistates.h" - -// --------------------------------------------------------------------------- -// CVtUiContrast::NewL -// --------------------------------------------------------------------------- -// -CVtUiContrast* CVtUiContrast::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiContrast.NewL" ) - CVtUiContrast* self = - new ( ELeave ) CVtUiContrast( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiContrast.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiContrast::~CVtUiContrast -// --------------------------------------------------------------------------- -// -CVtUiContrast::~CVtUiContrast() - { - __VTPRINTENTER( "CVtUiContrast.~" ) - __VTPRINTEXIT( "CVtUiContrast.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContrast::StartL -// --------------------------------------------------------------------------- -// -void CVtUiContrast::StartL() - { - __VTPRINTENTER( "CVtUiContrast.StartL" ) - CVtUiPrefSliderBase::StartL(); - iFeatureManager.UiStates().SetContrastModeOn( ETrue ); - __VTPRINTEXIT( "CVtUiContrast.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContrast::Stop -// --------------------------------------------------------------------------- -// -void CVtUiContrast::Stop() - { - __VTPRINTENTER( "CVtUiContrast.Stop" ) - CVtUiPrefSliderBase::Stop(); - iFeatureManager.UiStates().SetContrastModeOn( EFalse ); - __VTPRINTEXIT( "CVtUiContrast.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContrast::CVtUiContrast -// --------------------------------------------------------------------------- -// -CVtUiContrast::CVtUiContrast( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefSliderBase( aFeatureManager, EVtUiFeatureIdContrast ) - { - __VTPRINTENTER( "CVtUiContrast.CVtUiContrast" ) - __VTPRINTEXIT( "CVtUiContrast.CVtUiContrast" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContrast::CVtUiContrast -// --------------------------------------------------------------------------- -// -void CVtUiContrast:: ConstructL() - { - __VTPRINTENTER( "CVtUiContrast.ConstructL" ) - BaseConstructL(); - SetPopup( CVtUiContrastPopup::NewL( iFeatureManager ) ); - __VTPRINTEXIT( "CVtUiContrast.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuicontrastpopup.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuicontrastpopup.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* -* 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: Implementation of Contrast popup -* -*/ - - - -#include -#include "cvtuicontrastpopup.h" -#include -#include "tvtuilocalvariation.h" -#include -#include "mvtuicomponent.h" -#include "CVtUiAppUi.h" -#include -#include - -// --------------------------------------------------------------------------- -// CVtUiContrastPopup::NewL -// --------------------------------------------------------------------------- -// -CVtUiContrastPopup* CVtUiContrastPopup::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiContrastPopup.NewL" ) - CVtUiContrastPopup* self = - new ( ELeave ) CVtUiContrastPopup( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiContrastPopup.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiContrastPopup::~CVtUiContrastPopup -// --------------------------------------------------------------------------- -// -CVtUiContrastPopup::~CVtUiContrastPopup() - { - __VTPRINTENTER( "CVtUiContrastPopup.~" ) - __VTPRINTEXIT( "CVtUiContrastPopup.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContrastPopup::CurrentValue -// --------------------------------------------------------------------------- -// -TInt CVtUiContrastPopup::CurrentValue() - { - __VTPRINTENTER( "CVtUiContrastPopup.CurrentValue" ) - // ask from engine current value - TInt value; - if ( iCameraPref->GetContrast( value) ) - { - __VTPRINTEXIT( "CVtUiContrastPopup.CurrentValueERR" ) - return 0; - } - __VTPRINTEXIT( "CVtUiContrastPopup.CurrentValue" ) - return value; - } - -// --------------------------------------------------------------------------- -// CVtUiContrastPopup::CVtUiContrastPopup -// --------------------------------------------------------------------------- -// -CVtUiContrastPopup::CVtUiContrastPopup( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefPopupBase( aFeatureManager, TVtUiBlockListBitField( - MVtUiComponent::EComponentIdDialer | - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry | - MVtUiComponent::EComponentIdVolume | - MVtUiComponent::EComponentIdZoom | - MVtUiComponent::EVComponentIdBrightness ), EVComponentIdContrast, - KVtEngSetContrast ) - { - __VTPRINTENTER( "CVtUiContrastPopup.CVtUiContrastPopup" ) - __VTPRINTEXIT( "CVtUiContrastPopup.CVtUiContrastPopup" ) - } - -// --------------------------------------------------------------------------- -// CVtUiContrastPopup::CVtUiContrastPopup -// --------------------------------------------------------------------------- -// -void CVtUiContrastPopup::ConstructL() - { - __VTPRINTENTER( "CVtUiContrastPopup.ConstructL" ) - BaseConstructL(); - __VTPRINTEXIT( "CVtUiContrastPopup.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuiprefpopupbase.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuiprefpopupbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/* -* Copyright (c) 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: Implementation of base class for video preference popups -* -*/ - - -#include -#include -#include - -#include "cvtuiprefpopupbase.h" -#include "mvtuicomponentmanager.h" -#include "mvtuicomponentstateobserver.h" -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" - -// Number of steps -static const TInt KStepCount = 20; - -// Slider min value -static const TInt KSLiderMinValue = -100; - -// Slider min value -static const TInt KSLiderDefaultValue = 0; - -// Slider max value -static const TInt KSLiderMaxValue = 100; - -// Min adjust value -static const TInt KMinAdjustValue = 0; - -// Max adjust value -static const TInt KMaxAdjustValue = 20; - -// default time out time for zoom popup -const TInt KDefaultPrefTimeOutTime = 5; - -// --------------------------------------------------------------------------- -// CVtUiPrefPopupBase::~CVtUiPrefPopupBase -// --------------------------------------------------------------------------- -// -CVtUiPrefPopupBase::~CVtUiPrefPopupBase() - { - __VTPRINTENTER( "CVtUiPrefPopupBase.~CVtUiPrefPopupBase" ) - __VTPRINTEXIT( "CVtUiPrefPopupBase.~CVtUiPrefPopupBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefPopupBase::HandleControlEventL() -// --------------------------------------------------------------------------- -// -void CVtUiPrefPopupBase::HandleControlEventL( - CCoeControl* aControl,TCoeEvent aEventType ) - { - __VTPRINTENTER( "CVtUiPrefPopupBase.HandleControlEventL" ) - CVtUiPopupBase::HandleControlEventL( aControl, aEventType ); - if ( aEventType == EEventStateChanged ) - { - const TInt value( Value() ); - if ( value != iCurrent ) - { - __VTPRINT( DEBUG_GEN, "CVtUiPrefPopupBase.OfferKeyEventL value != current " ) - iCurrent = value; - __VTPRINT2( DEBUG_GEN, "CVtUiPrefPopupBase.HandleControlEventL = %d", ScaledValue() ) - AdjustVideoL( ScaledValue() ); - } - } - - __VTPRINTEXIT( "CVtUiPrefPopupBase.HandleControlEventL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefPopupBase::UpdatePopupL() -// --------------------------------------------------------------------------- -// -void CVtUiPrefPopupBase::UpdatePopupL() - { - __VTPRINTENTER( "CVtUiPrefPopupBase.UpdatePrefPopupL" ) - - AdjustVideoL( ScaledValue() ); - - __VTPRINTEXIT( "CVtUiPrefPopupBase.UpdatePrefPopupL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefPopupBase::OfferKeyEventL() -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiPrefPopupBase::OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ) - { - __VTPRINTENTER( "CVtUiPrefPopupBase.OfferKeyEventL" ) - TKeyResponse response = - CVtUiPopupBase::OfferKeyEventL( aEvent, aCode ); - - if ( response == EKeyWasConsumed ) - { - AdjustVideoL( ScaledValue() ); - } - - __VTPRINTEXIT( "CVtUiPrefPopupBase.OfferKeyEventL" ) - return response; - } - -// CVtUiPrefPopupBase::AdjustVideoL() -// --------------------------------------------------------------------------- -// -void CVtUiPrefPopupBase::AdjustVideoL( TInt aValue ) - { - __VTPRINTENTER( "CVtUiPrefPopupBase.AdjustVideoL" ) - // cast the parameter - TPtrC8 params( reinterpret_cast< TUint8* >( &aValue ), sizeof( TInt ) ); - - // Adjust Contrast - iFeatureManager.AppUi().DoExecuteCmdL( iEngineCommandId, ¶ms ); - __VTPRINTEXIT( "CVtUiPrefPopupBase.AdjustVideoL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefPopupBase::DoActivateL() -// --------------------------------------------------------------------------- -// -void CVtUiPrefPopupBase::DoActivateL() - { - __VTPRINTENTER( "CVtUiPrefPopupBase.DoActivateL" ) - CVtUiPopupBase::DoActivateL(); - // Set current value - __VTPRINT2( DEBUG_GEN, "CVtUiPrefPopupBase.DoActivateL = %d", CurrentValue() ) - ScaleAndSetValue( CurrentValue() ); - AdjustVideoL( ScaledValue() ); - __VTPRINTEXIT( "CVtUiPrefPopupBase.DoActivateL" ) - } - -// CVtUiPrefPopupBase::CVtUiPrefPopupBase -// --------------------------------------------------------------------------- -// -CVtUiPrefPopupBase::CVtUiPrefPopupBase( CVtUiFeatureManager& aFeatureManager, - TVtUiBlockListBitField aBitField, TComponentId aComponentId, TInt aCmdId ) : - CVtUiPopupBase( aFeatureManager.ComponentManager(), aBitField, - aComponentId ), iFeatureManager( aFeatureManager ), - iEngineCommandId ( aCmdId ) - { - __VTPRINTENTER( "CVtUiPrefPopupBase.CVtUiPrefPopupBase" ) - __VTPRINTEXIT( "CVtUiPrefPopupBase.CVtUiPrefPopupBase" ) - } - - -// --------------------------------------------------------------------------- -// CVtUiPrefPopupBase::BaseConstructL -// --------------------------------------------------------------------------- -// -void CVtUiPrefPopupBase::BaseConstructL() - { - __VTPRINTENTER( "CVtUiPrefPopupBase.BaseConstructL" ) - CVtUiPopupBase::BaseConstructL(); - // Get camera preferences extension. - iCameraPref = static_cast ( iFeatureManager. - AppUi().Model().Extension( KVtEngExtensionCameraPreferences ) ); - - // Set range and step count for the slider - SetAdjustRange( KMinAdjustValue, KMaxAdjustValue, KStepCount ); - - // Set value range to baseclass - // range e.g. 0-20 - SetMinAndMaxValues( KSLiderMinValue , KSLiderMaxValue ); - - // Set slider type to percentage - SetValueType( EAknSliderValuePercentage ); - - // Set default value - ScaleAndSetValue( KSLiderDefaultValue ); - - // Set timeout - SetTimeOut( KDefaultPrefTimeOutTime ); - - __VTPRINTEXIT( "CVtUiPrefPopupBase.BaseConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuiprefsettinglistbase.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuiprefsettinglistbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,360 +0,0 @@ -/* -* Copyright (c) 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: Softkey UI feature implementation. -* -*/ - - -#include -#include -#include -#include -#include - -#include "cvtuiprefsettinglistbase.h" -#include "CVtUiAppUi.h" -#include "cvtuitransparentsettingpage.h" -#include "CVtUiMainControl.h" -#include "CVtUiContextControl.h" -#include "cvtuifeaturemanager.h" -#include "VtUiLayout.h" - -#include - -// constants -static const TInt KMaxNumberOfArrayItems = 5; -static const TInt KMaxNumberOfActiveItems = 5; - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::~CVtUiPrefSettingListBase -// --------------------------------------------------------------------------- -// -CVtUiPrefSettingListBase::~CVtUiPrefSettingListBase() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.~CVtUiPrefSettingListBase" ) - delete iViewfinderBitmap; - delete iSettingPage; - iActiveItems.Close(); - __VTPRINTEXIT( "CVtUiPrefSettingListBase.~CVtUiPrefSettingListBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::InitFeatureL() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.InitFeatureL" ) - ResizeBackroundBitmapRect(); - __VTPRINTEXIT( "CVtUiPrefSettingListBase.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::IsPendingCmd -// --------------------------------------------------------------------------- -// -TBool CVtUiPrefSettingListBase::IsPendingCmd() - { - return iPendingSettingChangeCmd; - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::HandlePendingCmd -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::HandlePendingCmdL() - { - SettingPageItemChangedL( iOriginalSelection ); - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::HandleSettingPageEventL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::HandleSettingPageEventL( - CAknSettingPage* /*aSettingPage*/, TAknSettingPageEvent aEventType ) - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.HandleSettingPageEventL" ) - const TInt currentItem = iSettingPage->ListBoxControl()->CurrentItemIndex(); - switch ( aEventType ) - { - case EEventSettingCancelled: - { - if ( iOriginalSelection != currentItem ) - { - // Set back to orginal selection - SettingPageItemChangedL( iOriginalSelection ); - iCurrentSelection = iOriginalSelection; - } - Stop(); - break; - } - case EEventSettingChanged: - { - SettingPageItemChangedL( currentItem ); - iOriginalSelection = currentItem; - Stop(); - break; - } - case EEventSettingOked: - { - // Check if the current selection has changed - if ( iOriginalSelection != currentItem ) - { - SettingPageItemChangedL( currentItem ); - iOriginalSelection = currentItem; - iCurrentSelection = currentItem; - } - Stop(); - break; - } - default: - break; - } - __VTPRINTEXIT( "CVtUiPrefSettingListBase.HandleSettingPageEventL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::ListStateChangedL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::ListStateChangedL() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.ListStateChangedL" ) - // Check if new item is focused in the selection list - - const TInt currentItem = iSettingPage->ListBoxControl()->CurrentItemIndex(); - if ( iCurrentSelection != currentItem ) - { - // Update current selection - iCurrentSelection = currentItem; - // Adjust frame - SettingPageItemChangedL( currentItem ); - } - __VTPRINTEXIT( "CVtUiPrefSettingListBase.ListStateChangedL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::StartSettingPageL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::StartSettingPageL() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.StartSettingPageL" ) - // Swap image places if needed - iAppUi.SwitchViewFinderToMainPaneL(); - - // Get context control's window priority and position - iWindowPriority = iAppUi.ContextControl().DrawableWindow() - ->OrdinalPriority(); - iWindowPosition = iAppUi.ContextControl().DrawableWindow() - ->OrdinalPosition(); - - // Rise context control's window priority othwerwise setting page will be - // drawn partially over the context control window. - iAppUi.ContextControl().DrawableWindow()->SetOrdinalPosition( - iWindowPosition, iWindowPriority + 1 ); - - // Creates setting page - CreateSettingPageL(); - // Launch setting page. - iSettingPage->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted, EFalse ); - iSettingPage = NULL; - __VTPRINTEXIT( "CVtUiPrefSettingListBase.StartSettingPageL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::StopSettingPageL -// -// -void CVtUiPrefSettingListBase::StopSettingPageL() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.StopSettingPageL" ) - // Swap image places if needed - iAppUi.RestoreViewFinderL(); - - if ( iSettingPage) - { - // Cancell the setting page - TKeyEvent keyEvent; - keyEvent.iCode = EKeyEscape; - iSettingPage->OfferKeyEventL( keyEvent, EEventKey ); - } - - // Set contex control's window priority and position back to orginal value. - iAppUi.ContextControl().DrawableWindow()->SetOrdinalPosition( - iWindowPosition, iWindowPriority ); - __VTPRINTEXIT( "CVtUiPrefSettingListBase.StopSettingPageL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::SizeChanged -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::SizeChanged() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.SizeChanged" ) - ResizeBackroundBitmapRect(); - // Set new coordinates and size - iSettingPage->SetBitmapPositionAndClipRect( iBitmapTopLeftCorner, - iBitmapClippingRect ); - iSettingPage->HandleLayoutChangeL(); - __VTPRINTEXIT( "CVtUiPrefSettingListBase.SizeChanged" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::UpdateBackground -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::UpdateBackground( CFbsBitmap* aFrame ) - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.UpdateBackground" ) - if ( aFrame ) - { - // aFrame is valid only in this callback, the bitmap - // must be copied for use as the setting page background - iViewfinderBitmap->Duplicate( aFrame->Handle() ); - if ( iSettingPage ) - { - // Update background - iSettingPage->ChangeBackground( iViewfinderBitmap ); - } - } - __VTPRINTEXIT( "CVtUiPrefSettingListBase.UpdateBackground" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::UpdateSettingL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::UpdateSettingL() - { - // if no active items do nothing - if ( iActiveItems.Count() > 0 ) - { - // user change the focuse in the list but not - // select it indeed - if( iOriginalSelection != iCurrentSelection ) - SettingPageItemChangedL( iCurrentSelection ); - else - // yes,user has tapped down the OK button to choose a item - SettingPageItemChangedL( iOriginalSelection ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::CVtUiPrefSettingListBase -// --------------------------------------------------------------------------- -// -CVtUiPrefSettingListBase::CVtUiPrefSettingListBase( CVtUiFeatureManager& - aFeatureManager, TVtUiFeatureId aFeatureId ) : CVtUiFeatureBase( - aFeatureId, aFeatureManager ), iActiveItems( KMaxNumberOfActiveItems ), - iBitmapTopLeftCorner( 0, 0 ), iAppUi( aFeatureManager.AppUi() ),iPendingSettingChangeCmd( EFalse ) - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.CVtUiPrefSettingListBase" ) - __VTPRINTEXIT( "CVtUiPrefSettingListBase.CVtUiPrefSettingListBase" ) - } - - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::ConstructL() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.ConstructL" ) - BaseConstructL(); - // Get camera preferences extension. - iCameraPref = static_cast (iFeatureManager. - AppUi().Model().Extension( KVtEngExtensionCameraPreferences ) ); - // Create backgound bitmap - iViewfinderBitmap = new ( ELeave ) CFbsBitmap(); - __VTPRINTEXIT( "CVtUiPrefSettingListBase.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::ReadAndAppendItemL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::ReadAndAppendItemL( CDesCArray& aItems, - TInt aResId ) - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.ReadAndAppendItemL" ) - HBufC* text = iAppUi.GetEikonEnv()->AllocReadResourceLC( aResId ); - aItems.AppendL( *text ); - CleanupStack::PopAndDestroy(); // text - __VTPRINTEXIT( "CVtUiPrefSettingListBase.ReadAndAppendItemL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::CreateSettingPageL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::CreateSettingPageL() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.CreateSettingPageL" ) - CDesCArray* selectionArray = new ( ELeave ) - CDesCArraySeg( KMaxNumberOfArrayItems ); - CleanupStack::PushL( selectionArray ); - // Set items must be called before CurrentSelection function - // Otherwise iActiveItems array is not populated - iActiveItems.Reset(); - SetItemsL( *selectionArray ); - TInt resourceId = SettingPageResId(); - - // Current selection is needed when a new item is focused in the list - iCurrentSelection = iOriginalSelection; - TInt current( CurrentSelection() ); - if ( !iSettingPage ) - { - iSettingPage = new ( ELeave ) CVtUiTransparentSettingPage( resourceId, - iCurrentSelection, selectionArray ); - iSettingPage->ConstructL(); - iSettingPage->SetSettingPageObserver( this ); - iSettingPage->SetSettingPageEventStateObserver( this ); - } - CleanupStack::PopAndDestroy(); // selectionArray - ResizeBackroundBitmapRect(); - iSettingPage->SetBitmapPositionAndClipRect( iBitmapTopLeftCorner, - iBitmapClippingRect ); - __VTPRINTEXIT( "CVtUiPrefSettingListBase.CreateSettingPageL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSettingListBase::ShrinkBackroundBitmapRect -// --------------------------------------------------------------------------- -// -void CVtUiPrefSettingListBase::ResizeBackroundBitmapRect() - { - __VTPRINTENTER( "CVtUiPrefSettingListBase.ResizeBackroundBitmapRect" ) - TRect parent( iAppUi.MainControl().Size() ); - TAknWindowLineLayout rect; - TAknLayoutRect iStreamLayout; - VtUiLayout::GetSecondWindowStreamLayout( rect, ETrue ); - iStreamLayout.LayoutRect( parent, rect ); - - // In landscape rect from layout doesn't work - // for some reason - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - iBitmapClippingRect = parent; - } - else - { - iBitmapClippingRect = iStreamLayout.Rect(); - } - - iBitmapTopLeftCorner = iStreamLayout.Rect().iTl; - __VTPRINTEXIT( "CVtUiPrefSettingListBase.ResizeBackroundBitmapRect" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuiprefsliderbase.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuiprefsliderbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* Copyright (c) 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: Implementatin of base class for video pref sliders -* -*/ - - -#include - -#include "cvtuiprefsliderbase.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicomponentmanager.h" -#include "CVtUiAppUi.h" -#include "mvtuicommandmanager.h" -#include "cvtuiprefpopupbase.h" - - -// --------------------------------------------------------------------------- -// CVtUiPrefSliderBase::~CVtUiPrefSliderBase -// --------------------------------------------------------------------------- -// -CVtUiPrefSliderBase::~CVtUiPrefSliderBase() - { - __VTPRINTENTER( "CVtUiPrefSliderBase.~CVtUiPrefSliderBase" ) - __VTPRINTEXIT( "CVtUiPrefSliderBase.~CVtUiPrefSliderBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSliderBase::StartL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSliderBase::StartL() - { - __VTPRINTENTER( "CVtUiPrefSliderBase.StartL" ) - // call base class implementation - CVtUiSliderBase::StartL(); - - // Swap image places if needed - iFeatureManager.AppUi().SwitchViewFinderToMainPaneL(); - - __VTPRINTEXIT( "CVtUiPrefSliderBase.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPrefSliderBase::Stop -// --------------------------------------------------------------------------- -// -void CVtUiPrefSliderBase::Stop() - { - __VTPRINTENTER( "CVtUiPrefSliderBase.Stop" ) - if ( iFeatureState == MVtUiFeature::EActive ) - { - // call base class implementation - CVtUiSliderBase::Stop(); - - // Swap image places if needed - TRAP_IGNORE( iFeatureManager.AppUi().RestoreViewFinderL() ); - } - __VTPRINTEXIT( "CVtUiPrefSliderBase.Stop" ) - } - - -// --------------------------------------------------------------------------- -// CVtUiPrefSliderBase::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSliderBase::InitFeatureL() - { - __VTPRINTENTER( "CVtUiPrefSliderBase.InitFeatureL" ) - // call base class implementation - CVtUiSliderBase::InitFeatureL(); - __VTPRINTEXIT( "CVtUiPrefSliderBase.InitFeatureL" ) - } - - -// --------------------------------------------------------------------------- -// CVtUiPrefSliderBase::CVtUiPrefSliderBase -// --------------------------------------------------------------------------- -// -CVtUiPrefSliderBase::CVtUiPrefSliderBase( CVtUiFeatureManager& aFeatureManager, - TVtUiFeatureId aFeatureId ) : CVtUiSliderBase( - aFeatureManager, aFeatureId ) - { - __VTPRINTENTER( "CVtUiPrefSliderBase.CVtUiPrefSliderBase" ) - __VTPRINTEXIT( "CVtUiPrefSliderBase.CVtUiPrefSliderBase" ) - } - - -// --------------------------------------------------------------------------- -// CVtUiPrefSliderBase::BaseConstructL -// --------------------------------------------------------------------------- -// -void CVtUiPrefSliderBase::BaseConstructL() - { - __VTPRINTENTER( "CVtUiPrefSliderBase.BaseConstructL" ) - CVtUiSliderBase::BaseConstructL(); - __VTPRINTEXIT( "CVtUiPrefSliderBase.BaseConstructL" ) - } - - - - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuitransparentsettingpage.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuitransparentsettingpage.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 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: Transparent camera setting page. -* -*/ - - - -#include "cvtuitransparentsettingpage.h" -#include "mvtuisettingpageobserver.h" -#include "VtUiLayout.h" -#include -#include -#include -#include - - -/** -* CVtUiTransparentSettingPage -* -* Transparent camera setting page. Extends class CAknTransparentCameraSettingPage -* with position related functionality. -* -* @since S60 v3.2 -*/ -void CVtUiTransparentSettingPage::HandleLayoutChangeL() -{ - GetTheLayoutData(); -} - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::CVtUiTransparentSettingPage -// ----------------------------------------------------------------------------- -// -CVtUiTransparentSettingPage::CVtUiTransparentSettingPage( TInt aResourceID, - TInt& aCurrentSelectionIndex, const MDesCArray* aItemArray) : - CAknTransparentCameraSettingPage( aResourceID, - aCurrentSelectionIndex, aItemArray ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::ConstructL -// ----------------------------------------------------------------------------- -// -void CVtUiTransparentSettingPage::ConstructL() - { - CAknTransparentCameraSettingPage::ConstructL(); - } - - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::~CVtUiTransparentSettingPage -// ----------------------------------------------------------------------------- -// -CVtUiTransparentSettingPage::~CVtUiTransparentSettingPage() - { - } - -// ----------------------------------------------------------------------------- -// CVtUiNumberEntryControl::SetNumberEntryControlObserver -// ----------------------------------------------------------------------------- -// -void CVtUiTransparentSettingPage::SetSettingPageEventStateObserver( - MVtUiSettingPageObserver* aObserver ) - { - iSettingPageObserver = aObserver; - } - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::GetTheLayoutData -// ----------------------------------------------------------------------------- -// -void CVtUiTransparentSettingPage::GetTheLayoutData() - { - // Varieties - TInt labelVariety = 0; - TInt listboxVariety = 0; - - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - labelVariety = 1; - listboxVariety = 1; - } - - // Rect for label and shadow text - TRect labelRect = RectFromLayout( AknLayoutScalable_Apps:: - aid_placing_vt_set_title( labelVariety ) ); - - // Rect for listbox control - TRect listBoxRect = RectFromLayout( AknLayoutScalable_Apps:: - aid_placing_vt_set_content( listboxVariety ) ); - - // Get text label from parent class - CEikLabel* textLabel = TextLabel(); - - // Set label's new positions - if ( textLabel ) - { - textLabel->SetPosition( labelRect.iTl ); - } - - // Get shadow text from parent class - CEikLabel* shadowText = ShadowText(); - - // Set shadow text's new positions if shadow text exists - if( shadowText ) - { - // This information should come from layout, but - // also AknSettingPage does the positioning in this way. - labelRect.Move( 1, 1 ); - shadowText->SetPosition( labelRect.iTl ); - } - - // Set new rect for listbox control - ListBoxControl()->SetRect( listBoxRect ); - } - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::DynamicInitL -// ----------------------------------------------------------------------------- -// -void CVtUiTransparentSettingPage::DynamicInitL() - { - GetTheLayoutData(); - } - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::HandleControlEventL -// ----------------------------------------------------------------------------- -// -void CVtUiTransparentSettingPage::HandleControlEventL( CCoeControl* /*aControl*/, - TCoeEvent aEventType ) - { - __VTPRINTENTER( "CVtUiTransparentSettingPage.HandleControlEventL" ) - if ( aEventType == EEventStateChanged ) - { - if ( iSettingPageObserver ) - { - iSettingPageObserver->ListStateChangedL(); - } - __VTPRINT( DEBUG_GEN, " CVtUiTransparentSettingPage.EEventStateChanged" ) - } - - __VTPRINTEXIT( "CVtUiTransparentSettingPage.HandleControlEventL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiTransparentSettingPage::RectFromLayout -// ----------------------------------------------------------------------------- -// -TRect CVtUiTransparentSettingPage::RectFromLayout( - const TAknWindowComponentLayout& aComponentLayout ) const - { - __VTPRINTENTER( "CVtUiTransparentSettingPage.RectFromLayout" ) - - TInt main_pane_variety( 0 ); - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - main_pane_variety = 4; - } - - TAknWindowComponentLayout layout1 = - AknLayoutScalable_Apps::main_pane( main_pane_variety ); - TAknWindowComponentLayout layout2 = - AknLayoutScalable_Apps::main_video_tele_pane(); - - TAknWindowLineLayout layout = - TAknWindowComponentLayout::Compose( - TAknWindowComponentLayout::Compose( layout1, layout2 ), aComponentLayout ). - LayoutLine(); - - TRect screen; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screen ); - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( screen, layout ); - - // setting page is window owning control and its position is relative to mainpane - // layotdata is instead relative to screen - TRect rect( layoutRect.Rect() ); - rect.Move( -PositionRelativeToScreen() ); - - __VTPRINTEXIT( "CVtUiTransparentSettingPage.RectFromLayout" ) - return rect; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuivideoquality.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuivideoquality.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,441 +0,0 @@ -/* -* Copyright (c) 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: Video quality UI feature implementation. -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "cvtuivideoquality.h" -#include "tvtuifeatureids.h" -#include "VtUiLayout.h" -#include "VtUiUtility.h" -#include "CVtUiAppUi.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicomponentmanager.h" -#include "tvtuilocalvariation.h" -#include "tvtuistates.h" - -// constants -_LIT( KVtUiFormatActive, "0\t%S" ); -_LIT( KVtUiFormatInactive, "\t%S" ); -const TInt KVtUiMaxListItemLength = 128; - -// Implementation of TVtUiVideoQualityComponentState - -// --------------------------------------------------------------------------- -// TVtUiVideoQualityComponentState::TVtUiVideoQualityComponentState -// --------------------------------------------------------------------------- -// -TVtUiVideoQualityComponentState::TVtUiVideoQualityComponentState( - MVtUiComponent& aComponent ) : - TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdDialer | - MVtUiComponent::EComponentIdNumberEntry ) ) - { - __VTPRINTENTER( "TVtUiVideoQualityComponentState.Ctor" ) - __VTPRINTEXIT( "TVtUiVideoQualityComponentState.Ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::NewL -// --------------------------------------------------------------------------- -// -CVtUiVideoQuality* CVtUiVideoQuality::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiVideoQuality.NewL" ) - CVtUiVideoQuality* self = - new ( ELeave ) CVtUiVideoQuality( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiVideoQuality.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::~CVtUiVideoQuality -// --------------------------------------------------------------------------- -// -CVtUiVideoQuality::~CVtUiVideoQuality() - { - __VTPRINTENTER( "CVtUiVideoQuality.~CVtUiVideoQuality" ) - - // Delete the callback - delete iShowSelectionListCallback; - - // unregister component - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - - __VTPRINTEXIT( "CVtUiVideoQuality.~CVtUiVideoQuality" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::StartL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::StartL() - { - __VTPRINTENTER( "CVtUiVideoQuality.StartL" ) - if ( iFeatureState == MVtUiFeature::EReady ) - { - iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse ); - iFeatureManager.ComponentManager(). - RequestActivationL ( MVtUiComponent::EComponentIdVideoQuality ); - // set state - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXIT( "CVtUiVideoQuality.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::Stop -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::Stop() - { - __VTPRINTENTER( "CVtUiVideoQuality.Stop" ) - TRAP_IGNORE( - { - if ( iFeatureState == MVtUiFeature::EActive ) - { - iFeatureManager.ComponentManager(). - DeActivateComponentL ( MVtUiComponent::EComponentIdVideoQuality ); - // set state - iFeatureState = MVtUiFeature::EReady; - } - } ); - __VTPRINTEXIT( "CVtUiVideoQuality.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::InitFeatureL() - { - __VTPRINTENTER( "CVtUiVideoQuality.InitFeatureL" ) - // register component to conponent manager - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - iFeatureState = EReady; - __VTPRINTEXIT( "CVtUiVideoQuality.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::ComponentId -// --------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiVideoQuality::ComponentId() const - { - __VTPRINTENTER( "CVtUiVideoQuality.ComponentId" ) - __VTPRINTEXIT( "CVtUiVideoQuality.ComponentId" ) - return MVtUiComponent::EComponentIdVideoQuality; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::ComponentAsControl -// --------------------------------------------------------------------------- -// -CCoeControl* CVtUiVideoQuality::ComponentAsControl() - { - __VTPRINTENTER( "CVtUiWhiteBalance.ComponentAsControl" ) - __VTPRINTEXIT( "CVtUiVideoQuality.ComponentAsControl" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::DoActivateL() - { - __VTPRINTENTER( "CVtUiVideoQuality.DoActivateL" ) - __VTPRINTEXIT( "CVtUiVideoQuality.DoActivateL" ) - iFeatureManager.UiStates().SetVideoQualityModeOn( ETrue ); - iShowSelectionListCallback->CallBack(); - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::DoDeactivateL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::DoDeactivateL() - { - __VTPRINTENTER( "CVtUiVideoQuality.DoDeactivateL" ) - iFeatureManager.UiStates().SetVideoQualityModeOn( EFalse ); - __VTPRINTEXIT( "CVtUiVideoQuality.DoDeactivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::CreateIconLC -// --------------------------------------------------------------------------- -// -CGulIcon* CVtUiVideoQuality::CreateIconLC( TVtUiBitmapId aIconId, - TVtUiBitmapId aMaskId ) - { - __VTPRINTENTER( "CVtUiVideoQuality.CreateIconLC" ) - TFileName fileName; - TInt bitmapIndex; - TInt bitmapMaskIndex; - CFbsBitmap* newIconBmp; - CFbsBitmap* newIconMaskBmp; - VtUiLayout::Resolve( aIconId, fileName, bitmapIndex ); - TAknsItemID skinId = VtUiLayout::MapBitmapToSkinId( aIconId ); - VtUiLayout::Resolve( aMaskId, fileName, bitmapMaskIndex ); - AknsUtils::CreateIconL( AknsUtils::SkinInstance(), skinId, newIconBmp, - newIconMaskBmp, fileName, bitmapIndex, bitmapMaskIndex ); - CleanupStack::PushL( newIconBmp ); - CleanupStack::PushL( newIconMaskBmp ); - CGulIcon* gulIcon = CGulIcon::NewL( newIconBmp, newIconMaskBmp ); - CleanupStack::Pop( newIconMaskBmp ); - CleanupStack::Pop( newIconBmp ); - CleanupStack::PushL( gulIcon ); - __VTPRINTEXIT( "CVtUiVideoQuality.CreateIconLC" ) - return gulIcon; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::ShowSelectionListL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::ShowSelectionListL() - { - __VTPRINTENTER( "CVtUiVideoQuality.ShowSelectionListL" ) - // create listbox - CAknSingleGraphicPopupMenuStyleListBox* listBox = - new ( ELeave ) CAknSingleGraphicPopupMenuStyleListBox(); - CleanupStack::PushL( listBox ); - - // create popuplist - CAknPopupList* popUpList = - CAknPopupList::NewL( listBox, R_VIDEOTELUI_SOFTKEYS_SELECT_CANCEL ); - CleanupStack::PushL( popUpList ); - - listBox->ConstructL( popUpList, - EAknListBoxSelectionList | EAknListBoxLoopScrolling ); - - // Create an array of icons, reading them from the file and - // set them in the listbox - CArrayPtr* icons = new(ELeave) CAknIconArray( 1 ); - CleanupStack::PushL(icons); - CGulIcon* icon = CreateIconLC( EVtUiBitmap_qgn_prop_sub_current, - EVtUiBitmap_qgn_prop_sub_current_mask ); - icons->AppendL( icon ); - listBox->ItemDrawer()->ColumnData()->SetIconArray( icons ); - CleanupStack::Pop(2); //icon + icons - - // Read item array from resources - CDesCArray* textArray = - iFeatureManager.AppUi().GetEikonEnv()-> - ReadDesCArrayResourceL( R_VIDEOTELUI_VIDEO_QUALITY_ARRAY ); - CleanupStack::PushL( textArray ); - - CDesCArraySeg* listBoxRows = new ( ELeave ) CDesCArraySeg( 3 ); - CleanupStack::PushL( listBoxRows ); - - // Read items to array - SetItemsL( *listBoxRows, *textArray ); - - // Create listbox model. - CTextListBoxModel* listBoxModel = listBox->Model(); - // Set item array - listBoxModel->SetItemTextArray( listBoxRows ); - - // Set ownership - listBoxModel->SetOwnershipType( ELbmOwnsItemArray ); - - // Enable marquee - listBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue ); - - CleanupStack::Pop(2); // listBoxRows + testArray - - TInt popupOk = popUpList->ExecuteLD(); - - CleanupStack::Pop(); // popUpList - popUpList = NULL; - - if ( popupOk ) - { - ItemSelectedL( listBox->CurrentItemIndex() ); - } - else - { - // Selection canceled. - } - - // Reset arrays - listBoxRows->Reset(); - textArray->Reset(); - icons->ResetAndDestroy(); // icons + icon - - // Delete listbox - CleanupStack::PopAndDestroy( listBox ); // listBox - - iAsyncCallback->Set( TCallBack( &DoStop, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "CVtUiVideoQuality.ShowSelectionListL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::AsyncShowSelectionListL -// --------------------------------------------------------------------------- -// -TInt CVtUiVideoQuality::AsyncShowSelectionList( TAny* aPtr ) - { - CVtUiVideoQuality* self = reinterpret_cast< CVtUiVideoQuality* > ( aPtr ); - TRAPD( err, self->ShowSelectionListL() ); - return err; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::SetItemsL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::SetItemsL( CDesCArray& aTarget, - const CDesCArray& aSource ) - { - __VTPRINTENTER( "CVtUiVideoQuality.SetItemsL" ) - TInt activeItem( ActiveItem() ); - TInt count( aSource.Count() ); - for ( TInt i = 0; i < count; i++ ) - { - TBuf< KVtUiMaxListItemLength > item; - TPtrC sourceItem( aSource[ i ] ); - if ( i == activeItem ) - { - item.Format( KVtUiFormatActive(), &sourceItem ); - } - else - { - item.Format( KVtUiFormatInactive(), &sourceItem ); - } - aTarget.AppendL( item ); - } - __VTPRINTEXIT( "CVtUiVideoQuality.SetItemsL" ) - } -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::ActiveItem -// --------------------------------------------------------------------------- -// -TInt CVtUiVideoQuality::ActiveItem() const - { - __VTPRINTENTER( "CVtUiVideoQuality.ActiveItem" ) - TInt activeItem( 0 ); - MVtEngMedia::TVideoQuality videoQuality; - VtUiUtility::GetVideoQuality( iFeatureManager.AppUi().Model().Media(), - videoQuality ); - switch( videoQuality ) - { - case MVtEngMedia::EVideoQualityNormal: - activeItem = 0; - break; - case MVtEngMedia::EVideoQualityDetail: - activeItem = 1; - break; - case MVtEngMedia::EVideoQualityMotion: - activeItem = 2; - break; - default: - break; - } - __VTPRINTEXIT( "CVtUiVideoQuality.ActiveItem" ) - return activeItem; - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::ItemSelectedL -// --------------------------------------------------------------------------- -// - void CVtUiVideoQuality::ItemSelectedL( TInt aItemIndex ) - { - __VTPRINTENTER( "CVtUiVideoQuality.ItemSelectedL" ) - MVtEngMedia::TVideoQuality qualityLevel; - switch( aItemIndex ) - { - case 0: - qualityLevel = MVtEngMedia::EVideoQualityNormal; - break; - - case 1: - qualityLevel = MVtEngMedia::EVideoQualityDetail; - break; - - case 2: - qualityLevel = MVtEngMedia::EVideoQualityMotion; - break; - default: - break; - } - // cast the parameter - TPtrC8 params( reinterpret_cast< TUint8* >( &qualityLevel ), - sizeof( MVtEngMedia::TVideoQuality ) ); - iFeatureManager.AppUi().DoExecuteCmdL( KVtEngSetVideoQuality, ¶ms ); - __VTPRINTEXIT( "CVtUiVideoQuality.ItemSelectedL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::CVtUiVideoQuality -// --------------------------------------------------------------------------- -// -CVtUiVideoQuality::CVtUiVideoQuality( CVtUiFeatureManager& aFeatureManager ) : - CVtUiFeatureBase( EVtUiFeatureIdVideoQuality, aFeatureManager ), - iComponentState( *this ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.CVtUiVideoQuality" ) - __VTPRINTEXIT( "CVtUiVideoQuality.CVtUiVideoQuality" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVideoQuality::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiVideoQuality::ConstructL() - { - __VTPRINTENTER( "CVtUiVideoQuality.ConstructL" ) - BaseConstructL(); - iShowSelectionListCallback = new ( ELeave ) CAsyncCallBack( - TCallBack( &AsyncShowSelectionList, this ), - CActive::EPriorityStandard ); - __VTPRINTEXIT( "CVtUiVideoQuality.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiVideoQuality::DoStop -// ----------------------------------------------------------------------------- -// -TInt CVtUiVideoQuality::DoStop( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiVideoQuality.DoStop" ) - CVtUiFeatureBase* self = static_cast< CVtUiFeatureBase* >( aAny ); - self->Stop(); - __VTPRINTEXIT( "CVtUiVideoQuality.DoStop" ) - return KErrNone; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/prefs/cvtuiwhitebalance.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuiwhitebalance.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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: White balance UI feature implementation. -* -*/ - - -#include -#include -#include -#include "cvtuiwhitebalance.h" -#include "tvtuifeatureids.h" -#include -#include -#include "mvtuicomponentmanager.h" -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" -#include "tvtuilocalvariation.h" -#include "tvtuistates.h" -#include "cvtuifeaturemanager.h" -#include "cvtuicommandmanager.h" - -// Implementation of TVtUiWhiteBalanceComponentState - -// --------------------------------------------------------------------------- -// TVtUiWhiteBalanceComponentState::TVtUiWhiteBalanceComponentState -// --------------------------------------------------------------------------- -// -TVtUiWhiteBalanceComponentState::TVtUiWhiteBalanceComponentState( - MVtUiComponent& aComponent ) : - TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry ) ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::NewL -// --------------------------------------------------------------------------- -// -CVtUiWhiteBalance* CVtUiWhiteBalance::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.NewL" ) - CVtUiWhiteBalance* self = - new ( ELeave ) CVtUiWhiteBalance( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiWhiteBalance.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::~CVtUiWhiteBalance -// --------------------------------------------------------------------------- -// -CVtUiWhiteBalance::~CVtUiWhiteBalance() - { - __VTPRINTENTER( "CVtUiWhiteBalance.~CVtUiWhiteBalance" ) - // unregister layout change - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - // unregister component - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "CVtUiWhiteBalance.~CVtUiWhiteBalance" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::StartL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::StartL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.StartL" ) - if ( iFeatureState == MVtUiFeature::EReady ) - { - iFeatureManager.AppUi().EnableCommandActivatingAndCleanupPushL(); - iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse ); - iFeatureManager.ComponentManager(). - RequestActivationL ( MVtUiComponent::EComponentIdWhiteBalance ); - CleanupStack::Pop(); // EnableCommandActivatingAndCleanupPushL - // set state - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXIT( "CVtUiWhiteBalance.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::Stop -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::Stop() - { - __VTPRINTENTER( "CVtUiWhiteBalance.Stop" ) - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoStopL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "CVtUiWhiteBalance.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::InitFeatureL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.InitFeatureL" ) - CVtUiPrefSettingListBase::InitFeatureL(); - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - iFeatureState = EReady; - __VTPRINTEXIT( "CVtUiWhiteBalance.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::ComponentId -// --------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiWhiteBalance::ComponentId() const - { - __VTPRINTENTER( "CVtUiWhiteBalance.ComponentId" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.ComponentId" ) - return MVtUiComponent::EComponentIdWhiteBalance; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::ComponentAsControl -// --------------------------------------------------------------------------- -// -CCoeControl* CVtUiWhiteBalance::ComponentAsControl() - { - __VTPRINTENTER( "CVtUiWhiteBalance.ComponentAsControl" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.ComponentAsControl" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::DoActivateL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoActivateL" ) - // get supported white balance modes - iCameraPref->GetSupportedWhiteBalanceModes( iSupportedModes ); - __VTPRINT2( DEBUG_GEN,"CVtUiWhiteBalance.DoActivateL=%d", iSupportedModes ) - iFeatureManager.UiStates().SetWhiteBalanceModeOn( ETrue ); - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoStartL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "CVtUiWhiteBalance.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoDeactivateL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::DoDeactivateL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoDeactivateL" ) - iFeatureManager.UiStates().SetWhiteBalanceModeOn( EFalse ); - CVtUiPrefSettingListBase::StopSettingPageL(); - __VTPRINTEXIT( "CVtUiWhiteBalance.DoDeactivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::HandleLayoutChangeL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::HandleLayoutChangeL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.HandleLayoutChangeL" ) - if ( iFeatureState == MVtUiFeature::EActive ) - { - SizeChanged(); - } - __VTPRINTEXIT( "CVtUiWhiteBalance.HandleLayoutChangeL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::CurrentSelection -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::CurrentSelection() - { - __VTPRINTENTER( "CVtUiWhiteBalance.CurrentSelection" ) - // ask from engine which item is currently active - MVtEngCameraPreferences::TWhiteBalance wb; - if ( iCameraPref->GetWhiteBalance( wb ) ) - { - __VTPRINT( DEBUG_GEN, "CurrentSelection::error" ); - __VTPRINTEXIT( "CVtUiWhiteBalance.CurrentSelection" ) - // if error occured return 0 i.e. first list item - return 0; - } - __VTPRINTEXIT( "CVtUiWhiteBalance.CurrentSelection" ) - return MapWBEnumToArrayIndex( wb ); - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::SetItemsL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::SetItemsL( CDesCArray& aArray ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.SetItemsL" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.SetItemsL=%d", iSupportedModes ) - // Auto mode allways supported - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_AUTOMATIC_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EAuto ); - - if( iSupportedModes & MVtEngCameraPreferences::EDaylight ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_SUNNY_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EDaylight ); - } - if( iSupportedModes & MVtEngCameraPreferences::ECloudy ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_CLOUDY_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ECloudy ); - } - if( iSupportedModes & MVtEngCameraPreferences::ETungsten ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_INCANDESCENT_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ETungsten ); - } - if( iSupportedModes & MVtEngCameraPreferences::EFluorescent ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_FLUORESCENT_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EFluorescent ); - } - __VTPRINTEXIT( "CVtUiWhiteBalance.SetItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::SettingPageResId -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::SettingPageResId() const - { - __VTPRINTENTER( "CVtUiWhiteBalance.SettingPageResId" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.SettingPageResId" ) - return R_VIDEOTELUI_WHITE_BALANCE_SETTING_PAGE; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::SettingPageItemChangedL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::SettingPageItemChangedL( TInt aIndex ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.SettingPageItemChangedL" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.index=%d", aIndex ) - if ( iFeatureManager.UiStates().ExecState() == TVtUiStates::EExecStateResetting ) - { - __VTPRINTEXIT( "CVtUiWhiteBalance.SettingPageItemChangedL" ) - return; - } - // Map index to right white balance value - MVtEngCameraPreferences::TWhiteBalance wb = MapArrayIndexToWBEnum( aIndex ); - - // cast the parameter - TPtrC8 params( reinterpret_cast< TUint8* >( &wb ), - sizeof( MVtEngCameraPreferences::TWhiteBalance ) ); - - // Adjust white balance - MVtEngMedia::TCameraId camId; - iFeatureManager.AppUi().Model().Media().GetCurrentCameraId(camId); - - if( camId == MVtEngMedia::ESecondaryCamera ) - { - iFeatureManager.AppUi().DoExecuteCmdL( KVtEngSetWhiteBalance, ¶ms ); - iPendingSettingChangeCmd = EFalse; - } - else - iPendingSettingChangeCmd = ETrue; - __VTPRINTEXIT( "CVtUiWhiteBalance.SettingPageItemChangedL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::CVtUiWhiteBalance -// --------------------------------------------------------------------------- -// -CVtUiWhiteBalance::CVtUiWhiteBalance( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefSettingListBase( aFeatureManager, EVtUiFeatureIdWhiteBalance ), - iComponentState( *this ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.CVtUiWhiteBalance" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.CVtUiWhiteBalance" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::MapWBEnumToArrayIndex -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::MapWBEnumToArrayIndex( MVtEngCameraPreferences:: - TWhiteBalance& aWhiteBalance ) const - { - __VTPRINTENTER( "CVtUiWhiteBalance.MapWBEnumToArrayIndex" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.cpunt=%d", iActiveItems.Count() ) - for ( TInt i = 0; i < iActiveItems.Count(); ++i ) - { - if ( iActiveItems [ i ] == aWhiteBalance ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.index=%d", i ) - __VTPRINTEXIT( "CVtUiWhiteBalance.MapWBEnumToArrayIndex" ) - return i; - } - } - // not found - __VTPRINTEXIT( "CVtUiWhiteBalance.MapWBEnumToArrayIndexNF" ) - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::MapArrayIndexToWBEnum -// --------------------------------------------------------------------------- -// -MVtEngCameraPreferences::TWhiteBalance CVtUiWhiteBalance:: - MapArrayIndexToWBEnum( TInt aIndex) const - { - __VTPRINTENTER( "CVtUiWhiteBalance.MapArrayIndexToWBEnum" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.index=%d", aIndex ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.count=%d", iActiveItems.Count() ) - const TInt count = iActiveItems.Count(); - if ( count > 0 && aIndex < count && aIndex >= 0 ) - { - __VTPRINTEXIT( "CVtUiWhiteBalance.MapArrayIndexToWBEnum" ) - return static_cast< MVtEngCameraPreferences::TWhiteBalance > - ( iActiveItems[ aIndex ] ); - } - else // not valid index return first item in the list - { - __VTPRINTEXIT( "CVtUiWhiteBalance.MapArrayIndexToWBEnum_ERROR_INDEX" ) - return static_cast< MVtEngCameraPreferences::TWhiteBalance > - ( iActiveItems[ 0 ] ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoStop -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::DoStopL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoStopL" ) - CVtUiWhiteBalance* self = static_cast< CVtUiWhiteBalance* >( aAny ); - if ( self->iFeatureState == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiWhiteBalance::Stop1" ); - self->iFeatureManager.ComponentManager(). - DeActivateComponentL ( MVtUiComponent::EComponentIdWhiteBalance ); - // set state - self->iFeatureState = MVtUiFeature::EReady; - } - __VTPRINTEXIT( "CVtUiWhiteBalance.DoStopL" ) - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoStart -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::DoStartL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoStart" ) - CVtUiWhiteBalance* self = static_cast< CVtUiWhiteBalance* >( aAny ); - self->CVtUiPrefSettingListBase::StartSettingPageL(); - self->iFeatureManager.UiStates().SetIsCommandActivating( EFalse ); - __VTPRINTEXIT( "CVtUiWhiteBalance.DoStart" ) - return KErrNone; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/softkey/cvtuisoftkeycontext.cpp --- a/vtuis/videotelui/src/features/softkey/cvtuisoftkeycontext.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* 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: Sofkey context class implementation. -* -*/ - - -#include - -#include "cvtuisoftkeycontext.h" - -/** Softkey context reference priority */ -const TInt KVtUiSoftkeyContextPriority = 200; - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyContext::~CVtUiSoftkeyContext -// --------------------------------------------------------------------------- -// -CVtUiSoftkeyContext::~CVtUiSoftkeyContext() - { - __VTPRINTENTER( "SKCtx.~" ) - UnregisterCommandContext(); - __VTPRINTEXIT( "SKCtx.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyContext::NewL -// --------------------------------------------------------------------------- -// -CVtUiSoftkeyContext* CVtUiSoftkeyContext::NewL( - MVtUiCommandManager& aCommandManager ) - { - __VTPRINTENTER( "SKCtx.NewL" ) - CVtUiSoftkeyContext* self = - new ( ELeave ) CVtUiSoftkeyContext( aCommandManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "SKCtx.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyContext::ValidateL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeyContext::ValidateL( CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "SKCtx.ValidateL" ) - ValidateSoftkeyItemsL( aAction ); - __VTPRINTEXIT( "SKCtx.ValidateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyContext::CVtUiSoftkeyContext -// --------------------------------------------------------------------------- -// -CVtUiSoftkeyContext::CVtUiSoftkeyContext( MVtUiCommandManager& aCommandManager ) - : CVtUiCmdContext( aCommandManager, EVtUiCmdContextTypeSoftkey, - KVtUiSoftkeyContextPriority ) - { - __VTPRINTENTER( "SKCtx.ctor" ) - __VTPRINTEXIT( "SKCtx.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyContext::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeyContext::ConstructL() - { - __VTPRINTENTER( "SKCtx.ConstructL" ) - RegisterCommandContextL(); - __VTPRINTEXIT( "SKCtx.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/softkey/cvtuisoftkeys.cpp --- a/vtuis/videotelui/src/features/softkey/cvtuisoftkeys.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* 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: Softkey UI feature implementation. -* -*/ - - -#include -#include -#include "cvtuisoftkeys.h" -#include "cvtuisoftkeysetting.h" -#include "cvtuisoftkeyvalidationaction.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicommandmanager.h" -#include "cvtuisoftkeycontext.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::NewL -// --------------------------------------------------------------------------- -// -CVtUiSoftkeys* CVtUiSoftkeys::NewL( CVtUiFeatureManager& aFeatureManager, - CEikButtonGroupContainer& aButtonGroupContainer ) - { - __VTPRINTENTER( "SKs.NewL" ) - CVtUiSoftkeys* self = - new ( ELeave ) CVtUiSoftkeys( aFeatureManager, aButtonGroupContainer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "SKs.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::~CVtUiSoftkeys -// --------------------------------------------------------------------------- -// -CVtUiSoftkeys::~CVtUiSoftkeys() - { - __VTPRINTENTER( "SKs.~" ) - iFeatureManager.CommandManager().RemoveCommandUi( *this ); - delete iSoftkeyCommandContext; - delete iSoftkeySetting; - delete iSoftkeyValidationAction; - __VTPRINTEXIT( "SKs.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::ButtonGroup -// --------------------------------------------------------------------------- -// -CEikButtonGroupContainer& CVtUiSoftkeys::ButtonGroup() - { - __VTPRINTENTER( "SKs.ButtonGroup" ) - __VTPRINTEXIT( "SKs.ButtonGroup" ) - return iButtonGroupContainer; - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::StartL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeys::StartL() - { - __VTPRINTENTER( "SKs.StartL" ) - __VTPRINTEXIT( "SKs.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::Stop -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeys::Stop() - { - __VTPRINTENTER( "SKs.Stop" ) - __VTPRINTEXIT( "SKs.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeys::InitFeatureL() - { - __VTPRINTENTER( "SKs.InitFeatureL" ) - __VTPRINTEXIT( "SKs.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::RefreshL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeys::RefreshL() - { - __VTPRINTENTER( "SKs.RefreshL" ) - iFeatureManager.CommandManager().ValidateSoftkeyItemsL( - *iSoftkeyValidationAction ); - iSoftkeySetting->DefineCommandsL( *iSoftkeyValidationAction ); - iButtonGroupContainer.DrawNow(); - __VTPRINTEXIT( "SKs.RefreshL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::AddCommandModifierL -// --------------------------------------------------------------------------- -// -TInt CVtUiSoftkeys::AddCommandModifier( CVtUiCommandModifyBase& aModifier ) - { - __VTPRINTENTER( "SKs.AddCommandModifier" ) - TInt result( iSoftkeySetting->AddModifier( aModifier ) ); - __VTPRINTEXITR( "SKs.AddCommandModifier %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::RemoveCommandModifier -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeys::RemoveCommandModifier( CVtUiCommandModifyBase& aModifier ) - { - __VTPRINTENTER( "SKs.RemoveCommandModifier" ) - iSoftkeySetting->RemoveModifier( aModifier ); - __VTPRINTEXIT( "SKs.RemoveCommandModifier" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::CVtUiSoftkeys -// --------------------------------------------------------------------------- -// -CVtUiSoftkeys::CVtUiSoftkeys( CVtUiFeatureManager& aFeatureManager, - CEikButtonGroupContainer& aButtonGroupContainer ) - : CVtUiFeatureBase( EVtUiFeatureIdSoftkey, aFeatureManager ), - iButtonGroupContainer( aButtonGroupContainer ) - { - __VTPRINTENTER( "SKs.ctor" ) - __VTPRINTEXIT( "SKs.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeys::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeys::ConstructL() - { - __VTPRINTENTER( "SKs.ConstructL" ) - iSoftkeyCommandContext = CVtUiSoftkeyContext::NewL( - iFeatureManager.CommandManager() ); - iSoftkeySetting = new ( ELeave ) CVtUiSoftkeySetting( *this ); - iSoftkeyValidationAction = CVtUiSoftkeyValidationAction::NewL(); - User::LeaveIfError( - iFeatureManager.CommandManager().AddCommandUi( *this ) ); - __VTPRINTEXIT( "SKs.ConstructL" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/softkey/cvtuisoftkeysetting.cpp --- a/vtuis/videotelui/src/features/softkey/cvtuisoftkeysetting.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* 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: Softkey setting implementation. -* -*/ - - -#include -#include - -#include "cvtuisoftkeys.h" -#include "cvtuisoftkeysetting.h" -#include "cvtuisoftkeyvalidationaction.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiSoftkeySetting::~CVtUiSoftkeySetting -// --------------------------------------------------------------------------- -// -CVtUiSoftkeySetting::~CVtUiSoftkeySetting() - { - __VTPRINTENTER( "SKSet.~" ) - __VTPRINTEXIT( "SKSet.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeySetting::CVtUiSoftkeySetting -// --------------------------------------------------------------------------- -// -CVtUiSoftkeySetting::CVtUiSoftkeySetting( CVtUiSoftkeys& aSoftkeys ) : - CVtUiCommandSetting( ECommandTypeSoftkeys ), - iSoftkeys( &aSoftkeys ) - { - __VTPRINTENTER( "SKSet.ctor" ) - __VTPRINTEXIT( "SKSet.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeySetting::DoDefineCommandsL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeySetting::DoDefineCommandsL() - { - __VTPRINTENTER( "SKSet.DoDefineCommandsL" ) - iSoftkeys->ButtonGroup().SetCommandSetL( Action().ResourceId() ); - __VTPRINTEXIT( "SKSet.DoDefineCommandsL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/softkey/cvtuisoftkeyvalidationaction.cpp --- a/vtuis/videotelui/src/features/softkey/cvtuisoftkeyvalidationaction.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* -* 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: Softkey validation action implementation. -* -*/ - - -#include -#include -#include - -#include "cvtuisoftkeyvalidationaction.h" -#include "tvtuicmdvalidatorcallback.h" - -// ======== MEMBER FUNCTIONS ======== - -// softkey ids -static const TInt SKIDS[] = - { - R_AVKON_SOFTKEYS_OPTIONS_BACK, - R_VIDEOTELUI_SOFTKEYS_EMPTY_ACTIVE_COMMAND, - R_VIDEOTELUI_SOFTKEYS_EMPTY_DIALEREXIT, - R_VIDEOTELUI_SOFTKEYS_SHARE_OBJECT_IMAGE, - R_VIDEOTELUI_SOFTKEYS_CAPTURE_VIDEO, - R_VIDEOTELUI_SOFTKEYS_ENABLE_AUDIO, - R_VIDEOTELUI_SOFTKEYS_ENABLE_VIDEO, - R_VIDEOTELUI_SOFTKEYS_DIALER, - R_VIDEOTELUI_SOFTKEYS_BT_HANDSFREE, - R_VIDEOTELUI_SOFTKEYS_LOUDSPEAKER, - R_VIDEOTELUI_SOFTKEYS_HANDSET_B, - R_VIDEOTELUI_SOFTKEYS_END_CALL, - R_AVKON_SOFTKEYS_EMPTY // this is end marker, keep it last - }; - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyValidationAction::NewL -// --------------------------------------------------------------------------- -// -CVtUiSoftkeyValidationAction* CVtUiSoftkeyValidationAction::NewL() - { - __VTPRINTENTER( "SKValAct.NewL" ) - CVtUiSoftkeyValidationAction* self = - new ( ELeave ) CVtUiSoftkeyValidationAction(); - __VTPRINTEXIT( "SKValAct.NewL" ) - return self; - } -// --------------------------------------------------------------------------- -// CVtUiSoftkeyValidationAction::BeginProcess -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeyValidationAction::BeginProcess() - { - __VTPRINTENTER( "SKValAct.EndProcess" ) - CVtUiCmdValidationActionBase::BeginProcess(); - iCurrentIdx = 0; - __VTPRINTEXIT( "SKValAct.EndProcess" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyValidationAction::ProcessL -// --------------------------------------------------------------------------- -// -void CVtUiSoftkeyValidationAction::ProcessL( - const MVtUiCmdValidatorCallBack& aCallBack ) - { - __VTPRINTENTER( "SKValAct.ProcessL" ) - while ( SKIDS[ iCurrentIdx ] != R_AVKON_SOFTKEYS_EMPTY ) - { - if ( aCallBack.Call( SKIDS[ iCurrentIdx ] ) ) - { - break; - } - else - { - iCurrentIdx++; - } - } - __VTPRINTEXIT( "SKValAct.ProcessL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyValidationAction::ResourceId -// --------------------------------------------------------------------------- -// -TInt CVtUiSoftkeyValidationAction::ResourceId() const - { - __VTPRINTENTER( "SKValAct.ResourceId" ) - __VTPRINTEXITR( "SKValAct.ResourceId %d", SKIDS[ iCurrentIdx ] ) - return SKIDS[ iCurrentIdx ]; - } - -// --------------------------------------------------------------------------- -// CVtUiSoftkeyValidationAction::CVtUiSoftkeyValidationAction -// --------------------------------------------------------------------------- -// -CVtUiSoftkeyValidationAction::CVtUiSoftkeyValidationAction() - { - __VTPRINTENTER( "SKValAct.ctor" ) - __VTPRINTEXIT( "SKValAct.ctor" ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuifixedtoolbar.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuifixedtoolbar.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,294 +0,0 @@ -/* -* Copyright (c) 2008 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: Fixed toolbar UI feature implementation. -* -*/ - - -// INCLUDE FILES - -#include "cvtuifixedtoolbar.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicomponentmanager.h" -#include "mvtuicommandmanager.h" -#include "videotelui.hrh" -#include "tvtuistates.h" -#include "cvtuitoolbarcmdpolicy.h" -#include "cvtuitoolbarskmodifier.h" -#include "CVtUiAppUi.h" -#include -#include -#include -#include "tvtuistates.h" -#include - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::NewL -// ----------------------------------------------------------------------------- -// -CVtUiFixedToolbar* CVtUiFixedToolbar::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "FixedToolbar.NewL" ) - CVtUiFixedToolbar* self = new ( ELeave ) CVtUiFixedToolbar( - aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - __VTPRINTEXIT( "FixedToolbar.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::CVtUiFixedToolbar -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiFixedToolbar::CVtUiFixedToolbar( CVtUiFeatureManager& - aFeatureManager ) : CVtUiToolbarBase( aFeatureManager ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::ConstructL() - { - __VTPRINTENTER( "FixedToolbar.ConstructL" ) - BaseConstructL(); - - //create toolbar - iToolbar = iFeatureManager.AppUi().CurrentFixedToolbar(); - - // create and add items into the toolbar - CreateToolbarButtonsL(); - - // Dim all toolbar buttons until first refresh is called - DimToolbarbuttons( ETrue ); - - if ( !Layout_Meta_Data::IsLandscapeOrientation() ) - { - MakeToolbarVisible( EFalse ); - } - - __VTPRINTEXIT( "FixedToolbar.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::~CVtUiFixedToolbar -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiFixedToolbar::~CVtUiFixedToolbar() - { - __VTPRINTENTER( "FixedToolbar.~" ) - delete iIdle; - __VTPRINTEXIT( "FixedToolbar.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::CreateToolbarButtons -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::CreateToolbarButtonsL() - { - __VTPRINTENTER( "FixedToolbar.CreateToolbarButtons" ) - // Default buttons created in base clase - CVtUiToolbarBase::CreateToolbarButtonsL(); - - // toggle microphone - CreateToolbarItemL( R_AVKONBUTTON_AUDIO_ROUTING_BUTTON, - EVtUiCmdToolbarAudioRouting, iFeatureManager.AppUi() ); - - - __VTPRINTEXIT( "FixedToolbar.CreateToolbarButtons" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::PopulateCmdsIdsL -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::PopulateCmdsIdsL() - { - __VTPRINTENTER( "FixedToolbar.PopulateCmdsIdsL" ) - // Default commands populated in base clase - CVtUiToolbarBase::PopulateCmdsIdsL(); - - CVtUiAppUi& appUi = iFeatureManager.AppUi(); - - iCmdIds.AppendL( EVtUiCmdActivateBT ); - iCmdIds.AppendL( EVtUiCmdSwitchFromBTToIHF ); - iCmdIds.AppendL( EVtUiCmdActivateLoudspeaker ); - iCmdIds.AppendL( EVtUiCmdDeactivateLoudspeaker ); - - __VTPRINTEXIT( "FixedToolbar.PopulateCmdsIdsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::SetToolbarVisibilityAfterLayoutChangeL -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::SetToolbarVisibilityAfterLayoutChangeL( TBool aVisible ) - { - // Portrait to landscape show tb - __VTPRINTENTER( "FixedToolbar.SetToolbarVisibilityAfterLayoutChangeL" ) - if( aVisible ) - { - __VTPRINT(DEBUG_GEN, "FixedToolbar.SetToolbarVisibilityAfterLayoutChangeL.1" ) - // Set flag - iFeatureManager.UiStates().SetIsFixedToolbarVisible( ETrue ); - // set visible - iFeatureManager.AppUi().CurrentFixedToolbar() - ->SetToolbarVisibility( ETrue ); - // Set callback to dim toolbarbuttons - if ( !iIdle ) - { - iIdle = CIdle::NewL( CActive::EPriorityIdle ); - } - iIdle->Start( TCallBack( &DoDimToolbarButtons, this ) ); - } - // Landsacpe to portrait hide tb - else - { - __VTPRINT(DEBUG_GEN, "FixedToolbar.SetToolbarVisibilityAfterLayoutChangeL.2" ) - DimToolbarbuttons( EFalse ); - iFeatureManager.AppUi().CurrentFixedToolbar() - ->SetToolbarVisibility( EFalse ); - // Set flag - iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse ); - } - __VTPRINTEXIT( "FixedToolbar.SetToolbarVisibilityAfterLayoutChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::DimToolbarbuttons -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::DimToolbarbuttons( TBool aIsDimmed ) - { - __VTPRINTENTER( "FixedToolbar.DimToolbarbuttons" ) - iToolbar->SetItemDimmed( EVtUiCmdToolbarToggleVideo, aIsDimmed, EFalse ); - iToolbar->SetItemDimmed( EVtUiCmdToolbarToggleMicrophone, aIsDimmed, EFalse ); - iToolbar->SetItemDimmed( EVtUiCmdToolbarAudioRouting, aIsDimmed, ETrue ); - __VTPRINTEXITR( "FixedToolbar.DimToolbarbuttons %d", aIsDimmed ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::MakeToolbarVisible -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::MakeToolbarVisible( const TBool aVisible ) - { - __VTPRINTENTER( "FixedToolbar.MakeToolbarVisible" ) - iFeatureManager.AppUi().CurrentFixedToolbar()-> - SetToolbarVisibility( aVisible ); - iFeatureManager.UiStates().SetIsFixedToolbarVisible( aVisible ); - __VTPRINTEXITR( "FixedToolbar.MakeToolbarVisible %d", aVisible ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::DoShowToolbarL -// ----------------------------------------------------------------------------- -// -TInt CVtUiFixedToolbar::DoShowToolbarL( TAny* aAny ) - { - __VTPRINTENTER( "FixedToolbar.DoShowToolbarL" ) - CVtUiFixedToolbar* self = static_cast< CVtUiFixedToolbar* >( aAny ); - self->iFeatureManager.AppUi().CurrentFixedToolbar() - ->SetToolbarVisibility( ETrue ); - __VTPRINTEXIT( "FixedToolbar.DoShowToolbarL" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::DoToolbarButton -// ----------------------------------------------------------------------------- -// -TInt CVtUiFixedToolbar::DoDimToolbarButtons( TAny* aAny ) - { - __VTPRINTENTER( "FixedToolbar.DoDimToolbarButtons" ) - CVtUiFixedToolbar* self = static_cast< CVtUiFixedToolbar* >( aAny ); - self->DimToolbarbuttons( ETrue ); - __VTPRINTEXIT( "FixedToolbar.DoDimToolbarButtons" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::DoActivateL -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::DoActivateL() - { - __VTPRINTENTER( "FixedToolbar.DoActivateL" ) - if ( !iFeatureManager.UiStates().IsFixedToolbarVisible() && - !Layout_Meta_Data::IsLandscapeOrientation() ) - { - // reset flag - iFeatureManager.UiStates().SetIsFixedToolbarVisible( ETrue ); - // Show toolbar with delay in order to prevent overdrawing - // witht other components. - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoShowToolbarL, this ) ); - iAsyncCallback->CallBack(); - } - else - { - // Undim buttons - __VTPRINT( DEBUG_GEN, "FixedToolbar.DoDeactivateL.DTB EFalse" ) - // toolbar might be unvisible, because condition in the contructor - // "if ( !Layout_Meta_Data::IsLandscapeOrientation() )" - // will be evaluated ture eventhough the orientation is forced to be landsacepe - // because it seems that the orientation is still portrait in the constructor phase - MakeToolbarVisible( ETrue ); - DimToolbarbuttons( EFalse ); - } - // Start blocking pointer events - BlockPointerEvents( ETrue ); - // Base class - CVtUiToolbarBase::DoActivateL(); - __VTPRINTEXIT( "FixedToolbar.DoActivateL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFixedToolbar::DoDeactivateL -// ----------------------------------------------------------------------------- -// -void CVtUiFixedToolbar::DoDeactivateL() - { - __VTPRINTENTER( "FixedToolbar.DoDeactivateL" ) - iAsyncCallback->Cancel(); - if ( !iFeatureManager.UiStates().IsFixedToolbarVisible() && - !Layout_Meta_Data::IsLandscapeOrientation() ) - { - iFeatureManager.AppUi().CurrentFixedToolbar() - ->SetToolbarVisibility( EFalse ); - __VTPRINT( DEBUG_GEN, "FixedToolbar.DoDeactivateL.Vs" ) - } - else - { - // Dim all buttons - __VTPRINT( DEBUG_GEN, "FixedToolbar.DoDeactivateL.DTB ETrue" ) - DimToolbarbuttons( ETrue ); - } - // Stop blocking pointer events - BlockPointerEvents( EFalse ); - // Base class - CVtUiToolbarBase::DoDeactivateL(); - __VTPRINTEXIT( "FixedToolbar.DoDeactivateL" ) - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuifloatingtoolbar.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuifloatingtoolbar.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,468 +0,0 @@ -/* -* Copyright (c) 2008 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: Floating toolbar UI feature implementation. -* -*/ - - -// INCLUDE FILES - -#include "cvtuifloatingtoolbar.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicomponentmanager.h" -#include "mvtuicommandmanager.h" -#include "cvtuitoolbarbutton.h" -#include "videotelui.hrh" -#include "tVtuifeaturevariation.h" -#include "tvtuistates.h" -#include "cvtuitoolbarcmdpolicy.h" -#include "cvtuitoolbarskmodifier.h" -#include "CVtUiAppUi.h" -#include -#include -#include -#include -#include -#include -#include - -// CONSTANTS -static const TInt KThreeToolbarbuttons = 3; -static const TInt KFourToolbarbuttons = 4; -static const TInt KFiveToolbarbuttons = 5; -static const TInt KSixToolbarbuttons = 6; -static const TInt KSevenToolbarbuttons = 7; - - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::NewL -// ----------------------------------------------------------------------------- -// -CVtUiFloatingToolbar* CVtUiFloatingToolbar::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "FloatingToolbar.NewL" ) - TVtUiSideVolumeKeysVariation svkvariation; - if ( !svkvariation.IsSideVolumeKeysSupported() ) - { - // User of this class should notice that newl could return null, - // even if no leave happened. - __VTPRINT(DEBUG_GEN, "Toolbar.NewL.NULL" ) - return NULL; - } - CVtUiFloatingToolbar* self = new ( ELeave ) CVtUiFloatingToolbar( - aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - __VTPRINTEXIT( "FloatingToolbar.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::CVtUiFloatingToolbar -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiFloatingToolbar::CVtUiFloatingToolbar( CVtUiFeatureManager& - aFeatureManager ) : CVtUiToolbarBase( aFeatureManager ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::ConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::ConstructL() - { - __VTPRINTENTER( "FloatingToolbar.ConstructL" ) - BaseConstructL(); - - // fixed toolbar is always visible ( defined in resource) hide it - iFeatureManager.AppUi().CurrentFixedToolbar()->SetToolbarVisibility( EFalse ); - - // create toolbar - iToolbar = CAknToolbar::NewL( R_VIDEOTELUI_FLOATING_TOOLBAR ); - - GfxTransEffect::Register( iToolbar, KNullUid, EFalse ); - - // create and add items into the toolbar - CreateToolbarButtonsL(); - - iFeatureManager.UiStates().SetIsFloatingToolbarVisible( EFalse ); - - // layout toolbar - LayoutToolbarL(); - - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - - __VTPRINTEXIT( "FloatingToolbar.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::~CVtUiFloatingToolbar -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiFloatingToolbar::~CVtUiFloatingToolbar() - { - __VTPRINTENTER( "FloatingToolbar.~" ) - // unregister resource change registration - iFeatureManager.ComponentManager().ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - delete iToolbar; - iToolbar = NULL; - __VTPRINTEXIT( "FloatingToolbar.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::PopulateCmdsIdsL -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::PopulateCmdsIdsL() - { - __VTPRINTENTER( "FloatingToolbar.PopulateCmdsIdsL" ) - CVtUiAppUi& appUi = iFeatureManager.AppUi(); - - // Default commands populated in base clase - CVtUiToolbarBase::PopulateCmdsIdsL(); - - iCmdIds.AppendL( EVtUiCmdZoom ); - - switch( iNumberOfToolbarButtons ) - { - case KFourToolbarbuttons: - iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera ); - iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera ); - break; - - case KFiveToolbarbuttons: - iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera ); - iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera ); - iCmdIds.AppendL( EVtUiCmdSwapImagesPlaces ); - break; - - case KSixToolbarbuttons: - iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera ); - iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera ); - iCmdIds.AppendL( EVtUiCmdSwapImagesPlaces ); - iCmdIds.AppendL( EVtUiCmdShareObjectImage ); - break; - /* - case KSevenToolbarbuttons: - iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera ); - iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera ); - iCmdIds.AppendL( EVtUiCmdSwapImagesPlaces ); - iCmdIds.AppendL( EVtUiCmdShareObjectImage ); - iCmdIds.AppendL( EVtUiCmdSnapshot ); - break; - */ - default: - break; - } - - __VTPRINTEXIT( "FloatingToolbar.PopulateCmdsIdsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::CreateToolbarButtons -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::CreateToolbarButtonsL() - { - __VTPRINTENTER( "FloatingToolbar.CreateToolbarButtons" ) - - // Default buttons created in base clase - CVtUiToolbarBase::CreateToolbarButtonsL(); - - CVtUiAppUi& appUi = iFeatureManager.AppUi(); - - // activate zoom mode - CreateToolbarItemL( R_AVKONBUTTON_ACTIVATE_ZOOM_MODE_BUTTON, - EVtUiCmdZoom, appUi ); - // disable tooltip from button's latched state - // because tooltip needs to be shown only when - // button gets focus not then when button is selected - FindToolbarItemByCommandId( EVtUiCmdZoom )->State( 1 ) - ->SetHelpTextL( KNullDesC() ); - - switch( iNumberOfToolbarButtons ) - { - case KFourToolbarbuttons: - // toggle camera - CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON, - EVtUiCmdToolbarToggleCamera, appUi ); - break; - - case KFiveToolbarbuttons: - // toggle camera - CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON, - EVtUiCmdToolbarToggleCamera, appUi ); - - // swap images - CreateToolbarItemL( R_AVKONBUTTON_SWAP_IMAGES_BUTTON, - EVtUiCmdSwapImagesPlaces, appUi ); - break; - - case KSixToolbarbuttons: - // toggle camera - CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON, - EVtUiCmdToolbarToggleCamera, appUi ); - - // swap images - CreateToolbarItemL( R_AVKONBUTTON_SWAP_IMAGES_BUTTON, - EVtUiCmdSwapImagesPlaces, appUi ); - - // share file - CreateToolbarItemL(R_AVKONBUTTON_SHARE_FILE_BUTTON, - EVtUiCmdShareObjectImage, appUi ); - break; - /* - case KSevenToolbarbuttons: - // toggle camera - CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON, - EVtUiCmdToolbarToggleCamera, appUi ); - - // swap images - CreateToolbarItemL( R_AVKONBUTTON_SWAP_IMAGES_BUTTON, - EVtUiCmdSwapImagesPlaces, appUi ); - - // share file - CreateToolbarItemL(R_AVKONBUTTON_SHARE_FILE_BUTTON, - EVtUiCmdShareObjectImage, appUi ); - - CreateToolbarItemL( R_AVKONBUTTON_SNAPSHOT_BUTTON, - EVtUiCmdSnapshot, appUi ); - - break; - */ - default: - break; - } - - __VTPRINTEXIT( "FloatingToolbar.CreateToolbarButtons" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::DoActivateL -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::DoActivateL() - { - __VTPRINTENTER( "FloatingToolbar.DoActivateL" ) - // start blocking key events - BlockKeyEvents( ETrue ); - // make toolbar visible - if ( !iToolbar->IsVisible() || - !iFeatureManager.UiStates().IsFloatingToolbarVisible() ) - { - // Show toolbar - iToolbar->SetToolbarVisibility( ETrue ); - } - else - { - // Undim toolbar - DimToolbar( EFalse, EFalse ); - if ( iCmdFocus != KErrNotFound ) - { - // Set focus item - iToolbar->SetItemDimmed( iCmdFocus, EFalse, ETrue ); - iToolbar->SetFocusedItemL( iCmdFocus ); - iCmdFocus = KErrNotFound; - } - } - iFeatureManager.UiStates().SetIsFloatingToolbarVisible( EFalse ); - CVtUiToolbarBase::DoActivateL(); - __VTPRINTEXIT( "FloatingToolbar.DoActivateL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::DoDeactivateL -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::DoDeactivateL() - { - __VTPRINTENTER( "FloatingToolbar.DoDeactivateL" ) - // stop blocking key events - BlockKeyEvents( EFalse ); - if ( iToolbar ) - { - // Save foces item; - if ( iToolbar->FocusedItem() != KErrNotFound ) - { - iCmdFocus = iToolbar->FocusedItem(); - } - TVtUiStates& uiStates = iFeatureManager.UiStates(); - if ( !uiStates.IsFloatingToolbarVisible() ) - { - __VTPRINT( DEBUG_GEN, "FloatingToolbar.DoDeactivateL.Vs" ) - iToolbar->SetToolbarVisibility( EFalse ); - } - else - { - // Dim toolbar - __VTPRINT( DEBUG_GEN, "FloatingToolbar.DoDeactivateL.Dim ETrue" ) - DimToolbar( ETrue, EFalse ); - } - CVtUiAppUi& appUi = iFeatureManager.AppUi(); - const TBool isZoomModeOn( uiStates.IsZoomModeOn() ); - if ( isZoomModeOn ) - { - // set zoom indicator to be hidden - appUi.SetZoomModeL( EFalse ); - } - } - CVtUiToolbarBase::DoDeactivateL(); - __VTPRINTEXIT( "FloatingToolbar.DoDeactivateL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::HandleResourceChangeL -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::HandleResourceChangeL( TInt /*aType*/ ) - { - __VTPRINTENTER( "FloatingToolbar.HandleResourceChangeL" ) - // akntoolbar should allways be in the control stack - // no need to call - // iToolbar->HandleResourceChange - LayoutToolbarL(); - __VTPRINTEXIT( "FloatingToolbar.HandleResourceChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::RectFromLayout -// ----------------------------------------------------------------------------- -// -TRect CVtUiFloatingToolbar::RectFromLayout( - const TAknWindowComponentLayout& aComponentLayout ) const - { - __VTPRINTENTER( "FloatingToolbar.RectFromLayout" ) - TRect mainPaneRect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPaneRect ); - - TAknWindowLineLayout lineLayout = aComponentLayout.LayoutLine(); - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( mainPaneRect, lineLayout ); - __VTPRINTEXIT( "FloatingToolbar.RectFromLayout" ) - return layoutRect.Rect(); - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::LayoutToolbarL -// ----------------------------------------------------------------------------- -// -void CVtUiFloatingToolbar::LayoutToolbarL() - { - __VTPRINTENTER( "FloatingToolbar.LayoutToolbarL" ) - - // Get variety - TInt variety = GetVariety( Layout_Meta_Data::IsLandscapeOrientation() ); - // get toolbar rect from layout - TRect toolbarRect = RectFromLayout( AknLayoutScalable_Apps:: - popup_toolbar_window_cp04( variety ).LayoutLine() ); - //set top left coordinates i.e. placeholder - iToolbar->SetPosition( toolbarRect.iTl ); - - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - __VTPRINT( DEBUG_GEN, "Toolbar.LayoutToolbarL.LS" ) - iToolbar->SetOrientation( EAknOrientationVertical ); - } - else - { - __VTPRINT( DEBUG_GEN, "Toolbar.LayoutToolbarL.PR" ) - iToolbar->SetOrientation( EAknOrientationHorizontal ); - } - __VTPRINTEXIT( "FloatingToolbar.LayoutToolbarL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiFloatingToolbar::GetVariety -// ----------------------------------------------------------------------------- -// -TInt CVtUiFloatingToolbar::GetVariety( TBool aIsLandscapeOrientation ) - { - __VTPRINTENTER( "FloatingToolbar.GetVariety" ) - TInt variety = 0; - switch ( iNumberOfToolbarButtons ) - { - case KThreeToolbarbuttons: - if( aIsLandscapeOrientation ) - { - variety = 5; - } - else - { - variety = 9; - } - break; - - case KFourToolbarbuttons: - if( aIsLandscapeOrientation ) - { - variety = 4; - } - else - { - variety = 8; - } - break; - - case KFiveToolbarbuttons: - if( aIsLandscapeOrientation ) - { - variety = 3; - } - else - { - variety = 7; - } - break; - - case KSixToolbarbuttons: - if( aIsLandscapeOrientation ) - { - variety = 2; - } - else - { - variety = 6; - } - break; - - case KSevenToolbarbuttons: - if( aIsLandscapeOrientation ) - { - variety = 1; - } - else - { - variety = 4; - } - break; - - default: - - break; - } - __VTPRINTEXITR( "FloatingToolbar.GetVariety =%d",variety ) - return variety; - } -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuihidetoolbaritemaction.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuihidetoolbaritemaction.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,246 +0,0 @@ -/* -* Copyright (c) 2009 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: Toolbar hide item action class. -* -*/ - - -#include -#include "cvtuihidetoolbaritemaction.h" -#include "tvtuicmdvalidatorcallback.h" -#include "tvtuitoolbarcommanditerator.h" -#include "cvtuitoolbarbase.h" -#include "videotelui.hrh" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::NewL -// --------------------------------------------------------------------------- -// -CVtUiHideToolbarItemAction* CVtUiHideToolbarItemAction::NewL( - CVtUiToolbarBase* aToolbar, const TVtUiStates& aUiStates ) - { - __VTPRINTENTER( "HideTbAct.NewL" ) - CVtUiHideToolbarItemAction* self = - new ( ELeave ) CVtUiHideToolbarItemAction( aToolbar, aUiStates ); - __VTPRINTEXIT( "HideTbAct.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::~CVtUiHideToolbarItemAction -// --------------------------------------------------------------------------- -// -CVtUiHideToolbarItemAction::~CVtUiHideToolbarItemAction() - { - } - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::ProcessL -// --------------------------------------------------------------------------- -// -void CVtUiHideToolbarItemAction::ProcessL( - const MVtUiCmdValidatorCallBack& aCallBack ) - { - __VTPRINTENTER( "HideTbAct.ProcessL" ) - for ( TVtUiToolbarCommandIterator i( *iToolbar ); i.HasNext(); ) - { - TInt commandId( i.Next() ); - if ( !IsCommandHandled( commandId ) ) - { - __VTPRINT2( DEBUG_GEN, "HideTbAct.cb.call.cmddId=%d", commandId ) - if ( aCallBack.Call( commandId ) ) // primarypolicy - { // says can't be shown - CommandHandledL( commandId ); - SetItemHiddenL( commandId ); - } - else - { - HideOrShowToolbarControlL( commandId ); - } - } - } - __VTPRINTEXIT( "HideTbAct.ProcessL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::CVtUiHideToolbarItemAction -// --------------------------------------------------------------------------- -// -CVtUiHideToolbarItemAction::CVtUiHideToolbarItemAction - ( CVtUiToolbarBase* aToolbar, const TVtUiStates& aUiStates ) - : iToolbar( aToolbar ), iUiStates ( aUiStates ) - { - __VTPRINTENTER( "HideTbAct.ctor" ) - __VTPRINTEXIT( "HideTbAct.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::SetItemHiddenL -// --------------------------------------------------------------------------- -// -void CVtUiHideToolbarItemAction::SetItemHiddenL( TInt aCommandId ) - { - __VTPRINTENTER( "HideTbAct.SetItemHidden" ) - iToolbar->SetCmdIdVisibilityStateL( aCommandId, - CVtUiToolbarBase::EHidden ); - __VTPRINTEXIT( "HideTbAct.SetItemHidden" ) - } - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::HideOrShowToolbarControlL -// --------------------------------------------------------------------------- -// -void CVtUiHideToolbarItemAction::HideOrShowToolbarControlL - ( TInt aCommandId ) - { - __VTPRINTENTER( "HideTbAct.HideOrShowToolbarControlL" ) - TBool isZoomModeOn = iUiStates.IsZoomModeOn(); - TBool isVolumeModeOn = iUiStates.IsVolumeModeOn(); - TBool isBrightnessModeOn = iUiStates.IsBrightnessModeOn(); - TBool isContrastModeOn = iUiStates.IsContrastModeOn(); - TBool dimmed = EFalse; - const TVtUiMediaState& mediaState( iUiStates.MediaState() ); - const TVtUiAudioState& audioState( iUiStates.AudioState() ); - - switch ( aCommandId ) - { - case EVtUiCmdDisableVideo: - case EVtUiCmdSwapImagesPlaces: - case EVtUiCmdDisableAudio: - case EVtUiCmdEnableAudio: - if ( isContrastModeOn || - isBrightnessModeOn - || isZoomModeOn || isVolumeModeOn ) - { - dimmed = ETrue; - } - break; - case EVtUiCmdEnableVideo: - if ( isZoomModeOn || isVolumeModeOn ) - { - dimmed = ETrue; - } - break; - - case EVtUiCmdUsePrimaryCamera: - case EVtUiCmdUseSecondaryCamera: - if ( isContrastModeOn || - isBrightnessModeOn - || iUiStates.IsCaptureModeOn() || - mediaState.IsSharing() - || isZoomModeOn || isVolumeModeOn ) - { - dimmed = ETrue; - } - break; - case EVtUiCmdZoom: - if ( isContrastModeOn || - isBrightnessModeOn|| - !mediaState.IsVideo() || - mediaState.IsFrozen() || - mediaState.IsSharing() || - isVolumeModeOn ) - { - dimmed = ETrue; - } - break; - - case EVtUiCmdShareObjectImage: - if ( isContrastModeOn || - isBrightnessModeOn || - isZoomModeOn || mediaState.IsFrozen() || - mediaState.IsVideoPermanentlyStopped() || - isVolumeModeOn ) - { - dimmed = ETrue; - } - break; - - case EVtUiCmdActivateBT: - dimmed = !audioState.CanActivateBtHf() || - audioState.IsAudioPermanentlyStopped() || - isZoomModeOn || isContrastModeOn || - isBrightnessModeOn || - isVolumeModeOn ; - break; - - case EVtUiCmdDeactivateLoudspeaker: - dimmed = !audioState.CanDeactivateLoudspeaker() || - audioState.IsAudioPermanentlyStopped() || - isZoomModeOn || isContrastModeOn || - isBrightnessModeOn || - isVolumeModeOn; - break; - - case EVtUiCmdSwitchFromBTToIHF: - dimmed = !audioState.CanDeactivateBtHf() || - !audioState.CanActivateLoudspeaker() || - audioState.IsAudioPermanentlyStopped() || - isZoomModeOn || isContrastModeOn || - isBrightnessModeOn || - isVolumeModeOn; - break; - - case EVtUiCmdActivateLoudspeaker: - dimmed = !audioState.CanActivateLoudspeaker() || - audioState.IsAudioPermanentlyStopped() || - isZoomModeOn || isContrastModeOn || - isBrightnessModeOn || - isVolumeModeOn; - break; - - /* - case EVtUiCmdSnapshot: - if ( iUiStates.IsContrastModeOn() || iUiStates.IsBrightnessModeOn () - || isZoomModeOn || ( !iUiStates.MediaState().IsVideo() && - !iUiStates.MediaState().IsFrozen() ) || - !iUiStates.MediaState().IsFreezeSupported() || iUiStates.IsContrastModeOn() || - iUiStates.IsBrightnessModeOn() || isVolumeModeOn ) - { - dimmed = ETrue; - } - break; - */ - default: - dimmed = EFalse; - break; - } - - // update toolbar's commands visibility values - if ( dimmed ) - { - iToolbar->SetCmdIdVisibilityStateL( aCommandId, - CVtUiToolbarBase::EDimmed ); - } - else - { - iToolbar->SetCmdIdVisibilityStateL( aCommandId, - CVtUiToolbarBase::EShown ); - } - __VTPRINTEXIT( "HideTbAct.HideOrShowToolbarControlL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiHideToolbarItemAction::EndProcess -// --------------------------------------------------------------------------- -// -void CVtUiHideToolbarItemAction::EndProcess() - { - __VTPRINTENTER( "HideTbAct.EndProcess" ) - TRAP_IGNORE( iToolbar->UpdateToolbarL() ); - __VTPRINTEXIT( "HideTbAct.EndProcess" ) - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuitoolbarbase.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuitoolbarbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1244 +0,0 @@ -/* -* Copyright (c) 2008 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: Base class for toolbar. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include "videotelui.hrh" -#include "cvtuitoolbarbase.h" -#include "mvtuifeature.h" -#include "tvtuistates.h" -#include "cvtuitoolbarcontext.h" -#include "cvtuitoolbarcmdpolicy.h" -#include "cvtuicommandpolicymanager.h" -#include "cvtuihidetoolbaritemaction.h" -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" -#include "mvtuicommandui.h" -#include "cvtuitoolbarskmodifier.h" -#include "mvtuicommandmanager.h" -#include "mvtuicomponentmanager.h" -#include "cvtuitoolbarbutton.h" -#include "VideoTelephonyInternalCRKeys.h" -#include "tVtuifeaturevariation.h" -#include "cvtuitoolbarbutton.h" -#include - -// Implementation of TVtUiToolbarComponentState - -// --------------------------------------------------------------------------- -// TVtUiToolbarComponentState::TVtUiToolbarComponentState -// --------------------------------------------------------------------------- -// -TVtUiToolbarComponentState::TVtUiToolbarComponentState( - MVtUiComponent& aComponent ) : - TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdNull ) ) - { - } - -// --------------------------------------------------------------------------- -// Used in FindToolbaItemByCommandId method to search toolbar item by cmd id. -// --------------------------------------------------------------------------- -// -TInt ToolbarItemIdCmpFunc( const TInt* aId, - const CVtUiToolbarButton& aToolbarItem ) - { - return ( *aId - aToolbarItem.CmdId() ); - } - - -// --------------------------------------------------------------------------- -// Used in CreateToolbarItemL method to search feature by cmd id. -// --------------------------------------------------------------------------- -// -TInt ToolbarCmpFunc( const CVtUiToolbarButton& aV1, const CVtUiToolbarButton& aV2 ) - { - return ( aV1.CmdId() - aV2.CmdId() ); - } - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::CVtUiToolbarBase -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CVtUiToolbarBase::CVtUiToolbarBase( CVtUiFeatureManager& aFeatureManager ) - : CVtUiFeatureBase( EVtUiFeatureIdToolbar, aFeatureManager ), - iComponentState( *this ) - { - __VTPRINTENTER( "Toolbar.CVtUiToolbarBase" ) - // Get number of supported buttons. - // Six is the default value for floating toolbar - // and three buttons for fixed toolbar - TVtUiToolbarVariation toolbar; - iNumberOfToolbarButtons = toolbar.NumberOfButtons(); - iCmdFocus = KErrNotFound; - __VTPRINTEXITR( "Toolbar.CVtUiToolbarBase %d", iNumberOfToolbarButtons ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::BaseConstructL -// Symbian 2nd phase constructor. -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::BaseConstructL() - { - __VTPRINTENTER( "Toolbar.ConstructL" ) - CVtUiFeatureBase::BaseConstructL(); - iFeatureManager.UiStates().SetIsToolbarAvailable( ETrue ); - __VTPRINTEXIT( "Toolbar.ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::~CVtUiToolbarBase -// Destructor. -// ----------------------------------------------------------------------------- -// -CVtUiToolbarBase::~CVtUiToolbarBase() - { - __VTPRINTENTER( "Toolbar.~" ) - // Stop(); - // Stop can not be called here if toolbar is asked from ui fw = fixed toolbar. - // If stop is called a crash occurs, whose root cause can not be solved. - // It is related somehow with focus lost in ui fw. - - Clean(); - // unregister layout change - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - // no need tot call resetanddestroy because buttons ownership is - // transferred to akntoolbar. - iToolBarControls.Reset(); - delete iToolbarCtx; - delete iToolbarCmdPolicy; - delete iHideToolbarItemAction; - delete iToolbarSKModifier; - iCmdIds.Close(); - iCmdStates.Close(); - __VTPRINTEXIT( "Toolbar.~" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::DynInitToolbarL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::DynInitToolbarL( TInt /*aResourceId*/, - CAknToolbar* /*aToolbar*/ ) - { - __VTPRINTENTER( "Toolbar.DynInitToolbarL" ) - __VTPRINTEXIT( "Toolbar.DynInitToolbarL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::OfferToolbarEventL -// Destructor. -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::OfferToolbarEventL( TInt aCommand ) - { - __VTPRINTENTER( "Toolbar.OfferToolbarEventL" ) - __VTPRINT2( DEBUG_GEN, "Toolbar.OfferToolbarEventL.aCommand=%d", aCommand ) - - // if capture mode is on all msk events must be converted to capture command - if ( iFeatureManager.UiStates().IsCaptureModeOn() ) - { - iFeatureManager.AppUi().HandleCommandL( EVtUiCmdCapture ); - return; - } - - TInt command = MapCmdIdToChilId( aCommand ); - - if ( EVtUiCmdSwapImagesPlaces == command ) - { - if ( !( iFeatureManager.AppUi().CanSwapImagePlaces() ) ) - { - return; - } - } - - iFeatureManager.AppUi().HandleCommandL( command ); - - __VTPRINTEXITR( "Toolbar.OfferToolbarEventL.cmd %d", aCommand ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::StartL -// Destructor. -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::StartL() - { - CVtUiFeatureBase::StartL(); - __VTPRINTENTER( "Toolbar.StartL" ) - TInt error; - if ( iFeatureState == MVtUiFeature::EReady ) - { - TRAP( error, iFeatureManager.ComponentManager(). - RequestActivationL( MVtUiComponent::EComponentIdToolbar ) ); - - // set state - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXITR( "Toolbar.StartL error = %d", error ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::Stop -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::Stop() - { - __VTPRINTENTER( "Toolbar.Stop" ) - TInt error; - if ( iFeatureState == MVtUiFeature::EActive ) - { - TRAP( error, iFeatureManager.ComponentManager(). - DeActivateComponentL ( MVtUiComponent::EComponentIdToolbar ) ); - // set state - iFeatureState = MVtUiFeature::EReady; - } - __VTPRINTEXITR( "Toolbar.Stop error = %d", error ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::InitFeature -// Delayed initialization of the feature -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::InitFeatureL() - { - __VTPRINTENTER( "Toolbar.InitFeatureL" ) - iFeatureState = EPreparing; - iToolBarControls.ReserveL( iNumberOfToolbarButtons ); - - //create toolbar - //iToolbar = CAknToolbar::NewL( R_VIDEOTELUI_TOOLBAR ); - - iToolbar->SetToolbarObserver( this ); - - // Prohibit toolbar sliding on UI. - iToolbar->SetWithSliding( EFalse ); - - // create toolbar context and policy - iToolbarCtx = - CVtUiToolbarContext::NewL( iFeatureManager.CommandManager() ); - - iToolbarCmdPolicy = CVtUiToolbarCmdPolicy::NewL( *this ); - - // create toolbaraction - iHideToolbarItemAction = CVtUiHideToolbarItemAction::NewL( this, - iFeatureManager.UiStates() ); - - // create sofkey modifier - iToolbarSKModifier = CVtUiToolbarSKModifier:: - NewL( iFeatureManager.AppUi(), iFeatureManager.UiStates() ); - - // set supported commands - PopulateCmdsIdsL(); - - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - - iFeatureState = EReady; - - __VTPRINTEXIT( "Toolbar.InitFeatureL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::MapCmdIdToChilId -// ----------------------------------------------------------------------------- -// -TInt CVtUiToolbarBase::MapCmdIdToChilId( TInt aCmdId ) - { - __VTPRINTENTER( "Toolbar.MapCmdIdToChilId" ) - __VTPRINT2( DEBUG_GEN, "Toolbar.MapCmdIdToChilId.aCmdId=%d", aCmdId ) - TInt result = aCmdId; - - CVtUiToolbarButton* tbButton = FindToolbarItemByCommandId( aCmdId ); - - const TInt stateIndexValue( tbButton->StateIndex() ); - __VTPRINT2( DEBUG_GEN, "Toolbar.MapCmdIdToChilId.idx=%d", stateIndexValue ) - switch( aCmdId ) - { - case EVtUiCmdToolbarToggleVideo: - { - switch ( stateIndexValue ) - { - case 0: - case 1: - result = EVtUiCmdDisableVideo; - break; - case 2: - case 3: - result = EVtUiCmdEnableVideo; - break; - } - } - break; - - case EVtUiCmdToolbarToggleMicrophone: - { - switch ( stateIndexValue ) - { - case 0: - case 1: - result = EVtUiCmdDisableAudio; - break; - case 2: - case 3: - result = EVtUiCmdEnableAudio; - break; - } - } - break; - - case EVtUiCmdToolbarAudioRouting: - { - switch ( stateIndexValue ) - { - case 0: - case 1: - result = EVtUiCmdDeactivateLoudspeaker; - break; - case 2: - case 3: - result = EVtUiCmdSwitchFromBTToIHF; - break; - case 4: - case 5: - result = EVtUiCmdActivateLoudspeaker; - break; - case 6: - case 7: - result = EVtUiCmdActivateBT; - break; - default: - break; - }; - } - break; - - case EVtUiCmdToolbarToggleCamera: - { - switch ( stateIndexValue ) - { - case 0: - case 1: - result = EVtUiCmdUsePrimaryCamera; - break; - case 2: - case 3: - result = EVtUiCmdUseSecondaryCamera; - break; - } - } - break; - - default: - break; - } - - if ( aCmdId == result ) - { - TInt index( stateIndexValue - 1 ); - if ( index < 0 ) - { - index = tbButton->StatesCount() - 1; - } - tbButton->SetCurrentState( index, EFalse ); - } - - __VTPRINTEXITR( "Toolbar.MapCmdIdToChilId.result %d", (TInt)result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::MapCmdIdToParentId -// ----------------------------------------------------------------------------- -// -TInt CVtUiToolbarBase::MapCmdIdToParentId( TInt aCmdId ) - { - __VTPRINTENTER( "Toolbar.MapCmdIdToParentId" ) - TInt result = aCmdId; - switch( aCmdId ) - { - case EVtUiCmdDisableVideo: - case EVtUiCmdEnableVideo: - result = EVtUiCmdToolbarToggleVideo; - break; - - case EVtUiCmdDisableAudio: - case EVtUiCmdEnableAudio: - result = EVtUiCmdToolbarToggleMicrophone; - break; - - case EVtUiCmdActivateBT: - case EVtUiCmdSwitchFromBTToIHF: - case EVtUiCmdActivateLoudspeaker: - case EVtUiCmdDeactivateLoudspeaker: - result = EVtUiCmdToolbarAudioRouting; - break; - - case EVtUiCmdUsePrimaryCamera: - case EVtUiCmdUseSecondaryCamera: - result = EVtUiCmdToolbarToggleCamera; - break; - - default: - break; - } - __VTPRINTEXITR( "Toolbar.MapCmdIdToParentId.result %d", (TInt)result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::IsCmdIdVisibleInToggleButton -// ----------------------------------------------------------------------------- -// -TBool CVtUiToolbarBase::IsCmdIdVisibleInToggleButton( TInt aCmdId ) - { - __VTPRINTENTER( "Toolbar.IsCMdIdVisibleInTogB" ) - TBool result( ETrue ); - TInt cmdId( MapCmdIdToParentId( aCmdId ) ); - TInt targetStateIndex( KErrNotFound ); - switch( aCmdId ) - { - case EVtUiCmdActivateBT: - targetStateIndex = 6; - break; - - case EVtUiCmdActivateLoudspeaker: - targetStateIndex = 4; - break; - - case EVtUiCmdSwitchFromBTToIHF: - case EVtUiCmdEnableVideo: - case EVtUiCmdEnableAudio: - case EVtUiCmdUseSecondaryCamera: - targetStateIndex = 2; - break; - - case EVtUiCmdDisableVideo: - case EVtUiCmdDisableAudio: - case EVtUiCmdUsePrimaryCamera: - case EVtUiCmdDeactivateLoudspeaker: - targetStateIndex = 0; - break; - - default: - break; - } - - if ( targetStateIndex != KErrNotFound ) - { - result = ( FindToolbarItemByCommandId( cmdId ) - ->StateIndex() == targetStateIndex ); - } - - __VTPRINTEXITR( "Toolbar.IsCMdIdVisibleInTogB.result %d", (TInt)result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::PopulateCmdsIdsL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::PopulateCmdsIdsL() - { - __VTPRINTENTER( "Toolbar.PopulateCmdsIdsL" ) - CVtUiAppUi& appUi = iFeatureManager.AppUi(); - - // default commands - iCmdIds.AppendL( EVtUiCmdDisableVideo ); - iCmdIds.AppendL( EVtUiCmdEnableVideo ); - iCmdIds.AppendL( EVtUiCmdDisableAudio ); - iCmdIds.AppendL( EVtUiCmdEnableAudio ); - - __VTPRINTEXIT( "Toolbar.PopulateCmdsIdsL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::SetToolbarVisibilityAfterLayoutChangeL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::SetToolbarVisibilityAfterLayoutChangeL( TBool /*aVisible*/ ) - { - __VTPRINTENTER( "Toolbar.SetToolbarVisibilityAfterLayoutChangeL" ) - __VTPRINTEXIT( "Toolbar.SetToolbarVisibilityAfterLayoutChangeL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::IsToggleButtonHidden -// ----------------------------------------------------------------------------- -// -TBool CVtUiToolbarBase::IsToggleButtonHidden(TInt aFirstCmdId, TInt aSecondCmdId ) - { - __VTPRINTENTER( "Toolbar.IsToggleButtonHidden" ) - TInt count = 0; - TBool result = EFalse; - for ( TInt i = 0; i < iCmdStates.Count(); i++ ) - { - if ( iCmdStates[ i ].iCmdId == aFirstCmdId || - iCmdStates[ i ].iCmdId == aSecondCmdId ) - { - if ( iCmdStates[ i ].iNewState == EHidden ) - { - count++; - } - } - } - - if ( count > 1 ) - { - __VTPRINT(DEBUG_GEN, "IsToggleButtonHidden.Count>1" ) - result = ETrue; - } - __VTPRINTEXITR( "Toolbar.IsToggleButtonHidden.result%d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::Clean -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::Clean() - { - __VTPRINTENTER( "Toolbar.Clean" ) - TRAP_IGNORE( CVtUiToolbarBase::DoDeactivateL() ); - // unregister component change registration - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "Toolbar.Clean" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::CreateToolbarButtons -// ----------------------------------------------------------------------------- -// - -void CVtUiToolbarBase::CreateToolbarButtonsL() - { - __VTPRINTENTER( "Toolbar.CreateToolbarButtons" ) - CVtUiAppUi& appUi = iFeatureManager.AppUi(); - - // two default buttons - // toggle video - CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_VIDEO_BUTTON, - EVtUiCmdToolbarToggleVideo, appUi ); - - // toggle microphone - CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_MICROPHONE_BUTTON, - EVtUiCmdToolbarToggleMicrophone, appUi ); - - __VTPRINTEXIT( "Toolbar.CreateToolbarButtons" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::CreateToolbarItemL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::CreateToolbarItemL( TInt aResourceId, TInt aCommandId, - CVtUiAppUi& appUi ) - { - __VTPRINTENTER( "Toolbar.CreateToolbarItemL" ) - - CVtUiToolbarButton* toolbarItem = NULL; - TLinearOrder< CVtUiToolbarButton > linOrder( ::ToolbarCmpFunc ); - - // create toolbaritem - toolbarItem = CVtUiToolbarButton::NewLC( aResourceId, appUi, aCommandId ); - - // add toolbar item to toolbar - // CVtUiToolbarButton ownership is transferred to akntoolbar - iToolbar->AddItemL( toolbarItem, EAknCtButton, - aCommandId , NULL ); - - // add toolbar item to array - iToolBarControls.InsertInOrderL( toolbarItem, linOrder ); - - CleanupStack::Pop(); // toolbaritem - - __VTPRINTEXIT( "Toolbar.CreateToolbarItemL" ) - } - - - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::HideToolbarButton -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::HideToolbarButton( const TInt aCommandId, const TBool aHide, - const TBool aDrawNow ) - { - __VTPRINTENTER( "Toolbar.HideToolbarButton" ) - __VTPRINT2( DEBUG_GEN, "Toolbar.HideToolbarButton.aCommandId=%d", aCommandId ) - TInt cmdId = MapCmdIdToParentId( aCommandId ); - - // unhide for toggle buttons not handled - if ( !aHide && cmdId != aCommandId ) - { - return; - } - - // Get toolbar item - CVtUiToolbarButton* tbItem = FindToolbarItemByCommandId( cmdId ); - - // get button's current state - TInt stateIndex = tbItem->StateIndex(); - - switch ( cmdId ) - { - case EVtUiCmdToolbarToggleVideo: - // if both items should be hidden in togglebutton, - // then dim togglebutton - if ( IsToggleButtonHidden( EVtUiCmdDisableVideo, - EVtUiCmdEnableVideo ) ) - { - // update visibility state - TRAP_IGNORE( - SetCmdIdVisibilityStateL( EVtUiCmdDisableVideo, EDimmed ); - SetCmdIdVisibilityStateL( EVtUiCmdEnableVideo, EDimmed ); - ); - iToolbar->SetItemDimmed( cmdId, ETrue, EFalse ); - return; - } - if ( ( stateIndex == 0 || stateIndex == 1 ) && - EVtUiCmdDisableVideo == aCommandId ) - { - tbItem->SetCurrentState ( 2, EFalse ); - } - else if( ( stateIndex == 2 || stateIndex == 3 )&& - EVtUiCmdEnableVideo == aCommandId ) - { - tbItem->SetCurrentState ( 0, EFalse ); - } - break; - - case EVtUiCmdToolbarToggleMicrophone: - // if both items should be hidden in togglebutton, - // then dim togglebutton - if ( IsToggleButtonHidden( EVtUiCmdDisableAudio, - EVtUiCmdEnableAudio ) ) - { - // update visibility state - TRAP_IGNORE( - SetCmdIdVisibilityStateL( EVtUiCmdDisableAudio, EDimmed ); - SetCmdIdVisibilityStateL( EVtUiCmdEnableAudio, EDimmed ); - ); - iToolbar->SetItemDimmed( cmdId, ETrue, EFalse ); - return; - } - if ( ( stateIndex == 0 || stateIndex == 1 ) && - EVtUiCmdDisableAudio == aCommandId ) - { - tbItem->SetCurrentState ( 2, EFalse ); - } - else if( ( stateIndex == 2 || stateIndex == 3 ) && - EVtUiCmdEnableAudio == aCommandId ) - { - tbItem->SetCurrentState ( 0, EFalse ); - } - break; - - case EVtUiCmdToolbarAudioRouting: - { - const TBool isToggleButtonHidden( - IsToggleButtonHidden( EVtUiCmdActivateBT, - EVtUiCmdSwitchFromBTToIHF ) && - IsToggleButtonHidden( EVtUiCmdActivateLoudspeaker, - EVtUiCmdDeactivateLoudspeaker ) - ); - - if ( isToggleButtonHidden ) - { - TRAP_IGNORE( - SetCmdIdVisibilityStateL( EVtUiCmdActivateBT, EDimmed ); - SetCmdIdVisibilityStateL( EVtUiCmdDeactivateLoudspeaker, - EDimmed ); - SetCmdIdVisibilityStateL( EVtUiCmdSwitchFromBTToIHF, EDimmed ); - SetCmdIdVisibilityStateL( EVtUiCmdActivateLoudspeaker, - EDimmed ); - ); - iToolbar->SetItemDimmed( cmdId, ETrue, EFalse ); - return; - } - else - { - if ( tbItem ) - { - const TVtUiAudioState& audioState( - iFeatureManager.UiStates().AudioState() ); - - TInt state( 0 ); // Deactivate loudspeaker - - if ( audioState.CanDeactivateBtHf() ) - { - state = 2; // Deactivate bthf - } - else if ( audioState.CanActivateBtHf() ) - { - state = 6; // Activate bthf - } - else if ( audioState.CanActivateLoudspeaker() ) - { - state = 4; // Activate loudspeaker - } - __VTPRINT2( DEBUG_GEN, - "Toolbar.HideToolbarButton.AudioRoutingState=%d", - state ) - tbItem->SetCurrentState ( state, EFalse ); - } - } - } - break; - - case EVtUiCmdToolbarToggleCamera: - // if both items should be hidden in togglebutton, - // then dim togglebutton - if ( IsToggleButtonHidden( EVtUiCmdUsePrimaryCamera, - EVtUiCmdUseSecondaryCamera ) ) - { - // update visibility state - TRAP_IGNORE( - SetCmdIdVisibilityStateL( EVtUiCmdUsePrimaryCamera, EDimmed ); - SetCmdIdVisibilityStateL( EVtUiCmdUseSecondaryCamera, EDimmed ); - ); - iToolbar->SetItemDimmed( cmdId, ETrue, EFalse ); - return; - } - if ( ( stateIndex == 0 || stateIndex == 1 ) && - EVtUiCmdUsePrimaryCamera == aCommandId ) - { - tbItem->SetCurrentState ( 2, EFalse ); - } - else if( ( stateIndex == 2 || stateIndex == 3 ) && - EVtUiCmdUseSecondaryCamera == aCommandId ) - { - tbItem->SetCurrentState ( 0, EFalse ); - } - break; - - default: - iToolbar->HideItem( cmdId, aHide, aDrawNow); - __VTPRINT( DEBUG_GEN, "Toolbar.HideToolbarButton" ) - break; - } - __VTPRINTEXIT( "Toolbar.HideToolbarButton" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::DimToolbar -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::DimToolbar( const TBool aDimmed, const TBool aDrawNow ) - { - __VTPRINTENTER( "Toolbar.DimToolbar" ) - __VTPRINT2( DEBUG_GEN, "Toolbar.DimToolbar.aDimmed=%d", (TInt)aDimmed ) - - TInt count = iCmdStates.Count(); - for( TInt i = 0; i < count; i++ ) - { - __VTPRINT2( DEBUG_GEN, "iCmdId = %d", iCmdStates[ i ].iCmdId ) - __VTPRINT3( DEBUG_GEN, "iCmdStates.iOldState=%d iCmdStates.iNewState=%d", - iCmdStates[ i ].iOldState, iCmdStates[ i ].iNewState ) - // dim item - if ( iCmdStates[ i ].iNewState == EShown ) - { - DimToolbarButton( iCmdStates[ i ].iCmdId, aDimmed, aDrawNow ); - } - } - __VTPRINTEXIT( "Toolbar.DimToolbar" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::DimToolbarButton -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::DimToolbarButton( const TInt aCommandId, const TBool aDimmed, - const TBool aDrawNow ) - { - __VTPRINTENTER( "Toolbar.DimToolbarButton" ) - __VTPRINT2( DEBUG_GEN, "Toolbar.DimToolbarButton.aCmdId=%d", aCommandId ) - - // command not visible, no need to update button - if ( !IsCmdIdVisibleInToggleButton( aCommandId ) ) - { - __VTPRINTEXIT("Toolbar.DimToolbarButton.NotVisible" ) - return; - } - TInt cmdId = MapCmdIdToParentId( aCommandId ); - // dim item - iToolbar->SetItemDimmed( cmdId, aDimmed, aDrawNow ); - __VTPRINTEXIT( "Toolbar.DimToolbarButton" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::FindToolbaItemByCommandId -// ----------------------------------------------------------------------------- -// -CVtUiToolbarButton* CVtUiToolbarBase::FindToolbarItemByCommandId - ( const TInt aCommandId ) - { - __VTPRINTENTER( "Toolbar.FindToolbarItemByCmdId" ) - CVtUiToolbarButton* result = NULL; - - TInt index( iToolBarControls. - FindInOrder( aCommandId,::ToolbarItemIdCmpFunc ) ); - - if ( index != KErrNotFound ) - { - result = iToolBarControls[ index ]; - } - __VTPRINTEXITR( "Toolbar.FindToolbarItemByCmdId.result %d", (TInt)result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::StartBlocking -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::BlockPointerEvents( TBool aIsBlocking ) - { - __VTPRINTENTER( "Toolbar.BlockPointerEvents" ) - for (TInt i = 0; i < iToolBarControls.Count(); ++i ) - { - iToolBarControls[ i ]->BlockPointerEvents( aIsBlocking ); - } - __VTPRINTEXITR( "Toolbar.BlockPointerEvents =%d", aIsBlocking ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::StopBlocking -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::BlockKeyEvents( TBool aIsBlocking ) - { - __VTPRINTENTER( "Toolbar.BlockKeyEvents" ) - for ( TInt i = 0; i < iToolBarControls.Count(); ++i ) - { - iToolBarControls[ i ]->BlockKeyEvents( aIsBlocking ); - } - __VTPRINTEXITR( "Toolbar.BlockKeyEvents =%d", aIsBlocking ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::IsDialerActive -// ----------------------------------------------------------------------------- -// -TBool CVtUiToolbarBase::IsDialerActive() const - { - __VTPRINTENTER( "Toolbar.IsDialerActive" ) - TBool ret( EFalse ); - MVtUiFeature* dialer = iFeatureManager. - GetFeatureById( EVtUiFeatureIdDialer ); - if ( dialer ) - { - if ( dialer->State() == MVtUiFeature::EActive ) - { - ret = ETrue; - } - } - __VTPRINTEXITR( "Toolbar.IsDialerActive =%d", ret ) - return ret; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::NumberOfToolbarControls -// ----------------------------------------------------------------------------- -// -TInt CVtUiToolbarBase::NumberOfToolbarControls() const - { - __VTPRINTENTER( "Toolbar.NumberOfToolbarControls" ) - __VTPRINTEXIT( "Toolbar.NumberOfToolbarControls" ) - return iCmdIds.Count(); - } - - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::CommandIdByCmdIdsArrayIndex -// ----------------------------------------------------------------------------- -// - TInt CVtUiToolbarBase::CommandIdByCmdIdsArrayIndex( TInt aIndex ) const - { - __VTPRINTENTER( "Toolbar.CommandIdByCmdIdsArrayIndex" ) - __VTPRINTEXIT( "Toolbar.CommandIdByCmdIdsArrayIndex.cmdId" ) - return iCmdIds[aIndex]; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::UpdateToolbar -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::UpdateToolbarL() - { - __VTPRINTENTER( "Toolbar.UpdateToolbar" ) - TVtUiStates& uiStates = iFeatureManager.UiStates(); - - // Zoom mode can be activated also from options menu - // therefore set zoom buttons state to latched - if ( uiStates.IsZoomModeOn() && - IsCommandInToolbar( EVtUiCmdZoom )&& - FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->StateIndex() == 0 ) - { - FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->SetCurrentState ( 1, ETrue ); - } - - - if ( uiStates.IsCaptureModeOn() && IsCommandInToolbar( EVtUiCmdZoom ) ) - { - __VTPRINT( DEBUG_GEN, "Toolbar.UpdateToolbarL.IsCaptureModeOn" ) - // remove zoom mode button tooltip - FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->State( 0 )->SetHelpTextL( KNullDesC() ); - // set zoom mode button to be focused - iToolbar->SetFocusedItemL( EVtUiCmdZoom ); - } - - TInt count = iCmdStates.Count(); - for( TInt i = 0; i < count; i++ ) - { - // no need to do anything - if ( iCmdStates[ i ].iOldState == iCmdStates[ i ].iNewState ) - { - if ( ( iCmdStates[ i ].iCmdId == EVtUiCmdDisableVideo || - iCmdStates[ i ].iCmdId == EVtUiCmdEnableVideo ) && - iCmdStates[ i ].iNewState != EShown && - !( iFeatureManager.UiStates().MediaState().IsSharing() ) ) - { - CVtUiToolbarButton* tbButton = static_cast< CVtUiToolbarButton* >( - FindToolbarItemByCommandId( EVtUiCmdToolbarToggleVideo ) ); - tbButton->SetCurrentState( - iFeatureManager.UiStates().MediaState().IsVideo() ? 0 : 2 , ETrue ); - } - // for the case that EVtUiCmdDisableVideo and - // EVtUiCmdActivateBT command - // need to be shown but it is not visible in - // toogle button. - if ( ( iCmdStates[ i ].iCmdId == EVtUiCmdSwitchFromBTToIHF || - iCmdStates[ i ].iCmdId == EVtUiCmdActivateBT || - iCmdStates[ i ].iCmdId == EVtUiCmdActivateLoudspeaker || - iCmdStates[ i ].iCmdId == EVtUiCmdDeactivateLoudspeaker || - iCmdStates[ i ].iCmdId == EVtUiCmdDisableAudio || - iCmdStates[ i ].iCmdId == EVtUiCmdEnableAudio || - iCmdStates[ i ].iCmdId == EVtUiCmdDisableVideo || - iCmdStates[ i ].iCmdId == EVtUiCmdEnableVideo) && - iCmdStates[ i ].iNewState == EShown ) - { - // Nothing goes here. - } - else - { - continue; - } - } - // dim item - if ( iCmdStates[ i ].iNewState == EDimmed ) - { - DimToolbarButton( iCmdStates[ i ].iCmdId, ETrue, EFalse ); - } - // hide item - // currently used only for toggle buttons - // otherwise EDrawNow parameter must be updated for last element - else if ( iCmdStates[ i ].iNewState == EHidden ) - { - HideToolbarButton( iCmdStates[ i ].iCmdId, ETrue, EFalse ); - } - // show item - else if ( iCmdStates[ i ].iNewState == EShown ) - { - // items are undimmed if they were dimmed - // iCmdStates[ i ].iOldState == EDimmed comparison does - // not work with toggle buttons. - // That is why all buttons are undimmed. - DimToolbarButton( iCmdStates[ i ].iCmdId, EFalse, EFalse ); - - HideToolbarButton( iCmdStates[ i ].iCmdId, EFalse, EFalse ); - } - } - - // capture mode ended remove zoom button's latched state - if ( !uiStates.IsZoomModeOn() && - IsCommandInToolbar( EVtUiCmdZoom )&& - FindToolbarItemByCommandId( EVtUiCmdZoom )->StateIndex() == 1 ) - { - FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->SetCurrentState ( 0, ETrue ); - } - - // if capture mode was activated set zoom mode button active - if ( uiStates.IsCaptureModeOn() && IsCommandInToolbar( EVtUiCmdZoom ) ) - { - // set latched (selected) state - FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->SetCurrentState ( 1, ETrue); - } - else - { - // tooltip must be returned to zoom mode button - // only after zoom mode buttons latched state is changed - // because changing the buttons state will draw the tooltip - if ( IsCommandInToolbar( EVtUiCmdZoom ) && - ( KNullDesC() == ( FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->State(0)->HelpText() ) ) ) - { - HBufC* tooltip = StringLoader::LoadLC( R_VIDEOTELUI_TOOLTIP_ZOOM ); - FindToolbarItemByCommandId( EVtUiCmdZoom ) - ->State(0)->SetHelpTextL( *tooltip ); - CleanupStack::PopAndDestroy( ); // tooltip - } - } - - // draw toolbar - //iToolbar->DrawDeferred(); - iToolbar->DrawNow(); - __VTPRINTEXIT( "Toolbar.UpdateToolbar" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::SetCmdIdVisibilityStateL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::SetCmdIdVisibilityStateL( TInt aCmdId, - TCmdStateFlags aNewState ) - { - __VTPRINTENTER( "Toolbar.SetCmdIdVisibilityStateL" ) - __VTPRINT2( DEBUG_GEN, "Toolbar.SetCmdIdVbStateL.aCmdId=%d", aCmdId ) - __VTPRINT2( DEBUG_GEN, "Toolbar.SetCmdIdVbStateL.aNewState=%d", aNewState ) - - TInt result = KErrNotFound; - for ( TInt i = 0; i < iCmdStates.Count(); i++ ) - { - if ( iCmdStates[ i ].iCmdId == aCmdId ) - { - // command found - result = i; - break; - } - } - // new item - // add to array - if( result == KErrNotFound ) - { - TCommandState state; - state.iCmdId = aCmdId; - state.iOldState = ENotInitialized; - state.iNewState = aNewState; - iCmdStates.AppendL( state ); - } - else // old item - { - iCmdStates[ result ].iOldState = iCmdStates[ result ].iNewState; - iCmdStates[ result ].iNewState = aNewState; - } - - __VTPRINTEXIT( "Toolbar.SetCmdIdVbStateL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::IsCommandInToolbar -// ----------------------------------------------------------------------------- -// -TBool CVtUiToolbarBase::IsCommandInToolbar( TInt aCmdId ) const - { - __VTPRINTENTER( "Toolbar.SetCmdIdVisibilityStateL" ) - TBool result = EFalse; - for ( TInt i = 0; i < iCmdIds.Count(); i++ ) - { - if ( iCmdIds[ i ] == aCmdId ) - { - result = ETrue; - break; - } - } - __VTPRINTEXITR( "Toolbar.IsCommandInToolbar.result %d", (TInt)result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::RefreshL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::RefreshL() - { - __VTPRINTENTER( "Toolbar.RefreshL" ) - iFeatureManager.CommandManager(). - ValidateToolbarItemsL( *iHideToolbarItemAction ); - __VTPRINTEXIT( "Toolbar.RefreshL" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::AddCommandModifier -// ----------------------------------------------------------------------------- -// -TInt CVtUiToolbarBase::AddCommandModifier( CVtUiCommandModifyBase& /*aModifier*/ ) - { - __VTPRINTENTER( "Toolbar.AddCommandModifier" ) - __VTPRINTEXIT( "Toolbar.AddCommandModifier" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::RemoveCommandModifier -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::RemoveCommandModifier( CVtUiCommandModifyBase& /*aModifier*/ ) - { - __VTPRINTENTER( "Toolbar.RemoveCommandModifier" ) - __VTPRINTEXIT( "Toolbar.RemoveCommandModifier" ) - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::ComponentId -// ----------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiToolbarBase::ComponentId() const - { - __VTPRINTENTER( "Toolbar.ComponentId" ) - __VTPRINTEXIT( "Toolbar.ComponentId" ) - return MVtUiComponent::EComponentIdToolbar; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::ComponentAsControl -// ----------------------------------------------------------------------------- -// -CCoeControl* CVtUiToolbarBase::ComponentAsControl() - { - __VTPRINTENTER( "Toolbar.ComponentAsControl" ) - __VTPRINTEXIT( "Toolbar.ComponentAsControl" ) - return NULL; - } - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::DoActivateL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::DoActivateL() - { - __VTPRINTENTER( "Toolbar.DoActivateL" ) - // add command ui to commandmanager - User::LeaveIfError( - iFeatureManager.CommandManager().AddCommandUi( *this ) ); - // add command modifier - User::LeaveIfError( iFeatureManager. - CommandManager().AddCommandModifier( *iToolbarSKModifier ) ); - // add validator - User::LeaveIfError( iFeatureManager.CommandManager(). - AddValidator( *iToolbarCmdPolicy ) ); - // refresh - iFeatureManager.CommandManager().RefreshL(); - __VTPRINTEXIT( "Toolbar.DoActivateL" ) - } - - -// ----------------------------------------------------------------------------- -// CVtUiToolbarBase::DoDeactivateL -// ----------------------------------------------------------------------------- -// -void CVtUiToolbarBase::DoDeactivateL() - { - __VTPRINTENTER( "Toolbar.DoDeactivateL" ) - // remove command modifier - iFeatureManager.CommandManager(). - RemoveCommandModifier( *iToolbarSKModifier ); - // remove command validator - iFeatureManager.CommandManager().RemoveValidator( *iToolbarCmdPolicy ); - // remove commandui - iFeatureManager.CommandManager().RemoveCommandUi( *this ); - if ( iToolbar ) - { - __VTPRINT(DEBUG_GEN, "Toolbar.DoDeactivateL, iToolbar is not null" ) - iToolbar->DrawNow(); - } - __VTPRINTEXIT( "Toolbar.DoDeactivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarBase::HandleLayoutChangeL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarBase::HandleLayoutChangeL() - { - __VTPRINTENTER( "CVtUiToolbarBase.HandleLayoutChangeL" ) - TBool isLandscape = Layout_Meta_Data::IsLandscapeOrientation(); - CEikMenuBar* menuBar = CEikonEnv::Static()->AppUiFactory()->MenuBar(); - - // This check prevents toolbar from drawing over the dialer - // when orientation is changed from landscape to portrait - - // Transition from landsacpe to portrait - // toolbar must be hided - if ( !isLandscape && IsDialerActive() ) - { - __VTPRINT(DEBUG_GEN, "CVtUiToolbarBase.LayoutChangeL.Stop" ) - SetToolbarVisibilityAfterLayoutChangeL( EFalse ); - } - else if ( iFeatureManager.UiStates().IsSelectingShare() ) - { - __VTPRINT( DEBUG_GEN, "ToolbarBase::HandleLayoutChangeL ShareImage." ) - SetToolbarVisibilityAfterLayoutChangeL( EFalse ); - } - else if ( !isLandscape && iFeatureManager.UiStates().IsVideoQualityModeOn() ) - { - __VTPRINT( DEBUG_GEN, "ToolbarBase::HandleLayoutChangeL Video Quality." ) - SetToolbarVisibilityAfterLayoutChangeL( EFalse ); - } - else if ( !isLandscape && iFeatureManager.UiStates().IsWhiteBalanceModeOn() ) - { - __VTPRINT( DEBUG_GEN, "ToolbarBase::HandleLayoutChangeL White Balance." ) - SetToolbarVisibilityAfterLayoutChangeL( EFalse ); - } - else if ( !isLandscape && iFeatureManager.UiStates().IsColorToneModeOn() ) - { - __VTPRINT( DEBUG_GEN, "ToolbarBase::HandleLayoutChangeL Color Tone." ) - SetToolbarVisibilityAfterLayoutChangeL( EFalse ); - } - else if ( !isLandscape && menuBar && menuBar->IsDisplayed() ) - { - __VTPRINT( DEBUG_GEN, "ToolbarBase::HandleLayoutChangeL Menu Displayed." ) - SetToolbarVisibilityAfterLayoutChangeL( EFalse ); - } - // Transition from portrait to landsacpe - // toolbar must be set to visible - else if ( isLandscape && IsDialerActive() ) - { - __VTPRINT(DEBUG_GEN, "CVtUiToolbarBase.LayoutChangeL.StartL" ) - SetToolbarVisibilityAfterLayoutChangeL( ETrue ); - } - __VTPRINTEXIT( "CVtUiToolbarBase.HandleLayoutChangeL" ) - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuitoolbarbutton.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuitoolbarbutton.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* -* 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: CVtUiToolbarButton implementation. -* -*/ - - -// INCLUDE FILES -#include -#include "cvtuitoolbarbutton.h" -#include "CVtUiAppUi.h" -#include "videotelui.hrh" - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::NewL -// ----------------------------------------------------------------------------- -// -CVtUiToolbarButton* CVtUiToolbarButton::NewL( TInt aResourceId, - CVtUiAppUi& aAppUi, TInt aCmdId ) - { - __VTPRINTENTER( "CVtUiToolbarButton.NewL" ) - CVtUiToolbarButton* self = CVtUiToolbarButton::NewLC( aResourceId, aAppUi, - aCmdId ); - CleanupStack::Pop( self ); - __VTPRINTEXIT( "CVtUiToolbarButton.NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CVtUiNaviPane::NewLC -// ----------------------------------------------------------------------------- -// -CVtUiToolbarButton* CVtUiToolbarButton::NewLC( TInt aResourceId, - CVtUiAppUi& aAppUi, TInt aCmdId ) - { - __VTPRINTENTER( "CVtUiToolbarButton.NewLC" ) - CVtUiToolbarButton* self = new ( ELeave ) CVtUiToolbarButton( aAppUi, - aCmdId ); - CleanupStack::PushL( self ); - self->ConstructL(); - self->ConstructFromResourceL( aResourceId ); - __VTPRINTEXIT( "CVtUiToolbarButton.NewLC" ) - return self; - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::~CVtUiToolbarButton -// ---------------------------------------------------------------------------- -// -CVtUiToolbarButton::~CVtUiToolbarButton() - { - __VTPRINTENTER( "CVtUiToolbarButton.~" ) - __VTPRINTEXIT( "CVtUiToolbarButton.~" ) - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::CVtUiToolbarButton -// ---------------------------------------------------------------------------- -// -CVtUiToolbarButton::CVtUiToolbarButton( CVtUiAppUi& aAppUi, TInt aCmdId ) -: CAknButton( 0 ), iAppUi( aAppUi ), iCmdId ( aCmdId ), - iIsBlockingKeyEvents ( EFalse ), iIsBlockingPointerEvents( EFalse ) - { - __VTPRINTENTER( "CVtUiToolbarButton.CVtUiToolbarButton" ) - __VTPRINTEXIT( "CVtUiToolbarButton.CVtUiToolbarButton") - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::ShowHelpL -// ---------------------------------------------------------------------------- -// -void CVtUiToolbarButton::ShowHelpL() - { - __VTPRINTENTER( "CVtUiToolbarButton.ShowHelpL" ) - CAknButton::ShowHelpL(); - __VTPRINTEXIT( "CVtUiToolbarButton.ShowHelpL") - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::CmdId -// ---------------------------------------------------------------------------- -// -TInt CVtUiToolbarButton::CmdId() const - { - __VTPRINTENTER( "CVtUiToolbarButton.CmdId" ) - __VTPRINTEXIT( "CVtUiToolbarButton.CmdId") - return iCmdId; - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::BlockPointerEvents -// ---------------------------------------------------------------------------- -// -void CVtUiToolbarButton::BlockPointerEvents( TBool aIsBlocking ) - { - __VTPRINTENTER( "CVtUiToolbarButton.BlockPointerEvents" ) - iIsBlockingPointerEvents = aIsBlocking; - __VTPRINTEXITR( "CVtUiToolbarButton.BlockPointerEvents=%d", aIsBlocking ) - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::BlockKeyEvents -// ---------------------------------------------------------------------------- -// -void CVtUiToolbarButton::BlockKeyEvents( TBool aIsBlocking ) - { - __VTPRINTENTER( "CVtUiToolbarButton.BlockKeyEvents" ) - iIsBlockingKeyEvents = aIsBlocking; - __VTPRINTEXITR( "CVtUiToolbarButton.BlockKeyEvents=%d", aIsBlocking ) - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::OfferKeyEventL -// ---------------------------------------------------------------------------- -// -TKeyResponse CVtUiToolbarButton::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - __VTPRINTENTER( "CVtUiToolbarButton.OfferKeyEventL" ) - if ( IsCommandActive() && iIsBlockingKeyEvents ) - { - __VTPRINTEXIT( "CVtUiToolbarButton.OfferKeyEventL.Blocked" ) - return EKeyWasConsumed; - } - __VTPRINTEXIT( "CVtUiToolbarButton.OfferKeyEventL" ) - return CAknButton::OfferKeyEventL( aKeyEvent, aType); - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::HandlePointerEventL -// ---------------------------------------------------------------------------- -// -void CVtUiToolbarButton::HandlePointerEventL( const - TPointerEvent& aPointerEvent ) - { - __VTPRINTENTER( "CVtUiToolbarButton.HandlePointerEventL" ) - if ( IsCommandActive() && iIsBlockingPointerEvents ) - { - __VTPRINTEXIT( "CVtUiToolbarButton.HandlePointerEventL.Blocked" ) - return; - } - __VTPRINTEXIT( "CVtUiToolbarButton.HandlePointerEventL.To.AknButton" ) - return CAknButton::HandlePointerEventL( aPointerEvent ); - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::StatesCount -// ---------------------------------------------------------------------------- -// -TInt CVtUiToolbarButton::StatesCount() const - { - return iStates->Count(); - } - -// ---------------------------------------------------------------------------- -// CVtUiToolbarButton::IsCommandActive -// ---------------------------------------------------------------------------- -// -TBool CVtUiToolbarButton::IsCommandActive() const - { - __VTPRINTENTER( "CVtUiToolbarButton.IsCommandActive" ) - TBool value( EFalse ); - value = ( iAppUi.IsActiveCommand( EVtUiCmdDisableVideo ) || - iAppUi.IsActiveCommand( EVtUiCmdEnableVideo ) || - iAppUi.IsActiveCommand( EVtUiCmdEnableAudio ) || - iAppUi.IsActiveCommand( EVtUiCmdDisableAudio ) || - iAppUi.IsActiveCommand( EVtUiCmdUsePrimaryCamera ) || - iAppUi.IsActiveCommand( EVtUiCmdUseSecondaryCamera ) || - // Audio routing to blocking - iAppUi.IsActiveCommand( EVtUiCmdActivateBT ) || - iAppUi.IsActiveCommand( EVtUiCmdSwitchFromBTToIHF ) || - iAppUi.IsActiveCommand( EVtUiCmdActivateLoudspeaker ) || - iAppUi.IsActiveCommand( EVtUiCmdDeactivateLoudspeaker ) - ); - - __VTPRINTEXITR( "CVtUiToolbarButton.IsCommandActive=%d", value ) - return value; - } -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuitoolbarcmdpolicy.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuitoolbarcmdpolicy.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* 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: Toolbar command policy implementation. -* -*/ - - -#include - -#include "cvtuitoolbarcmdpolicy.h" -#include "cvtuicmdvalidationactionbase.h" -#include "tvtuicmdvalidatorcallback.h" -#include "cvtuitoolbarbase.h" -#include "videotelui.hrh" - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::NewL -// --------------------------------------------------------------------------- -// -CVtUiToolbarCmdPolicy* CVtUiToolbarCmdPolicy::NewL( CVtUiToolbarBase& aToolbar ) - { - __VTPRINTENTER( "ToolbarCmdPolicy.NewL" ) - CVtUiToolbarCmdPolicy* self = new ( ELeave ) CVtUiToolbarCmdPolicy( - aToolbar ); - __VTPRINTEXIT( "ToolbarCmdPolicy.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::ValidateMenuItemsL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarCmdPolicy::ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction, TInt /*aReferencePriority*/ ) - { - __VTPRINTENTER( "ToolbarCmdPolicy.ValidateMenuItemsL" ) - aAction.ProcessL( - TVtUiCmdValidatorCallBack< CVtUiToolbarCmdPolicy >( *this, - ValidateMenuCommand ) ); - __VTPRINTEXIT( "ToolbarCmdPolicy.ValidateMenuItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::ValidateSoftkeyItemsL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarCmdPolicy::ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& /*aAction*/, TInt /*aReferencePriority*/ ) - { - __VTPRINTENTER( "ToolbarCmdPolicy.ValidateSoftkeyItemsL" ) - __VTPRINTEXIT( "ToolbarCmdPolicy.ValidateSoftkeyItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::ValidateToolbarItemsL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarCmdPolicy::ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& /*aAction*/, TInt /*aReferencePriority*/ ) - { - __VTPRINTENTER( "ToolbarCmdPolicy.ValidateToolbarItemsL" ) - __VTPRINTEXIT( "ToolbarCmdPolicy.ValidateToolbarItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::CustomValidationL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarCmdPolicy::CustomValidationL( - CVtUiCmdCustomValidationActionBase&, TInt ) - { - __VTPRINTENTER( "ToolbarCmdPolicy.CustomValidationL" ) - __VTPRINTEXIT( "ToolbarCmdPolicy.CustomValidationL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::ValidatesContext -// --------------------------------------------------------------------------- -// -TBool CVtUiToolbarCmdPolicy::ValidatesContext( - const TVtUiCmdContextType& aCtxType ) const - { - __VTPRINTENTER( "ToolbarCmdPolicy.ValidatesContext" ) - - TBool result( EFalse ); - - switch ( aCtxType ) - { - case EVtUiCmdContextTypeMenu: - case EVtUiCmdContextTypeSoftkey: - case EVtUiCmdContextTypeToolbar: - result = ETrue; - break; - - default: - break; - } - - __VTPRINTEXITR( "ToolbarCmdPolicy.ValidatesContext %d", result ) - - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::CVtUiToolbarCmdPolicy -// --------------------------------------------------------------------------- -// -CVtUiToolbarCmdPolicy::CVtUiToolbarCmdPolicy( CVtUiToolbarBase& aToolbar ) - : CVtUiCmdValidatorBase( EVtUiCmdPolicyPriorityToolbar ), - iToolbar( aToolbar ) - { - __VTPRINTENTER( "ToolbarCmdPolicy.ctor" ) - __VTPRINTEXIT( "ToolbarCmdPolicy.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarCmdPolicy::ValidateMenuCommand -// --------------------------------------------------------------------------- -// -TBool CVtUiToolbarCmdPolicy::ValidateMenuCommand( TInt /*aCommandId*/ ) const - { - __VTPRINTENTER( "ToolbarCmdPolicy.ValidateMenuCommand" ) - // all commands are also in options menu - __VTPRINTEXIT( "ToolbarCmdPolicy.ValidateMenuCommand") - return EFalse; - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuitoolbarcontext.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuitoolbarcontext.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* 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: Toolbar context implementation. -* -*/ - - -#include - -#include "cvtuitoolbarcontext.h" - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiToolbarContext::~CVtUiToolbarContext -// --------------------------------------------------------------------------- -// -CVtUiToolbarContext::~CVtUiToolbarContext() - { - __VTPRINTENTER( "ToolbarCtx.~" ) - UnregisterCommandContext(); - __VTPRINTEXIT( "ToolbarCtx.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarContext::NewL -// --------------------------------------------------------------------------- -// -CVtUiToolbarContext* CVtUiToolbarContext::NewL( - MVtUiCommandManager& aCommandManager ) - { - __VTPRINTENTER( "ToolbarCtx.NewL" ) - CVtUiToolbarContext* self = - new ( ELeave ) CVtUiToolbarContext( aCommandManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "ToolbarCtx.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarContext::ValidateL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarContext::ValidateL( CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "ToolbarCtx.ValidateL" ) - ValidateToolbarItemsL( aAction ); - __VTPRINTEXIT( "ToolbarCtx.ValidateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarContext::CVtUiToolbarContext -// --------------------------------------------------------------------------- -// -CVtUiToolbarContext::CVtUiToolbarContext( - MVtUiCommandManager& aCommandManager ) - : CVtUiCmdContext( aCommandManager, EVtUiCmdContextTypeToolbar, - KVtUiToolbarContextPriority ) - { - __VTPRINTENTER( "ToolbarCtx.ctor" ) - __VTPRINTEXIT( "ToolbarCtx.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarContext::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiToolbarContext::ConstructL() - { - __VTPRINTENTER( "ToolbarCtx.ConstructL" ) - RegisterCommandContextL(); - __VTPRINTEXIT( "ToolbarCtx.ConstructL" ) - } - -// End of File - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/cvtuitoolbarskmodifier.cpp --- a/vtuis/videotelui/src/features/toolbar/cvtuitoolbarskmodifier.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* 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: Softkey modifier class implementation. -* -*/ - - -#include -#include "cvtuitoolbarskmodifier.h" -#include "mvtuicommandsetting.h" -#include "tvtuicommandmodifierpriority.h" -#include "CVtUiAppUi.h" -#include "tvtuistates.h" -#include -#include - - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiToolbarSKModifier::NewL -// --------------------------------------------------------------------------- -// -CVtUiToolbarSKModifier* CVtUiToolbarSKModifier::NewL( CVtUiAppUi& aAppUi, - const TVtUiStates& aUiStates ) - { - __VTPRINTENTER( "CVtUiToolbarSKModifier.NewL" ) - CVtUiToolbarSKModifier* self = - new ( ELeave ) CVtUiToolbarSKModifier( aAppUi, aUiStates ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - __VTPRINTEXIT( "CVtUiToolbarSKModifier.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarSKModifier::~CVtUiToolbarSKModifier -// --------------------------------------------------------------------------- -// -CVtUiToolbarSKModifier::~CVtUiToolbarSKModifier() - { - __VTPRINTENTER( "CVtUiToolbarSKModifier.~" ) - __VTPRINTEXIT( "CVtUiToolbarSKModifier.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarSKModifier::CVtUiToolbarSKModifier -// --------------------------------------------------------------------------- -// -CVtUiToolbarSKModifier::CVtUiToolbarSKModifier( CVtUiAppUi& aAppUi, - const TVtUiStates& aUiStates ) : - CVtUiCommandModifyBase ( EVtUiCmdModifierPriorityToolbar ), - iAppUi ( aAppUi ), iUiStates ( aUiStates ) - { - __VTPRINTENTER( "CVtUiToolbarSKModifier.Ctr" ) - __VTPRINTEXIT( "CVtUiToolbarSKModifier.Ctr" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarSKModifier::CVtUiToolbarSKModifier -// --------------------------------------------------------------------------- -// -void CVtUiToolbarSKModifier::ConstructL() - { - __VTPRINTENTER( "CVtUiToolbarSKModifier.ConstructL" ) - __VTPRINTEXIT( "CVtUiToolbarSKModifier.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiToolbarSKModifier::CVtUiToolbarSKModifier -// --------------------------------------------------------------------------- -// -void CVtUiToolbarSKModifier::ModifyCommandsL( - MVtUiCommandSetting& aCommandSettings ) - { - __VTPRINTENTER( "CVtUiToolbarSKModifier.ModifyCommandsL" ) - aCommandSettings.DoDefineCommandsL(); - - // No need to change MSK during snapshot - if ( iUiStates.IsCaptureModeOn() ) - { - return; - } - - CEikButtonGroupContainer* cba = iAppUi.GetCba(); - const TInt mskIndex = 3; - // Set selection key to msk - cba->SetCommandL( mskIndex, R_VIDEOTELUI_SELECT_CBA_BUTTON ); - __VTPRINTEXIT( "CVtUiToolbarSKModifier.ModifyCommandsL" ) - } -// --------------------------------------------------------------------------- -// CVtUiToolbarSKModifier::CVtUiToolbarSKModifier -// --------------------------------------------------------------------------- -// -TBool CVtUiToolbarSKModifier::Supports( MVtUiCommandSetting::Type aType ) const - { - __VTPRINTENTER( "CVtUiToolbarSKModifier.Supports" ) - __VTPRINTEXIT( "CVtUiToolbarSKModifier.Supports" ) - return ( aType == MVtUiCommandSetting::ECommandTypeSoftkeys ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/toolbar/tvtuitoolbarcommanditerator.cpp --- a/vtuis/videotelui/src/features/toolbar/tvtuitoolbarcommanditerator.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2009 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: Toolbar command iterator implementation. -* -*/ - - -#include "cvtuitoolbarbase.h" -#include "tvtuitoolbarcommanditerator.h" - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// TVtUiToolbarCommandIterator::TVtUiToolbarCommandIterator -// --------------------------------------------------------------------------- -// -TVtUiToolbarCommandIterator::TVtUiToolbarCommandIterator( CVtUiToolbarBase& - aToolbar ) : iToolbar( &aToolbar ), iCurrent( 0 ) - { - } - -// --------------------------------------------------------------------------- -// TVtUiToolbarCommandIterator::HasNext -// --------------------------------------------------------------------------- -// -TBool TVtUiToolbarCommandIterator::HasNext() const - { - return ( iCurrent < iToolbar->NumberOfToolbarControls() ); - } - -// --------------------------------------------------------------------------- -// TVtUiToolbarCommandIterator::Next -// --------------------------------------------------------------------------- -// -TInt TVtUiToolbarCommandIterator::Next() - { - return iToolbar->CommandIdByCmdIdsArrayIndex( iCurrent++ ); - } - -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/volume/cvtuivolume.cpp --- a/vtuis/videotelui/src/features/volume/cvtuivolume.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* 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: Volume feature implementation. -* -*/ - - -#include -#include "cvtuivolume.h" -#include "tvtuifeatureids.h" -#include "cvtuivolumepopup.h" -#include "cvtuifeaturemanager.h" -#include "tvtuifeatureids.h" -#include "tvtuistates.h" - -// --------------------------------------------------------------------------- -// CVtUiVolume::NewL -// --------------------------------------------------------------------------- -// -CVtUiVolume* CVtUiVolume::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiVolume.NewL" ) - CVtUiVolume* self = - new ( ELeave ) CVtUiVolume( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiVolume.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::~CVtUiVolume -// --------------------------------------------------------------------------- -// -CVtUiVolume::~CVtUiVolume() - { - __VTPRINTENTER( "CVtUiVolume.~" ) - __VTPRINTEXIT( "CVtUiVolume.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::RefreshL -// --------------------------------------------------------------------------- -// -void CVtUiVolume::RefreshL() - { - __VTPRINTENTER( "CVtUiVolume.RefreshL" ) - if ( State() == EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiPopupBase.RefreshL.EActive" ) - static_cast< CVtUiVolumePopup& >( Popup() ).RefreshL(); - } - else - { - __VTPRINT( DEBUG_GEN, "CVtUiVolume.RefreshL.Else" ) - static_cast< CVtUiVolumePopup& >( Popup() ).UpdateVolumeAndRoutingL(); - } - __VTPRINTEXIT( "CVtUiVolume.RefreshL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::StartL -// --------------------------------------------------------------------------- -// -void CVtUiVolume::StartL() - { - __VTPRINTENTER( "CVtUiVolume.StartL" ) - // if brightness or contrast slider is active stop those - MVtUiFeature* br = iFeatureManager. - GetFeatureById( EVtUiFeatureIdBrightness ); - if ( br && br->State() == EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiPopupBase.StartL.br->Stop" ) - br->Stop(); - } - - MVtUiFeature* cr = iFeatureManager. - GetFeatureById( EVtUiFeatureIdContrast ); - if ( cr && cr->State() == EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiPopupBase.StartL.cr->Stop" ) - cr->Stop(); - } - - if ( State() == EActive ) - { - // need to refresh when already active to replenish the close timer - RefreshL(); - } - else - { - iFeatureManager.UiStates().SetIsFloatingToolbarVisible( ETrue ); - CVtUiSliderBase::StartL(); - iFeatureManager.UiStates().SetVolumeModeOn( ETrue ); - // Toolbar needs to be refreshed if contrat and brightness were dismissed - - } - __VTPRINTEXIT( "CVtUiVolume.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::Stop -// --------------------------------------------------------------------------- -// -void CVtUiVolume::Stop() - { - __VTPRINTENTER( "CVtUiVolume.Stop" ) - iFeatureManager.UiStates().SetVolumeModeOn( EFalse ); - CVtUiSliderBase::Stop(); - __VTPRINTEXIT( "CVtUiVolume.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::GetVolumeValue -// --------------------------------------------------------------------------- -// -TInt CVtUiVolume::GetVolumeValue() - { - __VTPRINTENTER( "CVtUiVolume.GetVolumeValue" ) - __VTPRINTEXITR( "CVtUiVolume.GetVolumeValue%d", Popup().Value() ) - return Popup().Value(); - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::CVtUiVolume -// --------------------------------------------------------------------------- -// -CVtUiVolume::CVtUiVolume( CVtUiFeatureManager& aFeatureManager ) - : CVtUiSliderBase( aFeatureManager, EVtUiFeatureIdVolume ) - { - - __VTPRINTENTER( "CVtUiVolume.CVtUiVolume" ) - __VTPRINTEXIT( "CVtUiVolume.CVtUiVolume" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolume::CVtUiVolume -// --------------------------------------------------------------------------- -// -void CVtUiVolume:: ConstructL() - { - __VTPRINTENTER( "CVtUiVolume.ConstructL" ) - BaseConstructL(); - SetPopup( CVtUiVolumePopup::NewL( iFeatureManager ) ); - __VTPRINTEXIT( "CVtUiVolume.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/volume/cvtuivolumecontrol.cpp --- a/vtuis/videotelui/src/features/volume/cvtuivolumecontrol.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2008 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: Implementation of the cvtuivolumecontrol class. -* -*/ - - -#include "cvtuivolumecontrol.h" -#include "MVtUiEngineCommandManager.h" -#include -#include -#include "cvtuivolume.h" -#include "cvtuifeaturemanager.h" - -// ----------------------------------------------------------------------------- -// CVtUiVolumeControl::CVtUiVolumeControl -// ----------------------------------------------------------------------------- -// -CVtUiVolumeControl::CVtUiVolumeControl( - MVtEngCommandHandler& aCommandHandler, - MVtEngAudio& aAudio, - MVtUiEngineCommandManager& aCommandManager, - CVtUiFeatureManager& aFeatureManager ) - : iCommandHandler( aCommandHandler ), - iAudio( aAudio ), - iCommandManager( aCommandManager ), - iVolumePtr( (TUint8*)&iVolume, sizeof( TVolume ) ), - iFeatureManager( aFeatureManager ) - { - } - -// ----------------------------------------------------------------------------- -// CVtUiVolumeControl::~CVtUiVolumeControl -// ----------------------------------------------------------------------------- -// -CVtUiVolumeControl::~CVtUiVolumeControl() - { - if ( iIsActive ) - { - iCommandHandler.CancelCommand( KVtEngSetAudioVolume ); // ignore error - } - iCommandManager.RemoveObserver( *this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiVolumeControl::ExecuteDialogLD -// ----------------------------------------------------------------------------- -// -void CVtUiVolumeControl::ConstructL() - { - CleanupStack::PushL( this ); - iCommandManager.AddObserverL( *this ); - CleanupStack::Pop( this ); - } - -// ----------------------------------------------------------------------------- -// CVtUiVolumeControl::SetVoAdjustVolumeL -// ----------------------------------------------------------------------------- -// -void CVtUiVolumeControl::AdjustVolumeL( TVolume aVolume ) - { - __VTPRINTENTER( "VtUiVolCtrl.AdjustVolumeL") - if ( iIsActive ) - { - __VTPRINTENTER( "VtUiVolCtrl.AdjustVolumeL.Isactive") - return; - } - iIsActive = ETrue; - iVolume = aVolume; - iCommandHandler.ExecuteL( KVtEngSetAudioVolume, &iVolumePtr ); - __VTPRINTEXIT( "VtUiVolCtrl.AdjustVolumeL") - } - -// ----------------------------------------------------------------------------- -// CVtUiVolumeControl::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -void CVtUiVolumeControl::HandleVTCommandPerformedL( - TVtEngCommandId aCommand, - const TInt aError ) - { - __VTPRINTENTER( "VtUiVolCtrl.HandleVTCommandPerformedL") - if ( aCommand == KVtEngSetAudioVolume ) - { - __VTPRINT( DEBUG_GEN, "VtUiVolCtrl.perf" ) - TInt error = aError; - // If volume has been changed, then try to set volume again. - //iIsActive = ETrue; - if ( IsVolumeChangedL() ) - { - __VTPRINT( DEBUG_GEN, "VtUiVolCtrl.retry" ) - TRAP( error, - iCommandHandler.ExecuteL( - KVtEngSetAudioVolume, - &iVolumePtr ) ); - __VTPRINT2( DEBUG_GEN, "VtUiVolCtrl.err.%d", error ) - iIsActive = ( error == KErrNone ); - } - else - { - __VTPRINT( DEBUG_GEN, - "VtUiVolCtrl.HandleVTCommandPerformedL iIsActive = EFalse; " ) - iIsActive = EFalse; - } - - } - __VTPRINTEXIT( "VtUiVolCtrl.HandleVTCommandPerformedL") - } - -// ----------------------------------------------------------------------------- -// CVtUiVolumeControl::IsVolumeChangedL -// ----------------------------------------------------------------------------- -// -TBool CVtUiVolumeControl::IsVolumeChangedL() - { - __VTPRINTENTER( "VtUiVolCtrl.IsVolumeChangedL" ) - MVtEngAudio::TAudioRoutingState audioRouting; - User::LeaveIfError( iAudio.GetRoutingState( audioRouting ) ); - const TInt volume( iAudio.OutputVolume( - !( audioRouting == MVtEngAudio::EAudioLoudspeaker ) ) ); - - CVtUiVolume* vp = static_cast< CVtUiVolume* >( - iFeatureManager.GetFeatureById( EVtUiFeatureIdVolume ) ); - TInt sliderVolume( volume ); - if ( vp ) - { - sliderVolume = vp->GetVolumeValue(); - // update correct volume - if ( audioRouting == MVtEngAudio::EAudioLoudspeaker ) - { - __VTPRINT( DEBUG_GEN, "VtUiVolCtrl.IsVolumeChangedL.LS") - iVolume.iHandsfreeVolume = sliderVolume; - } - else - { - __VTPRINT( DEBUG_GEN, "VtUiVolCtrl.IsVolumeChangedL.HS") - iVolume.iHandsetVolume = sliderVolume; - } - } - - __VTPRINT2( DEBUG_GEN, "VtUiVolCtrl.vol %d", volume ) - __VTPRINT2( DEBUG_GEN, "VtUiVolCtrl.slidvol %d", sliderVolume ) - __VTPRINTEXITR( "VtUiVolCtrl.IsVolumeChangedL %d", sliderVolume == volume ) - return sliderVolume == volume ? EFalse : ETrue; - } -// End of File diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/volume/cvtuivolumepopup.cpp --- a/vtuis/videotelui/src/features/volume/cvtuivolumepopup.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,277 +0,0 @@ -/* -* 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: Volume popup implementation. -* -*/ - - -#include -#include -#include "cvtuivolumepopup.h" -#include "cvtuifeaturemanager.h" -#include "tVtuifeaturevariation.h" -#include "CVtUiAppUi.h" -#include "cvtengmodel.h" - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::NewL -// --------------------------------------------------------------------------- -// -CVtUiVolumePopup* CVtUiVolumePopup::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiVolumePopup.NewL" ) - CVtUiVolumePopup* self = - new ( ELeave ) CVtUiVolumePopup( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiVolumePopup.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::~CVtUiVolumePopup -// --------------------------------------------------------------------------- -// -CVtUiVolumePopup::~CVtUiVolumePopup() - { - __VTPRINTENTER( "CVtUiVolumePopup.~" ) - __VTPRINTEXIT( "CVtUiVolumePopup.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::UpdateVolumeAndRouting -// --------------------------------------------------------------------------- -// -void CVtUiVolumePopup::UpdateVolumeAndRoutingL() - { - __VTPRINTENTER( "CVtUiVolumePopup.UpdateVolumeAndRoutingL" ) - MVtEngAudio& audio( iModel.Audio() ); - MVtEngAudio::TAudioRoutingState audioRouting; - User::LeaveIfError( audio.GetRoutingState( audioRouting ) ); - //update routing and volume for this routing - iAudioRouting = audioRouting; - iVolume = OutputVolume( iAudioRouting ); - SetValue( iVolume ); - __VTPRINTEXIT( "CVtUiVolumePopup.UpdateVolumeAndRoutingL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::RefreshL -// --------------------------------------------------------------------------- -// -void CVtUiVolumePopup::RefreshL() - { - __VTPRINTENTER( "CVtUiVolumePopup.RefreshL" ) - MVtEngAudio& audio( iModel.Audio() ); - MVtEngAudio::TAudioRoutingState audioRouting; - User::LeaveIfError( audio.GetRoutingState( audioRouting ) ); - - // Check if audio routing has changed - if ( audioRouting != iAudioRouting ) - { - __VTPRINT( DEBUG_GEN, - "CVtUiVolumePopup.RefreshL audio routing changed" ) - // Audio routing changed -> update routing and volume for this routing - iAudioRouting = audioRouting; - iVolume = OutputVolume( iAudioRouting ); - SetValue( iVolume ); - __VTPRINT2( DEBUG_GEN, "CVtUiVolumePopup.RefreshL routing = %d", - iAudioRouting ) - __VTPRINT2( DEBUG_GEN, "CVtUiVolumePopup.RefreshL volume = %d", - iVolume ) - ClosePopup(); - } - else - { - // No change in audio routing - const TInt volume( OutputVolume( iAudioRouting ) ); - if ( volume != iVolume ) - { - __VTPRINT( DEBUG_GEN, "CVtUiVolumePopup.RefreshL volume changed" ) - iVolume = volume; - SetValue( iVolume ); - __VTPRINT2( DEBUG_GEN, "CVtUiVolumePopup.RefreshL volume = %d", - iVolume ) - if ( !IsPopUpVisible() ) - { - __VTPRINT( DEBUG_GEN, "CVtUiVolumePopup.RefreshL OpenPopupL" ) - OpenPopupL(); - } - else - { - __VTPRINT( DEBUG_GEN, "CVtUiVolumePopup.RefreshL ShowPopupL" ) - ShowPopupL(); - } - } - else - { - __VTPRINT( DEBUG_GEN, "CVtUiVolumePopup.RefreshL ShowPopupL2" ) - ShowPopupL(); - } - } - __VTPRINTEXIT( "CVtUiVolumePopup.RefreshL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::DoActivateL() -// --------------------------------------------------------------------------- -// -void CVtUiVolumePopup::DoActivateL() - { - __VTPRINTENTER( "CVtUiVolumePopup.DoActivateL" ) - CVtUiPopupBase::DoActivateL(); - // In order to refresh softkey. - iFeatureManager.AppUi().RefreshSoftkeysL(); - __VTPRINTEXIT( "CVtUiVolumePopup.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::OfferKeyEventL() -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiVolumePopup::OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode /*aCode*/ ) - { - __VTPRINTENTER( "CVtUiVolumePopup.OfferKeyEventL" ) - TKeyResponse response( EKeyWasNotConsumed ); - TVtUiSideVolumeKeysVariation svkvariation; - if ( !svkvariation.IsSideVolumeKeysSupported() && - ( aEvent.iScanCode == EStdKeyLeftArrow || - aEvent.iScanCode == EStdKeyRightArrow ) ) - { - ShowPopupL(); - UpdateVolumeL(); - } - __VTPRINTEXITR( "CVtUiVolumePopup.OfferKeyEventL %d", response ) - return response; - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::HandleControlEventL -// --------------------------------------------------------------------------- -// -void CVtUiVolumePopup::HandleControlEventL( CCoeControl* aControl, - TCoeEvent aEventType ) - { - __VTPRINTENTER( "CVtUiVolumePopup.HandleControlEventL" ) - CVtUiPopupBase::HandleControlEventL( aControl, aEventType ); - if ( aEventType == EEventStateChanged ) - { - UpdateVolumeL(); - } - __VTPRINTEXIT( "CVtUiVolumePopup.HandleControlEventL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::CVtUiVolumePopup -// --------------------------------------------------------------------------- -// -CVtUiVolumePopup::CVtUiVolumePopup( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPopupBase( aFeatureManager.ComponentManager(), - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry | - MVtUiComponent::EComponentIdZoom | - MVtUiComponent::EVComponentIdContrast | - MVtUiComponent::EVComponentIdBrightness ), - EComponentIdVolume ), - iModel( aFeatureManager.AppUi().Model() ), - iFeatureManager ( aFeatureManager ) - { - __VTPRINTENTER( "CVtUiVolumePopup.CVtUiVolumePopup" ) - __VTPRINTEXIT( "CVtUiVolumePopup.CVtUiVolumePopup" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiVolumePopup::ConstructL() - { - __VTPRINTENTER( "CVtUiVolumePopup.ConstructL" ) - BaseConstructL(); - // set default value - MVtEngAudio& audio( iModel.Audio() ); - MVtEngAudio::TAudioRoutingState audioRouting; - User::LeaveIfError( audio.GetRoutingState( audioRouting ) ); - SetValue( OutputVolume( audioRouting ) ); - // set default audiorouting - iAudioRouting = audioRouting; - __VTPRINTEXIT( "CVtUiVolumePopup.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::OutputVolume -// --------------------------------------------------------------------------- -// -TInt CVtUiVolumePopup::OutputVolume( - MVtEngAudio::TAudioRoutingState aRouting ) const - { - __VTPRINTENTER( "CVtUiVolumePopup.OutputVolume" ) - const MVtEngAudio& audio( iModel.Audio() ); - const TInt volume( audio.OutputVolume( - !( aRouting == MVtEngAudio::EAudioLoudspeaker ) ) ); - __VTPRINTEXITR( "CVtUiVolumePopup.OutputVolume %d", volume ) - return volume; - } - -// --------------------------------------------------------------------------- -// CVtUiVolumePopup::UpdateVolumeL -// --------------------------------------------------------------------------- -// -void CVtUiVolumePopup::UpdateVolumeL() - { - __VTPRINTENTER( "CVtUiVolumePopup.UpdateVolumeL" ) - - MVtEngAudio& audio( iModel.Audio() ); - MVtEngAudio::TAudioRoutingState audioRouting; - User::LeaveIfError( audio.GetRoutingState( audioRouting ) ); - - const TInt volume( OutputVolume( iAudioRouting ) ); - - __VTPRINT2( DEBUG_GEN, "CVtUiVolumePopup.UpdateVolumeL volume = %d", - volume ) - __VTPRINT2( DEBUG_GEN, "CVtUiVolumePopup.UpdateVolumeL Value() = %d", - Value() ) - if ( volume != Value() ) - { - MVtEngAudio::TVtEngOutputVolume newVolume; - - // Get current audio values from engine - // and set new audio volume to right routing - if ( iAudioRouting == MVtEngAudio::EAudioLoudspeaker ) - { - __VTPRINT( DEBUG_GEN, "CVtUiVolumePopup.UpdateVolumeL.LS") - // changed value - newVolume.iHandsfreeVolume = Value(); - // old value - TInt volume = audio.OutputVolume( ETrue ); - newVolume.iHandsetVolume = volume; - } - else - { - __VTPRINT( DEBUG_GEN, "CVtUiVolumePopup.UpdateVolumeL.HS") - // changed value - newVolume.iHandsetVolume = Value(); - // old value - TInt volume = audio.OutputVolume( EFalse ); - newVolume.iHandsfreeVolume = volume; - } - - iFeatureManager.AppUi().CmdUpdateVolumeL( newVolume ); - } - __VTPRINTEXIT( "CVtUiVolumePopup.UpdateVolumeL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/zoom/cvtuizoom.cpp --- a/vtuis/videotelui/src/features/zoom/cvtuizoom.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* 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: Zoom feature implementation. -* -*/ - - -#include -#include "cvtuizoom.h" -#include "tvtuifeatureids.h" -#include "cvtuizoompopup.h" -#include "cvtuifeaturemanager.h" -#include "tvtuistates.h" - -// --------------------------------------------------------------------------- -// CVtUiZoom::NewL -// --------------------------------------------------------------------------- -// -CVtUiZoom* CVtUiZoom::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiZoom.NewL" ) - CVtUiZoom* self = - new ( ELeave ) CVtUiZoom( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiZoom.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::~CVtUiZoom -// --------------------------------------------------------------------------- -// -CVtUiZoom::~CVtUiZoom() - { - __VTPRINTENTER( "CVtUiZoom.~" ) - __VTPRINTEXIT( "CVtUiZoom.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::RefreshL -// --------------------------------------------------------------------------- -// -void CVtUiZoom::RefreshL() - { - __VTPRINTENTER( "CVtUiZoom.RefreshL" ) - if ( State() == EActive ) - { - static_cast< CVtUiZoomPopup& >( Popup() ).RefreshL(); - } - __VTPRINTEXIT( "CVtUiZoom.RefreshL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::StartL -// --------------------------------------------------------------------------- -// -void CVtUiZoom::StartL() - { - __VTPRINTENTER( "CVtUiZoom.StartL" ) - if ( State() == EActive ) - { - // need to refresh when already active to replenish the close timer - RefreshL(); - } - else - { - iFeatureManager.UiStates().SetIsFloatingToolbarVisible( ETrue ); - CVtUiSliderBase::StartL(); - iFeatureManager.UiStates().SetZoomModeOn( ETrue ); - } - __VTPRINTEXIT( "CVtUiZoom.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::Stop -// --------------------------------------------------------------------------- -// -void CVtUiZoom::Stop() - { - __VTPRINTENTER( "CVtUiZoom.Stop" ) - iFeatureManager.UiStates().SetZoomModeOn( EFalse ); - CVtUiSliderBase::Stop(); - __VTPRINTEXIT( "CVtUiZoom.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::ComponenStateChangedL() -// --------------------------------------------------------------------------- -// -void CVtUiZoom::ComponenStateChangedL() - { - __VTPRINTENTER( "CVtUiZoom.ComponenStateChangedL()" ) - // Close event received stop the feature - // If this was a block event then do not stop the feature - // Currently we can't separate block and stop events from component manager - if ( !iFeatureManager.UiStates().IsCaptureModeOn() ) - { - __VTPRINT( DEBUG_GEN, "CVtUiZoom.ComponenStateChangedL.Stop" ) - Stop(); - } - __VTPRINTEXIT( "CVtUiZoom.ComponenStateChangedL()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::CVtUiZoom -// --------------------------------------------------------------------------- -// -CVtUiZoom::CVtUiZoom( CVtUiFeatureManager& aFeatureManager ) - : CVtUiSliderBase( aFeatureManager, EVtUiFeatureIdZoom ) - { - __VTPRINTENTER( "CVtUiZoom.CVtUiZoom" ) - __VTPRINTEXIT( "CVtUiZoom.CVtUiZoom" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoom::CVtUiZoom -// --------------------------------------------------------------------------- -// -void CVtUiZoom::ConstructL() - { - __VTPRINTENTER( "CVtUiZoom.ConstructL" ) - BaseConstructL(); - SetPopup( CVtUiZoomPopup::NewL( iFeatureManager ) ); - __VTPRINTEXIT( "CVtUiZoom.ConstructL" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/features/zoom/cvtuizoompopup.cpp --- a/vtuis/videotelui/src/features/zoom/cvtuizoompopup.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,282 +0,0 @@ -/* -* 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: Zoom popup implementation. -* -*/ - - -#include -#include -#include "cvtuizoompopup.h" -#include "cvtuifeaturemanager.h" -#include "tVtuifeaturevariation.h" -#include "CVtUiAppUi.h" -#include "cvtengmodel.h" - -// Number of zoom steps -static const TInt KZoomStepCount = 10; - -// Minimum zoom factor value -static const TInt KMinZoomFactor = 0; - -// default time out time for zoom popup -const TInt KDefaultZoomTimeOutTime = 5; - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::NewL -// --------------------------------------------------------------------------- -// -CVtUiZoomPopup* CVtUiZoomPopup::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiZoomPopup.NewL" ) - CVtUiZoomPopup* self = - new ( ELeave ) CVtUiZoomPopup( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiZoomPopup.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::~CVtUiZoomPopup -// --------------------------------------------------------------------------- -// -CVtUiZoomPopup::~CVtUiZoomPopup() - { - __VTPRINTENTER( "CVtUiZoomPopup.~" ) - __VTPRINTEXIT( "CVtUiZoomPopup.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::RefreshL -// --------------------------------------------------------------------------- -// -void CVtUiZoomPopup::RefreshL() - { - __VTPRINTENTER( "CVtUiZoomPopup.RefreshL" ) - - UpdateAdjustRangeL(); - - iCurrent = CurrentZoomStep(); - if ( iCurrent < KMinZoomFactor ) - { - User::Leave( KErrArgument ); - } - SetValue( iCurrent ); - ShowPopupL(); - __VTPRINTEXIT( "CVtUiZoomPopup.RefreshL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::DoActivateL() -// --------------------------------------------------------------------------- -// -void CVtUiZoomPopup::DoActivateL() - { - __VTPRINTENTER( "CVtUiZoomPopup.DoActivateL" ) - UpdateAdjustRangeL(); - CVtUiPopupBase::DoActivateL(); - // In order to refresh softkey. - iFeatureManager.AppUi().RefreshSoftkeysL(); - __VTPRINTEXIT( "CVtUiZoomPopup.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::OfferKeyEventL() -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiZoomPopup::OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ) - { - __VTPRINTENTER( "CVtUiZoomPopup.OfferKeyEventL" ) - TKeyResponse response( EKeyWasNotConsumed ); - // Don't handle other types here - if ( aCode != EEventKey ) - { - return response; - } - - if ( aEvent.iScanCode == EStdKeyUpArrow || - aEvent.iScanCode == EStdKeyDownArrow || - aEvent.iCode == EKeyZoomIn || - aEvent.iCode == EKeyZoomOut ) - { - __VTPRINT( DEBUG_GEN, "CVtUiZoomPopup.OfferKeyEventL zoom key" ) - TInt step( 1 ); - if ( aEvent.iScanCode == EStdKeyDownArrow || - aEvent.iCode == EKeyZoomOut ) - { - step = -step; - } - const TInt current( Value() ); - TInt value( current + step ); - value = Max( KMinZoomFactor, Min( value, KZoomStepCount ) ); - if ( value != current ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiZoomPopup.OfferKeyEventL zoom = %d", - value ) - SetValue( value ); - iFeatureManager.AppUi().SetZoomFactorL( ScaledValue() ); - response = EKeyWasConsumed; - } - ShowPopupL(); - } - __VTPRINTEXITR( "CVtUiZoomPopup.OfferKeyEventL %d", response ) - return response; - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::HandleControlEventL -// --------------------------------------------------------------------------- -// -void CVtUiZoomPopup::HandleControlEventL( CCoeControl* aControl, - TCoeEvent aEventType ) - { - __VTPRINTENTER( "CVtUiZoomPopup.HandleControlEventL" ) - CVtUiPopupBase::HandleControlEventL( aControl, aEventType ); - - if ( aEventType == EEventStateChanged ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiZoomPopup.HandleControlEventL zoom = %d", ScaledValue() ) - - if ( CurrentZoomStep() != Value() ) - { - iFeatureManager.AppUi().SetZoomFactorL( ScaledValue() ); - } - } - - __VTPRINTEXIT( "CVtUiZoomPopup.HandleControlEventL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::CVtUiZoomPopup -// --------------------------------------------------------------------------- -// -CVtUiZoomPopup::CVtUiZoomPopup( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPopupBase( aFeatureManager.ComponentManager(), - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdDialer | - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry | - MVtUiComponent::EComponentIdVolume | - MVtUiComponent::EVComponentIdBrightness | - MVtUiComponent::EVComponentIdContrast - ), - EComponentIdZoom ), - iFeatureManager( aFeatureManager ), - iMedia( aFeatureManager.AppUi().Model().Media() ), - iCurrent( KErrNotReady ) - { - __VTPRINTENTER( "CVtUiZoomPopup.CVtUiZoomPopup" ) - __VTPRINTEXIT( "CVtUiZoomPopup.CVtUiZoomPopup" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiZoomPopup::ConstructL() - { - __VTPRINTENTER( "CVtUiZoomPopup.ConstructL" ) - BaseConstructL(); - // Set slider type to percentage - SetValueType( EAknSliderValuePercentage ); - - // Set timeout - SetTimeOut( KDefaultZoomTimeOutTime ); - __VTPRINTEXIT( "CVtUiZoomPopup.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::UpdateAdjustRangeL -// --------------------------------------------------------------------------- -// -void CVtUiZoomPopup::UpdateAdjustRangeL() - { - __VTPRINTENTER( "CVtUiZoomPopup.UpdateAdjustRangeL" ) - // Get max zoom step from engine - iMax = MaxZoomStep(); - // Set value range to visible slider control - // range 0-10 or 0-iMax if max < 0 - // stepcount = 10 or iMax if max < 10 - SetAdjustRange( KMinZoomFactor, Min( KZoomStepCount, iMax ), Min( KZoomStepCount, iMax ) ); - - // Set value range to baseclass - // range on e.g. 0-20 - SetMinAndMaxValues( KMinZoomFactor, iMax ); - - // Get current zoom step - iCurrent = CurrentZoomStep(); - - if ( iCurrent == KErrNotFound || iMax == KErrNotFound || iCurrent > iMax ) - { - User::Leave( KErrNotFound ); - } - // Set new value - SetValue( iCurrent ); - __VTPRINTEXIT( "CVtUiZoomPopup.UpdateAdjustRangeL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::CurrentZoomStep -// --------------------------------------------------------------------------- -// -TInt CVtUiZoomPopup::CurrentZoomStep() const - { - __VTPRINTENTER( "CVtUiZoomPopup.CurrentZoomStep" ) - TInt current( KMinZoomFactor ); - const TInt error( iMedia.GetCurrentZoomStep( current ) ); - current = ( error ? KErrNotFound : current ); - - // Value asked from the engine must be scaled. - // If the current asked value is 1 then the scaling formula in the - // popupbase doesn't round the value to 1 there fore value is - // initalized to 1. - TInt val = 1; - if ( current != 1 ) - { - val = SliderValueWithScaling( current ); - } - __VTPRINTEXITR( "CVtUiZoomPopup.CurrentZoomStep %d", val ) - return val; - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::MaxZoomStep -// --------------------------------------------------------------------------- -// -TInt CVtUiZoomPopup::MaxZoomStep() const - { - __VTPRINTENTER( "CVtUiZoomPopup.MaxZoomStep" ) - TInt max( KMinZoomFactor ); - const TInt error( iMedia.GetMaxZoomStep( max ) ); - max = ( error ? KErrNotFound : max ); - __VTPRINTEXITR( "CVtUiZoomPopup.MaxZoomStep %d", max ) - return max; - } - -// --------------------------------------------------------------------------- -// CVtUiZoomPopup::ScaleAndSetZoomFactorL -// --------------------------------------------------------------------------- -// -void CVtUiZoomPopup::ScaleAndSetZoomFactorL( TInt aValue ) - { - __VTPRINTENTER( "CVtUiZoomPopup.ScaleAndSetZoomFactorL" ) - const TInt value = aValue * MaxZoomStep() / 10; // 10 vakioksi count + 1 ei yhtä - iFeatureManager.AppUi().SetZoomFactorL( value ); - __VTPRINTEXITR( "CVtUiZoomPopup.ScaleAndSetZoomFactorL %d", value ) - } - diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/sliders/cvtuipopupbase.cpp --- a/vtuis/videotelui/src/sliders/cvtuipopupbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,509 +0,0 @@ -/* -* Copyright (c) 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: Base class for video telephone popups -* -*/ - - -#include -#include -#include -#include - -#include "cvtuipopupbase.h" -#include "mvtuicomponentmanager.h" -#include "mvtuicomponentstateobserver.h" -#include "VtUiPanic.h" -#include -#include -#include - -// default time out time for popup -const TInt KDefaultTimeOutTime = 2; - -// max value for slider is 100 (100%) -const TInt KMaxSliderValue = 100; - -// Implementation of TVtUiBaseComponentState - -// --------------------------------------------------------------------------- -// TVtUiBaseComponentState::TVtUiBaseComponentState -// --------------------------------------------------------------------------- -// -TVtUiBaseComponentState::TVtUiBaseComponentState( - MVtUiComponent& aComponent, TVtUiBlockListBitField aBitField ) : - TVtUiComponentState( aComponent, aBitField ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::~CVtUiPopupBase -// --------------------------------------------------------------------------- -// -CVtUiPopupBase::~CVtUiPopupBase() - { - __VTPRINTENTER( "CVtUiPopupBase.~CVtUiPopupBase" ) - if ( iPopup ) - { - iPopup->CloseVolumePopup(); - } - // unregister component change registration - iComponentManager.ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - delete iPopup; - __VTPRINTEXIT( "CVtUiPopupBase.~CVtUiPopupBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ComponentId -// --------------------------------------------------------------------------- -// - MVtUiComponent::TComponentId CVtUiPopupBase::ComponentId() const - { - __VTPRINTENTER( "CVtUiPopupBase.ComponentId" ) - __VTPRINTEXIT( "CVtUiPopupBase.ComponentId" ) - return iComponentId; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ComponentAsControl -// --------------------------------------------------------------------------- -// - CCoeControl* CVtUiPopupBase::ComponentAsControl() - { - __VTPRINTENTER( "CVtUiPopupBase.ComponentAsControl" ) - __VTPRINTEXIT( "CVtUiPopupBase.ComponentAsControl" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::DoActivateL() - { - __VTPRINTENTER( "CVtUiPopupBase.DoActivateL" ) - User::LeaveIfError( - iComponentManager.ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - - User::LeaveIfError( iComponentManager.ChangeKeyEventRegistration( - *this, MVtUiComponentManager::ERegister ) ); - - ShowPopupL(); - __VTPRINTEXIT( "CVtUiPopupBase.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::DoDeactivateL() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::DoDeactivateL() - { - __VTPRINTENTER( "CVtUiPopupBase.DoDeactivateL()" ) - iPopup->CloseVolumePopup(); - //notify observer that popup has been closed - if ( iCompStateObserver ) - { - iCompStateObserver->ComponenStateChangedL(); - } - // unregister resource change registration - iComponentManager.ChangeResourceChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - - iComponentManager.ChangeKeyEventRegistration( - *this, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "CVtUiPopupBase.DoDeactivateL()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::HandleResourceChangeL() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::HandleResourceChangeL( TInt aType ) - { - __VTPRINTENTER( "CVtUiPopupBase.HandleResourceChangeL()" ) - if ( aType == KEikDynamicLayoutVariantSwitch ) - { - iPopup->SetPosition( PopupPosition() ); - } - __VTPRINTEXIT( "CVtUiPopupBase.HandleResourceChangeL()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::HandleControlEventL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::HandleControlEventL( CCoeControl* /*aControl*/, - TCoeEvent aEventType ) - { - __VTPRINTENTER( "CVtUiPopupBase.HandleControlEventL" ) - if ( aEventType == EEventStateChanged ) - { - // popup closed - if( !IsPopUpVisible() ) - { - ClosePopup(); - } - } - __VTPRINTEXIT( "CVtUiPopupBase.HandleControlEventL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::OfferKeyEventL() -// --------------------------------------------------------------------------- -// -TKeyResponse CVtUiPopupBase::OfferKeyEventL( const TKeyEvent& aEvent, - TEventCode aCode ) - { - __VTPRINTENTER( "CVtUiPopupBase.OfferKeyEventL" ) - TKeyResponse response( EKeyWasNotConsumed ); - // Don't handle other types here - if ( aCode != EEventKey ) - { - return response; - } - - if ( aEvent.iScanCode == EStdKeyUpArrow || - aEvent.iScanCode == EStdKeyDownArrow ) - { - __VTPRINT( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL" ) - TInt step( 1 ); - if ( aEvent.iScanCode == EStdKeyDownArrow ) - { - step = -step; - } - - const TInt current( Value() ); - TInt value( current + step ); - - TInt maxValue; - TInt minValue; - iPopup->GetRange( minValue, maxValue ); - - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL iPopup minValue = %d", - minValue ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL iPopup maxValue = %d", - maxValue ) - - minValue = minValue / iScalingConstant; - value = Max( minValue, Min( value, iStepCount ) ); - if ( value != current ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OfferKeyEventL Volume value = %d", - value ) - SetValue( value ); - response = EKeyWasConsumed; - } - ShowPopupL(); - } - __VTPRINTEXITR( "CVtUiPopupBase.OfferKeyEventL %d", response ) - return response; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetObserver() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetObserver( MVtUiComponentStateObserver& aCompStateObserver ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetObserver()" ) - iCompStateObserver = &aCompStateObserver; - __VTPRINTEXIT( "CVtUiPopupBase.SetObserver()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetValueType() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetValueType( TInt aValueType ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetValueType" ) - iPopup->SetValueType( aValueType ); - __VTPRINTEXIT( "CVtUiPopupBase.SetValueType" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetPermanenVisibility() -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetPermanenVisibility( TBool aPermanent ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetPermanenVisibility" ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase = %d", aPermanent ); - const TInt longPeriod( 86400 ); // 24 h - if ( aPermanent ) - { - iPopup->SetTimeOutAsSecond( longPeriod ); - iPopup->ClosePopupWhenTappedOutside( !aPermanent ); - } - else - { - iPopup->ClosePopupWhenTappedOutside( !aPermanent ); - iPopup->SetTimeOutAsSecond( iTimeOutTime ); - } - __VTPRINTEXIT( "CVtUiPopupBase.SetPermanenVisibility" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::CVtUiPopupBase -// --------------------------------------------------------------------------- -// -CVtUiPopupBase::CVtUiPopupBase( MVtUiComponentManager& aComponentManager, - TVtUiBlockListBitField aBitField, TComponentId aComponentId ) : - iComponentManager ( aComponentManager ), iComponentState( *this, aBitField ), - iComponentId( aComponentId ), iScalingConstant( 1 ) - { - __VTPRINTENTER( "CVtUiPopupBase.CVtUiPopupBase" ) - __VTPRINTEXIT( "CVtUiPopupBase.CVtUiPopupBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::BaseConstructL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::BaseConstructL() - { - __VTPRINTENTER( "CVtUiPopupBase.BaseConstructL" ) - iPopup = CAknVolumePopup::NewL( NULL, ETrue ); - iPopup->SetObserver( this ); - - // Initialized to 2 seconds - iTimeOutTime = KDefaultTimeOutTime; - - // set position - iPopup->SetPosition( PopupPosition() ); - - User::LeaveIfError( - iComponentManager.ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - __VTPRINTEXIT( "CVtUiPopupBase.BaseConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ShowPopupL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::ShowPopupL() - { - __VTPRINTENTER( "CVtUiPopupBase.ShowPopupL" ) - iPopup->ShowVolumePopupL(); - __VTPRINTEXIT( "CVtUiPopupBase.ShowPopupL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::OpenPopupL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::OpenPopupL() - { - __VTPRINTENTER( "CVtUiPopupBase.OpenPopupL" ) - TRAPD( error, - iComponentManager.RequestActivationL( ComponentId() ) ); - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.OpenPopupL reqAct=%d", error ); - User::LeaveIfError( error ); - __VTPRINTEXIT( "CVtUiPopupBase.OpenPopupL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ClosePopup -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::ClosePopup() - { - __VTPRINTENTER( "CVtUiPopupBase.ClosePopup" ) - TInt error( KErrNone ); - TRAP( error, iComponentManager.DeActivateComponentL( ComponentId() ) ); - __VTPRINTEXITR( "CVtUiPopupBase.ClosePopup %d", error ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetTimeOut -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetTimeOut( TInt aTime ) - { - iTimeOutTime = aTime; - iPopup->SetTimeOutAsSecond( aTime ); - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::IsPopUpVisible -// --------------------------------------------------------------------------- -// -TBool CVtUiPopupBase::IsPopUpVisible() - { - return iPopup->IsVisible(); - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::PopupPosition -// --------------------------------------------------------------------------- -// -TPoint CVtUiPopupBase::PopupPosition() const - { - __VTPRINTENTER( "CVtUiPopupBase.PopupPosition" ) - TRect mainPaneRect; - TAknWindowLineLayout popupLineLayout; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPaneRect ); - if ( Layout_Meta_Data::IsLandscapeOrientation() ) - { - popupLineLayout = - AknLayoutScalable_Apps::aid_placing_vt_slider_lsc().LayoutLine(); - } - else - { - popupLineLayout = - AknLayoutScalable_Apps::aid_placing_vt_slider_prt().LayoutLine(); - } - - TAknLayoutRect layoutRect; - layoutRect.LayoutRect( mainPaneRect, popupLineLayout ); - __VTPRINTEXIT( "CVtUiPopupBase.PopupPosition" ) - return layoutRect.Rect().iTl; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetPopupValue -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetPopupValue( TInt aValue ) - { - iPopup->SetValue( aValue * iScalingConstant ); - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetAdjustRange -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetAdjustRange( TInt aMinValue, TInt aMaxValue, - TInt aStepCount ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetAdjustRange" ) - __ASSERT_ALWAYS( aMinValue <= aMaxValue && - ( aMaxValue - aMinValue ) >= aStepCount && - aStepCount > 0, VtUiPanic::Panic( EVtUiPanicOutOfRange ) ); - - // store stepcount - iStepCount = aStepCount; - - // Aknvolumepopup does not do any scaling i.e max value - // must be 100 or otherwise the per cent value is not shown right. - // Scaling constant is used to multiple max value to be 100. - iScalingConstant = KMaxSliderValue / aMaxValue; - iPopup->SetRange( aMinValue, KMaxSliderValue ); - TInt stepSize = KMaxSliderValue / aStepCount; - iPopup->SetStepSize( stepSize ); - __VTPRINTEXIT( "CVtUiPopupBase.SetAdjustRange" ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetValue -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetValue( TInt aValue ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetValue" ) - SetPopupValue( aValue ); - __VTPRINTEXITR( "CVtUiPopupBase.SetValue %d", Value() ) - } - - // --------------------------------------------------------------------------- -// CVtUiPopupBase::ScaleAndSetValue -// --------------------------------------------------------------------------- -// - void CVtUiPopupBase::ScaleAndSetValue( TInt aValue ) - { - __VTPRINTENTER( "CVtUiPopupBase.ScaleAndSetValue" ) - SetPopupValue( SliderValueWithScaling( aValue ) ); - __VTPRINTEXITR( "CVtUiPopupBase.ScaleAndSetValue %d", Value() ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::ScaledValue -// --------------------------------------------------------------------------- -// - TInt CVtUiPopupBase::ScaledValue() const - { - __VTPRINTENTER( "CVtUiPopupBase.ScaledValue" ) - TInt value = Value() * ( iMax-iMin ) / iStepCount + iMin; - __VTPRINTEXITR( "CVtUiPopupBase.ScaledValue %d", value ) - return value; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SliderValueWithScaling -// --------------------------------------------------------------------------- -// - TInt CVtUiPopupBase::SliderValueWithScaling( TInt aValue) const - { - __VTPRINTENTER( "CVtUiPopupBase.SliderValueWithScaling" ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.aValue=%d", aValue ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.iStepCount=%d", iStepCount ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase.iMax=%d", iMax ) - - if ( iMax == aValue) - { - return iStepCount; - } - else if ( iMin == aValue ) - { - return 0; - } - TInt modValue = iStepCount * ( aValue - iMin) % ( iMax - iMin ); - TInt value = iStepCount * ( aValue - iMin) / ( iMax - iMin ); - - if ( modValue > ( iMax - iMin ) / 2 ) - { - value++; - } - - __VTPRINTEXITR( "CVtUiPopupBase.SliderValueWithScaling %d", value ) - return value; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::SetMinAndMaxValues -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::SetMinAndMaxValues( TInt aMin, TInt aMax ) - { - __VTPRINTENTER( "CVtUiPopupBase.SetMaxAndMinValues" ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase..aMax=%d", aMax ) - __VTPRINT2( DEBUG_GEN, "CVtUiPopupBase..aMinV=%d", aMin ) - iMax = aMax; - iMin = aMin; - __VTPRINTEXIT( "CVtUiPopupBase.SetMaxAndMinValues " ) - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::Value -// --------------------------------------------------------------------------- -// -TInt CVtUiPopupBase::Value() const - { - __VTPRINTENTER( "CVtUiPopupBase.Value" ) - __VTPRINTEXITR( "CVtUiPopupBase.Value %d", iPopup->Value() ) - return iPopup->Value() / iScalingConstant; - } - -// --------------------------------------------------------------------------- -// CVtUiPopupBase::UpdatePopupL -// --------------------------------------------------------------------------- -// -void CVtUiPopupBase::UpdatePopupL() - { - __VTPRINTENTER( "CVtUiPopupBase.UpdatePopupL" ) - __VTPRINTEXIT( "CVtUiPopupBase.UpdatePopupL " ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/sliders/cvtuisliderbase.cpp --- a/vtuis/videotelui/src/sliders/cvtuisliderbase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 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: Base class implementation for video telephone sliders -* -*/ - - -#include - -#include "cvtuisliderbase.h" -#include "cvtuipopupbase.h" -#include "cvtuifeaturemanager.h" -#include "mvtuicomponentmanager.h" - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::~CVtUiSliderBase -// --------------------------------------------------------------------------- -// -CVtUiSliderBase::~CVtUiSliderBase() - { - __VTPRINTENTER( "CVtUiSliderBase.~CVtUiSliderBase" ) - delete iPopup; - __VTPRINTEXIT( "CVtUiSliderBase.~CVtUiSliderBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::UpdateSlider -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::UpdateSlider() - { - __VTPRINTENTER( "CVtUiSliderBase.UpdateSlider" ) - - iPopup->UpdatePopupL(); - - __VTPRINTEXIT( "CVtUiSliderBase.UpdateSlider" ) - } -// --------------------------------------------------------------------------- -// CVtUiSliderBase::StartL -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::StartL() - { - __VTPRINTENTER( "CVtUiSliderBase.StartL" ) - if ( iFeatureState == MVtUiFeature::EReady ) - { - iFeatureManager.ComponentManager(). - RequestActivationL( iPopup->ComponentId() ); - // set state - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXIT( "CVtUiSliderBase.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::Stop -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::Stop() - { - __VTPRINTENTER( "CVtUiSliderBase.Stop" ) - TRAP_IGNORE( - { - if ( iFeatureState == MVtUiFeature::EActive ) - { - // set state - iFeatureState = MVtUiFeature::EReady; - iFeatureManager.ComponentManager(). - DeActivateComponentL( iPopup->ComponentId() ); - } - } ); - __VTPRINTEXIT( "CVtUiSliderBase.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::InitFeatureL() - { - __VTPRINTENTER( "CVtUiSliderBase.InitFeatureL" ) - iFeatureState = EReady; - __VTPRINTEXIT( "CVtUiSliderBase.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::ComponenStateChangedL() -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::ComponenStateChangedL() - { - __VTPRINTENTER( "CVtUiSliderBase.ComponenStateChangedL()" ) - // Close event received stop the feature - Stop(); - __VTPRINTEXIT( "CVtUiSliderBase.ComponenStateChangedL()" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::SetPermanenVisibility() -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::SetPermanenVisibility( TBool aPermanent ) - { - if ( iPopup ) - { - iPopup->SetPermanenVisibility( aPermanent ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::CVtUiSliderBase -// --------------------------------------------------------------------------- -// -CVtUiSliderBase::CVtUiSliderBase( CVtUiFeatureManager& aFeatureManager, - TVtUiFeatureId aFeatureId ) : CVtUiFeatureBase( - aFeatureId, aFeatureManager ) - { - __VTPRINTENTER( "CVtUiSliderBase.CVtUiSliderBase" ) - __VTPRINTEXIT( "CVtUiSliderBase.CVtUiSliderBase" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::ConstructL() - { - __VTPRINTENTER( "CVtUiSliderBase.ConstructL" ) - BaseConstructL(); - __VTPRINTEXIT( "CVtUiSliderBase.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::SetPopup -// --------------------------------------------------------------------------- -// -void CVtUiSliderBase::SetPopup( CVtUiPopupBase* aPopup ) - { - __VTPRINTENTER( "CVtUiSliderBase.SetPopup" ) - iPopup = aPopup; - if ( iPopup ) - { - iPopup->SetObserver( *this ); - } - __VTPRINTEXIT( "CVtUiSliderBase.SetPopup" ) - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::SetPopup -// --------------------------------------------------------------------------- -// -CVtUiPopupBase& CVtUiSliderBase::Popup() - { - return *iPopup; - } - -// --------------------------------------------------------------------------- -// CVtUiSliderBase::SetPopup -// --------------------------------------------------------------------------- -// -const CVtUiPopupBase& CVtUiSliderBase::Popup() const - { - return *iPopup; - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/tvtuiappstatebase.cpp --- a/vtuis/videotelui/src/tvtuiappstatebase.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,399 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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: base class for application states -* -*/ - - -#include "tvtuiappstates.h" -#include "videotelui.hrh" -#include "tvtuistates.h" -#include "cvtuiappshutter.h" -#include "mvtuistatecontext.h" -#include -#include -#include -#include -#include -#include -#include -#include - -// By default call ending command is allowed to send to call handling. - -// Initially no shutdown request -TBool TVtUiAppStateBase::iShutdownRequested = EFalse; - -// ----------------------------------------------------------------------------- -// c++ constructor -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TVtUiAppStateBase( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ) : iCtx(aCtx), iUiStates( aUiStates ) - { - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::~TVtUiAppStateBase() - { - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::AppUiStartupPhase1DoneL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::AppUiStartupPhase1DoneL() - { - // no default behavior - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::AppUiStartupPhase2DoneL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::AppUiStartupPhase2DoneL() - { - // no default behavior - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::ShutdownDoneL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::ShutdownDoneL() - { - // no default behavior - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleForegroundChangedL -// ----------------------------------------------------------------------------- -// -TBool TVtUiAppStateBase::HandleForegroundChangedL( - const TBool /*aIsForegroung*/ ) - { - // no default behavior - return EFalse; - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::PreHandleForegroundChangedL -// ----------------------------------------------------------------------------- -// -TBool TVtUiAppStateBase::PreHandleForegroundChangedL( - const TBool /*aIsForegroung*/ ) - { - // no default behavior - return EFalse; - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::StartDtmfTone -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::StartDtmfTone( const TChar& /*aTone*/ ) - { - // no default behavior - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::StopDtmfTone -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::StopDtmfTone() - { - // no default behavior - } - - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::SetInitialStateL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::SetInitialStateL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ) - { - __VTPRINTENTER( "TVtUiAppStateBase.SetInitialState" ) - TVtUiAppStateBase* initialState = - TVtUiStateStarting::InstanceL( aCtx, aUiStates ); - aCtx.ChangeState( initialState ); - initialState->OpenL(); - __VTPRINTEXIT( "TVtUiAppStateBase.SetInitialState" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::AppUiStartupFailedL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::AppUiStartupFailedL() - { - __VTPRINTENTER( "TVtUiAppStateBase.AppUiStartupFailedL" ) - // Shutdown - ChangeStateL( *TVtUiStateResetting::InstanceL( iCtx, iUiStates ) ); - __VTPRINTEXIT( "TVtUiAppStateBase.AppUiStartupFailedL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::OpenL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::OpenL() - { - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::Close -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::Close() - { - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::ChangeStateL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::ChangeStateL( TVtUiAppStateBase& aNewState ) - { - __VTPRINTENTER( "TVtUiAppStateBase.ChangeStateL" ) - - // Check for transition to already active state. - TVtUiAppStateBase* state = &aNewState; - if ( state == this ) - { - __VTPRINTEXITR( "TVtUiAppStateBase.ChangeStateL %d", 0 ) - return; - } - const TVtEngCommandId pending = - iCtx.Model().CommandHandler().PendingCommand(); - if ( pending != KVtEngCommandNone && - state == TVtUiStateResetting::InstanceL( iCtx, iUiStates ) ) - { - // delay shutdown until engine command completes - __VTPRINT2( DEBUG_GEN, "TVtUiAppStateBase.ChangeStateL, pengind command is: %d", pending ); - TVtUiAppStateBase::iShutdownRequested = ETrue; - - if ( pending == KVtEngInitializeShareImage ) - { - iCtx.Model().CommandHandler().CancelCommand( pending ); - } - - __VTPRINTEXITR( "TVtUiAppStateBase.ChangeStateL %d", KErrNotReady ) - return; - } - __VTPRINT( DEBUG_GEN, - " TVtUiAppStateBase.ChangeStateL !! STATE TRANSITION !!" ) - iCtx.ChangeState( &aNewState ); - Close(); - // perform entry action for new state - aNewState.OpenL(); - __VTPRINTEXITR( "TVtUiAppStateBase.ChangeStateL %d", 1 ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::CleanupResetPushL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::CleanupResetPushL() - { - // Shutdown if leave occurs in critical ops. - CleanupStack::PushL( - TCleanupItem( TransitionToReset, this ) ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::TransitionToReset -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::TransitionToReset( TAny* aAny ) - { - TVtUiAppStateBase* state = reinterpret_cast< TVtUiAppStateBase* >( aAny ); - TRAP_IGNORE( state->ChangeStateL( *TVtUiStateResetting::InstanceL( - state->iCtx, state->iUiStates ) ) ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiAppStateBase::HandleVTCommandPerformedL( - TVtEngCommandId /*aCommand*/, - const TInt /*aError*/ ) - { - __VTPRINTENTER( "TVtUiAppStateBase.HandleVTCommandPerformedL" ) - // By default all UI is allowed to handle all command completions. - TEventResponse handled = EEventNotHandled; - - // check if shutdown requested while command was pending - const TVtEngCommandId pending = iCtx.Model().CommandHandler().PendingCommand(); - if ( pending == KVtEngCommandNone && - TVtUiAppStateBase::iShutdownRequested ) - { - __VTPRINT( DEBUG_GEN, "Handling delayed shutdown" ); - ChangeStateL( *TVtUiStateResetting::InstanceL( - iCtx, iUiStates ) ); - } - __VTPRINTEXIT( "TVtUiAppStateBase.HandleVTCommandPerformedL" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleVtEventL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiAppStateBase::HandleVtEventL( - const TInt aEvent ) - { - __VTPRINTENTER( "TVtUiAppStateBase.HandleVtEventL" ) - TEventResponse handled = EEventHandled; - switch ( aEvent ) - { - case KVtEngDeviceLockOn: - case KVtEngDeviceLockOff: - HandleDeviceLockEventL( aEvent == KVtEngDeviceLockOn ); - break; - case KVtEngRemoteDisconnect: - /** Don't allow sending of end active call command to call handling - * because requesting disconnect from the network after NW originated - * termination violates standards. - */ - break; - default: - handled = EEventNotHandled; - break; - } - __VTPRINTEXIT( "TVtUiAppStateBase.HandleVtEventL" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleCommandL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiAppStateBase::HandleCommandL( - const TInt /*aCommand*/ ) - { - __VTPRINTENTER( "TVtUiAppStateBase.HandleCommandL" ) - TEventResponse handled = EEventNotHandled; - __VTPRINTEXITR( "TVtUiAppStateBase.HandleCommandL %d", handled ) - return handled; - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleLayoutChangedL -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::HandleLayoutChangedL( ) - { - __VTPRINTENTER( "TVtUiAppStateBase.HandleLayoutChangedL" ) - // By default only indicate that layout change needs to be handled. - iUiStates.SetLayoutChangeNeeded( ETrue ); - __VTPRINTEXIT( "TVtUiAppStateBase.HandleLayoutChangedL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleShutdownReady -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::HandleShutdownReady() - { - __VTPRINTENTER( "TVtUiAppStateBase.HandleShutdownReady" ) - // forwarded to AppUi which handles UI framework exit - iCtx.HandleShutdownReady(); - iCtx.ChangeState( NULL ); - // deletes current state - Close(); - __VTPRINTEXIT( "TVtUiAppStateBase.HandleShutdownReady" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::HandleDeviceLockEventL -// -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::HandleDeviceLockEventL( const TBool aDeviceIsLocked ) - { - __VTPRINTENTER( "TVtUiAppStateBase.HandleDeviceLockEventL" ) - iUiStates.SetDeviceLockOn( aDeviceIsLocked ); - if ( aDeviceIsLocked ) - { - iCtx.ChangeApplicationFocus( EFalse ); - } - __VTPRINTEXITR( "TVtUiAppStateBase.HandleDeviceLockEventL lock state=%d", - aDeviceIsLocked ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::CheckEndActiveCallL -// ----------------------------------------------------------------------------- -// -TBool TVtUiAppStateBase::CheckEndActiveCallL() - { - __VTPRINTENTER( "TVtUiAppStateBase.CheckEndActiveCallL" ) - const MVtEngSessionInfo::TSessionState state = SessionState( EFalse ); - TBool shutdownStarted( EFalse ); - if ( state == MVtEngSessionInfo::EIdle ) - { - __VTPRINT( DEBUG_GEN, "VtUi.Release bearer" ) - // h.245 session is ended - ChangeStateL( *TVtUiStateResetting::InstanceL( iCtx, iUiStates ) ); - shutdownStarted = ETrue; - } - __VTPRINTEXITR( "TVtUiAppStateBase.CheckEndActiveCallL %d", - shutdownStarted ) - return shutdownStarted; - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::SessionState -// ----------------------------------------------------------------------------- -// -MVtEngSessionInfo::TSessionState TVtUiAppStateBase::SessionState( - const TBool aUpdate ) const - { - const CVtEngModel& model = iCtx.Model(); - const MVtEngSessionInfo& session = model.Session(); - return session.State( aUpdate ); - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::SetLightsState -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::SetLightsState( const TBool aOn ) - { - __VTPRINTENTER( "TVtUiAppStateBase.SetLightsState" ) - const TInt value = aOn ? EForcedLightsOn : EForcedLightsOff; - RProperty::Set( - KPSUidCoreApplicationUIs, - KLightsVTForcedLightsOn, - value ); - __VTPRINTEXIT( "TVtUiAppStateBase.SetLightsState" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiAppStateBase::SetExecState -// ----------------------------------------------------------------------------- -// -void TVtUiAppStateBase::SetExecState( const TVtUiStates::TVtUiExecState aState ) - { - __VTPRINTENTER( "TVtUiAppStateBase.SetExecState" ) - iUiStates.SetExecState( aState ); - __VTPRINTEXITR( "TVtUiAppStateBase.SetExecState %d", aState ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/tvtuistateresetting.cpp --- a/vtuis/videotelui/src/tvtuistateresetting.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,243 +0,0 @@ -/* -* Copyright (c) 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: waiting details application state -* -*/ - - -#include "tvtuistates.h" -#include "tvtuiappstates.h" -#include "mvtuistatecontext.h" -#include "cvtuiappshutter.h" -#include -#include - -TVtUiStateResetting* TVtUiStateResetting::iInstance = NULL; - -// c++ constructor -TVtUiStateResetting::TVtUiStateResetting( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates, - const TVtEngCommandId aCommand ) - : TVtUiAppStateBase( aCtx, aUiStates ), - iCommand( aCommand ) - { - __VTPRINT2( DEBUG_GEN, "TVtUiStateResetting.ctr iCommand=%d", iCommand ) - } - -// Destructor -TVtUiStateResetting::~TVtUiStateResetting() - { - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting:: -// ----------------------------------------------------------------------------- -// -TVtUiStateResetting* TVtUiStateResetting::InstanceL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates, - const TVtEngCommandId aCommand ) - { - __VTPRINTENTER( "TVtUiStateResetting.InstanceL" ) - if ( iInstance == NULL ) - { - iInstance = new ( ELeave ) TVtUiStateResetting( - aCtx, aUiStates, aCommand ); - } - else if ( aCommand != KVtEngCommandNone ) - { // if call ending is UI originated, command is given - iInstance->iCommand = aCommand; - __VTPRINT2( DEBUG_GEN, "TVtUiStateResetting.InstanceL iCommand=%d", - iInstance->iCommand ) - } - __VTPRINTEXIT( "TVtUiStateResetting.InstanceL" ) - return iInstance; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::ShutdownDoneL -// AppUi has finished its own shutdown steps. Notify app shutter that it may -// proceed. -// -// ----------------------------------------------------------------------------- -// -void TVtUiStateResetting::ShutdownDoneL() - { - __VTPRINTENTER( "TVtUiStateResetting.ShutdownDone" ) - CVtUiAppShutter* shutter = CVtUiAppShutter::InstanceL( *this ); - if ( shutter ) - { - shutter->StartShutdown(); - } - __VTPRINTEXIT( "TVtUiStateResetting.ShutdownDone" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::AppUiStartupFailedL -// ----------------------------------------------------------------------------- -// -void TVtUiStateResetting::AppUiStartupFailedL() - { - __VTPRINTENTER( "TVtUiStateResetting.AppUiStartupFailedL" ) - // no-op (overrides default behavior) - __VTPRINTEXIT( "TVtUiStateResetting.AppUiStartupFailedL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::HandleVTCommandPerformedL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateResetting::HandleVTCommandPerformedL - ( - TVtEngCommandId aCommand, - const TInt /*aError*/ ) - { - __VTPRINTENTER( "TVtUiStateResetting.HandleVTCommandPerformedL" ) - // By default responses to commands are ignored while resetting - TEventResponse handled = EEventHandled; - switch ( aCommand ) - { - case KVtEngResetEngine: - // Allow UI to process reset command response - handled = EEventNotHandled; - break; - case KVtEngTerminateSession: - case KVtEngSwitchToVoice: - // - iCtx.ShutdownL(); - break; - default: - break; - } - __VTPRINTEXIT( "TVtUiStateResetting.HandleVTCommandPerformedL" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::HandleVtEventL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateResetting::HandleVtEventL( - const TInt aEvent ) - { - __VTPRINTENTER( "TVtUiStateResetting.HandleVtEventL" ) - TEventResponse handled = EEventHandled; - switch ( aEvent ) - { - // While resetting appUi should not handle these events. - case KVtEngSourceChanged: - case KVtEngCameraChanged: - case KVtEngSourceCapsChanged: - case KVtEngSessionStateChanged: - case KVtEngDurationSettingChanged: - case KVtEngAudioOutputVolumeChanged: - case KVtEngAudioRoutingAvailabilityChanged: - case KVtEngAudioRoutingChanged: - case KVtEngAudioMuted: - case KVtEngAudioUnmuted: - case KVtEngRemoteVideoStopped: - case KVtEngSessionWaitingCallActive: - case KVtEngSessionWaitingCallInactive: - break; - default: - // allow appUi to handle other events - handled = EEventNotHandled; - break; - } - __VTPRINTEXIT( "TVtUiStateResetting.HandleVtEventL" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::HandleCommandL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateResetting::HandleCommandL( - const TInt /*aCommand*/ ) - { - __VTPRINTENTER( "TVtUiStateResetting.HandleCommandL" ) - /* All commands ignored while resetting. CAknAppUi::Exit() is called - when shutdown is completed with asistance of CVtUiAppShutter */ - __VTPRINTEXIT( "TVtUiStateResetting.HandleCommandL" ) - return EEventHandled; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::HandleForegroundChangedL -// ----------------------------------------------------------------------------- -// -TBool TVtUiStateResetting::HandleForegroundChangedL( - const TBool /*aIsForeground*/ ) - { - __VTPRINTENTER( "TVtUiStateResetting.HandleForegroundChangedL" ) - __VTPRINTEXIT( "TVtUiStateResetting.HandleForegroundChangedL" ) - // not on "foreground" while resetting - return EFalse; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::HandleLayoutChangedL -// ----------------------------------------------------------------------------- -// -void TVtUiStateResetting::HandleLayoutChangedL() - { - __VTPRINTENTER( "TVtUiStateResetting.HandleLayoutChangedL" ) - // no-op (overrides default behavior) - __VTPRINTEXIT( "TVtUiStateResetting.HandleLayoutChangedL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::OpenL -// ----------------------------------------------------------------------------- -// -void TVtUiStateResetting::OpenL() - { - __VTPRINTENTER( "TVtUiStateResetting.OpenL" ) - SetExecState( TVtUiStates::EExecStateResetting ); - iCtx.StopDtmfTone(); - iCtx.ChangeApplicationFocus( EFalse ); - - if ( iCommand != KVtEngCommandNone ) - { - // Command is either KVtEngTerminateSession or KVtEngSwitchToVoice - // Need to wait for callback before ShutdownL can be called on context. - iCtx.DoExecuteCmdL( iCommand, NULL ); - } - else - { - // This branch is executed when resetting state is opened due - // to emergency call or state change to one causing shutdown. - // No need to wait for any callbacks (emergency call callback - // handled by CVtUiAppShutter). - iCtx.ShutdownL(); - } - __VTPRINTEXIT( "TVtUiStateResetting.OpenL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateResetting::Close -// ----------------------------------------------------------------------------- -// -void TVtUiStateResetting::Close() - { - __VTPRINTENTER( "TVtUiStateResetting.Close" ) - SetExecState( TVtUiStates::EExecStateFinalized ); - if ( TVtUiStateResetting::iInstance ) - { - delete TVtUiStateResetting::iInstance; - TVtUiStateResetting::iInstance = NULL; - } - __VTPRINTEXIT( "TVtUiStateResetting.Close" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/tvtuistaterunning.cpp --- a/vtuis/videotelui/src/tvtuistaterunning.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,303 +0,0 @@ -/* -* Copyright (c) 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: running (normal operation) application state -* -*/ - - -#include "tvtuistates.h" -#include "tvtuiappstates.h" -#include "mvtuistatecontext.h" -#include "cvtuiappshutter.h" -#include "videotelui.hrh" -#include -#include -#include -#include -#include - -TVtUiStateRunning* TVtUiStateRunning::iInstance = NULL; - -// c++ constructor -TVtUiStateRunning::TVtUiStateRunning( - MVtUiStateContext& aCtx, TVtUiStates& aUiStates ) - : TVtUiAppStateBase( aCtx, aUiStates ), iCreateVoiceCallDlg( NULL ) - { - } - -// Destructor -TVtUiStateRunning::~TVtUiStateRunning() - { - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::InstanceL -// ----------------------------------------------------------------------------- -// -TVtUiStateRunning * TVtUiStateRunning::InstanceL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates ) - { - __VTPRINTENTER( "UiStateRunning.InstanceL" ) - if ( iInstance == NULL ) - iInstance = new ( ELeave ) TVtUiStateRunning( aCtx, aUiStates ); - __VTPRINTEXIT( "UiStateRunning.InstanceL" ) - return iInstance; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::HandleVtEventL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateRunning::HandleVtEventL( - const TInt aEvent ) - { - __VTPRINTENTER( "UiStateRunning.HandleVtEventL" ) - // let TVtUiAppStateBase base class do common tasks - TEventResponse handled = TVtUiAppStateBase::HandleVtEventL( aEvent ); - switch ( aEvent ) - { - case KVtEngDeviceLockOn: - case KVtEngDeviceLockOff: - TVtUiAppStateBase::HandleVtEventL( aEvent ); - if ( aEvent == KVtEngDeviceLockOff ) - { - iCtx.ChangeApplicationFocus( ETrue ); - } - break; - case KVtEngSessionStateChanged: - if ( CheckEndActiveCallL() ) - { - // At this point shutdown is in progress. Don't allow - // appUi to do actions due to this event. - handled = EEventHandled; - } - break; - default: - break; - } - __VTPRINTEXIT( "UiStateRunning.HandleVtEventL" ) - return handled; - } - - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::HandleCommandL -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateRunning::HandleCommandL( - const TInt aCommand ) - { - __VTPRINTENTER( "UiStateRunning.HandleCommandL" ) - /** By default all commands are enabled by running state. - * Other details command validations are done elsewhere - */ - TEventResponse handled = EEventHandled; - switch ( aCommand ) - { - case EVtUiCmdEndActiveCall: - ShutdownWithEngineCommandL( KVtEngTerminateSession ); - break; - case EVtUiCmdCreateVoice: - CreateVoiceCallL(); - break; - case EVtUiCmdDialEmergency: - // Attempt emergency call. Note that emergency number check is done - // after calling DialEmergencyCallL and if supplied number is not - // emergency leave occurs. - TRAP_IGNORE( DialEmergencyCallL() ); - break; - default: - handled = TVtUiAppStateBase::HandleCommandL( aCommand ); - break; - } - __VTPRINTEXITR( "UiStateRunning.HandleCommandL %d", handled ) - return handled; - } - - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::HandleForegroundChangedL -// ----------------------------------------------------------------------------- -// -TBool TVtUiStateRunning::HandleForegroundChangedL( const TBool aIsForeground ) - { - __VTPRINTENTER( "UiStateRunning.HandleForegroundChangedL" ) - - // Closes create voice call dialog if it is open - delete iCreateVoiceCallDlg; iCreateVoiceCallDlg = NULL; - - SetLightsState( aIsForeground ); - - iCtx.RefreshL( MVtUiStateContext::ENaviPane ); - - TBool handleAsForeground( aIsForeground ); - TPtrC8 params( reinterpret_cast< TUint8* >( &handleAsForeground ), - sizeof( TBool ) ); - iCtx.DoExecuteCmdL( KVtEngSetUIForeground, ¶ms ); - __VTPRINTEXIT( "UiStateRunning.HandleForegroundChangedL" ) - return handleAsForeground; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::PreHandleForegroundChangedL -// ----------------------------------------------------------------------------- -// -TBool TVtUiStateRunning::PreHandleForegroundChangedL( const TBool aIsForeground ) - { - __VTPRINTENTER( "UiStateRunning.PreHandleForegroundChangedL" ) - TBool handleAsForeground( aIsForeground ); - TPtrC8 params( reinterpret_cast< TUint8* >( &handleAsForeground ), sizeof( TBool ) ); - iCtx.DoExecuteCmdL( KVtEngSetUIForeground, ¶ms ); - __VTPRINTEXIT( "UiStateRunning.PreHandleForegroundChangedL" ) - return handleAsForeground; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::HandleLayoutChangedL -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::HandleLayoutChangedL( ) - { - __VTPRINTENTER( "UiStateRunning.HandleLayoutChangedL" ) - iUiStates.SetLayoutChangeNeeded( EFalse ); - iCtx.DoHandleLayoutChangedL(); - __VTPRINTEXIT( "UiStateRunning.HandleLayoutChangedL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::StartDtmfTone -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::StartDtmfTone( const TChar& aTone ) - { - iCtx.StartDtmfTone( aTone ); - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::StopDtmfTone -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::StopDtmfTone() - { - iCtx.StopDtmfTone(); - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::CreateVoiceCallL -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::CreateVoiceCallL() - { - __VTPRINTENTER( "TVtUiStateRunning.CreateVoiceCallL" ) - HBufC* prompt = - StringLoader::LoadLC( R_VIDEOTELUI_QTN_QUERY_CREATE_VOICE_CALL ); - - // Create and initialize query dialog - CAknQueryDialog* createVoiceCallDlg = CAknQueryDialog::NewL(); - CleanupStack::PushL( createVoiceCallDlg ); - createVoiceCallDlg->SetPromptL( *prompt ); - CleanupStack::Pop(); // createVoiceCallDlg - - iCreateVoiceCallDlg = createVoiceCallDlg; - TInt result( KErrNone ); - TRAPD( error, result = iCreateVoiceCallDlg->ExecuteLD( - R_VIDEOTELUI_CREATE_VOICE_QUERY ) ); - // Just set to NULL because ExecuteLD() deletes instance - iCreateVoiceCallDlg = NULL; - // Leave if ExecuteLD() left - User::LeaveIfError( error ); - CleanupStack::PopAndDestroy( ); // prompt - if ( result ) - { - //user answered yes - iCtx.DoExecuteCmdL( KVtEngSwitchToVoice, NULL ); - } - __VTPRINTEXITR( "TVtUiAppStateBase.CreateVoiceCallL %d", result ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::ShutdownWithEngineCommandL -// Starts shutdown with command to engine. -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::ShutdownWithEngineCommandL( const TInt aCommand ) - { - __VTPRINTENTER( - "TVtUiStateRunning.ShutdownWithEngineCommandL" ) - TVtUiAppStateBase* resetState = - TVtUiStateResetting::InstanceL( iCtx, iUiStates, aCommand ); - CVtUiAppShutter* shutter = CVtUiAppShutter::InstanceL( *resetState ); - if ( shutter ) - { - // open resetting state, handles engine command request/reply - ChangeStateL( *resetState ); -#ifdef _DEBUG - __VTPRINTEXIT( - "TVtUiStateRunning.ShutdownWithEngineCommandL 1" ) - return; -#endif - } - - __VTPRINTEXIT( - "TVtUiStateRunning.ShutdownWithEngineCommandL 0" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::DialEmergencyCallL -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::DialEmergencyCallL() - { - __VTPRINTENTER( - "TVtUiStateRunning.DialEmergencyCallL" ) - TVtUiAppStateBase* resetState = - TVtUiStateResetting::InstanceL( iCtx, iUiStates ); - CVtUiAppShutter* shutter = CVtUiAppShutter::InstanceL( *resetState ); - if ( shutter ) - { - // Make emergency call and proceed when 1) state has given permission - // and 2) callback from emergency call api is received - shutter->ShutdownWithEmergencyCallL( iCtx ); - ChangeStateL( *resetState ); - } - __VTPRINTEXIT( "TVtUiStateRunning.DialEmergencyCallL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::OpenL -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::OpenL() - { - __VTPRINTENTER( "TVtUiStateRunning.OpenL" ) - SetExecState( TVtUiStates::EExecStateRunning ); - iCtx.RefreshStatesL(); - __VTPRINTEXIT( "TVtUiStateRunning.OpenL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateRunning::Close -// ----------------------------------------------------------------------------- -// -void TVtUiStateRunning::Close() - { - __VTPRINTENTER( "TVtUiStateRunning.Close" ) - if ( TVtUiStateRunning::iInstance ) - { - delete TVtUiStateRunning::iInstance; - TVtUiStateRunning::iInstance = NULL; - } - __VTPRINTEXIT( "TVtUiStateRunning.Close" ) - } diff -r 6dc066157ed4 -r d9b6a8729acd vtuis/videotelui/src/tvtuistatestarting.cpp --- a/vtuis/videotelui/src/tvtuistatestarting.cpp Tue Jan 26 12:01:21 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,310 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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: waiting details application state -* -*/ - - -#include "tvtuistates.h" -#include "tvtuiappstates.h" -#include "mvtuistatecontext.h" -#include "videotelui.hrh" -#include "cvtuiappshutter.h" -#include -#include -#include -#include -#include - - -TVtUiStateStarting* TVtUiStateStarting::iInstance = NULL; - -// c++ constructor -TVtUiStateStarting::TVtUiStateStarting( - MVtUiStateContext& aCtx, TVtUiStates& aUiStates ) - : TVtUiAppStateBase( aCtx, aUiStates ) - { - iPreconditions.Set( EWaitingCLI ); - iPreconditions.Set( EWaitingPhase1ToComplete ); - } - -// Destructor -TVtUiStateStarting::~TVtUiStateStarting() - { - delete iStartCallback; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::InstanceL -// -// ----------------------------------------------------------------------------- -// -TVtUiStateStarting * TVtUiStateStarting::InstanceL( - MVtUiStateContext& aCtx, TVtUiStates& aUiStates ) - { - __VTPRINTENTER( "TVtUiStateStarting.InstanceL" ) - if ( iInstance == NULL ) - { - iInstance = new ( ELeave ) TVtUiStateStarting( aCtx, aUiStates ); - } - __VTPRINTEXIT( "TVtUiStateStarting.InstanceL" ) - return iInstance; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::AppUiStartupPhase1DoneL -// -// Phase 1 of application startup is completed, check if we can proceed to -// phase 2. -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::AppUiStartupPhase1DoneL() - { - __VTPRINTENTER( "TVtUiStateStarting.AppUiStartupPhase1DoneL" ) - // From startup phase point of view we're ready to proceed - // to phase 2. Clear that precondition and proceed if otherwise ready. - CheckPhase2StartupL( EWaitingPhase1ToComplete ); - __VTPRINTEXIT( "TVtUiStateStarting.AppUiStartupPhase1DoneL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::AppUiStartupPhase2DoneL -// -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::AppUiStartupPhase2DoneL() - { - __VTPRINTENTER( "TVtUiStateStarting.AppUiStartupPhase2DoneL" ) - // Phase 2 completed, proceed to next state - ChangeStateL( *TVtUiStateRunning::InstanceL( iCtx, iUiStates ) ); - __VTPRINTEXIT( "TVtUiStateStarting.AppUiStartupPhase2DoneL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::HandleVtEventL -// -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateStarting::HandleVtEventL( - const TInt aEvent ) - { - __VTPRINTENTER( "TVtUiStateStarting.HandleVtEventL" ) - TEventResponse handled = EEventHandled; - switch ( aEvent ) - { - case KVtEngRemoteDisconnect: - // base class handles this. - handled = TVtUiAppStateBase::HandleVtEventL( aEvent ); - break; - case KVtEngSessionStateChanged: - { - // check if session state is proper for proceeding to next phase - // in startup. - CheckSessionStateL(); - } - break; - case KVtEngRemoteVideoStarted: - // allow to start remote video rendering - case KVtEngSourceChanged: - // allow handling of source changed event - handled = EEventNotHandled; - break; - case KVtEngCLIAvailable: - HandleCLIReceivedL(); - break; - - case KVtEngRemoteUIIIA5StringSupport: - break; - case KVtEngDeviceLockOn: - case KVtEngDeviceLockOff: - default: - handled = TVtUiAppStateBase::HandleVtEventL( aEvent ); - break; - } - __VTPRINTEXIT( "TVtUiStateStarting.HandleVtEventL" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::HandleCommandL -// -// ----------------------------------------------------------------------------- -// -TVtUiAppStateBase::TEventResponse TVtUiStateStarting::HandleCommandL( - const TInt /*aCommand*/ ) - { - __VTPRINTENTER( "TVtUiStateStarting.HandleCommandL" ) - __VTPRINTEXIT( "TVtUiStateStarting.HandleCommandL" ) - return EEventNotHandled; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::HandleForegroundChangedL -// -// ----------------------------------------------------------------------------- -// -TBool TVtUiStateStarting::HandleForegroundChangedL( const TBool aIsForeground ) - { - __VTPRINTENTER( "TVtUiStateStarting.HandleForegroundChangedL" ) - - SetLightsState( aIsForeground ); - iCtx.RefreshL( MVtUiStateContext::ENaviPane ); - - // behave as in background if CLI (=details) has not yet received - TBool handleAsForeground( aIsForeground && iUiStates.IsDetailsReceived() ); - TVtUiAppStateBase::ExecuteEngineCommand( KVtEngSetUIForeground, - handleAsForeground ); - - __VTPRINTEXIT( "TVtUiStateStarting.HandleForegroundChangedL" ) - return handleAsForeground; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::OpenL -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::OpenL() - { - __VTPRINTENTER( "TVtUiStateStarting.OpenL" ) - iStartCallback = new ( ELeave ) CAsyncCallBack ( - TCallBack( &AsynchOpen, this ), - CActive::EPriorityStandard ); - iStartCallback->CallBack(); - __VTPRINTEXIT( "TVtUiStateStarting.OpenL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::AsynchOpen -// asynchronous entry to the state. -// ----------------------------------------------------------------------------- -// -TInt TVtUiStateStarting::AsynchOpen( TAny* aAny ) - { - __VTPRINTENTER( "TVtUiStateStarting.AsynchOpen" ) - TVtUiStateStarting* state = reinterpret_cast( aAny ); - delete state->iStartCallback; - state->iStartCallback = NULL; - TRAPD( res, state->DoOpenL() ); - __VTPRINTEXITR( "TVtUiStateStarting.AsynchOpen err=%d>", res ) - return res; - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::DoOpenL -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::DoOpenL() - { - __VTPRINTENTER( "TVtUiStateStarting.DoOpenL" ) - if ( !CheckEndActiveCallL() ) - { - // not shutting down, proceed to phase 1 - iCtx.StartupPhase1L(); - } - __VTPRINTEXIT( "TVtUiStateStarting.DoOpenL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::CheckSessionStateL -// Resolve action based on session state change in the engine. -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::CheckSessionStateL() - { - __VTPRINTENTER( "TVtUiStateStarting.CheckSessionStateL" ) - const MVtEngSessionInfo::TSessionState state = SessionState( EFalse ); - switch ( state ) - { - case MVtEngSessionInfo::EConnected: - case MVtEngSessionInfo::ENegotiating: - case MVtEngSessionInfo::EOpen: - // From session state point of view we're ready to proceed. - // Clear precondition and proceed if otherwise ready. - CheckPhase2StartupL( EWaitingSessionState ); - break; - default: - // Is session state such that we need to shutdown? - CheckEndActiveCallL(); - break; - } - __VTPRINTEXIT( "TVtUiStateStarting.CheckSessionStateL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::CheckPhase2StartupL -// -// mark precondition passed and if no more preconditions exist proceed -// in startup. -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::CheckPhase2StartupL( - const TPreconditions aCond ) - { - __VTPRINTENTER( "TVtUiStateStarting.CheckPhase2StartupL" ) - // First check that at least one precondition holds - if ( iPreconditions.Value() ) - { - iPreconditions.Clear( aCond ); - if ( !iPreconditions.Value() ) - { - CleanupResetPushL(); // start shutdown if StartupPhase2L leaves - iCtx.StartupPhase2L(); - CleanupStack::Pop(); // CleanupResetPushL - } - } -#ifdef VTDEBUG - else { - __VTPRINT( DEBUG_GEN, "TVtUiStateStarting.CheckPhase2StartupL NoOp!" ) - } -#endif // VTDEBUG - __VTPRINTEXITR( "TVtUiStateStarting.CheckPhase2StartupL cond=%d", - (TInt) iPreconditions.Value() ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::HandleCLIReceivedL -// CLI reception from engine is one of the two preconditions for proceeding -// to phase2 startup. -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::HandleCLIReceivedL() - { - __VTPRINTENTER( "TVtUiStateStarting.HandleCLIReceivedL" ) - const MVtEngSessionInfo& session = iCtx.Model().Session(); - MVtEngSessionInfo::TCLI cli; - if ( session.GetCLI( cli ) == KErrNone ) - { - iUiStates.SetDetailsReceived( ETrue ); - iUiStates.SetCLIReceived( cli.iVoiceCallPossible ); - iCtx.SetCallIdL( cli.iCallId ); - iCtx.SetCallNameL( cli.iName ); - } - CheckPhase2StartupL( EWaitingCLI ); - __VTPRINTEXIT( "TVtUiStateStarting.HandleCLIReceivedL" ) - } - -// ----------------------------------------------------------------------------- -// TVtUiStateStarting::Close -// ----------------------------------------------------------------------------- -// -void TVtUiStateStarting::Close() - { - __VTPRINTENTER( "TVtUiStateStarting.Close" ) - if ( TVtUiStateStarting::iInstance ) - { - delete TVtUiStateStarting::iInstance; - TVtUiStateStarting::iInstance = NULL; - } - __VTPRINTEXIT( "TVtUiStateStarting.Close" ) - }