Eskin file format and error codes - accident12123/eversion GitHub Wiki

The eskin file format is fairly simple xml. We recommend encoding your xml files for utf-8 although it is not required. All of our eskin files are saved as utf-8.

The basic format:

`

`

As you can see it is divided into block and subdata. In some cases a block may be a collection of other blocks. A segment is a good example of this. What the block does depends on the type of block you add. Eversion processes the data 1 block at a time in order that it appears in the file.

Filenames

All eskin files will have name.eskin as their filenames. When using filenames in your skin, you leave off the .eskin.

Includes

It doesn't make sence to us to keep adding the same options over and over for your skin. Even the infowall when you break it down is a dozen different screens, but only 3 different layouts and in most screens part of it is always the same.

<include>eskinfilename</include> <shared>eskinfilename</shared>

As you can see, there are 2 types of includes. For processing speed reasons with flashlite, they are different block types.

  • include: Includes a file from your eskin folder
  • shared: Includes a file from the shared eskin folder

When eversion loads your skin, it may load includes out of order for speed. However when a user is inside their jukebox it will process in order.

Nested Includes

Eversion supported nesting include files. Meaning you can include a file that includes a file. There is limited support when processing to detect that your in an endless loop. Eversion will appear crashed if this situation happens to the user.

When included files have existing blocks, the data becomes merged together. The include will not overwrite data but missing data will be added. An example where you might want this to happen is remote control buttons. You can use a generic include for some buttons before or after adding specific overrides for a particular eskin file. (changing red to a new action but keeping the global user buttons with the shared included for example.)

The Shared Eskin

The shared eskin folder is a special folder with code and artwork you can rely on always being there.

The shared eskin includes:

  • tv station logos
  • movie studio logos
  • stars for ratings
  • common eskin code

This can help making a new skin easier and faster. You can just use the readily available to include basics of a skin until your ready to replace them with your own.

Core Eversion needs will automatically be added to your eskin if you skip them. For example, we cannot display an error message without the basic popup. This is to make sure the end user has a uniform experience, even when your skin is in early alpha stages or when a user tries to modify your code and we cannot display a message to them because they broke the xml file.

The remote control

You have a wide variety of remote control ability within your eskin. To make sure the skin functions, we may force certain buttons or features if you forget to add them. We understand that you may have certain screens where you don't want buttons to be repressed while in them. A menu is a good example of this, after you go into the menu the menu button shouldn't work.

Most cases of remote needs are found in the shared folder. Remember users are going to expect certain buttons available for a uniform experience. Also keep in mind that not all remotes have the same buttons so plan your special buttons out accordingly.

Certain buttons might be forced on us from the hardware device. We also treat our same experience between hardware so some buttons we may steal for this need. At this time only the eject button to exit falls into this situation.

XML Special Characters

When working with XML files, make sure you keep in mind special characters that will cause error messages.

XML Reserved Characters and their replacement:

  • & replace with &
  • < replace with <
  • replace with >

  • " replace with " (doesn't always cause an error)
  • ' replace with ' (doesn't always cause an error)

Example:

Original: Peter & Paul

In XML: <sample>Peter &amp; Paul</sample>

XML Error Codes

Flashlite is extremely limited on errorcodes and where the error happened. For troubleshooting, we commonly open the eskin file into a browser to see where it's broken. We've also found out if your getting an error code that doesn't make sence, it may be the format of your xml file, try reencoding it to utf-8. Also keep in mind the special characters above.

Flashlite XML Errors codes:

  • 0 file not found
  • -2 A CDATA section was not properly terminated.
  • -3 The XML declaration was not properly terminated.
  • -4 The DOCTYPE declaration was not properly terminated.
  • -5 A comment was not properly terminated.
  • -6 An XML element was malformed.
  • -7 Out of memory.
  • -8 An attribute value was not properly terminated.
  • -9 A start-tag was not matched with an end-tag.
  • -10 An end-tag was encountered without a matching start-tag.
⚠️ **GitHub.com Fallback** ⚠️