--- a/javauis/mmapi_qt/baseline/src/mmafunctionserver.cpp Tue May 11 16:07:20 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/*
-* Copyright (c) 2002 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 class provides CJavaEventSource services
-*
-*/
-
-
-// INCLUDE FILES
-#include <logger.h> // DEBUG
-#include <coemain.h>
-#include <eikenv.h>
-
-#include "mmafunctionserver.h"
-#include "cmmaevent.h"
-#include "cmmaplayer.h"
-#include "mmmaplayerinstanceobserver.h"
-#ifdef RD_JAVA_VOLUME_CONTROL
-#include "cmmaglobalvolume.h"
-#endif // RD_JAVA_VOLUME_CONTROL
-
-MMAFunctionServer::MMAFunctionServer(JNIEnv& aJni, jobject aPeer): java::util::FunctionServer("JavaMMAPIFunctionServer")
-{
- LOG( EJavaMMAPI, EInfo, "++MMAFunctionServer::MMAFunctionServer");
- createServerToNewThread();
- attachToVm(aJni, aPeer);
- mVmAttached = true;
- iServer = reinterpret_cast<java::util::FunctionServer*>(this);
-}
-
-MMAFunctionServer::~MMAFunctionServer()
-{
- LOG( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::~MMAFunctionServer()");
- if (mVmAttached)
- {
- detachFromVm();
- }
- stopServer();
-#ifdef RD_JAVA_VOLUME_CONTROL
- delete iGlobalVolume;
-#endif // RD_JAVA_VOLUME_CONTROL
-}
-
-TInt MMAFunctionServer::NewL(JNIEnv& aJni, jobject aPeer)
-{
-
- MMAFunctionServer* self = new(ELeave) MMAFunctionServer(aJni,aPeer);
- self->ConstructL(aJni,aPeer);
- return reinterpret_cast<TInt>(self);
-}
-void MMAFunctionServer::ConstructL(JNIEnv& aJni,
- jobject aPeer
- )
-{
- LOG( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::ConstructL +");
- aJni.GetJavaVM(&iJavaVM); // Get pointer to VM
- LOG( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::ConstructL -");
-}
-
-java::util::FunctionServer* MMAFunctionServer::getFunctionServer() const
-{
- LOG( EJavaMMAPI, EInfo, "++getFunctionServer1");
- JELOG2(EJavaMMAPI);
- return iServer;
-}
-JNIEnv* MMAFunctionServer::getValidJniEnv()
- {
- JELOG2(EJavaLocation);
- return mJniEnv;
- }
-jobject MMAFunctionServer::getPeer()
- {
- return mJavaPeerObject;
- }
-
-void MMAFunctionServer::ConstructSvrL()
-{
- // creating fbs session
- User::LeaveIfError(RFbsSession::Connect());
- iFbsSessionConnected = ETrue;
- LOG( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::ConstructSvrL ok");
-}
-
-EXPORT_C void MMAFunctionServer::StaticAddObjectFromHandleL(
- MMAFunctionServer* aEventSource,
- TInt aHandle)
-{
- aEventSource->AddObjectFromHandleL(aHandle);
-}
-
-void MMAFunctionServer::AddPlayerL(CMMAPlayer* aPlayer)
-{
- if (iInstanceObserver)
- {
- iInstanceObserver->AddPlayerNotifyL(aPlayer);
- }
-#ifdef RD_JAVA_VOLUME_CONTROL
- if (iGlobalVolume)
- {
- iGlobalVolume->AddPlayerL(aPlayer);
- }
-#endif // RD_JAVA_VOLUME_CONTROL
- TInt err = iPlayers.Append(aPlayer);
-
- if (err != KErrNone)
- {
- // There was no memory to add new player to array,
- // player must be removed from instance observer.
- if (iInstanceObserver)
- {
- iInstanceObserver->RemovePlayerNotify(aPlayer);
- }
-#ifdef RD_JAVA_VOLUME_CONTROL
- if (iGlobalVolume)
- {
- iGlobalVolume->RemovePlayer(aPlayer);
- }
-#endif // RD_JAVA_VOLUME_CONTROL
- User::Leave(err);
- }
-}
-
-void MMAFunctionServer::DisposePlayer(CMMAPlayer* aPlayer)
-{
- TInt index = iPlayers.Find(aPlayer);
- if (index != KErrNotFound)
- {
- if (iInstanceObserver)
- {
- iInstanceObserver->RemovePlayerNotify(aPlayer);
- }
-#ifdef RD_JAVA_VOLUME_CONTROL
- if (iGlobalVolume)
- {
- iGlobalVolume->RemovePlayer(aPlayer);
- }
-#endif // RD_JAVA_VOLUME_CONTROL
- delete iPlayers[ index ];
-
- // remove object from list
- iPlayers.Remove(index);
- }
-}
-
-EXPORT_C void MMAFunctionServer::SetPlayerInstanceObserver(
- MMMAPlayerInstanceObserver* aObserver)
-{
- iInstanceObserver = aObserver;
-}
-
-EXPORT_C RPointerArray< CMMAPlayer >& MMAFunctionServer::Players()
-{
- return iPlayers;
-}
-
-void MMAFunctionServer::Release()
-{
- // If player instance observer is added to event source, remove all
- // players from observer before deleting those.
- if (iInstanceObserver)
- {
- for (TInt i = 0; i < iPlayers.Count(); i++)
- {
- iInstanceObserver->RemovePlayerNotify(iPlayers[ i ]);
-#ifdef RD_JAVA_VOLUME_CONTROL
- if (iGlobalVolume)
- {
- iGlobalVolume->RemovePlayer(iPlayers[ i ]);
- }
-#endif // RD_JAVA_VOLUME_CONTROL
- }
- }
-
- iPlayers.ResetAndDestroy();
-}
-
-void MMAFunctionServer::AddObjectFromHandleL(TInt aHandle)
-{
- User::LeaveIfError(iObjects.Append(reinterpret_cast< CBase* >(aHandle)));
-}
-
-
-void MMAFunctionServer::FinalizeSvr()
-{
- LOG1( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::FinalizeSvr() object count = %d",
- iObjects.Count());
- LOG1( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::FinalizeSvr() player count = %d",
- iPlayers.Count());
-
- // After object array alements are deleted all external references to
- // player objects are removed and player array can be deleted.
- iObjects.ResetAndDestroy();
- iPlayers.ResetAndDestroy();
-
- if (iFbsSessionConnected)
- {
- RFbsSession::Disconnect();
- iFbsSessionConnected = EFalse;
- }
- LOG( EJavaMMAPI, EInfo, "MMA::MMAFunctionServer::FinalizeSvr() ok");
-}
-
-
-void MMAFunctionServer::PostEvent(CMMAEvent* aEvent, TInt /*aPriority*/)
-{
- LOG( EJavaMMAPI, EInfo, "MMAFunctionServer::PostEvent");
- aEvent->Dispatch(*mJniEnv);
-}
-
-CMMAPlayer* MMAFunctionServer::FindPlayer(TInt aPlayerHandle)
-{
- LOG( EJavaMMAPI, EInfo, "MMAFunctionServer::FindPlayer");
- CMMAPlayer* player = reinterpret_cast< CMMAPlayer* >(aPlayerHandle);
- TInt index = iPlayers.Find(player);
- if (index != KErrNotFound)
- {
- player = iPlayers[ index ];
- LOG( EJavaMMAPI, EInfo, "MMAFunctionServer::FindPlayer: player found");
- }
- else
- {
- LOG( EJavaMMAPI, EInfo, "MMAFunctionServer::FindPlayer: player not found");
- player = NULL;
- }
- return player;
-}
-#ifdef RD_JAVA_VOLUME_CONTROL
-void MMAFunctionServer::SetGlobalVolume(CMMAGlobalVolume* aGlobalVolume)
-{
- delete iGlobalVolume;
- iGlobalVolume = aGlobalVolume;
-}
-#endif // RD_JAVA_VOLUME_CONTROL
-
-// END OF FILE