Skin Format Specification
Introduction
If you're familiar with creating UI for Palm OS applications, designing
an AeroPlayer skin is easy. We're working on a skin compiler, but in the
meantime, here are the specifications for an AeroPlayer skin resource file.
We suggest generating the resources using pilrc,
and creating the databases with par, but you can use whichever
Palm OS resource tools you prefer.
If you've read this entire document, and you're having trouble creating
skins (or if you think you've found mistakes, etc.) please send an email
to skins@AerodromeSoftware.com, and we'll try to help.
Also, please try the new AeroPlayer SkinMaker,
a free, on-line tool to compile your images into a skin.
If you've created skins that you'd like to share, please let us know,
and we'll feature them here, along with links to you if you like.
Skin Overview
Skins are Palm OS resource databases, and the resources they contain define
the graphics and placement information for all of the AeroPlayer skin elements.
Skins must include a few required resources, and there are also many optional
resources that a skin may include.
String Resources:
- tSTR 1000: identifies the resource as a skin, and must exist
as "skn1"
- tSTR 1001: the skin definition, which defines the attributes
for all skin elements present
- tSTR 1002: defines the skin's name, as shown in the skin selection
dialog
- tSTR 1003: defines the skin's author's name, as shown in the
skin selection dialog
- tSTR 1004: [optional] can be used to provide additional information
in the skin selection dialog, such as a web site or email address
The Skin Definiton String
The skin definiton string is the heart of the skin definition, as it defines
the placement of every skin element. Virtually every element in the definiton
is optional, although some are certainly important. (You could create
a skin with no play button, for example, but that probably wouldn't be a
good idea.)
The skin definition may contain these elements:
- BGa=x,y
Specifies a background graphic for inclusion in the skin. If
you use the BGa tag, you must include a bitmap family (Tbmp) #1000,
which will be drawn at (x,y)
- BGb - BGe
Specify up to four additional background graphics, with the same syntax
as BGa, above. BGb-e correspond to resources 1042-1045, respectively.
- POS=x,y
Specifies the location of the position slider. If you use the POS tag,
you must include a bitmap family #1001 (the background graphic for the
slider) and a bitmap family #1002 (the slider thumb). The dimensions
of the slider are taken from the dimensions of the background graphic,
and if the slider is taller than it is wide, it's used as a vertical
slider.
- VOL=x,y
Specifies the location of the volume slider. See the documentation for
POS for details on using sliders. Add bitmaps #1003 and 1004 for the
background and thumb.
- BAL=x,y
Specifies the location of the balance slider. See the documentation
for POS for details on using sliders. Add bitmaps #1046 and 1047 for
the background and thumb. Please don't use the balance control unless
absolutely necessary. It's a useless waste of screen real estate in
most cases, and we've included it for completeness only.
- DISP=x,y,width,height, textRGB, backRGB, fontID, fontTrans, fontUndouble
Specifies the characteristics of the track display window.
- x, y, width height: specifies the display's rectangle
- textRGB: specifies the red, green, and blue color value
for the display's text color, e.g. 255,255,255 for white.
- backRGB: specifies the red, green, and blue color values
for the display's background text color, e.g. 0,0,0 for black
- fontID: specifies the Palm OS font ID to be used when drawing
the text window
- fontTrans: set to 1 to draw the text with a transparent
background color, otherwise set to 0. Use 1 if you want the background
of the display window to be visible behind the text.
- fontUndouble: set to 1 to draw a single-density font without
pixel-doubling it, otherwise set to 0
- COUNTER=x,y, (textRGB, backRGB, fontID)
Specifies the position and font information for the position counter.
NOTE: You may include optional bitmaps for each of the counter
digits, in which case the font information is not required in the COUNTER
tag.
- TOTAL=x,y
Specifies the position and font information for the total playlist counter.
- LIST=x,y,width,lines, (textRGB), (backRGB), (seltextRGB), (sebacktRGB),
fontID, fontTrans, fontUndouble
Specifies the position and format of the playlist display.
- lines: specifies the list height in lines (not pixels)
- (textRGB), (backRGB): set the RGB values for the playlist
text and text background color
- (seltextRGB), (selbackRGB): set the RGB values for the
playlist selection text and text background color
- fontID: specify the Palm OS font ID to use in the playlist.
The pixel height of the playlist is the product the font's height
and the number of lines in the list.
- PLAY=x,y
Specifies the coordinates of the Play button. If you use the PLAY tag,
include bitmap families #1005 and #1006 for the button's off and on
states, respectively.
- STOP=x,y
Specifies the coordinates of the Stop button. If you use the STOP tag,
include bitmap families #1007 and #1008 for the button's off and on
states, respectively.
- PAUSE=x,y
Specifies the coordinates of the Pause button. If you use the PAUSE
tag, include bitmap families #1009 and #1010 for the button's off and
on states, respectively.
- PREV=x,y
Specifies the coordinates of the Previous Track button. If you use the
PREV tag, include bitmap families #1011 and #1012 for the button's off
and on states, respectively.
- NEXT=x,y
Specifies the coordinates of the Next button. If you use the NEXT tag,
include bitmap families #1013 and #1014 for the button's off and on
states, respectively.
- MODE=x,y
Specifies the position of the playlist mode button, which cycles through
the available playlist modes. Include bitmap families #1015 (off) and
#1016 (on).
- SHUF=x,y
Specifies the position of the Shuffle button. Include bitmap families
#1017 (off) and #1018 (on).
- RPT=x,y
Specifies the position of the Repeat button. Include bitmap families
#1032 (off) and #1033 (on).
- PLS=x,y
Specifies the position of the Playlist button. Include bitmap families
#1040 (off) and #1041 (on).
- MENU=x,y,width,height
Specifies the "hot spot" rectangle that opens the menu.
- UP=x,y, pagesize
Specifies the position of the Scroll Up button. Include bitmap families
#1036 (off) and #1037 (on). specifies the number of lines
to scroll with each tap.
- DN=x,y, pagesize
Specifies the position of the Scroll Down button. Include bitmap families
#1038 (off) and #1039 (on). specifies the number of lines
to scroll with each tap.
- LSBAR=x,y
Specifies the position of the List Scrollbar. Include bitmap families
#1034 (background) and #1035 (thumb). If this slider (or any other)
is taller than it is wide, it will be a vertical slider.
- STAT=x,y
Specifies the position of the Status Indicator. Include bitmap families
#1048 (play), 1049 (stop), and 1050 (pause).
- BR=x,y,width,height, textRGB, backRGB, fontID, fontTrans, fontNativeBlit
Specifies the position and attributes of the Bitrate Indicator.
- BIT=bitdepth
Specifies the screen bit depth for this skin. Typical values are 8 or
16. Default, if not specified, is 8.
For reference, here is the skin definition that's used in the default AeroPlayer
skin in B4:
POS=40,27
DISP = 0,13,160,12, 0,0,0, 255,255,255, 1,0,0
PLAY = 0, 45
STOP = 30, 45
PAUSE = 60, 45
COUNTER=5,28, 0,0,0 255,255,255 7
TOTAL=120,149
VOL = 95,47
LIST = 1,68,158,7, 0,0,0, 255,255,255, 255,255,255, 0,0,0 0,0,0
MODE = 0, 150
SHUF = 35, 150
BGa=0,0
MENU=0,0,80,12
Additional Optional Resources:
- PALT 1000: alternate palette
If this resource is present, AeroPlayer will use a custom palette for
the skin. If not present, AeroPlayer uses the default system palette.
When including a custom palette, you should leave the system colors
the same so things like menus continue to look as expected.
- NFNT 1000: user font 1
If this font resource is included, it will be installed as font 128,
and will be available for use in the playlist, counter, etc.
- NFNT 1001: user font 2
If this font resource is included, it will be installed as font 129,
and will be available for use in the playlist, counter, etc.
|