Rockbox mail archive
Subject: key schemes: proof of concept II - apps.zip (0/1)
From: langhaarrocker (phil_at_x-phobie.de)
Sorry guys. I think I made a big mistake. I only wanted to make a
proof of concept and thought it might be good not to change too much
of the old code but to try it with new code. Now this proof became
somehow big - which is not useful because of its quantity.
So how do you get an overview of this stuff?
1.) look at apps/key_scheme.h to get a basic understanding of the
data structures that I used.
2.) look at .rockbox/default.txt to get an impression on how the
file format is intended. It may look a bit confusing first but
consider that this file defines what will be the compiled-in
factory defaults later. When the user want's to change that he
can extend these default by inheritence and his files will be
3.) look at apps/recorder/screen.c to see how the key scheme can
be used to replace the big switch statments for evaluating
4.) look at apps/commands.c and apps/settings.c to see how commands
are defined and propagated for use with key schemes
5.) The split editor is a new module that I used to experiment
with key schemes.
About the split editor
It is intended as a gui to help the user find an appropriate split
point. While playing enter the menu->split editor. The split editor
will play a loop and you will see an oscillosgraph building up. With
the left / right button you can navigate a cursor which specifies the
split position. With the up / down button you can zoom the graph. Note
that it shows you a rough preview which is updated with real data
while playing the loop. F2 toggles different loop modes (from/to/over
split point). F3 switches db / linear scale. With on + left/play/right
the speed is adjusted.
This patch consists of
These files contain the basic engine of the key schemes
contain the commands available for key binding. These files have
been created manually. In fact they should be generated during
the build process similar to the lang files.
A gui for a split editor (without the acutal file splitting, yet)
A more generic version of the screens. They contain only the engine
and the actual F2 / F3 screens are initialized from apps/screens.c
An example file with the default key scheme. You must have that
on your recorder because I haven't implemented a compiled in
default key scheme.
a diff file that patches the current cvs version (14.10.02) so
that all necessary features of the key schemes are applied. Apart
from minor changes it includes:
- patching tree.c so that its functions can be used with key
schemes. It actualy is a fake that demonstrates how we could
quickly move towards key schemes without having to rewrite
much code at once and still have key schemes.
- patching settings.c so that many settings can be bound.
- patching screens.c so that it uses the new generic
- patching peakmeter because the split editor relies on some
of its new functionality
Have fun and let's discuss this approach. Sorry again for uploading
Page was last modified "Jan 10 2012" The Rockbox Crew