Sunday, September 26, 2004

Finally for first app running on Symbian OS

Thanks to all fellows at the forum.nokia.com who have helped me a lot with all their answers specially sopta007 and symbianyucca.

I learnt some new things in all this exercise.
0) You need to change the target build through Project->Options, incase you want to make a deployable file for the hardware use the option armib release. For emulator Winsb options are used. You now need to make, it will do the processing then, like creating various intermediate and target files.
1) Basically a .aif file is needed by a application to show up on the main application menu in Symbian OS.
2) Since the software aif builder failed in creating all of the components( with the wierd error mesg "cpp.exe has terminated with error code 2" ), I manually created the AIF file for my project by copying format from an example.
3) Anyway the tool was good help for creating the .rss file in the directory which I set as output for the aif generation.
4) Some data that need to be given in AIF builder is the application UID which is the uid that tool provides in the .mmp file in the line.
UID 0x100039CE 0x101F5462
Now on I will use Red to mean something that is changed/need to be changed by me/programmer.
5) I have created a AIFdirectory in same level as Group, in this directory basically I copied the RSS file available in another application, it looked like this on after making the changes I named it CamTimerAIF.rss (used later).


#include

RESOURCE AIF_DATA
{
app_uid = 0x101F5462;
caption_list=
{
CAPTION
{
code = ELangEnglish;
caption = "CamTimer";
}
};
num_icons = 1;
embeddability=KAppNotEmbeddable;
newfile=KAppDoesNotSupportNewFile;
}

// End of File


Most probably the colored things are the one that you might need to change based on you application.
6) Note that the MMP file contains some information like

// Creates Mbm file.
START BITMAP CamTimer.mbm
HEADER
TARGETPATH \system\apps\CamTimer
SOURCEPATH ..\aif
SOURCE C12 CamTimer.bmp
END

AIF CamTimer.aif ..\aif CamTimerAif.rss c12 camTimer.bmp camTimer_mask.bmp


I have mostly modified data from an example to my needs, will diagonse more later on what things might mean here.
7) For this AIF directory had the fiels camtimer.bmp and camtimer_mask.bmp copied from the directory which contained the output of the NOKIA SDK tool used for creating image.
8) The PKG file looked like this at the end of the exercise.

; targetapp (CamTimer)
; target directory \Symbian\Series60_1_2_B\epoc32\release\armi\urel; Header
#{"CamTimer"},(0x101F5462),1,0,0,TYPE=SISAPP

;Supports Series 60 v 0.9
;This line indicates that this installation is for the Series 60 platform v0.9
;This line must appear _exactly_ as shown below in the sis file
;If this line is missing or incorrect, the sis file will not be able
;to be installed on Series 60 v0.9 platforms
(0x101F6F87), 0, 0, 0, {"Series60ProductID"}

; mmpfile: camtimer.mmp
; targets
; target: CamTimer.app
"\Symbian\Series60_1_2_B\epoc32\release\armi\urel\CamTimer.app"-"!:\system\apps\CamTimer\CamTimer.app"
; resources
; resource: ..\src\camtimer.rss
"\Symbian\Series60_1_2_B\epoc32\release\armi\urel\camtimer.rsc"-"!:\system\apps\CamTimer\camtimer.rsc"
; bitmaps
; bitmaps: CamTimer.mbm
"\Symbian\Series60_1_2_B\epoc32\release\armi\urel\CamTimer.mbm"-"!:\system\apps\CamTimer\CamTimer.mbm"
; languages
; aif files
"\Symbian\Series60_1_2_B\epoc32\release\armi\urel\CamTimer.aif"-"!:\system\apps\CamTimer\CamTimer.aif"

; end of pkg file


the tool Borland C++ Builder 6, with mobile produced automatically.

Finally you use the option Project->Make a Symbian Installation System. to get the sis made. In case the tool ask you to overwrite the pkg file in most cases you can allow it to do it, I make the pkg file with the information provided in the mmp files. In my case the final pkg generated by the tool contained information about the mmp file and aif file automatically, that is quite good I will say.

1 comment:

  1. Please note that the procedure is for C++ Builder Version 6, the GUI options might be different in your particular tool.

    ReplyDelete