javauis/mmapi_qt/baseline/src/cmmaplayer.cpp
branchRCL_3
changeset 18 9ac0a0a7da70
parent 17 0fd27995241b
child 19 71c436fe3ce0
--- a/javauis/mmapi_qt/baseline/src/cmmaplayer.cpp	Tue May 11 16:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,496 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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 is base class for all players.
-*
-*/
-
-//  INCLUDE FILES
-#include <logger.h>
-
-#include <JniEnvWrapper.h>
-
-#include "cmmaplayer.h"
-#include "mmafunctionserver.h"
-#include "cmmadurationupdater.h"
-#include "cmmavolumecontrol.h"
-
-// CONSTANTS
-_LIT(KPanicOutOfMem, "out of memory");
-
-#ifdef _DEBUG // Needed only in ASSER_DEBUG statements.
-_LIT(KPanicMethod, "method not found");
-#endif
-
-CMMAPlayer::~CMMAPlayer()
-{
-    LOG( EJavaMMAPI, EInfo, "CMMAPlayer::~CMMAPlayer()");
-
-    iSourceStreams.ResetAndDestroy();
-    if (iControls.Count() > 0)
-        iControls.ResetAndDestroy();
-    iStateListeners.Reset();
-    delete iActionCompletedEvent;
-    delete iOOMErrorEvent;
-    delete iDurationUpdater;
-    delete iContentType;
-}
-
-
-CMMAPlayer::CMMAPlayer():
-        iRepeatNumberOfTimes(0),
-        iRepeatForever(EFalse),
-        iRepeatCount(0),
-        iDuration(KTimeUnknown),
-        iState(EUnrealized)
-{
-}
-
-
-void CMMAPlayer::ConstructL()
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ConstructL + ");
-    iDurationUpdater = CMMADurationUpdater::NewL(*this);
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ConstructL - ");
-}
-
-
-void CMMAPlayer::StaticAddSourceStreamL(JNIEnv* aJniEnv,
-                                        CMMAPlayer* aPlayer,
-                                        MMAFunctionServer* aEventSource,
-                                        jobject aReader,
-                                        CMMASourceStream** aSourceStream)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticAddSourceStreamL +");
-
-    // JNI interface pointer can't be passed to different thread, so
-    // it is needed to get valid JNI interface pointer for Event Server thread
-     aJniEnv = aEventSource-> getValidJniEnv();
-
-    *aSourceStream = aPlayer->AddSourceStreamL(aJniEnv,
-                     aEventSource,
-                     aReader);
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticAddSourceStreamL -");
-}
-
-
-
-void CMMAPlayer::StaticSetPlayerListenerObjectL(CMMAPlayer* aPlayer,
-		MMAFunctionServer* aEventsource,
-        jobject aListenerObject,
-        JNIEnv* aJni,
-        MMMAEventPoster* aPoster)
-{
-
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticSetPlayerListenerObjectL +");
-
-    // JNI interface pointer can't be passed to different thread, so
-    // it is needed to get valid JNI interface pointer for Event Server thread
-     aJni = aEventsource-> getValidJniEnv();
-
-    aPlayer->SetPlayerListenerObjectL(aListenerObject, aJni, aPoster);
-
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticSetPlayerListenerObjectL -");
-}
-
-
-void CMMAPlayer::StaticInitPlayerL(CMMAPlayer* aPlayer,
-								   MMAFunctionServer* aEventsource,
-                                   jobject aPlayerObject,
-                                   JNIEnv* aJni)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticInitPlayerL +");
-
-    // JNI interface pointer can't be passed to different thread, so
-    // it is needed to get valid JNI interface pointer for Event Server thread
- 	aJni = aEventsource-> getValidJniEnv();
-
-    jmethodID actionCompletedMethod = aJni->GetMethodID(
-                                          aJni->GetObjectClass(aPlayerObject),
-                                          "actionCompleted",
-                                          "(I)V");
-                                          
-    jmethodID actionCompletedFileMethod = aJni->GetMethodID(
-                                          aJni->GetObjectClass(aPlayerObject),
-                                          "actionCompletedFile",
-                                          "()V");    
-                                          
-    jmethodID actionCompletedStartMethod = aJni->GetMethodID(
-                                          aJni->GetObjectClass(aPlayerObject),
-                                          "actionCompletedStart",
-                                          "()V");                                                                                 
-
-    // Sanity Check, something is really wrong if methods cannot be found
-    __ASSERT_DEBUG(actionCompletedMethod,
-                   User::Panic(KPanicMethod, KErrGeneral));
-
-    aPlayer->iActionCompletedEvent = new(ELeave) CMMAEvent(
-        aPlayerObject,
-        actionCompletedMethod,
-        CMMAEvent::EReusableEvent);
-            
-    aPlayer->iActionCompletedFileEvent = new(ELeave) CMMAEvent(
-        aPlayerObject,
-        actionCompletedFileMethod,
-        CMMAEvent::EReusableEvent);     
-            
-    aPlayer->iActionCompletedStartEvent = new(ELeave) CMMAEvent(
-        aPlayerObject,
-        actionCompletedStartMethod,
-        CMMAEvent::EReusableEvent);
-
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticInitPlayerL -");
-}
-
-CMMAControl* CMMAPlayer::StaticControl(CMMAPlayer* aPlayer, TInt aIndex)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::StaticControl +");
-    return aPlayer->Control(aIndex);
-
-}
-
-
-void CMMAPlayer::RealizeL()
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::RealizeL +");
-    ChangeState(ERealized);
-
-}
-
-
-void CMMAPlayer::CloseL()
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::CloseL ");
-    ChangeState(EClosed);
-    PostObjectEvent(CMMAPlayerEvent::EClosed, NULL);   
-}
-
-
-void CMMAPlayer::GetDuration(TInt64* aDuration)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::GetDuration ");
-    *aDuration = iDuration;
-}
-
-
-void CMMAPlayer::SetMediaTimeL(TInt64* aTime)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::SetMediaTimeL ");
-    *aTime = KErrNotSupported;
-}
-
-void CMMAPlayer::GetMediaTime(TInt64* aMediaTime)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::GetMediaTime ");
-    *aMediaTime = KErrNotSupported;
-}
-
-
-EXPORT_C void CMMAPlayer::SetLoopCount(TInt aCount)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::SetLoopCount ");
-    iRepeatForever = (aCount == KJavaRepeatForever);
-    iRepeatNumberOfTimes = aCount;
-    iRepeatCount = 0;
-}
-
-HBufC* CMMAPlayer::ContentType() const
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ContentType ");
-    return iContentType;
-}
-
-void CMMAPlayer::SetPlayerListenerObjectL(jobject aListenerObject,
-        JNIEnv* aJni,
-        MMMAEventPoster* aEventPoster)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::SetPlayerListenerObjectL +");
-    iListenerObject = aListenerObject;
-    iEventPoster = aEventPoster;
-
-    jclass listenerClass = aJni->GetObjectClass(aListenerObject);
-
-    iPostEvent = aJni->GetMethodID(
-                     listenerClass,
-                     "postEvent",
-                     "(Ljava/lang/String;Ljava/lang/Object;)V");
-
-    iPostObjectEvent = aJni->GetMethodID(listenerClass,
-                                         "postObjectEvent",
-                                         "(ILjava/lang/Object;)V");
-
-    iPostLongEvent = aJni->GetMethodID(listenerClass,
-                                       "postLongEvent",
-                                       "(IJ)V");
-
-    iPostStringEvent = aJni->GetMethodID(listenerClass,
-                                         "postStringEvent",
-                                         "(ILjava/lang/String;)V");
-
-    iPostControlEvent = aJni->GetMethodID(listenerClass,
-                                          "postControlEvent",
-                                          "(ILjava/lang/String;)V");
-
-
-    // Sanity Check, something is really wrong if methods cannot be found
-    __ASSERT_DEBUG(iPostEvent &&
-                   iPostObjectEvent &&
-                   iPostLongEvent &&
-                   iPostStringEvent &&
-                   iPostControlEvent,
-                   User::Panic(KPanicMethod, KErrGeneral));
-
-    iOOMErrorEvent = new(ELeave) CMMAPlayerEvent(iListenerObject,
-            iPostStringEvent,
-            CMMAEvent::EReusableEvent);
-    iOOMErrorEvent->SetStringEventL(CMMAPlayerEvent::EError,
-                                    KPanicOutOfMem);
-
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::SetPlayerListenerObjectL -");
-}
-
-
-EXPORT_C TInt CMMAPlayer::ControlCount()
-{
-    return iControls.Count();
-}
-
-
-EXPORT_C CMMAControl* CMMAPlayer::Control(TInt aIndex)
-{
-    return iControls[ aIndex ];
-}
-
-void CMMAPlayer::RefreshControls()
-{
-
-    for (TInt index = 0; index < iControls.Count(); index++)
-    {
-        CMMAControl* control = iControls[ index ];
-        control->RefreshControl();
-    }
-
-}
-
-EXPORT_C  void CMMAPlayer::AddStateListenerL(MMMAPlayerStateListener* aListener)
-{
-	LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::AddStateListenerL +");
-	TInt err = iStateListeners.Append(aListener);
-	LOG1( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::AddStateListenerL - err = %d ",err);
-		User::LeaveIfError(err);
-    //User::LeaveIfError(iStateListeners.Append(aListener));
-
-}
-
-EXPORT_C void CMMAPlayer::RemoveStateListener(MMMAPlayerStateListener* aListener)
-{
-
-    TInt index = iStateListeners.Find(aListener);
-
-    if (index != KErrNotFound)
-    {
-        iStateListeners.Remove(index);
-    }
-
-}
-
-const TDesC& CMMAPlayer::Type()
-{
-    // by default player has not the type
-    return KNullDesC;
-}
-
-void CMMAPlayer::SetContentType(HBufC* aContentType)
-{
-
-    delete iContentType;
-    iContentType = aContentType;
-
-}
-
-void CMMAPlayer::ResetSourceStreams()
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ResetSourceStreams +");
-    int sourceStreamsCount = iSourceStreams.Count();
-    for (int i = 0; i < sourceStreamsCount; i++)
-    {
-        iSourceStreams[ i ]->ResetData();
-    }
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ResetSourceStreams -");
-}
-
-EXPORT_C void CMMAPlayer::AddControlL(CMMAControl* aControl)
-{
-
-    User::LeaveIfError(iControls.Append(aControl));
-
-}
-
-void CMMAPlayer::PostLongEvent(CMMAPlayerEvent::TEventType aEventType,
-                               const TInt64& aLongEventData)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostLongEvent ");
-    if (!iListenerObject || !iEventPoster)
-    {
-        LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostLongEvent No listener");
-        // return since player is not ready for posting any events and is not initialized
-        return;
-    }
-
-    CMMAPlayerEvent* playerEvent = new CMMAPlayerEvent(iListenerObject,
-            iPostLongEvent);
-    if (!playerEvent)
-    {
-        // creation of player event failed, informing Java
-        iEventPoster->PostEvent(iOOMErrorEvent);
-        return;
-    }
-    playerEvent->SetLongEvent(aEventType, aLongEventData);
-
-    // event poster takes ownership of event
-    iEventPoster->PostEvent(playerEvent);
-}
-
-
-EXPORT_C void CMMAPlayer::PostStringEvent(CMMAPlayerEvent::TEventType aEventType,
-        const TDesC& aStringEventData)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostStringEvent ");
-    if (!iListenerObject || !iEventPoster)
-    {
-        LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostStringEvent No listener");
-        // return since player is not ready for posting any events and is not initialized
-        return;
-    }
-
-    CMMAPlayerEvent* playerEvent = new CMMAPlayerEvent(iListenerObject,
-            iPostStringEvent);
-    if (!playerEvent)
-    {
-        // creation of player event failed, informing Java
-        iEventPoster->PostEvent(iOOMErrorEvent);
-        return;
-    }
-
-    TRAPD(err, playerEvent->SetStringEventL(aEventType, aStringEventData));
-    if (err != KErrNone)
-    {
-        // string setting failed, informing Java
-        iEventPoster->PostEvent(iOOMErrorEvent);
-        return;
-    }
-
-    // event poster takes ownership of event
-    iEventPoster->PostEvent(playerEvent);
-}
-
-
-EXPORT_C void CMMAPlayer::PostObjectEvent(CMMAPlayerEvent::TEventType aEventType,
-        const jobject aEventData)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostObjectEvent ");
-
-    if (!iListenerObject || !iEventPoster)
-    {
-        LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostObjectEvent No listener");
-        // return since player is not ready for posting any events and is not initialized
-        return;
-    }
-
-    CMMAPlayerEvent* playerEvent = new CMMAPlayerEvent(iListenerObject,
-            iPostObjectEvent);
-
-    if (!playerEvent)
-    {
-        // creation of player event failed, informing Java
-        iEventPoster->PostEvent(iOOMErrorEvent);
-        return;
-    }
-
-    TRAPD(err, playerEvent->SetObjectEventL(aEventType, aEventData));
-    if (err != KErrNone)
-    {
-        // creation of player event failed, informing Java
-        iEventPoster->PostEvent(iOOMErrorEvent);
-        return;
-    }
-
-    // event poster takes ownership of event
-    iEventPoster->PostEvent(playerEvent);
-}
-
-EXPORT_C CMMASourceStream* CMMAPlayer::AddSourceStreamL(JNIEnv* aJNIEnv,
-        MMAFunctionServer* aEventSource,
-        jobject aReader)
-{
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::AddSourceStreamL ");
-    CMMASourceStream* sourceStream = CMMASourceStream::NewL(aJNIEnv,
-                                     aEventSource,
-                                     aReader,
-                                     this);
-
-    CleanupStack::PushL(sourceStream);
-    User::LeaveIfError(iSourceStreams.Append(sourceStream));
-    CleanupStack::Pop(); // sourceStream
-    return sourceStream;
-}
-
-
-void CMMAPlayer::PostActionCompleted(TInt aError)
-{
-	LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostActionCompleted ");
-    iActionCompletedEvent->SetEventData(aError);
-    iEventPoster->PostEvent(iActionCompletedEvent,
-                            CMMAEvent::ENotifyPriority);
-}
-
-void CMMAPlayer::PostActionCompletedFile()
-{
-	LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostActionCompleted ");
-   // iActionCompletedFileEvent->SetEventData(aError);
-    iEventPoster->PostEvent(iActionCompletedFileEvent,
-                            CMMAEvent::ENotifyPriority);
-}
-
-
-void CMMAPlayer::PostActionCompletedStart()
-{
-	   LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::PostActionCompleted ");
-    iEventPoster->PostEvent(iActionCompletedStartEvent,
-                            CMMAEvent::ENotifyPriority);
-}
-
-void CMMAPlayer::ChangeState(TPlayerState aState)
-{
-    iState = aState;
-    LOG1( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ChangeState - iStateListeners count is %d", iStateListeners.Count());
-    for (TInt i(0); i<iStateListeners.Count(); i++)
-    {
-        iStateListeners[ i ]->StateChanged(aState);
-    }
-    LOG1( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ChangeState - State changed to %d", iState);
-}
-
-void CMMAPlayer::ReadCompletedL(TInt /*aStatus*/, const TDesC8& /*aData*/)
-{
-    // empty implementation
-    LOG( EJavaMMAPI, EInfo, "MMA::CMMAPlayer::ReadCompletedL ");
-}
-void CMMAPlayer:: DeleteControls()
-{
-    if (iControls.Count() > 0)
-    {
-        iControls.ResetAndDestroy();
-    }
-}
-//  END OF FILE