--- a/mmserv/sts/stsserver/src/stsserversession.cpp Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2010 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:
- * This method provides the generic Symbian specific message handling
- * for the server session. The actual STS specific processing occurs
- * in the STS class.
- */
-
-// Include Files
-#include "stsserversession.h"
-#include "stsserver.h"
-#include "sts.h"
-
-// CStsServerSession IMPLEMENTATION
-CStsServerSession::CStsServerSession(CStsServer& aServer, CSts& aSts) :
- iServer(aServer), iSts(aSts)
- {
- }
-
-CStsServerSession::~CStsServerSession()
- {
- CleanUpObservers();
- TStsCallBack callBack;
- callBack.callBackType = EStsShutdown;
- iMsgQueue.SendBlocking(callBack);
- iServer.DropSession(this);
- iMsgQueue.Close();
- }
-
-void CStsServerSession::CreateL()
- {
- iServer.AddSession(this);
- }
-
-void CStsServerSession::ServiceL(const RMessage2& aMessage)
- {
- switch (aMessage.Function())
- {
- case StsMsg_RegisterMsgQueue:
- DoRegisterMsgQueueL(aMessage);
- break;
- case StsMsg_PlayTone:
- DoPlayToneL(aMessage);
- break;
- case StsMsg_PlayAlarm:
- DoPlayAlarmL(aMessage);
- break;
- case StsMsg_PlayToneAlarm:
- DoPlayToneAlarmL(aMessage);
- break;
- case StsMsg_StopAlarm:
- DoStopAlarmL(aMessage);
- break;
- default:
- break;
- }
- }
-
-void CStsServerSession::ServiceError(const RMessage2& aMessage, TInt aError)
- {
- CSession2::ServiceError(aMessage, aError);
- }
-
-void CStsServerSession::DoRegisterMsgQueueL(const RMessage2& aMessage)
- {
- TInt result = iMsgQueue.Open(aMessage, 0);
- if (result == KErrNone)
- {
- TThreadId id = RThread().Id();
- TPckg<TThreadId> idPckg(id);
- TRAP(result,aMessage.Write(1, idPckg));
- }
- aMessage.Complete(result);
- }
-
-void CStsServerSession::DoPlayToneL(const RMessage2& aMessage)
- {
- CSystemToneService::TToneType tone =
- (CSystemToneService::TToneType) aMessage.Int0();
- aMessage.Complete(KErrNone);
- iSts.PlayTone(tone);
- }
-
-void CStsServerSession::DoPlayAlarmL(const RMessage2& aMessage)
- {
- CSystemToneService::TAlarmType alarm =
- (CSystemToneService::TAlarmType) aMessage.Int0();
- unsigned int context = 0;
- iSts.PlayAlarm(alarm, context, *this);
- iObserverMap[context] = (MStsPlayAlarmObserver*) aMessage.Ptr2();
- TPckg<unsigned int> contextPckg(context);
- TRAPD(err,aMessage.WriteL(1,contextPckg));
- aMessage.Complete(err);
- // if the context is 0 there was a problem with the PlayAlarm,
- // so trigger the PlayAlarmComplete callback.
- if (context == 0)
- {
- PlayAlarmComplete(0);
- }
- }
-
-void CStsServerSession::DoPlayToneAlarmL(const RMessage2& aMessage)
- {
- CSystemToneService::TToneType tone =
- (CSystemToneService::TToneType) aMessage.Int0();
- unsigned int context = 0;
- iSts.PlayAlarm(tone, context, *this);
- iObserverMap[context] = (MStsPlayAlarmObserver*) aMessage.Ptr2();
- TPckg<unsigned int> contextPckg(context);
- TRAPD(err,aMessage.WriteL(1,contextPckg));
- aMessage.Complete(err);
- // if the context is 0 there was a problem with the PlayAlarm,
- // so trigger the PlayAlarmComplete callback.
- if (context == 0)
- {
- PlayAlarmComplete(0);
- }
- }
-
-void CStsServerSession::DoStopAlarmL(const RMessage2& aMessage)
- {
- unsigned int context = aMessage.Int0();
- aMessage.Complete(KErrNone);
- iObserverMap.erase(context);
- iSts.StopAlarm(context);
- }
-
-void CStsServerSession::CleanUpObservers()
- {
- while (!iObserverMap.empty())
- {
- //TODO: Add trace here
- unsigned int context = iObserverMap.begin()->first;
- iObserverMap.erase(context);
- iSts.StopAlarm(context);
- }
- }
-
-void CStsServerSession::PlayAlarmComplete(unsigned int aAlarmContext)
- {
- TStsCallBack callBack =
- {
- EStsPlayAlarmComplete, iObserverMap[aAlarmContext], aAlarmContext
- };
- iMsgQueue.SendBlocking(callBack);
- iObserverMap.erase(aAlarmContext);
- }