Eskin remote control - accident12123/eversion GitHub Wiki

Customizing the remote control will help you achieve new things or focus eversion on what is available to the user in a variety of different ways..

Understanding how the remote works in Eversion

Before you dive into adding remote buttons into your skin, let's take a moment to understand how the remote works and where you may want to change buttons and why some buttons aren't available to you..

The remote control flow:

  • Native hardware player steals some keys for it's own usage.
  • Eversion steals a couple buttons to mimic hardware buttons between different player models
  • The active segment gets the remote control and Eversion handles the basic nav for speed reasons (arrows, select).
  • The active screen gets the buttons not used.
    • basic navigation (back button) is processed by the screen
    • any button not used is available as a works anywhere in your screen buttons.
  • eversion processes the user buttons, etc if any still make it to us.

You can intercept buttons in different spots allowing you to use just about anything..

Design considerations

Speed

If your using include files to add remote buttons to all skin screens or a group of similar screns (like global eskin buttons), put those include files at the very end of your eskin files. The way an eskin is processed, it'll create extra work and minor avoidable slowdowns while processing those files.

THERE ARE 3 DIFFERENT REMOTE CONTROLS WITH DIFFERENT BUTTONS

The PCH, Popbox and Asiabox have 3 completely different remotes with different layouts. See the below list of what buttons are on what remote near the end of this wiki page.

USER Expectations

While we don't limit you, a user does expect certain buttons to do certain things. most of these buttons are more common sense and you probably won't need to use them but keep in mind you might be offering a lot of "why doesn't it work in this eskin" if you start to take things like global user buttons from the user.

Key Presses are not processed in order

While the rest of the skin processes in the order they appear in the eskin file (some exceptions) remote control is way to slow to do this with. The only exception to this is the ALL key, which is always processed after your individual keys at the same level.

What keys are not available?

This list can change at anytime. Just because a key is available today doesn't mean a bug or change in player hardware may not cause it to be unusable in the future.

Hardware and Eversion hardware mimic (1 and 2 in flow list)

We keep running into new issues with different firmwares but this is the general rundown of hardware keys:

  • EJECT

  • SOURCE

  • HOME (sometimes). The popbox, home is not available at all times but the PCH home is available to all users not starting eversion from the YAMJ App. It's safer to say avoid this button.

  • VOLUME UP/DOWN: Some remotes the volume up and down are separate keys. If your trying to use PAGE UP and DOWN, use the page up and down options and we'll handle the mappings

Segment navigation

The arrow keys are always under the control of the segment.

You can override the behavior of page up/down, select, num#, and keypad by adding the keys to your tile.

Screen navigation

The back/return key and home button are processed at this step. While you can steal those buttons in a segment, we suggest you don't. A lot of eversion working correctly is memory management and to a degree they are connected to how back/return is processed.

The remotes and their keys

Available on all:

  • RED
  • GREEN
  • YELLOW
  • BLUE
  • INFO
  • SEARCH
  • PAGEUP
  • PAGEDOWN
  • MUTE
  • HOME
  • SELECT (ok button on some remotes)
  • LEFT
  • RIGHT
  • UP
  • DOWN
  • BACK (return on some remotes)
  • STOP
  • PLAY
  • PAUSE
  • REWIND
  • FASTFORWARD
  • SKIPBACK
  • SKIPFORWARD

Only on the PCH remote:

  • DELETE
  • NUM# (number keys, replace # with the real number: NUM0)
  • FILEMODE
  • MENU
  • TITLE
  • REPEAT
  • SLOW
  • ANGLE
  • SUBTITLE
  • TIMESEEK
  • AUDIO
  • ZOOM
  • TVMODE
  • SETUP
  • SUSPEND
  • CAPS
  • SETUP

SPECIAL EVERSION KEY GROUPINGS:

  • KEYPAD (0-9 keys)
  • ALL (every key not already used does the same action).

Format

<remote> <button></button> <action></action> <file></file> <control></control> <data></data> <condition></condition> </remote>

BUTTON

This is the button to press, see above for list.

ACTION

What to do, see eversion:eskins:ref:actions.

FILE

If the action requires a filename, it goes in here. DATA

Some actions may require additional data, it goes here.

CONDITION (added R0116)

Conditions are used to apply logic to your eskin remote buttons. There are some restrictions and they are:

  • You can have more than 1 remote of the same button in segment and screen level.
  • Work normally in a segment.
  • Work normally in the screen level when a hidden segment is in use (movie details, tv show main data)
  • When used in screen level and a hidden segment is not used, all buttons with condition are skipped and the first without always works.
  • Do not work with groupings (ALL, NUMKEYS, etc).

Don't forget:

If none of the conditions match the button continues normal and something else may use it with unexpected results. You may want to do a no condition with action block or just have your last choice always work to ensure it's working how you want.

See eversion:eskins:block:if for more information on the format for condition.

Where to use the remote options:

  • The entire screen: Add them to your specific eskin file but not inside a segment
  • For a specific segment: Add them to your tile, use BLOCK action if you need to override screen keys for a specific screen.
  • The entire skin: Use an include file and add them to every skin you want it to work for. You should avoid certain actions from menus and popups/errors but you can use them there.

DON'T FORGET!

Remember, there are default actions that will happen if you do not assign a key or block it.

for example, the list of user definable keys will happen at the lowest level meaning after all the places you can have remote control assignments. Also page up/down, select, etc have default actions for most segments. See above how the remote works for more info.

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