CMMFControllerImplementationInformation Class Reference

#include <mmf/common/mmfcontrollerpluginresolver.h>

Link against: mmfcontrollerframework.lib

class CMMFControllerImplementationInformation : public CMMFPluginImplementationInformation, private MTaggedDataParserClient, public CMMFPluginImplementationInformation, private MTaggedDataParserClient
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 &)
virtual voidProcessTaggedDataL(const TDesC8 &, const TDesC8 &)
voidSetHeapSizeL(const TDesC8 &)
voidSetNetworkCapabilityL(const TDesC8 &)
voidSetPlayFormatCollectionUidL(const TDesC8 &)
voidSetRecordFormatCollectionUidL(const TDesC8 &)
voidSetStackSizeL(const TDesC8 &)
voidSetUriSchemeL(const TDesC8 &)
Inherited Attributes
CMMFPluginImplementationInformation::iDisplayName
CMMFPluginImplementationInformation::iMediaIds
CMMFPluginImplementationInformation::iSupplier
CMMFPluginImplementationInformation::iUid
CMMFPluginImplementationInformation::iVersion
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()

Detailed Description

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

Constructor & Destructor Documentation

CMMFControllerImplementationInformation ( )

CMMFControllerImplementationInformation()[protected]

Constructor.

~CMMFControllerImplementationInformation ( )

~CMMFControllerImplementationInformation()

Destructor.

Member Function 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.

Since
7.0s

Parameters
aEcomArraySee above.
aFormatArraySee above.

ConstructL ( const CImplementationInformation & )

voidConstructL(const CImplementationInformation &aImplInfo)[protected]

2nd phase constructor.

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.

Since
7.0s

Parameters
aFormatCollectionUidSee above.
aFormatPluginCollectionUidSee above.
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.

Since
7.0s
Return Value
The heap space required.

NewL ( const CImplementationInformation & )

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

Constructs a new controller implementation information object.

Since
7.0s

Parameters
aImplInfoThe ECOM implementation information.
Return Value
The new object created.

NewL ( TUid )

IMPORT_C CMMFControllerImplementationInformation *NewL(TUidaUid)[static]

Constructs a new controller implementation information object.

Since
7.0s
Parameters
aUidThe Uid of the controller to obtain controller implementation information
Return Value
The new object created.

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
aImplInfoThe ECOM implementation information
Return Value
The new object created.

PlayFormats ( )

IMPORT_C const RMMFFormatImplInfoArray &PlayFormats()const

Returns the array of play formats supported by this controller.

Since
7.0s
Return Value
The play formats supported.

ProcessTaggedDataL ( const TDesC8 &, const TDesC8 & )

voidProcessTaggedDataL(const TDesC8 &aTag,
const TDesC8 &aData
)[protected, virtual]

RecordFormats ( )

IMPORT_C const RMMFFormatImplInfoArray &RecordFormats()const

Returns the array of record formats supported by this controller.

Since
7.0s
Return Value
The record formats supported.

SetHeapSizeL ( const TDesC8 & )

voidSetHeapSizeL(const TDesC8 &aData)[protected]

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

SetNetworkCapabilityL ( const TDesC8 & )

voidSetNetworkCapabilityL(const TDesC8 &aNetworkCapable)[protected]

Sets the Network capability found in opaque data

Sets the Network capability found in opaque data

If this is the case, iIsNetworkCtrl is set to EFalse

Parameters
aNetworkCapableDeclares the incapability to support uri if matches to 'yes'.

SetPlayFormatCollectionUidL ( const TDesC8 & )

voidSetPlayFormatCollectionUidL(const TDesC8 &aData)[protected]

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

SetRecordFormatCollectionUidL ( const TDesC8 & )

voidSetRecordFormatCollectionUidL(const TDesC8 &aData)[protected]

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

SetStackSizeL ( const TDesC8 & )

voidSetStackSizeL(const TDesC8 &aData)[protected]

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

SetUriPriority ( TInt )

IMPORT_C voidSetUriPriority(TIntaUriPriority)

Sets the uri priority of this controller

Sets the uri priority of this controller

Parameters
aUriPriorityThe Uri priority to be assigned.

SetUriSchemeL ( const TDesC8 & )

voidSetUriSchemeL(const TDesC8 &aUriScheme)[protected]

Sets the Uri Scheme found in opaque data

Sets the Uri Scheme found in opaque data

Parameters
aUriSchemeGives the uri scheme supported by the controller

StackSize ( )

IMPORT_C TUintStackSize()const

Returns the stack space required by this controller.

Return Value
The stack space required.

SupportedUriSchemes ( )

IMPORT_C const CDesC8Array &SupportedUriSchemes()const

Returns the uri schemes of this plugin.

Returns the uri schemes of this plugin.

Return Value
The array of uri schemes.The array of uri schemes.

SupportsNetworkCapability ( )

IMPORT_C TBoolSupportsNetworkCapability()const

Tests whether the controller plugin supports url

Tests whether the controller plugin supports url

Return Value
A boolean indicating if the plugin supports url. ETrue for uri supporting controller, EFalse if not.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

Check whether the controller plugin supports secure DRM process mode

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

SupportsUriScheme ( const TDesC8 & )

IMPORT_C TBoolSupportsUriScheme(const TDesC8 &aUriScheme)const

Tests whether the plugin supports aUriScheme.

Tests whether the plugin supports aUriScheme.

Parameters
aUriSchemeThe required Uri Scheme.
Return Value
A boolean indicating if the plugin supports aUriScheme. ETrue if this plugin supports aUriScheme, EFalse if not.A boolean indicating if the plugin supports aUriScheme. ETrue if this plugin supports aUriScheme, EFalse if not.

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.

Retrieves the uri priority of this controller

Return Value
The assigned Uri priority.The assigned Uri priority.