RMMFDataPathProxy Class Reference

class RMMFDataPathProxy : public RMMFSubThreadBase

Proxy class used to create a datapath in a new subthread.

Public Member Functions
RMMFDataPathProxy()
IMPORT_C TIntAddDataSink(MDataSink *)
IMPORT_C TIntAddDataSource(MDataSource *)
IMPORT_C TIntClearPlayWindow()
IMPORT_C voidClose()
IMPORT_C TIntCreateSubThread()
IMPORT_C TIntGetPosition(TTimeIntervalMicroSeconds &)
IMPORT_C TIntLoadDataPath()
IMPORT_C TIntLoadDataPath(TMediaId)
IMPORT_C TIntLoadDataPath(TUid)
IMPORT_C TIntLoadDataPath(TUid, TMediaId)
IMPORT_C TIntPause()
IMPORT_C TIntPlay()
IMPORT_C TIntPrime()
IMPORT_C TIntSetPlayWindow(const TTimeIntervalMicroSeconds &, const TTimeIntervalMicroSeconds &)
IMPORT_C TIntSetPosition(const TTimeIntervalMicroSeconds &)
IMPORT_C TIntState(TInt &)
IMPORT_C TIntStop()
Inherited Functions
RHandleBase::Attributes()const
RHandleBase::BTraceId()const
RHandleBase::DoExtendedClose()
RHandleBase::Duplicate(const RThread &,TOwnerType)
RHandleBase::FullName()const
RHandleBase::FullName(TDes &)const
RHandleBase::Handle()const
RHandleBase::HandleInfo(THandleInfo *)
RHandleBase::Name()const
RHandleBase::NotifyDestruction(TRequestStatus &)
RHandleBase::Open(const TFindHandleBase &,TOwnerType)
RHandleBase::OpenByName(const TDesC &,TOwnerType,TInt)
RHandleBase::RHandleBase()
RHandleBase::RHandleBase(TInt)
RHandleBase::SetHandle(TInt)
RHandleBase::SetHandleNC(TInt)
RMMFSubThreadBase::CancelReceiveEvents()
RMMFSubThreadBase::DoCreateSubThread(const TDesC &,TThreadFunction,TBool)
RMMFSubThreadBase::Panic(TMMFSubThreadPanicCode)
RMMFSubThreadBase::RMMFSubThreadBase(TTimeIntervalMicroSeconds32)
RMMFSubThreadBase::ReceiveEvents(TMMFEventPckg &,TRequestStatus &)
RMMFSubThreadBase::Shutdown()
RMMFSubThreadBase::SubThreadId()
RMmfSessionBase::SendReceive(TInt)const
RMmfSessionBase::SendReceive(TInt,TInt)const
RMmfSessionBase::SendReceive(TInt,TInt,TInt)const
RMmfSessionBase::SendReceive(TInt,TInt,TInt,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,TInt,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,TInt,const TDesC8 &,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,TInt,const TDesC8 &,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC &)const
RMmfSessionBase::SendReceive(TInt,const TDesC &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,TDes8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,TInt,const TDesC8 &,const TDesC8 &,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,TInt,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,TDes &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)const
RSessionBase::CreateSession(RServer2,const TVersion &)
RSessionBase::CreateSession(RServer2,const TVersion &,TInt)
RSessionBase::CreateSession(RServer2,const TVersion &,TInt,TIpcSessionType,const TSecurityPolicy *,TRequestStatus *)
RSessionBase::CreateSession(const TDesC &,const TVersion &)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt,TIpcSessionType,const TSecurityPolicy *,TRequestStatus *)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt,TRequestStatus *)
RSessionBase::Open(RMessagePtr2,TInt,TOwnerType)
RSessionBase::Open(RMessagePtr2,TInt,const TSecurityPolicy &,TOwnerType)
RSessionBase::Open(TInt,TOwnerType)
RSessionBase::Open(TInt,const TSecurityPolicy &,TOwnerType)
RSessionBase::Send(TInt)const
RSessionBase::Send(TInt,const TIpcArgs &)const
RSessionBase::SendReceive(TInt,const TIpcArgs &)const
RSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
RSessionBase::SetReturnedHandle(TInt)
RSessionBase::SetReturnedHandle(TInt,RHandleBase &)
RSessionBase::SetReturnedHandle(TInt,const TSecurityPolicy &)
RSessionBase::ShareAuto()
RSessionBase::ShareProtected()
Inherited Enumerations
RHandleBase:TAttributes
RSessionBase:TAttachMode
Inherited Attributes
RHandleBase::iHandle
RMMFSubThreadBase::iShutdownTimeout
RMMFSubThreadBase::iSubThread

Constructor & Destructor Documentation

RMMFDataPathProxy()

RMMFDataPathProxy()[inline]

Constuctor.

Member Functions Documentation

