diff -r 2eacb6118286 -r ba76fc04e6c2 phoneplugins/csplugin/src/cspaudiohandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneplugins/csplugin/src/cspaudiohandler.cpp Fri Jun 04 10:19:18 2010 +0100 @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2007-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: Implements the class CSPAudioHandler + * + */ + +#include "cspaudiohandler.h" +#include "tmshandler.h" +#include "csplogger.h" + +// --------------------------------------------------------------------------- +// CSPAudioHandler::NewL. +// --------------------------------------------------------------------------- +// +CSPAudioHandler* CSPAudioHandler::NewL() + { + CSPLOGSTRING(CSPOBJECT, "CSPAudioHandler::NewL()" ); + CSPAudioHandler* self = new (ELeave) CSPAudioHandler(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// Destructs the object by canceling first ongoing monitoring. +// --------------------------------------------------------------------------- +// +CSPAudioHandler::~CSPAudioHandler() + { + CSPLOGSTRING(CSPOBJECT, "CSPAudioHandler::~CSPAudioHandler()" ); + delete iTmsHandler; + } + +// --------------------------------------------------------------------------- +// CSPAudioHandler::Start +// --------------------------------------------------------------------------- +// +void CSPAudioHandler::Start() + { + iCallCount++; + CSPLOGSTRING2(CSPINT, "CSPAudioHandler::Start callcount: %d", iCallCount); + + if (iTmsHandler && iCallCount == 1) + { + iTmsHandler->StartStreams(); + } + } + +// --------------------------------------------------------------------------- +// CSPAudioHandler::Stop +// --------------------------------------------------------------------------- +// +void CSPAudioHandler::Stop() + { + CSPLOGSTRING2(CSPINT, "CSPAudioHandler::Stop callcount: %d", iCallCount); + if (iTmsHandler && iCallCount == 1) + { + iTmsHandler->StopStreams(); + iCallCount--; + } + else if (iCallCount > 1) + { + iCallCount--; + } + } + +// --------------------------------------------------------------------------- +// Constructs the monitor. +// --------------------------------------------------------------------------- +// +CSPAudioHandler::CSPAudioHandler() + { + CSPLOGSTRING(CSPOBJECT, "CSPAudioHandler::CSPAudioHandler()"); + iCallCount = 0; // Active calls count + } + +// --------------------------------------------------------------------------- +// Second phase construction. +// --------------------------------------------------------------------------- +// +void CSPAudioHandler::ConstructL() + { + if (!iTmsHandler) + { + iTmsHandler = TmsHandler::NewL(); + } + } + +// End of file