| Features: |
These are my
current changes/extensions to a recent version of
the Rockbox code:
|
|
| Style: |
|
iRiver H1x0 Specific |
| |
Graphics-and-grayscale-heavy
gl.tter Playback
Screen, using heavily expanded WPS functionality:
(note this is a rough approximation - the
animation is smoother and peakmeters work
properly on the device).
|
X
(currently) |
| |
- Why is the screen
green?
- Why are some of the graphics
'noisy'? The iRiver H1x0 series
displays have only 2 shades of gray (apart from
black and white), and so dithering is used to simulate
smoother shading.
- Is the disc supposed to wobble like
that? Yep : ).I created the design in Photoshop
first without worrying about the existing WPS
limitations (except for sticking to a single
font), and then wrote the supporting code to make
it work. The original design is
target-resolution optimised, but entirely vector
based, so it could be adapted perfectly to any
resolution:

Stats:
111 bitmaps
(and counting).
|
|
| Eyecandy: |
|
iRiver H1x0 Specific |
| |
Backlight
Peakmeter! Flashes the H1x0 backlight in time
to the audio. Use for playback and/or
recording. With style presets (or custom
settings), and seperate battery / ac settings
|
X |
| Functional: |
|
iRiver H1x0 Specific |
-
NEW -
(June 18 06) |
Screensaver
- use plugins as
screensavers! Fully configurable with 'AC
only' and 'Timeout' options. Supports: demystify
fire
plasma
snow
starfield
|
|
-
NEW -
(June 2 06) |
Favourite
Tracks! Automatically remembers
how often files have been manually played, and
lists them in a virtual folder:
 |
-> |
 |
Tech:
implemented using Track
Metadata files (small text
files that can store track-specific
values). The metadata values are loaded
with the dircache and are automatically
updated/saved.
|
|
| -
NEW - |
Exit
menu instantly by pressing the Play or Menu
buttons. |
|
| -
NEW - |
'Fade
on Stop/Pause' Time setting - can now
specify how long the fade on stop/pause should
last: 100 - 3000ms (in 100ms steps). |
|
| -
NEW - |
'Start/Stay
on WPS' setting (optional) - WPS now
stays when stopping audio, ie. you need to
specifically click to get to the file browser (a
more stylish user experience imo). It also
means that the 'stop' icon is actually used, plus
it avoids the confusing 'I clicked Stop, but as
it was still fading out I also then intuitively
clicked for the file browser which started
playing another file!' thing (I did that all the
time : ). |
|
| |
Filename
Formatting / Grouping: For now see details here.
|
|
| |
Seperate
Optical-Out Enable setting for Battery / AC
- automatically switches the Optical out on/off
based on power connection status and your
preferences. Ideal when eg. you always use the
optical out at home, but don't want to waste
battery juice on the move.
|
X |
| |
AC
Volume override - optional, forces &
maintains a fixed volume whilst on AC, then
automatically changes back to last used battery
volume when AC is removed. Works correctly
even across boots. Ideal if you always want to run at
a particular volume at home (eg. 0db for the
iRiver's volume-variable line-out), but not have
your ears blown off when you first use it on the
move.
|
|
| |
WPS
Battery display fixed - each segment in
a 4 segment battery display now correctly
represents 25%, and all segments extinguish only
when less that 15mins estimated time remain. Previously the first
segment already extinguished at 80%, and all
segments vanished at 19% - not only far too
early, but the actual remaining time completely
depends on the battery capacity!
|
|
| |
WPS
Volume display fixed - first and last
volume bitmaps are only shown on exactly the
first and last volume level. This is not only better,
but also required for 'mute/max' type bitmaps to
work.
|
|
| WPS Extensions: |
|
iRiver
H1x0
specific |
| |
WPS
Viewports (text pixel positioning with
optional clipping rectangle, implemented using Screen
Viewports): Enabled with %wp
('p' for 'pixel coordinates').
A line can then
be prefixed with pixel coordinates and optional
clipping dimensions. This allows text to be
placed anywhere and aligned / clipped to a
rectangle (those lines no longer eat up a
traditional screen line):
(at
line/subline start:)
|x|y|[clip
width|clip_height|]
TODO:
When clip dimensions are specified, text can also
be top / middle / bottom aligned using:
%at /
%am / %ab (%am
is the default).
(careful
alignment use allows WPS designs to use different
sized fonts without breaking the layout).
|
X
(as Screen Viewports are currently only
implemented for H1x0 - but easily extendable to
other targets). |
| |
Partial
H1x0 WPS Backdrop Support. All the static artwork
you see in the WPS is a single screen-sized
backdrop bitmap. The support is partial as
overlapping text or graphics overwrite it.
|
X
(already
supported on other targets) |
| |
Bitmap
limit extended:
(currently) 0-60 can be used in %x
tags in addition to a-z & A-Z. |
|
| |
Y Coord
Progress Bars:
Progress
Bars can now be decoupled from lines and
placed at arbitrary heights by adding an
optional y coordinate parameter:
%pb|height|x1|x2|[y|]
(fully
backwards compatible with existing WPS)
|
|
| |
New
Tags:
%fk
- Track Frequency in kHz (eg.
"44.1" instead of
"41000")
| As Enum: |
<8000|11025|16000|22050|
32000|44100|48000|88200|
96000|unknown> |
%fd
- Track Bit Depth.
| As enum: |
<3bit|4bit|8bit|16bit|18bit|20bit|24bit|
32bit PCM|32bit
Float|unknown> |
%fl
- Track is "lossless"
/ "lossy".
As enum:
<lossy|lossless>
%fr -
Lossless Compression Ratio (percentage
of original size), else 0.
%gi
- Inverted Text ('g' stands for
'graphics effects').
- Peak
Level
tags (0-100%):
%vl
%vr
%vm |
- Left
channel peak
- Right channel peak
- Mono peak (largest of left/right) |
Can
also be used in conditionals (with arbitrary enum
numbers like battery and volume levels) to
produce animated displays, eg. a 4 bitmap
animation might use:
%?vm<xd0|xd1|xd2|xd3>
Note that
when used in conditionals, the range used is
actually 50-100% to produce more dynamic displays
on volume-maximized music (faster peak updates
would be better), and a slow release is also
applied. Also the first and last enum will
only be hit on exactly 0 and 100%, ie.:
%?vm<0%|1
... 99%|100%>
|
|
| |
Arbitrary
Volume / Battery / Peak Level Enums:
WPS
designers can now use abitrary bitmap numbers
for volume, battery and (new) peak levels (my
WPS uses 15 volume segments + off for
example). The code counts how many
enums a WPS uses in the respective
conditional tags, and works off that.
(fully backwards compatible with existing
WPS').
|
|
| |
Extended
%mp enum:
%?mp<Stop|Play|Pause|Ffwd|Rew|Fading
Audio>
Can be used
to indicate the transition from
play->pause/stop and vica versa (otherwise
there is no visual indication that anything's
happening until the fade completes).
(actually
that breaks backwards compat. doesn't it -
hmm...)
|
| |
Bugfix:
Lines that don't contain any output text are no
longer cleared (this stops those lines clearing
areas you don't want).
|
| |
Bugfix:
Sublines containing only bitmaps didn't work.
|
|
|
gl.tter
|
HITS :
All text /
images (c) gl.tter (gl.tter
[at] r-i-l [dot] net)
2006
|
| |
|
|
|