Using the features Tool

A feature manager database (DB) is a master record of all features in a specific platform. It includes information on the feature names, the feature UID values and the default ranges that describe attributes for a block of features.

The features tool takes a feature manager database (xml file) as input. It generates either a header file, feature choices IBY file, a features.dat file or a combination of these based on the command line options and feature entries in the xml file.

To determine the status of a feature during runtime, specify the feature UID referred to in the header file to the feature manager API. At runtime the Enhanced Feature Manager (EFM) server looks in a feature-set data file, to determine the feature flags defined in the specific platform. The feature-set dat file is used to determine the features specific to a device.

Header file

The header file contains feature UIDs. An example of a header file, featureUIDs.h generated from a feature manager database is given below:

Example header file

// publicfeatureUID.h
    
    /**
    @IM_type
    @Status
    */
    namespace NSdkFeatures {
    // default present
    /**
    Feature = Bluetooth,  status = "Supported" this feature should go to SDK
    */
    const TUid KBluetooth = {0x10279808};

    /**
    Feature = FAX,  status = "Supported" this feature should go to SDK
    */
    const TUid KFax = {0x10279806};


    // default not present
    /**
    Feature = KeypadNoSlider,  status = "Supported" this feature should go to SDK
    */
    const TUid KKeypadNoSlider = {0x102835B1};

}

Feature choices IBY file

The feature choices IBY file is used to create different ROM images. An example of an IBY file generated from a feature manager database is given below:

Example IBY file

An example of an IBY file:

#ifndef __FEATURE_IBY__
#define __FEATURE_IBY__


#ifdef SYMBIAN_INCLUDE_BLUETOOTH
/**
Feature = Bluetooth,  status = "Supported" this feature should go to SDK
*/
FEATURE Bluetooth SF 0x00000001 UD 0x00000000
#else
EXCLUDE_FEATURE Bluetooth SF 0x00000001 UD 0x00000000
#endif

#ifdef SYMBIAN_EXCLUDE_FAX
EXCLUDE_FEATURE Fax SF 0x00000001 UD 0x00000000
#else
/**
Feature = FAX,  status = "Supported" this feature should go to SDK
*/
FEATURE Fax SF 0x00000001 UD 0x00000000
#endif

#ifdef SYMBIAN_EXCLUDE_KEYPADNOSLIDER
EXCLUDE_FEATURE KeypadNoSlider SF 0x00000001 UD 0x00000001
#else
/**
Feature = KeypadNoSlider,  status = "Supported" this feature should go to SDK
*/
FEATURE KeypadNoSlider SF 0x00000001 UD 0x00000001
#endif


#endif //__FEATURE_IBY__

Feature set data file

The features.dat file, a binary file, is used as a default configuration file by the emulator. It provides information such as whether a feature is included or excluded. It is placed in the following directory:

?:\private\10205054\...

Notes

  • The features tool requires at least one feature manager database as input.

  • If the feature manager database does not include an ibyname attribute or the headerfile name attribute, the corresponding IBY and header file will not be generated.

  • The feature entry in the feature manager database should be unique. Also, the feature UID should be unique.

See also

Symbian OS Library >> Symbian OS build guide >> Build Tools Reference >> Features command syntax

Feature Database Manager DTD