diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/uisrc/iraccessoryobserver.cpp --- a/internetradio2.0/uisrc/iraccessoryobserver.cpp Mon May 03 12:25:23 2010 +0300 +++ /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: Observer of accessory states. -* -*/ - - -#include - -#include "iraccessoryobserver.h" -#include "irheadseteventobserver.h" -#include "irdebug.h" - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CIRAccessoryObserver::CIRAccessoryObserver() : - CActive( CActive::EPriorityStandard ) - { - IRLOG_DEBUG( "CIRAccessoryObserver::CIRAccessoryObserver" ); - } - - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CIRAccessoryObserver::ConstructL() - { - IRLOG_DEBUG( "CIRAccessoryObserver::ConstructL - Entering" ); - User::LeaveIfError( iAccessoryServer.Connect() ); - - // Creates a new sub session within an existing session. - User::LeaveIfError( iAccessoryModeSession.CreateSubSession( iAccessoryServer ) ); - User::LeaveIfError( iAccessoryModeSession.GetAccessoryMode( iAccPolAccessoryMode ) ); - - CActiveScheduler::Add( this ); - // Accessory mode is always listened - iAccessoryModeSession.NotifyAccessoryModeChanged( iStatus, iAccPolAccessoryMode ); - SetActive(); - IRLOG_DEBUG( "CIRAccessoryObserver::ConstructL - Exiting" ); - } - - -// --------------------------------------------------------------------------- -// Static constructor. -// --------------------------------------------------------------------------- -// -CIRAccessoryObserver* CIRAccessoryObserver::NewL() - { - IRLOG_DEBUG( "CIRAccessoryObserver::NewL - Entering" ); - CIRAccessoryObserver* self = new( ELeave ) CIRAccessoryObserver; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(self); - IRLOG_DEBUG( "CIRAccessoryObserver::NewL - Exiting" ); - return self; - } - - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CIRAccessoryObserver::~CIRAccessoryObserver() - { - IRLOG_DEBUG( "CIRAccessoryObserver::~CIRAccessoryObserver - Entering" ); - Cancel(); - iAccessoryModeSession.CloseSubSession(); - iAccessoryServer.Close(); - IRLOG_DEBUG( "CIRAccessoryObserver::~CIRAccessoryObserver - Exiting" ); - } - - -// --------------------------------------------------------------------------- -// CIRAccessoryObserver::IsHeadsetConnected -// --------------------------------------------------------------------------- -// -TBool CIRAccessoryObserver::IsHeadsetConnected() const - { - IRLOG_DEBUG( "CIRAccessoryObserver::IsHeadsetConnected - Entering" ); - TBool accessoryConnected; - -#ifdef __WINS__ - accessoryConnected = ETrue; -#else - switch ( iAccPolAccessoryMode.iAccessoryMode ) - { - case EAccModeWiredHeadset: // Falls through. - case EAccModeLoopset: // Falls through. - case EAccModeHeadphones: - { - accessoryConnected = ETrue; - break; - } - default: - { - accessoryConnected = EFalse; - break; - } - } -#endif - IRLOG_DEBUG( "CIRAccessoryObserver::IsHeadsetConnected - Exiting" ); - return accessoryConnected; - } - - -// --------------------------------------------------------------------------- -// CIRAccessoryObserver::SetObserver -// --------------------------------------------------------------------------- -// -void CIRAccessoryObserver::SetObserver( MIRHeadsetEventObserver* aObserver ) - { - IRLOG_DEBUG( "CIRAccessoryObserver::SetObserver - Entering" ); - iObserver = aObserver; - IRLOG_DEBUG( "CIRAccessoryObserver::SetObserver - Exiting" ); - } - - -// --------------------------------------------------------------------------- -// From class CActive -// CIRAccessoryObserver::RunL -// --------------------------------------------------------------------------- -// -void CIRAccessoryObserver::RunL() - { - IRLOG_DEBUG( "CIRAccessoryObserver::RunL - Entering" ); - TRequestStatus status = iStatus; - iAccessoryModeSession.NotifyAccessoryModeChanged( iStatus, - iAccPolAccessoryMode ); - SetActive(); - - if ( status == KErrNone ) - { - // Accessory mode may change when combined connection status changes - // or when audio routing status changes. - if(IsHeadsetConnected()) - { - iObserver->HeadsetConnectedCallbackL(); - } - else - { - iObserver->HeadsetDisconnectedCallbackL(); - } - } - IRLOG_DEBUG( "CIRAccessoryObserver::RunL - Exiting" ); - } - - -// --------------------------------------------------------------------------- -// From class CActive -// CIRAccessoryObserver::DoCancel -// --------------------------------------------------------------------------- -// -void CIRAccessoryObserver::DoCancel() - { - IRLOG_DEBUG( "CIRAccessoryObserver::RunL - Entering" ); - iAccessoryModeSession.CancelNotifyAccessoryModeChanged(); - IRLOG_DEBUG( "CIRAccessoryObserver::RunL - Exiting" ); - - }