RMMFDataPathProxy Class Reference

#include <mmf/server/mmfdatapathproxy.h>

Link against: mmfserverbaseclasses.lib

class RMMFDataPathProxy : public RMMFSubThreadBase

Inherits from

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 Attributes
RHandleBase::iHandle
RMMFSubThreadBase::iShutdownTimeout
RMMFSubThreadBase::iSubThread
Inherited Enumerations
RHandleBase:TAttributes
RSessionBase:TAttachMode
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()

Detailed Description

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

Constructor & Destructor Documentation

RMMFDataPathProxy ( )

RMMFDataPathProxy()[inline]

Constuctor.

Member Function 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
ParameterDescription
aSinkA pointer to the data sink.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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
ParameterDescription
aSourceA pointer to the data source.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

ClearPlayWindow ( )

IMPORT_C TIntClearPlayWindow()

Removes a previously defined play window.

Since
7.0s

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

Close ( )

IMPORT_C voidClose()

Reimplemented from RHandleBase::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 TIntCreateSubThread()

Creates a subthread that will contain the datapath.

Since
7.0s

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

GetPosition ( TTimeIntervalMicroSeconds & )

IMPORT_C TIntGetPosition(TTimeIntervalMicroSeconds &aPosition)const

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

Since
7.0s
ParameterDescription
aPositionThe current position in micro seconds will be copied into this variable.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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
ParameterDescription
aCodecUidThe UID of the codec plugin to be used by the datapath.
aMediaIdThe type of media to be handled by this datapath.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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
ParameterDescription
aStartThe start position in micro seconds relative to the start of the clip.
aEndThe end position in micro seconds relative to the start of the clip.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

SetPosition ( const TTimeIntervalMicroSeconds & )

IMPORT_C TIntSetPosition(const TTimeIntervalMicroSeconds &aPosition)

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

Since
7.0s
ParameterDescription
aPositionThe required position in micro seconds.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

State ( TInt & )

IMPORT_C TIntState(TInt &aState)

Gets the current datapath state.

Since
7.0s
ParameterDescription
aStateThe current state of the datapath will be copied into this variable.

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.

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

Returns: An error code indicating if the function call was successful. KErrNone on success, otherwise another of the system-wide error codes.