--- a/mmserv/tms/tmsserver/src/tmsserver.cpp Mon Mar 15 12:42:35 2010 +0200
+++ b/mmserv/tms/tmsserver/src/tmsserver.cpp Wed Mar 31 22:29:45 2010 +0300
@@ -20,20 +20,21 @@
#include <e32capability.h>
#include "tmsutility.h"
#include "tmsclientserver.h"
-#include "tmsserver.h"
+#include "tmstelephonycenrep.h"
#include "tmsservershutdown.h"
#include "tmsserversession.h"
#include "tmscallserverstartparam.h"
#include "tmscallserver.h"
#include "tmscallclisrv.h"
-#include "globaleffectssettings.h"
-#include "tareventhandler.h"
-#include "cspaudiohandler.h"
+#include "tmsglobaleffectssettings.h"
+#include "tmstareventhandler.h"
+#include "tmscenrepaudiohandler.h"
+#include "tmsserver.h"
using namespace TMS;
// CONSTANTS
-const TInt KShutDownDelayTime = 5000000; // 5 sec delay time
+const TInt KTMSShutDownDelayTime = 1000000; // 1 sec delay time
const TInt KOutputsArraySize = 10;
// -----------------------------------------------------------------------------
@@ -160,7 +161,7 @@
if (iSession == 0)
{
iShutdownTimer->SetDelay(TTimeIntervalMicroSeconds32(
- KShutDownDelayTime));
+ KTMSShutDownDelayTime));
}
TRACE_PRN_N1(_L("TMS->DNL: DropSession->Active Sessions: [%d]"), iSession);
@@ -171,7 +172,7 @@
//
// -----------------------------------------------------------------------------
//
-TInt TMSServer::SessionCount()
+TInt TMSServer::SessionCount() const
{
return iSession;
}
@@ -181,7 +182,7 @@
//
// -----------------------------------------------------------------------------
//
-void TMSServer::SetDnLinkSession(TBool aSession)
+void TMSServer::SetDnLinkSession(const TBool aSession)
{
iDnlinkSession = aSession;
}
@@ -191,7 +192,7 @@
//
// -----------------------------------------------------------------------------
//
-void TMSServer::SetUpLinkSession(TBool aSession)
+void TMSServer::SetUpLinkSession(const TBool aSession)
{
iUplinkSession = aSession;
}
@@ -244,6 +245,7 @@
TMSCallProxyLocal tmsCallSessionHandle;
User::LeaveIfError(StartTMSCallServer(tmsCallSessionHandle));
aHandle = tmsCallSessionHandle;
+
TRACE_PRN_FN_EXT;
}
@@ -255,19 +257,19 @@
TInt TMSServer::StartTMSCallServer(TMSCallProxyLocal& aHandle)
{
TRACE_PRN_FN_ENT;
- TInt status = KErrNone;
+ TInt status = TMS_RESULT_SUCCESS;
TMSStartAndMonitorTMSCallThread* callServerThread = NULL;
TRAP(status, callServerThread =TMSStartAndMonitorTMSCallThread::NewL(
const_cast<TMSServer*>(this)));
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
delete callServerThread;
}
else
{
status = iTMSCallServList.Append(callServerThread);
- if (callServerThread && status == KErrNone)
+ if (callServerThread && status == TMS_RESULT_SUCCESS)
{
status = callServerThread->StartTMSCallServer(aHandle);
TInt count = 0;
@@ -312,10 +314,16 @@
//
void TMSServer::StartRoutingNotifierL()
{
+ TRACE_PRN_FN_ENT;
+
if (!iTarHandler)
{
+ iTarHandlerCount = 0;
iTarHandler = TMSTarEventHandler::NewL((const_cast<TMSServer*> (this)));
}
+ iTarHandlerCount++;
+
+ TRACE_PRN_FN_EXT;
}
// -----------------------------------------------------------------------------
@@ -325,8 +333,11 @@
//
void TMSServer::CancelRoutingNotifier()
{
- delete iTarHandler;
- iTarHandler = NULL;
+ if (--iTarHandlerCount <= 0)
+ {
+ delete iTarHandler;
+ iTarHandler = NULL;
+ }
}
// -----------------------------------------------------------------------------
@@ -336,13 +347,19 @@
//
void TMSServer::StartCenRepHandlerL()
{
+ TRACE_PRN_FN_ENT;
+
#ifdef _USE_TELEPHONY_CENREP_
if (!iAudioCenRepHandler)
{
- iAudioCenRepHandler = CSPAudioHandler::NewL(
+ iAudioCenRepHandlerCount = 0;
+ iAudioCenRepHandler = TMSCenRepAudioHandler::NewL(
(const_cast<TMSServer*> (this)));
}
+ iAudioCenRepHandlerCount++;
#endif
+
+ TRACE_PRN_FN_EXT;
}
// -----------------------------------------------------------------------------
@@ -352,8 +369,11 @@
//
void TMSServer::CancelCenRepHandler()
{
- delete iAudioCenRepHandler;
- iAudioCenRepHandler = NULL;
+ if (--iAudioCenRepHandlerCount <= 0)
+ {
+ delete iAudioCenRepHandler;
+ iAudioCenRepHandler = NULL;
+ }
}
// -----------------------------------------------------------------------------
@@ -364,11 +384,9 @@
TInt TMSServer::SetOutput(CSession2* /*sid*/, TInt output)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
- status = SendMessageToCallServ(TMS_ROUTING_OUTPUT_SET, output);
-
- if (status == KErrNone)
+ TInt status = SendMessageToCallServ(TMS_ROUTING_OUTPUT_SET, output);
+ if (status == TMS_RESULT_SUCCESS)
{
iCurrentRouting = output;
}
@@ -388,7 +406,7 @@
TUint output;
TInt i = 0;
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
while (i < iTMSCallServList.Count())
{
TMSStartAndMonitorTMSCallThread* callThread = iTMSCallServList[i];
@@ -397,7 +415,7 @@
{
status = callThread->iTMSCallProxyLocal.ReceiveFromCallServer(
TMS_ROUTING_OUTPUT_GET, output);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
break;
}
@@ -406,9 +424,10 @@
}
TPckgBuf<TInt> p(output);
aMessage.Write(0, p);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+
TRACE_PRN_FN_EXT;
- return KErrNone;
+ return status;
}
// -----------------------------------------------------------------------------
@@ -419,9 +438,10 @@
TInt TMSServer::GetPreviousOutput(const RMessage2& aMessage)
{
TRACE_PRN_FN_ENT;
+
TUint output;
TInt i = 0;
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
while (i < iTMSCallServList.Count())
{
TMSStartAndMonitorTMSCallThread* callThread = iTMSCallServList[i];
@@ -430,7 +450,7 @@
{
status = callThread->iTMSCallProxyLocal.ReceiveFromCallServer(
TMS_ROUTING_PREVIOUSOUTPUT_GET, output);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
break;
}
@@ -439,7 +459,8 @@
}
TPckgBuf<TInt> p(output);
aMessage.Write(0, p);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+
TRACE_PRN_FN_EXT;
return status;
}
@@ -464,7 +485,7 @@
{
TRACE_PRN_FN_ENT;
- TInt status = KErrNone;
+ TInt status = TMS_RESULT_SUCCESS;
OutputVector outputs;
HBufC8* buf = HBufC8::NewLC(KOutputsArraySize * sizeof(TUint32));
TPtr8 ptr = buf->Des();
@@ -483,7 +504,7 @@
{
status = callThread->iTMSCallProxyLocal.ReceiveFromCallServer(
TMS_ROUTING_AVAILABLE_OUTPUT_GET, args);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
break;
}
@@ -508,15 +529,17 @@
TInt TMSServer::GetMaxLevel(const RMessage2& aMessage)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
+
+ TInt status(TMS_RESULT_SUCCESS);
TPckgBuf<TUint> pckg;
pckg() = iEffectSettings->MaxVolume();
- if (status == KErrNone)
+ if (status == TMS_RESULT_SUCCESS)
{
status = aMessage.Write(0, pckg);
aMessage.Complete(status);
}
+
TRACE_PRN_FN_EXT;
return status;
}
@@ -529,7 +552,8 @@
TInt TMSServer::GetLevel(const RMessage2& aMessage)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
+
+ TInt status(TMS_RESULT_SUCCESS);
TPckgBuf<TUint> pckg;
TInt volume;
@@ -545,7 +569,7 @@
}
pckg() = volume;
- if (status == KErrNone)
+ if (status == TMS_RESULT_SUCCESS)
{
aMessage.Write(0, pckg);
aMessage.Complete(status);
@@ -563,11 +587,9 @@
TInt TMSServer::SetLevel(CSession2* /*sid*/, TBool tmsclient, TInt level)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
- status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_VOL_SET, level);
-
- if (status == KErrNone)
+ TInt status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_VOL_SET, level);
+ if (status == TMS_RESULT_SUCCESS)
{
switch (iCurrentRouting)
{
@@ -624,11 +646,11 @@
TInt TMSServer::GetMaxGain(const RMessage2& aMessage)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
+
+ TInt status(TMS_RESULT_SUCCESS);
TPckgBuf<TUint> pckg;
-
pckg() = iEffectSettings->MaxGain();
- if (status == KErrNone)
+ if (status == TMS_RESULT_SUCCESS)
{
status = aMessage.Write(0, pckg);
aMessage.Complete(status);
@@ -646,11 +668,11 @@
TInt TMSServer::GetGain(const RMessage2& aMessage)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
+
+ TInt status(TMS_RESULT_SUCCESS);
TPckgBuf<TUint> pckg;
-
pckg() = iEffectSettings->Gain();
- if (status == KErrNone)
+ if (status == TMS_RESULT_SUCCESS)
{
status = aMessage.Write(0, pckg);
aMessage.Complete(status);
@@ -668,11 +690,9 @@
TInt TMSServer::SetGain(CSession2* /*sid*/, TInt level)
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
- status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_GAIN_SET, level);
-
- if (status == KErrNone)
+ TInt status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_GAIN_SET, level);
+ if (status == TMS_RESULT_SUCCESS)
{
iEffectSettings->SetGain(level);
iSessionIter.SetToFirst();
@@ -700,6 +720,8 @@
TInt TMSServer::GetSupportedCodecs(const TMSStreamType strmType,
RArray<TFourCC>*& aCodecs)
{
+ TRACE_PRN_FN_ENT;
+
if (strmType == TMS_STREAM_UPLINK)
{
aCodecs = &iUplCodecs;
@@ -708,7 +730,9 @@
{
aCodecs = &iDnlCodecs;
}
- return KErrNone;
+
+ TRACE_PRN_FN_EXT;
+ return TMS_RESULT_SUCCESS;
}
// -----------------------------------------------------------------------------
@@ -718,7 +742,9 @@
//
TInt TMSServer::SendMessageToCallServ(TInt func, TInt value)
{
- TInt status(KErrNone);
+ TRACE_PRN_FN_ENT;
+
+ TInt status(TMS_RESULT_SUCCESS);
TInt i = 0;
while (i < iTMSCallServList.Count())
{
@@ -735,7 +761,7 @@
{
status = callThread->iTMSCallProxyLocal.SendToCallServer(
func, value);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
break;
}
@@ -743,6 +769,8 @@
}
i++;
}
+
+ TRACE_PRN_FN_EXT;
return status;
}
@@ -753,7 +781,9 @@
//
TInt TMSServer::SendMessageToCallServ(TInt func, TIpcArgs args)
{
- TInt status(KErrNone);
+ TRACE_PRN_FN_ENT;
+
+ TInt status(TMS_RESULT_SUCCESS);
TInt i = 0;
while (i < iTMSCallServList.Count())
{
@@ -770,7 +800,7 @@
{
status = callThread->iTMSCallProxyLocal.SendToCallServer(
func, args);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
break;
}
@@ -778,6 +808,8 @@
}
i++;
}
+
+ TRACE_PRN_FN_EXT;
return status;
}
@@ -788,6 +820,8 @@
//
TInt TMSServer::NotifyTarClients(TRoutingMsgBufPckg routingpckg)
{
+ TRACE_PRN_FN_ENT;
+
iCurrentRouting = routingpckg().iOutput;
iSessionIter.SetToFirst();
TMSServerSession* serverSession =
@@ -798,7 +832,9 @@
serverSession->HandleRoutingChange(routingpckg);
serverSession = static_cast<TMSServerSession*> (iSessionIter++);
}
- return KErrNone;
+
+ TRACE_PRN_FN_EXT;
+ return TMS_RESULT_SUCCESS;
}
// -----------------------------------------------------------------------------
@@ -819,7 +855,7 @@
TMSServer* server = TMSServer::NewL();
// Initialisation complete, now signal the client
- RProcess::Rendezvous(KErrNone);
+ RProcess::Rendezvous(TMS_RESULT_SUCCESS);
// Start the scheduler and wait for client requests
CActiveScheduler::Start();
@@ -868,11 +904,13 @@
TMSServer* aServer)
{
TRACE_PRN_FN_ENT;
+
TMSStartAndMonitorTMSCallThread* self =
new (ELeave) TMSStartAndMonitorTMSCallThread(aServer);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(self);
+
TRACE_PRN_FN_EXT;
return self;
}
@@ -898,7 +936,7 @@
{
TRACE_PRN_FN_ENT;
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
TMSCallServerStartParam start(iTMSServer, iCallSrvrHndl);
const TUidType serverUid(KNullUid, KNullUid, KUidTMSCallServerUid3);
TThreadFunction serverFunc = TMSCallServer::StartThread;
@@ -911,7 +949,7 @@
&start,
EOwnerProcess);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
return status;
}
@@ -935,7 +973,7 @@
}
User::WaitForRequest(reqStatus); // wait for start or death
- if (reqStatus.Int() != KErrNone)
+ if (reqStatus.Int() != TMS_RESULT_SUCCESS)
{
iServerThread.Close();
iCallSrvrHndl.Close();
@@ -943,7 +981,7 @@
}
status = aHndl.Open(iCallSrvrHndl);
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
iServerThread.Close();
iCallSrvrHndl.Close();
@@ -955,7 +993,7 @@
SetActive();
TRACE_PRN_FN_EXT;
- return KErrNone;
+ return TMS_RESULT_SUCCESS;
}
// -----------------------------------------------------------------------------
@@ -995,6 +1033,7 @@
TInt TMSCallProxyLocal::Open(RServer2& aTMSCallServerHandle)
{
TRACE_PRN_FN_ENT;
+
TInt status(KErrNotSupported);
status = CreateSession(aTMSCallServerHandle,
TVersion(KTMSCallServerMajorVersionNumber,
@@ -1013,7 +1052,7 @@
//
TInt TMSCallProxyLocal::SendToCallServer(TInt aFunc, TUint value)
{
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
status = SendReceive(aFunc, TIpcArgs(value));
return status;
}
@@ -1025,7 +1064,7 @@
//
TInt TMSCallProxyLocal::SendToCallServer(TInt aFunc, TIpcArgs args)
{
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
status = SendReceive(aFunc, args);
return status;
}
@@ -1037,11 +1076,11 @@
//
TInt TMSCallProxyLocal::ReceiveFromCallServer(TInt aFunc, TUint& value)
{
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
TPckgBuf<TUint> pckg;
TIpcArgs args(&pckg);
status = SendReceive(aFunc, args);
- if (status == KErrNone)
+ if (status == TMS_RESULT_SUCCESS)
{
value = pckg();
}
@@ -1055,7 +1094,7 @@
//
TInt TMSCallProxyLocal::ReceiveFromCallServer(TInt aFunc, TIpcArgs args)
{
- TInt status(KErrNone);
+ TInt status(TMS_RESULT_SUCCESS);
status = SendReceive(aFunc, args);
return status;
}