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 <e32std.h>
sl@0: #include "A2dpBTHeadsetAudioIfServerStart.h"
sl@0: #include "A2dpBTHeadsetAudioIfServer.h"
sl@0: 
sl@0: 
sl@0: /**
sl@0: Thread entry-point function.
sl@0: **/
sl@0: EXPORT_C TInt CA2dpBTHeadsetAudioIfServer::StartThread(TAny* /*aParms*/)
sl@0: 	{
sl@0: 	TInt err = KErrNone;
sl@0: 	__UHEAP_MARK;
sl@0: 	CTrapCleanup* cleanup = CTrapCleanup::New();
sl@0: 	if (!cleanup)
sl@0: 		{
sl@0: 		err = KErrNoMemory;
sl@0: 		}
sl@0: 	else		
sl@0: 		{
sl@0: 		CActiveScheduler* sched = NULL;
sl@0: 		TRAP(err, sched = new(ELeave) CActiveScheduler);
sl@0: 		if (!err)
sl@0: 			{
sl@0: 			CActiveScheduler::Install(sched);
sl@0: 			CA2dpBTHeadsetAudioIfServer* server = NULL;
sl@0: 			TRAP(err, server = CA2dpBTHeadsetAudioIfServer::NewL());
sl@0: 			
sl@0: 			if(!err)
sl@0: 				{
sl@0: 				// Sync with the client and enter the active scheduler
sl@0: 				RThread::Rendezvous(KErrNone);
sl@0: 				sched->Start();
sl@0: 				}
sl@0: 			delete server;
sl@0: 			delete sched;		
sl@0: 			}
sl@0: 		}
sl@0: 	delete cleanup;
sl@0: 	__UHEAP_MARKEND;
sl@0: 	return err;
sl@0: 	}