Update contrib.
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
20 #include "MmfBtAudioServerProxy.h"
21 #include "MmfBtAudioServerStart.h"
22 #include "../../../inc/common/mmfBtBase.hrh"
23 #include "MmfBtAudioClientServer.h"
25 #define KMaxServerNameLength 256
27 static const TUid KUidAudioServer = {KUidMmfBtAudioServerDllUnicodeDefine};
30 EXPORT_C TInt RMMFAudioServerProxy::Open()
33 const TUidType serverUid(KNullUid,KNullUid,KUidAudioServer);
35 // Assume the server is already running and attempt to create a session
37 TInt err = CreateSession(KAudioServerName, TVersion(KMMFAudioServerVersion,
38 KMMFAudioServerMinorVersionNumber,
39 KMMFAudioServerBuildVersionNumber));
40 if(err == KErrNotFound)
43 // Construct the server binary name
44 TBuf<KMaxServerNameLength> serverFile;
49 err = server.Create(KAudioServerFileName, KEmpty, serverUid);
52 // Synchronise with the server
53 TRequestStatus reqStatus;
54 server.Rendezvous(reqStatus);
56 if (reqStatus!=KRequestPending)
62 // Start the test harness
64 // Server will call the reciprocal static synchronise call
66 User::WaitForRequest(reqStatus); // wait for rendezvous or death
68 if(reqStatus.Int() != KErrNone)
69 return reqStatus.Int();
71 // Create the root server session
72 err = CreateSession(KAudioServerName, TVersion(KMMFAudioServerVersion,
73 KMMFAudioServerMinorVersionNumber,
74 KMMFAudioServerBuildVersionNumber));
80 EXPORT_C TInt RMMFAudioServerProxy::SetDevSoundInfo()
82 return SendReceive(EMMFAudioLaunchRequests);
85 EXPORT_C HBufC* RMMFAudioServerProxy::GetDevSoundServerNameL()
87 TInt len = GetDevSoundServerNameLengthL();
89 HBufC8* devSoundServerName = HBufC8::NewLC(len);
90 TPtr8 devSoundServerNamePtr = devSoundServerName->Des();
91 User::LeaveIfError(SendReceiveResult(EMMFDevSoundServerName,
94 devSoundServerNamePtr));
96 RDesReadStream stream;
97 stream.Open(*devSoundServerName);
98 CleanupClosePushL(stream);
100 HBufC* devSoundServerNameFlat = HBufC::NewL(stream, KMaxTInt);
102 CleanupStack::PopAndDestroy();//stream
103 CleanupStack::PopAndDestroy(devSoundServerName);
105 return devSoundServerNameFlat;
109 TInt RMMFAudioServerProxy::GetDevSoundServerNameLengthL()
111 TPckgBuf<TInt> descriptorSizePckg;
112 User::LeaveIfError(SendReceiveResult(EMMFDevSoundServerNameLength,
115 descriptorSizePckg));
117 return descriptorSizePckg();