Eskin actions - accident12123/eversion GitHub Wiki

Actions are the commands available to do things inside your Eskin. The action processing is central to Eversion so there are commands that may not make sence or the ability to use in different areas.

Format

<action></action> <data></data> <file></file>

Action is used inside other commands. Many actions require additional information, these will be in data or file tags, unless otherwise specified below.

Quick Examples:

A remote control setting you may have: <remote> <button>NUM0</button> <action>BACK</action> <data>3</data> </remote>

Inside a segment for tv episodes: <remote> <button>PLAY</button> <action>PLAYFROMHERE</action> </remote>

In a control file: ` APPS

<title>Apps</title> ` # Remote Button Behavior

Commands related to changing button behavoir

BLOCK

Block is used to block a remote button from doing anything

PASS (R0155+)

In a segment, you might need to send a button through to the screen for data to make the button work. The best example is if you want to change the behavior of select, page up and page down. These buttons are used in the segment if you do not use them. Adding the button to your segment as PASS will stop the segment from using them. Then you can add the button to your screen to have a different behavior and access to the screen data (details, person bio, etc).

BACK

Returns to a previous screen.

DATA:

  • the # of steps back to take. (2 for example)
  • index to find the last index (just the word index) (R0135+)

HOME##

jump back to the first screen, home if your eskin has a home section

MENU##

opens the users menu choice.

APPS

closes eversion and opens the app market.

SWITCH##

Switches between pages, external urls, apps, everything a user button can do.

Switch uses the user definable button handler allow you to jump around your eskin, exit, switch to other apps and html based interfaces.

data: where to go, variable friendly. Jukebox and eversion internal variables are only available when called from a control file. Setting file variables available at all time.

  • home, the first screen of your eskin.
  • menu: your menu screen, ignored if you do not have one
  • apps: Apps Market/Center if supported by player
  • exit, popboxexit, eject (all exit correctly based on player hardware)
  • start: exits eversion and puts the user in apps on popbox and circle menu on the pch.
  • url starting with phf:// direct link to another flashapp
  • url starting with http:// or file://: html based interface page (not a browser to internet).
  • jukebox index file ending with _1 (Other_All_1, Other_TV Shows_1 for example).
  • eskin://eskinfilename without .eskin at the end. No data is preloaded or transfered, your eskin file must act like a SCREEN type (see below for screen).

INDEX##

Start a index based screen.

Index will start a new screen by preloading a segment named index using the first file in the series. After it detects the type of index, it will use the users settings for index styles to use the correct part of your skin to display. Don't forget to give your segment a name of index so the data can be accessed.

FILE: name of the index file without .xml. Should be the _1 version of the index (Other_All_1). For compatibility, you should also add [:@jukebox:] to the start so it will add in the full path to the jukebox folder.

WARNING CRASH WARNING: this will move into another index, there is a limited amount of memory and eversion pushes it right to the edge.. This is designed for the index->set index flow.. When jumping to other indexes like in a menu, or via a button you should use the SWITCH option listed above. It's very easy to run out of memory.. the first sign of a problem is trouble exiting the app, dramatic slowdowns or unable to play a video.

DETAIL##

Start a detail screen. (extracts the movie/set/tv info from an index and moves it to a new screen)

Detail is used to transfer a movie/title from an index into a details screen. At this time it cannot load a new YAMJ database detail file. to be honest, you'll probably never use this and it's an internal navigation for how an index based segment works but in theory it could work for you :) See the below EXTRA option for how to expand on details.

It autodetects the type of details page needed and loads the users choice of eskin files.

There is no extra data to add to this option at this time.

EXTRA##

Similar to detail

If you need to bring up a new screen with movie data to draw or add to segments, Extra will start a screen and transfer the data into it. Similar to DETAIL except it doesn't extract the data from the index itself. Great for uses like expanded screens, popups for trailers, combine yamj data+other sources. It's designed to be called from a detail page but would work from an index in a similar fashion as blank.

file: name of the eskin file to load with path

There is no autodetection for type type of data. It loads up a new page with the info so if you need different eskin files for tv vs movie, keep that in mind.

ADDED TO R0135: EXTRA works from an index now. Similar to detail except there is no auto-detection for which eskin file to use. Be careful with sets and tv sets, make sure you test your design as they can cause unexpected results. remember you can use condition statements in remote control buttons in case you need to react different.

SCREEN##

Start a screen without autoloading a segment/data.

File should be the name of the eskin file to load with path.

To launch with a control file, start with a screen and setup your segment to use a control file for it's data.

In theory, all data is loaded by a segment. this means you can combine data from many locations or even from non-yamj data sources into 1 screen. Using this option+segments for data can offer some interesting alternative screens especially if one of the preload options isn't required.

I am extremely interested in working with anyone that wants to add in something very new to eversion. Maybe an interface to other data, internet, streaming trailer lookup, weather, etc etc.. if you want to skin such and interface, I would like to expand the eskins so you can pull this data in a way you can use it..

PRELOAD

similar to index but preloads data and then picks the eskin (if you run into a situation like this let us now because it's specific to some internal needs).

Playback

  • PLAYSINGLE: Play the video highlighted
  • PLAYALL: Play all the videos in a playlist
  • PLAYRANDOM: Play a random video in the segment
  • PLAYFROMHERE: Play a list of a videos starting at the highlighted one
  • PLAYLAST: Play the last video in a list
  • PLAYWATCHED: Play only the videos marked as watched (*) not added acts like playall
  • PLAYNEW: Play only the videos marked as unwatched (*) not added acts like playall
  • PLAYPART: Use with NUMKEY so user can pick 1-0 for matching video part.
  • PLAYALLMULTI: playall but bypasses the multipart popup check.
  • PLAYDISC/PLAYROM: plays an optical disc in a rom drive.
  • PLAYFILE: plays a single file using the url in url. (extras, etc use this)

All play commands currently only support playing video from within a YAMJ xml file. We'll be working on expanding these for other data sources or direct linked files.

For tv and movies, you can use the playall, playrandom, playlast, playwatched, playnew and playnum commands in a screen remote key (detail style screen). If you have segments with more specific play commands, don't forget to block the keys or use the ALL block in your other segments.

The list commands are for use in segments, like an episode list or list of movieparts. Keep in mind you can load multiparts, trailers, extras, and episodes into a segment for more specific play control by the user.

Because of the way YAMJ is storing files to play in sets, we only recommend the playall command on indexes. We cannot determine exactly what a user might be trying to play or even randomly/last video pull out a specific video reliably. You will get other vidoes mixed in and multipart movies you'll only get 1 part to play.

If you use any PLAY method which is cannot function as the button is defined in the area you use it, it will act like PLAYALL. Ex: PLAYFROMHERE in a screen remote key, we don't know where HERE is so we play everything. Segment it would act as normal, assuming the segment has files to play.

⚠️ **GitHub.com Fallback** ⚠️