Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: key schemes: proof of concept II - apps.zip (0/1)
From: langhaarrocker (phil_at_x-phobie.de)
Date: 2002-10-14


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
    less complex.
3.) look at apps/recorder/screen.c to see how the key scheme can
    be used to replace the big switch statments for evaluating
    button events.
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
new files:
apps/key_scheme.c
apps/key_scheme.h
  These files contain the basic engine of the key schemes

apps/commands.c
apps/commands.h
  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.

apps/recorder/splitedit.h
apps/recorder/splitedit.c
  A gui for a split editor (without the acutal file splitting, yet)

apps/recorder/screen.h
apps/recorder/screen.c
  A more generic version of the screens. They contain only the engine
  and the actual F2 / F3 screens are initialized from apps/screens.c

.rockbox/default.txt
  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.

key_schemes.diff
  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
      apps/screen.c
    - 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
this monster.

Phil



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa