rockbox/apps/plugins
Thomas Orgis 8aa72f07f4 Enhancement of the metronome plugin:
- square sine tick and tock sounds (more annoying, more useful;-)
- optical indication of tics on display
- unification of mode of operation for SWCODEC and HWCODEC (tested on simulator)
  Both playback and display drawing happen in main loop, always.
- operating in two modes now:
-- 1. classic dumb metronome
--- active when openened as application without file to open
--- the usual functionality with tapping and bpm change
--- controls indicated on display
-- 2. track mode with programmable series of parts
--- active when started as viewer for a .tempo file
--- differing meters (4/4, 3/4, 6/8, etc.)
--- patterns (tick/tock/silence on each beat)
--- smooth tempo changes in those tracks

This version had lots of testing regarding metronome accuracy,
resulting in the realization that PLL A and PLL B differ
on the Clip+, causing drift. There is still drift when the timer
intervall is too small, so I settled on 2 ms as compromise.

This is the final version, after adding documentation and extensive
help from Sebastian Leonhardt testing it on slower hardware (YH820),
where it works up to 650 actual bpm with display indication.

Latest change: Documentation nitpicks.

Change-Id: I764c8252526db188352385c5462f9453d882beb9
2015-02-03 22:41:40 +01:00
..
beatbox Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
bitmaps Correction of the Sliding puzzle on Samsung YH-820. 2014-09-08 15:23:13 +02:00
chessbox YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
clock Make fixepoint.c as a shared library (libfixedpoint.a). 2013-04-26 00:11:04 +02:00
doom YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
fft Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
fractals Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
frotz Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
goban YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
imageviewer Limit more variables to file scope 2015-01-11 21:40:51 +01:00
lib Fix red/yellow 2015-01-12 12:02:24 +01:00
lua Limit more variables to file scope 2015-01-11 21:40:51 +01:00
midi YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
mikmod mikmod plugin: Remove bogus doubled return statement 2014-12-22 22:33:28 +01:00
mpegplayer Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
pacbox YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
pdbox Make thirty functions static to reduce binary size 2015-01-05 18:44:36 +01:00
pictureflow PictureFlow: Add move callback for buflib allocations 2015-01-01 23:49:41 +01:00
reversi Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
rockboy Rockboy plugin: remove second keymap definition for the Iriver H10, added in 2014-10-22 09:59:26 +02:00
searchengine
shortcuts plugins: another round of making local functions static 2011-10-15 20:38:08 +00:00
sudoku Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
text_viewer text_viewer plugin: Fix two out-of-bounds buffer accesses 2014-12-20 12:55:20 +01:00
xworld Remove playback control from XWorld, fix comments a bit 2015-01-08 23:45:37 +01:00
zxbox zxbox: Add missing break; statement 2014-12-22 21:50:47 +01:00
2048.c 2048: service pack 1 :) 2014-08-19 22:37:54 +02:00
alarmclock.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
alpine_cdc.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
battery_bench.c iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
bench_mem_jpeg.c
bench_scaler.c
blackjack.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
boomshine.lua scroll_engine: Rename scroll_stop* functions to be more consistent with the lcd api. 2013-12-14 23:11:30 +01:00
bounce.c Make fixepoint.c as a shared library (libfixedpoint.a). 2013-04-26 00:11:04 +02:00
brickmania.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
bubbles.c Bubbles: make it work on Samsung YH-820 and align it on the occasion on Cowon M3. 2014-09-08 14:09:58 +02:00
BUILD_OVERLAY
calculator.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
calendar.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
CATEGORIES Xworld - Another World interpreter for Rockbox 2014-12-23 23:48:12 +01:00
chessbox.c
chessclock.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
chip8.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
chopper.c zen/zenxfi/zenxfistyle/zenmozaic: implement plugin keymaps and enable plugins 2014-07-17 10:40:17 +02:00
clix.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
codebuster.c
credits.c
credits.pl
crypt_firmware.c
cube.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
demystify.c plugins: another round of making local functions static 2011-10-15 20:38:08 +00:00
dice.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
dict.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
disktidy.c Fixed disktidy bug and added a couple of new features to disktidy. 2014-10-09 09:43:40 +02:00
disktidy.config Revert r31239 and r31250. Selecting ALL in disktidy used to be generally safe for most people, and these changes change that, making it easy to delete most or all of a user's music. This is a *very* bad idea. 2011-12-26 00:03:28 +00:00
elfdep.pl
euroconverter.c
fire.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
fireworks.c fireworks: ues PLA_EXIT to exit without going through the menu. 2012-02-24 15:06:18 +01:00
firmware_flash.c
flipit.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
goban.c
greyscale.c Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
helloworld.c
helloworld.lua
invadrox.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
iriver_flash.c
iriverify.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
jackpot.c plugins: another round of making local things static and adding missing #includes 2011-12-28 11:32:13 +00:00
jewels.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
keybox.c hosted: Rename a bit in functions to avoid name clashes with unix headers. 2014-02-23 23:36:11 +01:00
lamp.c Additional colors for lamp.rock 2013-02-04 09:08:16 +01:00
logo.c Fix some build errors and warnings. 2014-06-21 00:49:05 +02:00
lrcplayer.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
main_menu_config.c fix red, strtok_r being annoying on sim builds 2014-02-13 22:24:29 +11:00
matrix.c matrix plugin: Fix out-of-bounds array access. Unify for-loop style. 2012-06-03 23:37:33 +02:00
maze.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
mazezam.c
md5sum.c
metronome.c Enhancement of the metronome plugin: 2015-02-03 22:41:40 +01:00
minesweeper.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
mosaique.c Plugin mosaique PLA integration (code + manual) 2012-03-03 16:37:47 +01:00
mp3_encoder.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
nim.c
oscilloscope.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
pegbox.c Pegbox: use the same keymap for Samsung YH820 and YH920. 2014-10-22 09:59:26 +02:00
periodic_table.c Ptable: hopefully fix all the warnings, modify actinide/lanthanide behavior once again 2014-09-25 00:15:58 +02:00
pictureflow.c
pitch_detector.c Revise the PCM callback system after adding multichannel audio. 2012-03-03 07:23:38 +01:00
plasma.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
plugin.lds Fix .ncbss from possibly overlapping .ncdata in plugins/codecs. 2013-07-11 04:32:23 -04:00
plugin_crt0.c Commit to certain names for cache coherency APIs and discard the aliases. 2011-12-17 07:27:24 +00:00
plugins.make iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
pong.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
properties.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
random_folder_advance_config.c plugins: Add plugin_release_audio_buffer(). 2014-04-09 09:04:10 +02:00
remote_control.c
resistor.c scroll_engine: Rename scroll_stop* functions to be more consistent with the lcd api. 2013-12-14 23:11:30 +01:00
robotfindskitten.c
rockblox.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
rockblox1d.c rockblox1d's plugin PLA integration (main code + manual) 2012-02-18 23:57:22 +01:00
rockbox-fonts.config
rockbox_flash.c Improve rockbox_flash messages 2012-02-05 16:26:09 +01:00
rockboy.c
rocklife.c plugins: another round of making local functions static 2011-10-15 20:38:08 +00:00
rockpaint.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
search.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
settings_dumper.c EQ settings: Rework the settings to clean up the config file. 2013-02-09 13:05:32 +01:00
shopper.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
sliding_puzzle.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
snake.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
snake2.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
snake2.levels
snow.c Plugin snow PLA integration (code + manual) 2012-03-03 10:48:22 +01:00
sokoban.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
sokoban.levels
solitaire.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
sort.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
SOURCES Enhancement of the metronome plugin: 2015-02-03 22:41:40 +01:00
SOURCES.app_build iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
spacerocks.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
splitedit.c Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
star.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
starfield.c Clean up peak calculating code. 2012-05-02 20:53:07 -04:00
stats.c stats's plugin PLA integration (main code + manual) 2012-02-22 09:15:50 +01:00
stopwatch.c zen/zenxfi/zenxfistyle/zenmozaic: implement plugin keymaps and enable plugins 2014-07-17 10:40:17 +02:00
stopwatch.lua stopwatch.lua: Improve button layout. Enable on touchscreen RaaA. 2012-01-29 22:35:49 +01:00
SUBDIRS Fix compilation error. 2014-12-24 00:05:31 +01:00
SUBDIRS.app_build iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
superdom.c Superdom: Silence warning. 2014-09-14 05:16:10 +02:00
test_boost.c
test_codec.c Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
test_core_jpeg.c
test_disk.c test_disk: Add an additional dirscan test that calls dir_get_info() also. 2014-02-25 09:57:18 +01:00
test_fps.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_gfx.c test_gfx: Add benchmark for put_line(). 2014-01-07 14:13:41 +01:00
test_grey.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_greylib_bitmap_scale.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_mem.c test_mem: silence -Wunused-but-set-variable warning 2013-06-13 18:56:23 +02:00
test_mem_jpeg.c
test_resize.c
test_sampr.c Revise the PCM callback system after adding multichannel audio. 2012-03-03 07:23:38 +01:00
test_scanrate.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_touchscreen.c [ONDAV VX777][simulator] fix missing keymaps in test_touchscreen 2013-07-29 19:07:19 +02:00
test_viewports.c lcd-16bit: Remove {lss,lse,lst}_pattern fields from struct viewport. 2014-01-07 14:13:48 +01:00
test_viewports.lua
text_editor.c Don't reinvent ctype.h functions 2012-05-07 18:43:12 +02:00
theme_remove.c
vbrfix.c
video.c Tweak paramters of mp3_play_data and callback. 2012-03-04 14:50:47 -05:00
viewers.config Enhancement of the metronome plugin: 2015-02-03 22:41:40 +01:00
vu_meter.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
wav2wv.c
wavplay.c
wavrecord.c wavrecord plugin: Add harmless sanity check 2014-12-21 17:22:09 +01:00
wavview.c plugins: make local functions static for metronome, rockblox1d, wavview 2011-10-04 19:33:52 +00:00
wormlet.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
xobox.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
zxbox.c