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.

7.0s

Inherits from

Public Member Functions
~CMMFControllerImplementationInformation()
voidGetPlayFormatsL()
voidGetRecordFormatsL()
IMPORT_C TUintHeapSpaceRequired()
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 voidSetUriPriority(TInt)
IMPORT_C TUintStackSize()
IMPORT_C const CDesC8Array &SupportedUriSchemes()
IMPORT_C TBoolSupportsNetworkCapability()
IMPORT_C TBoolSupportsSecureDRMProcessMode()
IMPORT_C TBoolSupportsUriScheme(const TDesC8 &)
IMPORT_C TIntUriPriority()
Protected Member Functions
CMMFControllerImplementationInformation()
voidAddFormatsSwallowCorruptL(RImplInfoPtrArray &, RMMFFormatImplInfoArray &)
voidConstructL(const CImplementationInformation &)
voidGetFormatsL(TUid, TUid, RMMFFormatImplInfoArray &)
voidProcessTaggedDataL(const TDesC8 &, const TDesC8 &)
voidSetHeapSizeL(const TDesC8 &)
voidSetNetworkCapabilityL(const TDesC8 &)
voidSetPlayFormatCollectionUidL(const TDesC8 &)
voidSetRecordFormatCollectionUidL(const TDesC8 &)
voidSetStackSizeL(const TDesC8 &)
voidSetUriSchemeL(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 &)

voidAddFormatsSwallowCorruptL(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.

7.0s

Parameters

RImplInfoPtrArray & aEcomArraySee above.
RMMFFormatImplInfoArray & aFormatArraySee above.

ConstructL(const CImplementationInformation &)

voidConstructL(const CImplementationInformation &aImplInfo)[protected]

2nd phase constructor.

Parameters

const CImplementationInformation & aImplInfo

GetFormatsL(TUid, TUid, RMMFFormatImplInfoArray &)

voidGetFormatsL(TUidaFormatCollectionUid,
TUidaFormatPluginCollectionUid,
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.

7.0s

Parameters

TUid aFormatCollectionUidSee above.
TUid aFormatPluginCollectionUidSee above.
RMMFFormatImplInfoArray & aFormatArraySee above.

GetPlayFormatsL()

voidGetPlayFormatsL()

Queries the ECom registry for the play formats supported.

GetRecordFormatsL()

voidGetRecordFormatsL()

Queries the ECom registry for the record formats supported.

HeapSpaceRequired()

IMPORT_C TUintHeapSpaceRequired()const

Returns the heap space required by this controller.

The heap space required.

7.0s

NewL(const CImplementationInformation &)

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

Constructs a new controller implementation information object.

The new object created.

7.0s

Parameters

const CImplementationInformation & aImplInfoThe ECOM implementation information.

NewL(TUid)

IMPORT_C CMMFControllerImplementationInformation *NewL(TUidaUid)[static]

Constructs a new controller implementation information object.

The new object created.

7.0s

Parameters

TUid aUidThe 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.

The new object created.

7.0s

Parameters

const CImplementationInformation & aImplInfoThe ECOM implementation information

PlayFormats()

IMPORT_C const RMMFFormatImplInfoArray &PlayFormats()const

Returns the array of play formats supported by this controller.

The play formats supported.

7.0s

ProcessTaggedDataL(const TDesC8 &, const TDesC8 &)

voidProcessTaggedDataL(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.

The record formats supported.

7.0s

SetHeapSizeL(const TDesC8 &)

voidSetHeapSizeL(const TDesC8 &aData)[protected]

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

Parameters

const TDesC8 & aData

SetNetworkCapabilityL(const TDesC8 &)

voidSetNetworkCapabilityL(const TDesC8 &aNetworkCapable)[protected]

Sets the Network capability found in opaque data

Parameters

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

SetPlayFormatCollectionUidL(const TDesC8 &)

voidSetPlayFormatCollectionUidL(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 &)

voidSetRecordFormatCollectionUidL(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 &)

voidSetStackSizeL(const TDesC8 &aData)[protected]

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

Parameters

const TDesC8 & aData

SetUriPriority(TInt)

IMPORT_C voidSetUriPriority(TIntaUriPriority)

Sets the uri priority of this controller

Parameters

TInt aUriPriorityThe Uri priority to be assigned.

SetUriSchemeL(const TDesC8 &)

voidSetUriSchemeL(const TDesC8 &aUriScheme)[protected]

Sets the Uri Scheme found in opaque data

Parameters

const TDesC8 & aUriSchemeGives the uri scheme supported by the controller

StackSize()

IMPORT_C TUintStackSize()const

Returns the stack space required by this controller.

The stack space required.

SupportedUriSchemes()

IMPORT_C const CDesC8Array &SupportedUriSchemes()const

Returns the uri schemes of this plugin.

The array of uri schemes.

SupportsNetworkCapability()

IMPORT_C TBoolSupportsNetworkCapability()const

Tests whether the controller plugin supports url

A boolean indicating if the plugin supports url. ETrue for uri supporting controller, EFalse if not.

SupportsSecureDRMProcessMode()

IMPORT_C TBoolSupportsSecureDRMProcessMode()const

Check whether the controller plugin supports secure DRM process mode

A boolean indicating if the plugin supports secure DRM process mode. ETrue for secure DRM process mode supporting controller, EFalse if not.

SupportsUriScheme(const TDesC8 &)

IMPORT_C TBoolSupportsUriScheme(const TDesC8 &aUriScheme)const

Tests whether the plugin supports aUriScheme.

A boolean indicating if the plugin supports aUriScheme. ETrue if this plugin supports aUriScheme, EFalse if not.

Parameters

const TDesC8 & aUriSchemeThe required Uri Scheme.

UriPriority()

IMPORT_C TIntUriPriority()const

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

The assigned Uri priority.

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