AddDataSink(MDataSink *)

IMPORT_C TIntAddDataSink(MDataSink *aSink)

Specify the data sink for this datapath.

If the source already exists, this function tries to establish a connection between the source and the sink. Note that only one data sink can be added to the datapath.

Since
7.0s

Parameters

MDataSink * aSinkA pointer to the data sink.

AddDataSource(MDataSource *)

IMPORT_C TIntAddDataSource(MDataSource *aSource)

Specify the data source for this datapath.

If the sink already exists, this function tries to establish a connection between the source and sink. Note that only one data source can be added to the datapath.

Since
7.0s

Parameters

MDataSource * aSourceA pointer to the data source.

ClearPlayWindow()

IMPORT_C TIntClearPlayWindow()

Removes a previously defined play window.

Since
7.0s

Close()

IMPORT_C voidClose()

Deletes the datapath and shuts down the datapath proxy thread.

Calls RMMFSubThreadBase::Shutdown(). This function will not return until the subthread has exited, or a timeout has occurred.

Since
7.0s

CreateSubThread()

IMPORT_C TIntCreateSubThread()

Creates a subthread that will contain the datapath.

Since
7.0s

GetPosition(TTimeIntervalMicroSeconds &)

IMPORT_C TIntGetPosition(TTimeIntervalMicroSeconds &aPosition)const

Gets the current position of the datapath in units of time.

Since
7.0s

Parameters

TTimeIntervalMicroSeconds & aPositionThe current position in micro seconds will be copied into this variable.

LoadDataPath()

IMPORT_C TIntLoadDataPath()

Load the datapath in the new thread. Use this method if the codec UID is not known and there is no datapath ambiguity, ie. only one datapath is possible.

Since
7.0s

LoadDataPath(TMediaId)

IMPORT_C TIntLoadDataPath(TMediaIdaMediaId)

Load the datapath in the new thread.

Use this method if the codec UID is not known but the TMediaId can be used to select which codec to use.

Since
7.0s

Parameters

TMediaId aMediaIdThe type of media to be handled by this datapath.

LoadDataPath(TUid)

IMPORT_C TIntLoadDataPath(TUidaCodecUid)

Load the datapath in the new thread.

Use this method if the codec UID is known and there is no datapath ambiguity, ie. only one datapath is possible.

Since
7.0s

Parameters

TUid aCodecUidThe UID of the codec plugin to be used by the datapath.

LoadDataPath(TUid, TMediaId)

IMPORT_C TIntLoadDataPath(TUidaCodecUid,
TMediaIdaMediaId
)

Loads the datapath in the new thread.

Use this method if the codec UID is known and there is datapath ambiguity. The TMediaId will be used to choose the correct path.

Since
7.0s

Parameters

TUid aCodecUidThe UID of the codec plugin to be used by the datapath.
TMediaId aMediaIdThe type of media to be handled by this datapath.

Pause()

IMPORT_C TIntPause()

Pauses playing.

This function transfers the datapath from the playing into the primed state and sends KMMFErrorCategoryDataPathGeneralError to the client if an error occurs.

Since
7.0s

Play()

IMPORT_C TIntPlay()

Transfer the datapath from the primed into the playing state.

This function starts an active scheduler play loop and can only play from the primed state.

Since
7.0s

Prime()

IMPORT_C TIntPrime()

Transfer the datapath from the stopped into the primed state.

This function allocates buffers in preparation to play and must be called before calling PlayL().

Since
7.0s

SetPlayWindow(const TTimeIntervalMicroSeconds &, const TTimeIntervalMicroSeconds &)

IMPORT_C TIntSetPlayWindow(const TTimeIntervalMicroSeconds &aStart,
const TTimeIntervalMicroSeconds &aEnd
)

Sets the play window relative to the start of the entire clip.

Since
7.0s

Parameters

const TTimeIntervalMicroSeconds & aStartThe start position in micro seconds relative to the start of the clip.
const TTimeIntervalMicroSeconds & aEndThe end position in micro seconds relative to the start of the clip.

SetPosition(const TTimeIntervalMicroSeconds &)

IMPORT_C TIntSetPosition(const TTimeIntervalMicroSeconds &aPosition)

Sets the current position of the datapath in units of time.

Since
7.0s

Parameters

const TTimeIntervalMicroSeconds & aPositionThe required position in micro seconds.

State(TInt &)

IMPORT_C TIntState(TInt &aState)

Gets the current datapath state.

Since
7.0s

Parameters

TInt & aStateThe current state of the datapath will be copied into this variable.

Stop()

IMPORT_C TIntStop()

Stops playing.

This function transfers the datapath from the primed into the stopped state and resets the data path position, but does not clean up buffers. It also sends KMMFErrorCategoryDataPathGeneralError to the client if an error occurs.

Since
7.0s