CMMFControllerImplementationInformation Class Reference

class CMMFControllerImplementationInformation : public CMMFPluginImplementationInformation

Contains controller plugin information retrieved from the ECom registry.

The object is created using a CImplementationInformation object retrieved from the ECom registry. All relevant data is copied out of the CImplementationInformation object, and its opaque data is parsed to provide the supplier, supported media IDs.

Notes for Format Plugin developers: The exact formats supported by the controller plugin are calculated by:

1. The formats supported by the controller plugin itself must be declared in separate entries in the controller plugin resource file. Two interface UIDs should be defined by the plugin writer - one for the play formats supported, the other for the record formats supported. The play formats are then listed as implementations of the play format interface uid, and likewise the record formats.

2. Format plugins (CMMFFormatEncode and CMMFFormatDecode) declare which controller plugin they extend. ECom is search for the format plugins that extend the controller plugin, and they are added to the list.

The opaque data section of the ECom plugin resource file must be in the format:
        opaque_data = "<?>Data 1<?>Data 2<?>Data 3<?>Data 4[...]<?>Data N";

The <?> preceding the data determines the meaning of the data.  The following are the possible tags:

	<s> - Supplier - must be only one
	<i> - Media Id
	<p> - UID of play format 'interface' - must be only one
	<r> - UID of record format 'interface' - must be only one

UIDs must always be in hex in the format '0x12345678', must include the '0x' and be 10 characters long.
       
Since
7.0s

Inherits from

