diff -r 3785f754ee62 -r 5360b7ddc251 upnpavcontroller/upnpavcontrollerclient/src/upnpavrenderingsessionimpl.cpp --- a/upnpavcontroller/upnpavcontrollerclient/src/upnpavrenderingsessionimpl.cpp Fri Sep 17 08:31:21 2010 +0300 +++ b/upnpavcontroller/upnpavcontrollerclient/src/upnpavrenderingsessionimpl.cpp Mon Nov 01 12:37:49 2010 +0200 @@ -1,415 +1,440 @@ -/* -* 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: implements a session towards a renderer -* -*/ - - - - - - -// INCLUDES -// upnp stack api -#include -#include - -// upnpframework / avcontroller api -#include "upnpavdevice.h" -#include "upnpavcontrollerglobals.h" -#include "upnpavrenderingsessionobserver.h" - -// avcontroller internal -#include "upnpaveventactive.h" -#include "upnpavcontrollerclient.h" -#include "upnpavdeviceactive.h" -#include "upnpavrenderingactive.h" -#include "upnpavrenderingsessionimpl.h" - -_LIT( KComponentLogfile, "upnpavcontrollerclient.txt"); -#include "upnplog.h" - -// ======== MEMBER FUNCTIONS ======== - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::CUPnPAVRenderingSessionImpl -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -CUPnPAVRenderingSessionImpl* CUPnPAVRenderingSessionImpl::NewL( - RUPnPAVControllerClient& aServer, - const CUpnpAVDevice& aDevice ) - { - CUPnPAVRenderingSessionImpl* self = - new (ELeave) CUPnPAVRenderingSessionImpl( aServer ); - CleanupStack::PushL( self ); - self->iDevice = CUpnpAVDevice::NewL( aDevice ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::CUPnPAVRenderingSessionImpl -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -CUPnPAVRenderingSessionImpl::CUPnPAVRenderingSessionImpl( - RUPnPAVControllerClient& aServer ): - iServer( aServer ), - iBufferPtr( 0, 0 ), - iAlive( ETrue ) - { - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::~CUPnPAVRenderingSessionImpl -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -CUPnPAVRenderingSessionImpl::~CUPnPAVRenderingSessionImpl() - { - __LOG( "CUPnPAVRenderingSessionImpl::~CUPnPAVRenderingSessionImpl" ); - - delete iDevice; - delete iEventActive; - delete iCommandActive; - delete iSettingActive; - delete iDeviceActive; - delete iBuffer; - - iServer.DestroyRenderingSession( (TInt)this ); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::ConstructL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::ConstructL() - { - __LOG( "CUPnPAVRenderingSessionImpl::ConstructL" ); - - iBuffer = iDevice->Uuid().AllocL(); - iBufferPtr.Set( iBuffer->Des() ); - User::LeaveIfError( iServer.CreateRenderingSession( (TInt)this , - iBufferPtr ) ); - iEventActive = CUPnPAVEventActive::NewL( iServer, *this ); - iCommandActive = CUPnPAVRenderingActive::NewL( iServer, (TInt)this ); - iSettingActive = CUPnPAVRenderingActive::NewL( iServer, (TInt)this ); - iDeviceActive = CUPnPAVDeviceActive::NewL( iServer, *this ); - iDeviceActive->StartListening( (TInt)this ); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::SetObserver -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::SetObserver( - MUPnPAVRenderingSessionObserver& aObserver ) - { - // Set the observer and make an async request to the server to receive - // device callbacks - __ASSERTD( !iObserver, __FILE__, __LINE__ ); - - iEventActive->StartListeningEvents( (TInt)this ); - - iObserver = &aObserver; - iCommandActive->SetObserver( aObserver ); - iSettingActive->SetObserver( aObserver ); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::Observer -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -MUPnPAVRenderingSessionObserver* CUPnPAVRenderingSessionImpl::Observer() const - { - return iObserver; - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::RemoveObserver -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::RemoveObserver() - { - iObserver = NULL; - iCommandActive->RemoveObserver(); - iSettingActive->RemoveObserver(); - iEventActive->Cancel(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::Device -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -const CUpnpAVDevice& CUPnPAVRenderingSessionImpl::Device() const - { - return *iDevice; - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::ReserveLocalMSServicesL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::ReserveLocalMSServicesL() - { - ResetL(); - - iCommandActive->ReserveLocalMSServicesL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::CancelReserveLocalMSServicesL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::CancelReserveLocalMSServicesL() - { - ResetL(); - - iCommandActive->CancelReserveLocalMSServicesL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::ReleaseLocalMSServicesL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::ReleaseLocalMSServicesL() - { - ResetL(); - - iCommandActive->ReleaseLocalMSServicesL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::SetURIL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::SetURIL( const TDesC8& aURI, - const CUpnpItem& aItem ) - { - ResetL(); - - iCommandActive->SetURIL( aURI, aItem ); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::SetNextURIL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::SetNextURIL( const TDesC8& aURI, - const CUpnpItem& aItem ) - { - ResetL(); - - iCommandActive->SetNextURIL( aURI, aItem ); - } - - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::PlayL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::PlayL() - { - ResetL(); - - iCommandActive->PlayL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::StopL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::StopL() - { - ResetL(); - - iCommandActive->StopL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::PauseL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::PauseL() - { - ResetL(); - - iCommandActive->PauseL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::SetVolumeL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::SetVolumeL( TInt aVolumeLevel ) - { - ResetL(); - - iSettingActive->SetVolumeL( aVolumeLevel ); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::GetVolumeL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::GetVolumeL() - { - ResetL(); - - iSettingActive->GetVolumeL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::SetMuteL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::SetMuteL( TBool aMute ) - { - ResetL(); - - iSettingActive->SetMuteL( aMute ); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::GetMuteL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::GetMuteL() - { - ResetL(); - - iSettingActive->GetMuteL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::GetPositionInfoL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::GetPositionInfoL() - { - ResetL(); - - iSettingActive->GetPositionInfoL(); - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::UPnPDeviceDiscovered -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::UPnPDeviceDiscovered( - const CUpnpAVDevice& /*aDevice*/ ) - { - // No implementation needed - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::UPnPDeviceDisappeared -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::UPnPDeviceDisappeared( - const CUpnpAVDevice& /*aDevice*/ ) - { - __LOG( "CUPnPAVRenderingSessionImpl::UPnPDeviceDisappeared" ); - - iAlive = EFalse; - if( iObserver ) - { - iObserver->MediaRendererDisappeared( - MUPnPAVSessionObserverBase::EDisconnected ); - } - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::WLANConnectionLost -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::WLANConnectionLost() - { - __LOG( "CUPnPAVRenderingSessionImpl::WLANConnectionLost" ); - - iAlive = EFalse; - if( iObserver ) - { - iObserver->MediaRendererDisappeared( - MUPnPAVSessionObserverBase::EWLANLost ); - } - - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::EventReceived -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::EventReceived( TInt aError, - TUnsolicitedEventC aEvent ) - { - if( iObserver ) - { - switch( aEvent.iEvent ) - { - case EPlay: - { - iObserver->InteractOperationComplete( aError, - EUPnPAVPlayUser ); - break; - } - case EPause: - { - iObserver->InteractOperationComplete( aError, - EUPnPAVPauseUser ); - break; - } - case EStop: - { - iObserver->InteractOperationComplete( aError, - EUPnPAVStopUser ); - break; - } - case EVolume: - { - iObserver->VolumeResult( aError, aEvent.iValue, EFalse ); - break; - } - case EMute: - { - iObserver->MuteResult( aError, (TBool)aEvent.iValue, - EFalse ); - break; - } - default: - { - __PANICD( __FILE__, __LINE__ ); - break; - } - } - } - } - -// -------------------------------------------------------------------------- -// CUPnPAVRenderingSessionImpl::ResetL -// See upnpavrenderingsessionimpl.h -// -------------------------------------------------------------------------- -void CUPnPAVRenderingSessionImpl::ResetL() - { - __LOG( "CUPnPAVRenderingSessionImpl::ResetL" ); - - if( !iAlive ) - { - __LOG( "ResetL - disconnected, leave " ); - User::Leave( KErrDisconnected ); - } - - delete iBuffer; iBuffer = NULL; - } - -// end of file +/* +* Copyright (c) 2006-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: implements a session towards a renderer +* +*/ + + + + + + +// INCLUDES +// dlnasrv / mediaserver api +#include +#include + +// dlnasrv / avcontroller api +#include "upnpavdevice.h" +#include "upnpavcontrollerglobals.h" +#include "upnpavrenderingsessionobserver.h" + +// avcontroller internal +#include "upnpaveventactive.h" +#include "upnpavcontrollerclient.h" +#include "upnpavdeviceactive.h" +#include "upnpavrenderingactive.h" +#include "upnpavrenderingsessionimpl.h" + +_LIT( KComponentLogfile, "upnpavcontrollerclient.txt"); +#include "upnplog.h" + +// ======== MEMBER FUNCTIONS ======== + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::CUPnPAVRenderingSessionImpl +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +CUPnPAVRenderingSessionImpl* CUPnPAVRenderingSessionImpl::NewL( + RUPnPAVControllerClient& aServer, + const CUpnpAVDevice& aDevice ) + { + CUPnPAVRenderingSessionImpl* self = + new (ELeave) CUPnPAVRenderingSessionImpl( aServer ); + CleanupStack::PushL( self ); + self->iDevice = CUpnpAVDevice::NewL( aDevice ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::CUPnPAVRenderingSessionImpl +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +CUPnPAVRenderingSessionImpl::CUPnPAVRenderingSessionImpl( + RUPnPAVControllerClient& aServer ): + iServer( aServer ), + iBufferPtr( 0, 0 ), + iAlive( ETrue ) + { + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::~CUPnPAVRenderingSessionImpl +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +CUPnPAVRenderingSessionImpl::~CUPnPAVRenderingSessionImpl() + { + __LOG( "CUPnPAVRenderingSessionImpl::~CUPnPAVRenderingSessionImpl" ); + + delete iDevice; + delete iEventActive; + delete iCommandActive; + delete iSettingActive; + delete iDeviceActive; + delete iBuffer; + + iServer.DestroyRenderingSession( (TInt)this ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::ConstructL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::ConstructL() + { + __LOG( "CUPnPAVRenderingSessionImpl::ConstructL" ); + + iBuffer = iDevice->Uuid().AllocL(); + iBufferPtr.Set( iBuffer->Des() ); + User::LeaveIfError( iServer.CreateRenderingSession( (TInt)this , + iBufferPtr ) ); + iEventActive = CUPnPAVEventActive::NewL( iServer, *this ); + iCommandActive = CUPnPAVRenderingActive::NewL( iServer, (TInt)this ); + iSettingActive = CUPnPAVRenderingActive::NewL( iServer, (TInt)this ); + iDeviceActive = CUPnPAVDeviceActive::NewL( iServer, *this ); + iDeviceActive->StartListening( (TInt)this ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::SetObserver +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::SetObserver( + MUPnPAVRenderingSessionObserver& aObserver ) + { + // Set the observer and make an async request to the server to receive + // device callbacks + __ASSERTD( !iObserver, __FILE__, __LINE__ ); + + iEventActive->StartListeningEvents( (TInt)this ); + + iObserver = &aObserver; + iCommandActive->SetObserver( aObserver ); + iSettingActive->SetObserver( aObserver ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::Observer +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +MUPnPAVRenderingSessionObserver* CUPnPAVRenderingSessionImpl::Observer() const + { + return iObserver; + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::RemoveObserver +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::RemoveObserver() + { + iObserver = NULL; + iCommandActive->RemoveObserver(); + iSettingActive->RemoveObserver(); + iEventActive->Cancel(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::Device +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +const CUpnpAVDevice& CUPnPAVRenderingSessionImpl::Device() const + { + return *iDevice; + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::SetURIL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::SetURIL( const TDesC8& aURI, + const CUpnpItem& aItem ) + { + ResetL(); + + iCommandActive->SetURIL( aURI, aItem ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::SetNextURIL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::SetNextURIL( const TDesC8& aURI, + const CUpnpItem& aItem ) + { + ResetL(); + + iCommandActive->SetNextURIL( aURI, aItem ); + } + + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::PlayL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::PlayL() + { + ResetL(); + + iCommandActive->PlayL(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::StopL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::StopL() + { + ResetL(); + + iCommandActive->StopL(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::PauseL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::PauseL() + { + ResetL(); + + iCommandActive->PauseL(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::SetVolumeL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::SetVolumeL( TInt aVolumeLevel ) + { + ResetL(); + + iSettingActive->SetVolumeL( aVolumeLevel ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::GetVolumeL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::GetVolumeL() + { + ResetL(); + + iSettingActive->GetVolumeL(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::SetMuteL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::SetMuteL( TBool aMute ) + { + ResetL(); + + iSettingActive->SetMuteL( aMute ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::GetMuteL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::GetMuteL() + { + ResetL(); + + iSettingActive->GetMuteL(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::GetPositionInfoL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::GetPositionInfoL() + { + ResetL(); + + iCommandActive->GetPositionInfoL(); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::SeekRelTimeL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::SeekRelTimeL( const TTime& aDesiredTime ) + { + ResetL(); + + iCommandActive->SeekRelTimeL( aDesiredTime ); + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingActive::GetRendererStateL +// See upnpavrenderingactive.h +// -------------------------------------------------------------------------- +TUPnPAVInteractOperation CUPnPAVRenderingSessionImpl::GetRendererStateL() + { + __LOG( "CUPnPAVRenderingSessionImpl::GetRendererStateL" ); + + ResetL(); + + TUnsolicitedEventE event; + TPckg pckg( event ); + User::LeaveIfError( iServer.GetRendererState( (TInt)this, pckg ) ); + + TUPnPAVInteractOperation op( EUPnPAVStopUser ); + switch( event ) + { + case EPlay: + { + op = EUPnPAVPlayUser; + } + break; + case EStop: + { + op = EUPnPAVStopUser; + } + break; + case EPause: + { + op = EUPnPAVPauseUser; + } + break; + default: + { + __PANIC( __FILE__, __LINE__ ); + } + } + + return op; + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::UPnPDeviceDiscovered +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::UPnPDeviceDiscovered( + const CUpnpAVDevice& /*aDevice*/ ) + { + // No implementation needed + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::UPnPDeviceDisappeared +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::UPnPDeviceDisappeared( + const CUpnpAVDevice& /*aDevice*/ ) + { + __LOG( "CUPnPAVRenderingSessionImpl::UPnPDeviceDisappeared" ); + + iAlive = EFalse; + if( iObserver ) + { + iObserver->MediaRendererDisappeared( + MUPnPAVSessionObserverBase::EDisconnected ); + } + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::WLANConnectionLost +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::WLANConnectionLost() + { + __LOG( "CUPnPAVRenderingSessionImpl::WLANConnectionLost" ); + + iAlive = EFalse; + if( iObserver ) + { + iObserver->MediaRendererDisappeared( + MUPnPAVSessionObserverBase::EWLANLost ); + } + + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::EventReceived +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::EventReceived( TInt aError, + TUnsolicitedEventC aEvent ) + { + if( iObserver ) + { + switch( aEvent.iEvent ) + { + case EPlay: + { + iObserver->InteractOperationComplete( aError, + EUPnPAVPlayUser ); + break; + } + case EPause: + { + iObserver->InteractOperationComplete( aError, + EUPnPAVPauseUser ); + break; + } + case EStop: + { + iObserver->InteractOperationComplete( aError, + EUPnPAVStopUser ); + break; + } + case EVolume: + { + iObserver->VolumeResult( aError, aEvent.iValue, EFalse ); + break; + } + case EMute: + { + iObserver->MuteResult( aError, (TBool)aEvent.iValue, + EFalse ); + break; + } + case ETransition: + { + iObserver->InteractOperationComplete( aEvent.iValue, + EUPnPAVTransition ); + break; + } + default: + { + __PANICD( __FILE__, __LINE__ ); + break; + } + } + } + } + +// -------------------------------------------------------------------------- +// CUPnPAVRenderingSessionImpl::ResetL +// See upnpavrenderingsessionimpl.h +// -------------------------------------------------------------------------- +void CUPnPAVRenderingSessionImpl::ResetL() + { + __LOG( "CUPnPAVRenderingSessionImpl::ResetL" ); + + if( !iAlive ) + { + __LOG( "ResetL - disconnected, leave " ); + User::Leave( KErrDisconnected ); + } + + delete iBuffer; iBuffer = NULL; + } + +// end of file