sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include "MmfBtAudioServerSession.h" sl@0: #include "MmfBtAudioClientServer.h" sl@0: #include "MmfBtAudioServer.h" sl@0: #include sl@0: #include sl@0: sl@0: sl@0: CMMFAudioServerSession* CMMFAudioServerSession::NewL(TName& aDevSoundServerName) sl@0: { sl@0: CMMFAudioServerSession* self = new(ELeave) CMMFAudioServerSession(aDevSoundServerName); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: CleanupStack::Pop(); sl@0: return self; sl@0: } sl@0: sl@0: void CMMFAudioServerSession::ConstructL() sl@0: { sl@0: } sl@0: sl@0: CMMFAudioServerSession::CMMFAudioServerSession(TName& aDevSoundServerName)// : iEventsQue(_FOFF(TMMFAudioPolicyEventHolder,iLink)) sl@0: { sl@0: iDevSoundServerName = aDevSoundServerName; sl@0: } sl@0: sl@0: void CMMFAudioServerSession::CreateL(const CMmfIpcServer& aServer) sl@0: { sl@0: CMmfIpcSession::CreateL(aServer); sl@0: CMMFAudioServer* server = static_cast(CONST_CAST(CMmfIpcServer*, &aServer)); sl@0: server->IncrementSessionId(); sl@0: iAudioServerSessionId = server->AudioServerSessionId(); sl@0: } sl@0: sl@0: CMMFAudioServerSession::~CMMFAudioServerSession() sl@0: { sl@0: CMMFAudioServer* server = sl@0: const_cast(static_cast(Server())); sl@0: if (server) sl@0: { sl@0: server->DecrementSessionId(); sl@0: } sl@0: } sl@0: sl@0: void CMMFAudioServerSession::ServiceL(const RMmfIpcMessage& aMessage) sl@0: { sl@0: TBool complete = EFalse; sl@0: switch(aMessage.Function()) sl@0: { sl@0: case EMMFDevSoundServerNameLength: sl@0: complete = DoGetDevSoundServerNameLengthL(aMessage); sl@0: break; sl@0: case EMMFDevSoundServerName: sl@0: complete = DoGetDevSoundServerNameL(aMessage); sl@0: break; sl@0: default: sl@0: User::Leave(KErrNotSupported); sl@0: break; sl@0: } sl@0: if (complete) sl@0: aMessage.Complete(KErrNone); sl@0: sl@0: } sl@0: sl@0: TInt CMMFAudioServerSession::DoGetDevSoundServerNameLengthL(const RMmfIpcMessage& aMessage) sl@0: { sl@0: TPckgBuf descriptorSizePckg(iDevSoundServerName.Length()); sl@0: aMessage.WriteL(2,descriptorSizePckg); sl@0: return ETrue; sl@0: } sl@0: sl@0: TInt CMMFAudioServerSession::DoGetDevSoundServerNameL(const RMmfIpcMessage& aMessage) sl@0: { sl@0: delete iDevSoundServerNameFlat; sl@0: iDevSoundServerNameFlat = NULL; sl@0: sl@0: iDevSoundServerNameFlat = CBufFlat::NewL(32); sl@0: RBufWriteStream stream; sl@0: stream.Open(*iDevSoundServerNameFlat); sl@0: CleanupClosePushL(stream); sl@0: stream << iDevSoundServerName; sl@0: CleanupStack::PopAndDestroy();//s sl@0: sl@0: aMessage.WriteL(2,iDevSoundServerNameFlat->Ptr(0)); sl@0: return ETrue; sl@0: } sl@0: sl@0: sl@0: void CMMFAudioServerSession::SendEventToClient(/*TMMFAudioPolicyEvent& aEvent*/) sl@0: { sl@0: } sl@0: sl@0: sl@0: