diff -r 000000000000 -r 4e1aa6a622a0 accessoryservices/pluggeddisplay/pluggeddisplayengine/src/compositecablestateconnected.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/compositecablestateconnected.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,868 @@ +/* +* 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: Implementation of "Connected" state of Composite Cable Status FSM. +* +*/ + + + +#include +#include + + +#include "pdeconstants.h" +#include "compositecablestatusfsm.h" +#include "compositecablestateconnected.h" +#include "tvoutconfigforcomposite.h" +#include "trace.h" +#include +#include +#include + + + + +// ======== LOCAL FUNCTIONS ======== + + +// ======== MEMBER FUNCTIONS ======== + + +// --------------------------------------------------------------------------- +//Symbian two-phased constructor +// --------------------------------------------------------------------------- +// +CCompositeCableStateConnected* CCompositeCableStateConnected::NewL( + MFSMForState& aFSMForState, + CTVOutConfigForComposite& aTVOutConfigForComposite, + CCompositeCableStatusFSM& aCompositeCableStatusFSM) + { + FUNC_LOG; + CCompositeCableStateConnected* self = new ( ELeave ) CCompositeCableStateConnected( + aFSMForState, aTVOutConfigForComposite, aCompositeCableStatusFSM); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CCompositeCableStateConnected::~CCompositeCableStateConnected() + { + FUNC_LOG; + if ( iCRWatchForAspectRatio ) + { + iCRWatchForAspectRatio->Cancel(); + delete iCRWatchForAspectRatio; + } + if ( iCRWatchForFlickerFilter ) + { + iCRWatchForFlickerFilter->Cancel(); + delete iCRWatchForFlickerFilter; + } + if ( iCRWatchForTvSystem ) + { + iCRWatchForTvSystem->Cancel(); + delete iCRWatchForTvSystem; + } + if ( iTVOutConfigForSettingChanges ) + { + iTVOutConfigForSettingChanges->Cancel(); + delete iTVOutConfigForSettingChanges; + } + } + + +// --------------------------------------------------------------------------- +// From MFSMState. +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::Enter( ) + { + FUNC_LOG; + + ClearAvailableTvOutConfig(); + + iTVOutConfigForSettingChanges->ListenSettingsChanges(); + iSubState = ESubStateStartListenSettingsChanges; + } + + +// --------------------------------------------------------------------------- +// From MFSMState. +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::Input( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + if ( ESubStateEnabling == iSubState ) + { + SubStateEnablingInput( aInterfaceId, aEvent ); + } + else if ( ESubStateDisabling == iSubState ) + { + SubStateDisablingInput( aInterfaceId, aEvent ); + } + else if ( ESubStateSetting == iSubState ) + { + SubStateSettingInput( aInterfaceId, aEvent ); + } + else if ( ESubStateStartListenSettingsChanges == iSubState ) + { + SubStateStartListenConfigChangesInput( aInterfaceId, aEvent ); + } + else if ( ESubStateResettingDisable == iSubState ) + { + SubStateResettingDisableInput( aInterfaceId, aEvent ); + } + else if ( ESubStateResetting == iSubState ) + { + SubStateResettingInput( aInterfaceId, aEvent ); + } + else + { + SubStateEnabledInput( aInterfaceId, aEvent ); + } + + } + +// --------------------------------------------------------------------------- +// From MFSMState. +// --------------------------------------------------------------------------- +// +TFSMState CCompositeCableStateConnected::Id() + { + FUNC_LOG; + TFSMState tempStateId( ECompositeCableStateConnected ); + INFO_1( "State's id: %i", tempStateId ); + return tempStateId; + } + +// --------------------------------------------------------------------------- +// From MFSMState. +// --------------------------------------------------------------------------- +// +TPtrC CCompositeCableStateConnected::Name() + { + FUNC_LOG; + TPtrC temp( KCompositeCableStateConnected ); + INFO_1( "State's name: %s", temp.Ptr() ); + return temp; + } + +// --------------------------------------------------------------------------- +// From MFSMState. +// --------------------------------------------------------------------------- +// +TFSMState CCompositeCableStateConnected::SubId() + { + FUNC_LOG; + INFO_1( "Substate's id: %i", iSubState ); + return iSubState; + } + +// --------------------------------------------------------------------------- +// From MCentralRepositoryObserver. +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::CentRepKeyChanged( + TUid aRepositoryId, + TUint32 aId ) + { + FUNC_LOG; + if ( KCRUidTvoutSettings == aRepositoryId ) + { + if ( ( KSettingsTvAspectRatio == aId ) || + ( KSettingsTvoutFlickerFilter == aId ) || + ( KSettingsTvSystemInfo == aId ) ) + { + Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged ); + } + else + { + INFO_1("Unexpected CR key ID, aId 0x%x", aId ); + } + } + else + { + INFO_1("Unexpected Central Repository ID, aRepositoryId 0x%x", aRepositoryId); + } + } + +// --------------------------------------------------------------------------- +// From MCentralRepositoryObserver. +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::CentRepGetKeyValueFailed( + TUid aRepositoryId, + TUint32 aId, + TInt aError ) + { + FUNC_LOG; + // Make use of aError argument top get rid of compiler warning. + TInt error( aError ); + if ( ( KCRUidTvoutSettings == aRepositoryId ) && ( KErrNone != error ) ) + { + if ( KSettingsTvAspectRatio == aId ) + { + INFO_1(" Getting KSettingsTvAspectRatio from CR failed, aError %d", error ); + } + else if ( KSettingsTvoutFlickerFilter == aId ) + { + INFO_1(" Getting KSettingsTvoutFlickerFilter from CR failed, aError %d", error ); + } + else if ( KSettingsTvSystemInfo == aId ) + { + INFO_1(" Getting KSettingsTvSystemInfo from CR failed, aError %d", error ); + } + else + { + INFO_1("Unexpected CR key ID, aId 0x%x", aId ); + } + } + else + { + INFO_1("Unexpected Central Repository ID, aRepositoryId 0x%x", aRepositoryId); + } + } + + +// --------------------------------------------------------------------------- +// SubStateEnablingInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateEnablingInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + INFO( "Doing nothing, since already connected" ); + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + // Store indication to be handled after enable completed + iCableDisconnectedWhileEnabling = ETrue; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfTVOutConfig: + { + INFO( "Interface: EPDEIfTVOutConfig" ); + INFO( "Event: EIfTVOutConfigEventEnabled" ); + if ( EIfTVOutConfigEventEnabled == aEvent ) + { + if ( !iCableDisconnectedWhileEnabling ) + { + iCRWatchForFlickerFilter->Watch(); + iCRWatchForAspectRatio->Watch(); + iCRWatchForTvSystem->Watch(); + iSubState = ESubStateEnabled; + } + else + { + iCableDisconnectedWhileEnabling = EFalse; + ClearAvailableTvOutConfig(); + iTVOutConfigForComposite.Disable(); + iSubState = ESubStateDisabling; + } + } + else if ( EIfTVOutConfigEventEnableFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventEnableFailed" ); + INFO( "Retreating back to !" ); + iCableDisconnectedWhileEnabling = EFalse; + TransitStateIdle(); + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + default: + { + INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent ); + break; + } + } + return; + } + +// --------------------------------------------------------------------------- +// SubStateEnabledInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateEnabledInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + INFO( "Doing nothing, since already connected" ); + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + iCRWatchForFlickerFilter->Cancel(); + iCRWatchForAspectRatio->Cancel(); + iCRWatchForTvSystem->Cancel(); + ClearAvailableTvOutConfig(); + iTVOutConfigForComposite.Disable(); + iSubState = ESubStateDisabling; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfCentralRepositoryWatch: + { + INFO( "Interface: EPDEIfCentralRepositoryWatch" ); + if ( EPDEIfCentralRepositoryWatchEventKeyChanged == aEvent ) + { + INFO( "Event: EPDEIfCentralRepositoryWatchEventKeyChanged" ); + iResettingInput = ETrue; + Enter(); + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + default: + { + INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent ); + break; + } + } + return; + } + +// --------------------------------------------------------------------------- +// SubStateDisablingInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateDisablingInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + // Store to be handled after disable has been completed. + iCableConnectedWhileDisabling = ETrue; + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + INFO( "Doing nothing, since already disconnecting" ); + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfTVOutConfig: + { + INFO( "Interface: EPDEIfTVOutConfig" ); + if ( EIfTVOutConfigEventDisabled == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventDisabled" ); + if ( !iCableConnectedWhileDisabling ) + { + TransitStateIdle(); + } + else + { + iCableConnectedWhileDisabling = EFalse; + // Back to the beginning of this state + Enter(); + } + } + else if ( EIfTVOutConfigEventDisableFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventDisableFailed" ); + iCableConnectedWhileDisabling = EFalse; + TransitStateIdle(); + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + default: + { + INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent ); + break; + } + } + return; + } + +// --------------------------------------------------------------------------- +// SubStateResettingDisableInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateResettingDisableInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + // Store to be handled after disable has been completed. + iCableDisconnectedWhileResettingDisable = ETrue; + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + INFO( "Doing nothing, since already disconnecting" ); + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfTVOutConfig: + { + INFO( "Interface: EPDEIfTVOutConfig" ); + if ( EIfTVOutConfigEventDisabled == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventDisabled" ); + if ( !iCableDisconnectedWhileResettingDisable ) + { + iSubState = ESubStateEnabling; + iTVOutConfigForComposite.Enable(); + } + else + { + iCableDisconnectedWhileResettingDisable = EFalse; + // Back to the beginning of this state + Enter(); + } + } + else if ( EIfTVOutConfigEventDisableFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventDisableFailed" ); + iCableDisconnectedWhileResettingDisable = EFalse; + TransitStateIdle(); + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + default: + { + INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent ); + break; + } + } + } + +// --------------------------------------------------------------------------- +// SubStateStartListenConfigChangesInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateStartListenConfigChangesInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + INFO( "Doing nothing, since already connected" ); + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + // Store to be handled after disable has been completed. + iCableDisconnectedWhileListening = ETrue; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfTVOutConfig: + { + INFO( "Interface: EPDEIfTVOutConfig" ); + if ( EIfTVOutConfigEventSettingsChangesListenStarted == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSettingsChangesListenStarted" ); + if ( !iCableDisconnectedWhileListening ) + { + if(iResettingInput) + { + iTVOutConfigForComposite.SetConfig( EFalse ); + iSubState = ESubStateResetting; + iResettingInput = EFalse; + } + else + { + iTVOutConfigForComposite.SetConfig( ETrue ); + iSubState = ESubStateSetting; + } + } + else + { + INFO( "Retreating back to since cable was disconnected while not listening!" ); + iTVOutConfigForSettingChanges->Cancel(); + iCableDisconnectedWhileListening = EFalse; + + if(iResettingInput) + { + iCRWatchForFlickerFilter->Cancel(); + iCRWatchForAspectRatio->Cancel(); + iCRWatchForTvSystem->Cancel(); + iResettingInput = EFalse; + } + + TransitStateIdle(); + } + } + else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" ); + INFO( "Going to state since TV Out Settings Change listening failed!" ); + iCableDisconnectedWhileListening = EFalse; + + if(iResettingInput) + { + iCRWatchForFlickerFilter->Cancel(); + iCRWatchForAspectRatio->Cancel(); + iCRWatchForTvSystem->Cancel(); + iResettingInput = EFalse; + } + + TransitStateIdle(); + } + else + { + INFO_1( "Unknown/unexpected Event Id: %i", aEvent ); + } + break; + } + } + } + +// --------------------------------------------------------------------------- +// SubStateSettingInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateSettingInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + INFO( "Doing nothing, since already connected" ); + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + // Store to be handled after disable has been completed. + iCableDisconnectedWhileSetting = ETrue; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfTVOutConfig: + { + INFO( "Interface: EPDEIfTVOutConfig" ); + if ( EIfTVOutConfigEventSettingsChanged == aEvent ) + { + if ( !iCableDisconnectedWhileSetting ) + { + if ( iTVOutConfigForComposite.GetTvOutConfig()->Enabled() ) + { + ClearAvailableTvOutConfig(); + iTVOutConfigForComposite.Disable(); + iSubState = ESubStateResettingDisable; + } + else + { + iTVOutConfigForComposite.Enable(); + iSubState = ESubStateEnabling; + } + } + else + { + ClearAvailableTvOutConfig(); + iTVOutConfigForComposite.Disable(); + iCableDisconnectedWhileSetting = EFalse; + iSubState = ESubStateDisabling; + } + } + else if ( EIfTVOutConfigEventSetFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSetFailed" ); + iCableDisconnectedWhileSetting = EFalse; + iClearConfig = EFalse; + TransitStateIdle(); + } + else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" ); + iCableDisconnectedWhileSetting = EFalse; + TransitStateIdle(); + } + else if( EIfTVOutConfigEventSet == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSet" ); + iClearConfig = ETrue; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + default: + { + INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent ); + break; + } + } + return; + } + +// --------------------------------------------------------------------------- +// SubStateResettingInput +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::SubStateResettingInput( + TFSMInterfaceId aInterfaceId , + TFSMEventId aEvent ) + { + FUNC_LOG; + switch ( aInterfaceId ) + { + case EPDEIfAccessoryConnection: + { + INFO( "Interface: EPDEIfAccessoryConnection" ); + if ( EPDEIfAccessoryConnectionEventCableConnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableConnected" ); + INFO( "Doing nothing, since already connected" ); + } + else if ( EPDEIfAccessoryConnectionEventCableDisconnected == aEvent ) + { + INFO( "Event: EPDEIfAccessoryConnectionEventCableDisconnected" ); + // Store to be handled after disable has been completed. + iCableDisconnectedWhileResetting = ETrue; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + case EPDEIfTVOutConfig: + { + INFO( "Interface: EPDEIfTVOutConfig" ); + + if ( EIfTVOutConfigEventSettingsChanged == aEvent ) + { + if ( !iCableDisconnectedWhileResetting ) + { + if ( iTVOutConfigForComposite.GetTvOutConfig()->Enabled() ) + { + iTVOutConfigForComposite.Disable(); + iSubState = ESubStateResettingDisable; + } + else + { + iTVOutConfigForComposite.Enable(); + iSubState = ESubStateEnabling; + } + } + else + { + iCableDisconnectedWhileResetting = EFalse; + ClearAvailableTvOutConfig(); + iTVOutConfigForComposite.Disable(); + iSubState = ESubStateDisabling; + } + + iCRWatchForFlickerFilter->Cancel(); + iCRWatchForAspectRatio->Cancel(); + iCRWatchForTvSystem->Cancel(); + } + else if ( EIfTVOutConfigEventSetFailed == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSetFailed" ); + iCableDisconnectedWhileResetting = EFalse; + iClearConfig = EFalse; + // Lets continue with old settings. + iSubState = ESubStateEnabled; + } + else if(EIfTVOutConfigEventSettingsChangesListenFailed == aEvent) + { + INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" ); + iCableDisconnectedWhileResetting = EFalse; + // Lets continue with old settings. + iSubState = ESubStateEnabled; + } + else if( EIfTVOutConfigEventSet == aEvent ) + { + INFO( "Event: EIfTVOutConfigEventSet" ); + iClearConfig = ETrue; + } + else + { + INFO_1( "Unknown Event Id: %i", aEvent ); + } + break; + } + default: + { + INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent ); + break; + } + } + return; + } + +// --------------------------------------------------------------------------- +// ClearAvailableConfig +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::ClearAvailableTvOutConfig() + { + FUNC_LOG; + + if( iClearConfig ) + { + if( iTVOutConfigForComposite.GetTvOutConfig() ) + { + RArray HdmiSettingsArray; + RArray TvSettingsArray; + + TInt err = iTVOutConfigForComposite.GetTvOutConfig()->SetAvailableTvConfigList( TvSettingsArray, HdmiSettingsArray ); + iClearConfig = EFalse; + + HdmiSettingsArray.Close(); + TvSettingsArray.Close(); + } + } + } + +// --------------------------------------------------------------------------- +// TransitStateIdle +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::TransitStateIdle() + { + FUNC_LOG; + + ClearAvailableTvOutConfig(); + iFSMForState.Transit( ECompositeCableStateIdle ); + } + +// --------------------------------------------------------------------------- +// ConstructL +// --------------------------------------------------------------------------- +// +void CCompositeCableStateConnected::ConstructL() + { + FUNC_LOG; + // Create Central Repository Watchers + iCRWatchForAspectRatio = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvAspectRatio ); + iCRWatchForFlickerFilter = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvoutFlickerFilter ); + iCRWatchForTvSystem = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvSystemInfo ); + iTVOutConfigForSettingChanges = CTVOutConfigForComposite::NewL(iCompositeCableStatusFSM); + iResettingInput = EFalse; + } + + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CCompositeCableStateConnected::CCompositeCableStateConnected( + MFSMForState& aFSMForState, + CTVOutConfigForComposite& aTVOutConfigForComposite, + CCompositeCableStatusFSM& aCompositeCableStatusFSM) + : iFSMForState( aFSMForState ), + iTVOutConfigForComposite( aTVOutConfigForComposite ), + iCompositeCableStatusFSM( aCompositeCableStatusFSM ) + { + FUNC_LOG; + } + + +// ======== GLOBAL FUNCTIONS ======== +