# Examples - `aiftool`

## Contents

- Overview
- Example resource file for a non embeddable application
- Creating an icon file
- Invoking aiftool
- Delivering an `.aif` file

## Overview

The directory `\epoc32ex\adk\` contains all the files needed to make an application information file for the Boss Puzzle application. The Boss Puzzle game is the example application developed in the EPOC Tutorial.

The files include the resource file, `Bossno.rss`, eight bitmaps: `boss16i.bmp`, `boss16m.bmp`, `boss24i.bmp`, `boss24i.bmp`,`boss32i.bmp`, `boss32m.bmp`, `boss48i.bmp` and `boss48m.bmp`, and a bitmap conversion control file, `bossmbm.lst`.

The following examples demonstrate the process of creating an application information file.

## Example resource file for a non embeddable application

Prior to generating an `aif` file, a resource file must be specified to define the application properties. The file specifies an application with the caption `Boss Puzzle` in English, French, German, Italian and Turkish. It is not embeddable and has 4 different sized icons. The `app_uid` matches the one given in the `BossPuzzle.mmp` project specification.

        // BOSSNO.RSS
        //
        // Copyright (c) 1998 Symbian Ltd.  All rights reserved.
        //
        #include <aiftool.rh>

        RESOURCE AIF_DATA
        {
        app_uid=0x01000253;
        //
        caption_list=
              {
              CAPTION { code=ELangEnglish; caption="Boss Puzzle"; },
              CAPTION { code=ELangFrench; caption="Jeu de Taquin"; },
              CAPTION { code=ELangGerman; caption="Boss Spiel"; },
              CAPTION { code=ELangItalian; caption="Gioco di Boss"; },
              CAPTION { code=ELangTurkish; caption="Boss soyusu"; }
              };
        //
        num_icons=8;
        //
        embeddability=KAppNotEmbeddable;
        }

##### Notes

- The Hidden capability is not specified. Hence, by default, the application is not Hidden.
- The New File capability is not specified, Hence, by default, the application does not support new file creation from the system shell.
- There are 8 bitmaps but only 4 icon sizes — since each icon is created from an image and a mask bitmap pair.
- The Boss Puzzle does not have a Unicode variant, and hence does not use the _UNICODE flag to define the app_uid.
- The Boss Puzzle doesn’t support any MIME types.

## Creating an icon file

An icon file contains different size bitmaps, which can be used to display the icon under different levels of zoom. For the Boss Puzzle example, eight bitmaps have been created: `boss16i.bmp`, `boss16m.bmp`, `boss24i.bmp`, `boss24i.bmp`,`boss32i.bmp`, `boss32m.bmp`, `boss48i.bmp` and `boss48m.bmp`. The i files contain the icon images, and the m files contain mask bitmaps. The mask bitmpas define what areas of the background show through the icon bitmap. These are all converted into an EPOC multi-bitmap file using the bitmap converter `bmconv`, see Bitmap manipulation tools:

        bmconv bossmbm.lst

The control file, `bossmbm.lst`, specifies the multi-bitmap file to be created, and the windows bitmaps to be included:

        boss.mbm
        boss16i.bmp
        boss16m.bmp
        boss24i.bmp
        boss24m.bmp
        boss32i.bmp
        boss32m.bmp
        boss48i.bmp
        boss48m.bmp

The resulting multi-bitmap file, `boss.mbm`, can be imported into the Boss Puzzle .`aif` file to provide the icon information.

## Invoking aiftool

Use `aiftool` to compile the resource file `bossno.rss`, together with the multi-bitmap file `boss.mbm`, into an `.aif` file:

        aiftool bossno boss.mbm

This takes the `bossno.rss` and `boss.mbm` files as input, and produces an application information file `bossno.aif` as output. The command runs under the EPOC Emulator, and progress messages can be viewed on the emulator.

## Delivering an `.aif` file

Application information files are delivered, with their associated application, bundled in an EPOC installation file, see Makesis Guide. The installation file should be configured so that the `aif` file is copied to the same directory as its associated application file. If the application is to appear on the extras bar, this should be a sub-directory of the `\system\apps\` folder.

It is also important to note that unless the icon is to change for different locales, a project will only need one `aif` file.