Allow %?Sp<...> to be used as a conditional
commit9897abf358b5eafc5c31437c744e897274f5fb03
authorgevaerts <gevaerts@a1c6a512-1295-4272-9138-f99709370657>
Mon, 9 Nov 2009 17:43:46 +0000 (9 17:43 +0000)
committergevaerts <gevaerts@a1c6a512-1295-4272-9138-f99709370657>
Mon, 9 Nov 2009 17:43:46 +0000 (9 17:43 +0000)
tree43717d959a6b8feb3d02a111bd8f55cad2265a31
parent4f861cd6f25074c13546460c1b407223f3347516
Allow %?Sp<...> to be used as a conditional

When there are two choices (i.e. boolean), choose the first one if the
pitch is different from the normal value, and choose the second one if the
pitch is the same as the normal value.

When there are more than two choices (i.e. enum), the left half of the
choices are used to show 0..normal range, and the right half of the
choices are used to show values over that range.  The last entry is used
when it is set to the normal setting, following the rockbox convention to
use the last entry for special values.

  2 items: %?Sp<0..99 or 101..infinity|100>
  3 items: %?Sp<0..99|101..infinity|100>
  4 items: %?Sp<0..49|50..99|101..infinity|100>
  5 items: %?Sp<0..49|50..99|101..149|150..infinity|100>
  6 items: %?Sp<0..33|34..66|67..99|101..133|134..infinity|100>
  7 items: %?Sp<0..33|34..66|67..99|101..133|134..167|167..infinity|100>

This will allow two expected use cases:

 (1) %?Sp<%Sp> to show the pitch only when playing at a modified pitch.

 (2) %?Sp<%xdAa|%xdAb|> to show an icon of Darth Vader (subpicture 1
     of image A) when playing at a lower pitch than the original, and to
     show an icon of a chipmunk (subpicture 2 of image A) when playing at
     a higher pitch than the original.  When playing at a normal pitch,
     nothing is shown.

Flyspray: FS#10680
Author: Junio C Hamano

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23589 a1c6a512-1295-4272-9138-f99709370657
apps/gui/skin_engine/skin_tokens.c