Aerodrome Software


AeroPlayer

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.

 

 

Buy AeroPlayer now!
 
Home | AeroPlayer | AeroTab | AeroTuner