Public Member Functions
~CMMFControllerImplementationInformation ()
void GetPlayFormatsL ()
void GetRecordFormatsL ()
IMPORT_C TUint HeapSpaceRequired ()
CMMFControllerImplementationInformation * NewL (const CImplementationInformation &)
IMPORT_C CMMFControllerImplementationInformation * NewL ( TUid )
CMMFControllerImplementationInformation * NewLC (const CImplementationInformation &)
IMPORT_C const RMMFFormatImplInfoArray & PlayFormats ()
IMPORT_C const RMMFFormatImplInfoArray & RecordFormats ()
IMPORT_C void SetUriPriority ( TInt )
IMPORT_C TUint StackSize ()
IMPORT_C const CDesC8Array & SupportedUriSchemes ()
IMPORT_C TBool SupportsNetworkCapability ()
IMPORT_C TBool SupportsSecureDRMProcessMode ()
IMPORT_C TBool SupportsUriScheme (const TDesC8 &)
IMPORT_C TInt UriPriority ()
Protected Member Functions
CMMFControllerImplementationInformation ()
void AddFormatsSwallowCorruptL ( RImplInfoPtrArray &, RMMFFormatImplInfoArray &)
void ConstructL (const CImplementationInformation &)
void GetFormatsL ( TUid , TUid , RMMFFormatImplInfoArray &)
void ProcessTaggedDataL (const TDesC8 &, const TDesC8 &)
void SetHeapSizeL (const TDesC8 &)
void SetNetworkCapabilityL (const TDesC8 &)
void SetPlayFormatCollectionUidL (const TDesC8 &)
void SetRecordFormatCollectionUidL (const TDesC8 &)
void SetStackSizeL (const TDesC8 &)
void SetUriSchemeL (const TDesC8 &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
CMMFPluginImplementationInformation::AddMediaIdL(const TDesC8 &)
CMMFPluginImplementationInformation::CMMFPluginImplementationInformation()
CMMFPluginImplementationInformation::DisplayName()const
CMMFPluginImplementationInformation::SetSupplierL(const TDesC8 &)
CMMFPluginImplementationInformation::Supplier()const
CMMFPluginImplementationInformation::SupportedMediaIds()const
CMMFPluginImplementationInformation::SupportsMediaId(TUid)const
CMMFPluginImplementationInformation::SupportsSupplier(const TDesC &)const
CMMFPluginImplementationInformation::Uid()const
CMMFPluginImplementationInformation::Version()const
CMMFPluginImplementationInformation::~CMMFPluginImplementationInformation()
Private Attributes
TUint iHeapSpaceRequired
TBool iIsNetworkCtrl
TUid iPlayFormatCollectionUid
RMMFFormatImplInfoArray iPlayFormats
TUid iRecordFormatCollectionUid
RMMFFormatImplInfoArray iRecordFormats
TUint iStackSize
TBool iSupportsSecureDRMProcessMode
TInt iUriPriority
CDesC8Array * iUriSchemes
Inherited Attributes
CMMFPluginImplementationInformation::iDisplayName
CMMFPluginImplementationInformation::iMediaIds
CMMFPluginImplementationInformation::iSupplier
CMMFPluginImplementationInformation::iUid
CMMFPluginImplementationInformation::iVersion

Constructor & Destructor Documentation

CMMFControllerImplementationInformation()

CMMFControllerImplementationInformation ( ) [protected]

Constructor.

~CMMFControllerImplementationInformation()

~CMMFControllerImplementationInformation ( )

Destructor.

Member Functions Documentation

AddFormatsSwallowCorruptL(RImplInfoPtrArray &, RMMFFormatImplInfoArray &)

void AddFormatsSwallowCorruptL ( RImplInfoPtrArray & aEcomArray,
RMMFFormatImplInfoArray & aFormatArray
) [protected]

Creates CMMFFormatImplementationInformation objects for all CImplementationInformation objects in aEcomArray. Any corrupt objects are ignored. The objects created are added to aFormatArray.

Since
7.0s

Parameters

RImplInfoPtrArray & aEcomArray See above.
RMMFFormatImplInfoArray & aFormatArray See above.

ConstructL(const CImplementationInformation &)

void ConstructL ( const CImplementationInformation & aImplInfo ) [protected]

2nd phase constructor.

Parameters

const CImplementationInformation & aImplInfo

GetFormatsL(TUid, TUid, RMMFFormatImplInfoArray &)

void GetFormatsL ( TUid aFormatCollectionUid,
TUid aFormatPluginCollectionUid,
RMMFFormatImplInfoArray & aFormatArray
) [protected]
Queries the ECom registry for:
  • all registry entries with an interface UID of aFormatCollectionUid

  • all format plugins with an interface UID of aFormatPluginCollectionUid (ie CMMFFormatEncode or CMMFFormatDecode) that have the UID of this controller plugin in the default_data field of their ECom resource file.

CMMFFormatImplementationInformation objects are created for each entry returned, and appended to aFormatArray.

Since
7.0s

Parameters

TUid aFormatCollectionUid See above.
TUid aFormatPluginCollectionUid See above.
RMMFFormatImplInfoArray & aFormatArray See above.

GetPlayFormatsL()

void GetPlayFormatsL ( )

Queries the ECom registry for the play formats supported.

GetRecordFormatsL()

void GetRecordFormatsL ( )

Queries the ECom registry for the record formats supported.

HeapSpaceRequired()

IMPORT_C TUint HeapSpaceRequired ( ) const

Returns the heap space required by this controller.

Since
7.0s

NewL(const CImplementationInformation &)

CMMFControllerImplementationInformation * NewL ( const CImplementationInformation & aImplInfo ) [static]

Constructs a new controller implementation information object.

Since
7.0s

Parameters

const CImplementationInformation & aImplInfo The ECOM implementation information.

NewL(TUid)

IMPORT_C CMMFControllerImplementationInformation * NewL ( TUid aUid ) [static]

Constructs a new controller implementation information object.

Since
7.0s

Parameters

TUid aUid The Uid of the controller to obtain controller implementation information

NewLC(const CImplementationInformation &)

CMMFControllerImplementationInformation * NewLC ( const CImplementationInformation & aImplInfo ) [static]

Constructs a new controller implementation information object.

Note: The new object will be on the cleanup stack.

Since
7.0s

Parameters

const CImplementationInformation & aImplInfo The ECOM implementation information

PlayFormats()

IMPORT_C const RMMFFormatImplInfoArray & PlayFormats ( ) const

Returns the array of play formats supported by this controller.

Since
7.0s

ProcessTaggedDataL(const TDesC8 &, const TDesC8 &)

void ProcessTaggedDataL ( const TDesC8 & aTag,
const TDesC8 & aData
) [protected]

Parameters

const TDesC8 & aTag
const TDesC8 & aData

RecordFormats()

IMPORT_C const RMMFFormatImplInfoArray & RecordFormats ( ) const

Returns the array of record formats supported by this controller.

Since
7.0s

SetHeapSizeL(const TDesC8 &)

void SetHeapSizeL ( const TDesC8 & aData ) [protected]

Parses aData to get the size of the stack the controller requires.

Parameters

const TDesC8 & aData

SetNetworkCapabilityL(const TDesC8 &)

void SetNetworkCapabilityL ( const TDesC8 & aNetworkCapable ) [protected]

Sets the Network capability found in opaque data

Sets the Network capability found in opaque data

Parameters

const TDesC8 & aNetworkCapable Declares the incapability to support uri if matches to 'yes'. If this is the case, iIsNetworkCtrl is set to EFalse

SetPlayFormatCollectionUidL(const TDesC8 &)

void SetPlayFormatCollectionUidL ( const TDesC8 & aData ) [protected]

Parses aData to get the collection UID of the play formats supported by this controller.

Parameters

const TDesC8 & aData

SetRecordFormatCollectionUidL(const TDesC8 &)

void SetRecordFormatCollectionUidL ( const TDesC8 & aData ) [protected]

Parses aData to get the collection UID of the record formats supported by this controller.

Parameters

const TDesC8 & aData

SetStackSizeL(const TDesC8 &)

void SetStackSizeL ( const TDesC8 & aData ) [protected]

Parses aData to get the size of the stack the controller requires.

Parameters

const TDesC8 & aData

SetUriPriority(TInt)

IMPORT_C void SetUriPriority ( TInt aUriPriority )

Sets the uri priority of this controller

Sets the uri priority of this controller

Parameters

TInt aUriPriority The Uri priority to be assigned.

SetUriSchemeL(const TDesC8 &)

void SetUriSchemeL ( const TDesC8 & aUriScheme ) [protected]

Sets the Uri Scheme found in opaque data

Sets the Uri Scheme found in opaque data

Parameters

const TDesC8 & aUriScheme Gives the uri scheme supported by the controller

StackSize()

IMPORT_C TUint StackSize ( ) const

Returns the stack space required by this controller.

SupportedUriSchemes()

IMPORT_C const CDesC8Array & SupportedUriSchemes ( ) const

Returns the uri schemes of this plugin.

Returns the uri schemes of this plugin.

SupportsNetworkCapability()

IMPORT_C TBool SupportsNetworkCapability ( ) const

Tests whether the controller plugin supports url

Tests whether the controller plugin supports url

SupportsSecureDRMProcessMode()

IMPORT_C TBool SupportsSecureDRMProcessMode ( ) const

Check whether the controller plugin supports secure DRM process mode

Check whether the controller plugin supports secure DRM process mode

SupportsUriScheme(const TDesC8 &)

IMPORT_C TBool SupportsUriScheme ( const TDesC8 & aUriScheme ) const

Tests whether the plugin supports aUriScheme.

Tests whether the plugin supports aUriScheme.

Parameters

const TDesC8 & aUriScheme The required Uri Scheme.

UriPriority()

IMPORT_C TInt UriPriority ( ) const

Retrieves the uri priority of this controller. Higher priority implies greater number. ie UriPriority() returning 3 has higher prioirty than UriPriority() returning 1.

Retrieves the uri priority of this controller

Member Data Documentation

TUint iHeapSpaceRequired

TUint iHeapSpaceRequired [private]

The heap space required by this controller

TBool iIsNetworkCtrl

TBool iIsNetworkCtrl [private]

The uri support provided by this controller

TUid iPlayFormatCollectionUid

TUid iPlayFormatCollectionUid [private]

The interface uid of the resource file definitions of the play formats supported directly by this controller.

RMMFFormatImplInfoArray iPlayFormats

RMMFFormatImplInfoArray iPlayFormats [private]

The play formats supported by this controller.

TUid iRecordFormatCollectionUid

TUid iRecordFormatCollectionUid [private]

The interface uid of the resource file definitions of the record formats supported directly by this controller.

RMMFFormatImplInfoArray iRecordFormats

RMMFFormatImplInfoArray iRecordFormats [private]

The record formats supported by this controller.

TUint iStackSize

TUint iStackSize [private]

The stack space required by this controller

TBool iSupportsSecureDRMProcessMode

TBool iSupportsSecureDRMProcessMode [private]

Secure DRM process model supported by this controller

TInt iUriPriority

TInt iUriPriority [private]

The uri priority acquired by this controller

CDesC8Array * iUriSchemes

CDesC8Array * iUriSchemes [private]

The Uri scheme supported by this plugin