RMMFDataPathProxy Class Reference

class RMMFDataPathProxy : public RMMFSubThreadBase

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

Public Member Functions
RMMFDataPathProxy ()
IMPORT_C TInt AddDataSink ( MDataSink *)
IMPORT_C TInt AddDataSource ( MDataSource *)
IMPORT_C TInt ClearPlayWindow ()
IMPORT_C void Close ()
IMPORT_C TInt CreateSubThread ()
IMPORT_C TInt GetPosition ( TTimeIntervalMicroSeconds &)
IMPORT_C TInt LoadDataPath ()
IMPORT_C TInt LoadDataPath ( TMediaId )
IMPORT_C TInt LoadDataPath ( TUid )
IMPORT_C TInt LoadDataPath ( TUid , TMediaId )
IMPORT_C TInt Pause ()
IMPORT_C TInt Play ()
IMPORT_C TInt Prime ()
IMPORT_C TInt SetPlayWindow (const TTimeIntervalMicroSeconds &, const TTimeIntervalMicroSeconds &)
IMPORT_C TInt SetPosition (const TTimeIntervalMicroSeconds &)
IMPORT_C TInt State ( TInt &)
IMPORT_C TInt Stop ()
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 TInt AddDataSink ( 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 * aSink A pointer to the data sink.

AddDataSource(MDataSource *)

IMPORT_C TInt AddDataSource ( 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 * aSource A pointer to the data source.

ClearPlayWindow()

IMPORT_C TInt ClearPlayWindow ( )

Removes a previously defined play window.

Since
7.0s

Close()

IMPORT_C void Close ( )

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 TInt CreateSubThread ( )

Creates a subthread that will contain the datapath.

Since
7.0s

GetPosition(TTimeIntervalMicroSeconds &)

IMPORT_C TInt GetPosition ( TTimeIntervalMicroSeconds & aPosition ) const

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

Since
7.0s

Parameters

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

LoadDataPath()

IMPORT_C TInt LoadDataPath ( )

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 TInt LoadDataPath ( TMediaId aMediaId )

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 aMediaId The type of media to be handled by this datapath.

LoadDataPath(TUid)

IMPORT_C TInt LoadDataPath ( TUid aCodecUid )

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 aCodecUid The UID of the codec plugin to be used by the datapath.

LoadDataPath(TUid, TMediaId)

IMPORT_C TInt LoadDataPath ( TUid aCodecUid,
TMediaId aMediaId
)

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 aCodecUid The UID of the codec plugin to be used by the datapath.
TMediaId aMediaId The type of media to be handled by this datapath.

Pause()

IMPORT_C TInt Pause ( )

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 TInt Play ( )

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 TInt Prime ( )

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 TInt SetPlayWindow ( const TTimeIntervalMicroSeconds & aStart,
const TTimeIntervalMicroSeconds & aEnd
)

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

Since
7.0s

Parameters

const TTimeIntervalMicroSeconds & aStart The start position in micro seconds relative to the start of the clip.
const TTimeIntervalMicroSeconds & aEnd The end position in micro seconds relative to the start of the clip.

SetPosition(const TTimeIntervalMicroSeconds &)

IMPORT_C TInt SetPosition ( const TTimeIntervalMicroSeconds & aPosition )

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

Since
7.0s

Parameters

const TTimeIntervalMicroSeconds & aPosition The required position in micro seconds.

State(TInt &)

IMPORT_C TInt State ( TInt & aState )

Gets the current datapath state.

Since
7.0s

Parameters

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

Stop()

IMPORT_C TInt Stop ( )

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