<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rockbox/apps/plugins, branch xracer</title>
<subtitle>My Rockbox tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/'/>
<entry>
<title>[WIP] XRacer - a racing game</title>
<updated>2015-06-13T23:44:59+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>frankhwei536@gmail.com</email>
</author>
<published>2015-01-07T21:40:33+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=b9fb85845715d81f50d8fd6bf523982b339d26e7'/>
<id>b9fb85845715d81f50d8fd6bf523982b339d26e7</id>
<content type='text'>
Plan:
-----

A simple racing game like Pole Position or Enduro.

Status:
-------
 - Currently generates a random road and scrolls through it
 - Random road generation (curves and hills)
 - Supports loading of maps from a file ("/output.xrm")
 - Sample map at http://a.pomf.se/ynhlwq.xrm

Todo:
-----
 - Convert to fixed-point math in all places (only one place left!)
 - Improve/fix track looping
 - Improve random road generation to start and end at the same height
 - Finish sprite code
 - Make sprites
 - Game-ify!

What's new:
-----------
 - NEW: uses greylib on low-depth targets!
 - Loadable maps implemented, UNTESTED!
 - Sprites in progress (see render() in graphics.c)

Change-Id: Ia2ff60b3c43d9f2e3a4f63e0ad90d2cb571c605e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Plan:
-----

A simple racing game like Pole Position or Enduro.

Status:
-------
 - Currently generates a random road and scrolls through it
 - Random road generation (curves and hills)
 - Supports loading of maps from a file ("/output.xrm")
 - Sample map at http://a.pomf.se/ynhlwq.xrm

Todo:
-----
 - Convert to fixed-point math in all places (only one place left!)
 - Improve/fix track looping
 - Improve random road generation to start and end at the same height
 - Finish sprite code
 - Make sprites
 - Game-ify!

What's new:
-----------
 - NEW: uses greylib on low-depth targets!
 - Loadable maps implemented, UNTESTED!
 - Sprites in progress (see render() in graphics.c)

Change-Id: Ia2ff60b3c43d9f2e3a4f63e0ad90d2cb571c605e
</pre>
</div>
</content>
</entry>
<entry>
<title>Enhancement of the metronome plugin:</title>
<updated>2015-02-03T21:41:40+00:00</updated>
<author>
<name>Thomas Orgis</name>
<email>thomas@orgis.org</email>
</author>
<published>2014-06-29T13:59:11+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=8aa72f07f4bf38e9b898fb8d8042239861b9a423'/>
<id>8aa72f07f4bf38e9b898fb8d8042239861b9a423</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>iBasso DX50/DX90: Major code cleanup and reorganization.</title>
<updated>2015-02-02T20:57:55+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2015-02-02T20:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=dbabd0d9c34a33bc0c51243ec37f230d117db955'/>
<id>dbabd0d9c34a33bc0c51243ec37f230d117db955</id>
<content type='text'>
Reorganization

- Separated iBasso devices from PLATFORM_ANDROID. These are now standlone
  hosted targets. Most device specific code is in the
  firmware/target/hosted/ibasso directory.
- No dependency on Android SDK, only the Android NDK is needed.
  32 bit Android NDK and Android API Level 16.
- Separate implementation for each device where feasible.

Code cleanup

- Rewrite of existing code, from simple reformat to complete reimplementation.
- New backlight interface, seperating backlight from touchscreen.
- Rewrite of device button handler, removing unneeded code and fixing memory
  leaks.
- New Debug messages interface logging to Android adb logcat (DEBUGF, panicf,
  logf).
- Rewrite of lcd device handler, removing unneeded code and fixing memory leaks.
- Rewrite of audiohw device handler/pcm interface, removing unneeded code and
  fixing memory leaks, enabling 44.1/48kHz pthreaded playback.
- Rewrite of power and powermng, proper shutdown, using batterylog results
  (see http://gerrit.rockbox.org/r/#/c/1047/).
- Rewrite of configure (Android NDK) and device specific config.
- Rewrite of the Android NDK specific Makefile.

Misc

- All plugins/games/demos activated.
- Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa.

Includes

- http://gerrit.rockbox.org/r/#/c/993/
- http://gerrit.rockbox.org/r/#/c/1010/
- http://gerrit.rockbox.org/r/#/c/1035/

Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight
interface and new option for hold switch, touchscreen, physical button
interaction.

Rockbox needs the iBasso DX50/DX90 loader for startup, see
http://gerrit.rockbox.org/r/#/c/1099/

The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If
/mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit
gracefully and the loader will restart Rockbox on USB disconnect.

Tested on iBasso DX50.
Compiled (not tested) for iBasso DX90.
Compiled (not tested) for PLATFORM_ANDROID.

Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reorganization

- Separated iBasso devices from PLATFORM_ANDROID. These are now standlone
  hosted targets. Most device specific code is in the
  firmware/target/hosted/ibasso directory.
- No dependency on Android SDK, only the Android NDK is needed.
  32 bit Android NDK and Android API Level 16.
- Separate implementation for each device where feasible.

Code cleanup

- Rewrite of existing code, from simple reformat to complete reimplementation.
- New backlight interface, seperating backlight from touchscreen.
- Rewrite of device button handler, removing unneeded code and fixing memory
  leaks.
- New Debug messages interface logging to Android adb logcat (DEBUGF, panicf,
  logf).
- Rewrite of lcd device handler, removing unneeded code and fixing memory leaks.
- Rewrite of audiohw device handler/pcm interface, removing unneeded code and
  fixing memory leaks, enabling 44.1/48kHz pthreaded playback.
- Rewrite of power and powermng, proper shutdown, using batterylog results
  (see http://gerrit.rockbox.org/r/#/c/1047/).
- Rewrite of configure (Android NDK) and device specific config.
- Rewrite of the Android NDK specific Makefile.

Misc

- All plugins/games/demos activated.
- Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa.

Includes

- http://gerrit.rockbox.org/r/#/c/993/
- http://gerrit.rockbox.org/r/#/c/1010/
- http://gerrit.rockbox.org/r/#/c/1035/

Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight
interface and new option for hold switch, touchscreen, physical button
interaction.

Rockbox needs the iBasso DX50/DX90 loader for startup, see
http://gerrit.rockbox.org/r/#/c/1099/

The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If
/mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit
gracefully and the loader will restart Rockbox on USB disconnect.

Tested on iBasso DX50.
Compiled (not tested) for iBasso DX90.
Compiled (not tested) for PLATFORM_ANDROID.

Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix red/yellow</title>
<updated>2015-01-12T11:02:24+00:00</updated>
<author>
<name>Marcin Bukat</name>
<email>marcin.bukat@gmail.com</email>
</author>
<published>2015-01-12T11:02:24+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=9ffd9327e339ee9028654000497525b62e826652'/>
<id>9ffd9327e339ee9028654000497525b62e826652</id>
<content type='text'>
Change-Id: Ie01251af2cd843979b5fdefcfa541ba377d13bd7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ie01251af2cd843979b5fdefcfa541ba377d13bd7
</pre>
</div>
</content>
</entry>
<entry>
<title>Get rid of stupid _backlight_* function names</title>
<updated>2015-01-12T10:09:27+00:00</updated>
<author>
<name>Marcin Bukat</name>
<email>marcin.bukat@gmail.com</email>
</author>
<published>2015-01-08T23:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=89ba7e818c0d96b779b02bc7b31c0c6a19294a46'/>
<id>89ba7e818c0d96b779b02bc7b31c0c6a19294a46</id>
<content type='text'>
_remote_backlight_* and _buttonlight_* are cleaned as well

Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
_remote_backlight_* and _buttonlight_* are cleaned as well

Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
</pre>
</div>
</content>
</entry>
<entry>
<title>Limit more variables to file scope</title>
<updated>2015-01-11T20:40:51+00:00</updated>
<author>
<name>Thomas Jarosch</name>
<email>tomj@simonv.com</email>
</author>
<published>2015-01-11T20:40:51+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=2a3e1628a50b9de7c1462ee95eb79937795f5409'/>
<id>2a3e1628a50b9de7c1462ee95eb79937795f5409</id>
<content type='text'>
Change-Id: I30219d626316776eb73b4205d63376fa3dbc6361
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I30219d626316776eb73b4205d63376fa3dbc6361
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove playback control from XWorld, fix comments a bit</title>
<updated>2015-01-08T22:45:37+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>frankhwei536@gmail.com</email>
</author>
<published>2015-01-05T20:21:10+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=2d41866d5ad6bac80fc1beb1eaa4a9f082839740'/>
<id>2d41866d5ad6bac80fc1beb1eaa4a9f082839740</id>
<content type='text'>
XWorld grabs the audio buffer when it starts, so there can be no playback, making the playback control menu useless :P

Change-Id: Ia4e2c207f41619ef9b028917130d6dbf7dfba054
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
XWorld grabs the audio buffer when it starts, so there can be no playback, making the playback control menu useless :P

Change-Id: Ia4e2c207f41619ef9b028917130d6dbf7dfba054
</pre>
</div>
</content>
</entry>
<entry>
<title>Clarify usb_powered() and fix some code.</title>
<updated>2015-01-08T15:45:32+00:00</updated>
<author>
<name>Amaury Pouly</name>
<email>amaury.pouly@gmail.com</email>
</author>
<published>2015-01-02T21:15:31+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=dc127f213c9b7e60f649bc236602e4f28285c53b'/>
<id>dc127f213c9b7e60f649bc236602e4f28285c53b</id>
<content type='text'>
Either by mistake or because its meaning changed, usb_powered() doesn't mean
what the name suggest, so clarify its meaning by renaming it to usb_powered_only.
So use of usb_powered() are replaced by usb_inserted() when it makes more sense.

Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8
Reviewed-on: http://gerrit.rockbox.org/1097
Reviewed-by: Amaury Pouly &lt;amaury.pouly@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Either by mistake or because its meaning changed, usb_powered() doesn't mean
what the name suggest, so clarify its meaning by renaming it to usb_powered_only.
So use of usb_powered() are replaced by usb_inserted() when it makes more sense.

Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8
Reviewed-on: http://gerrit.rockbox.org/1097
Reviewed-by: Amaury Pouly &lt;amaury.pouly@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make thirty functions static to reduce binary size</title>
<updated>2015-01-05T17:44:36+00:00</updated>
<author>
<name>Thomas Jarosch</name>
<email>tomj@simonv.com</email>
</author>
<published>2015-01-05T17:44:36+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=fdd4aef34003587d7fd9ed754dd35ce901b639bf'/>
<id>fdd4aef34003587d7fd9ed754dd35ce901b639bf</id>
<content type='text'>
If any of those functions should be (unused) API functions,
they can easily be turned back once really needed.

Detected using a new cppcheck check that
uses the internal symbol database to catch
functions that are only used in the current file.

Change-Id: Ic2b1e5b8020b76397f11cefc4e205f3b7ac1f184
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If any of those functions should be (unused) API functions,
they can easily be turned back once really needed.

Detected using a new cppcheck check that
uses the internal symbol database to catch
functions that are only used in the current file.

Change-Id: Ic2b1e5b8020b76397f11cefc4e205f3b7ac1f184
</pre>
</div>
</content>
</entry>
<entry>
<title>PictureFlow: Add move callback for buflib allocations</title>
<updated>2015-01-01T22:49:41+00:00</updated>
<author>
<name>Thomas Jarosch</name>
<email>tomj@simonv.com</email>
</author>
<published>2015-01-01T22:45:24+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=9076b433d18b5db1a1987fe99ca7c70808f22b0e'/>
<id>9076b433d18b5db1a1987fe99ca7c70808f22b0e</id>
<content type='text'>
If we don't provide a callback to buflib_alloc(),
the buffer is always movable (to reduce fragmentation).

Since we pass our buffer to functions that call yield(),
this could lead to memory corruption on buflib compaction.

Change-Id: Id1fad1822479d692551c55cb8bc87cea7b78f759
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we don't provide a callback to buflib_alloc(),
the buffer is always movable (to reduce fragmentation).

Since we pass our buffer to functions that call yield(),
this could lead to memory corruption on buflib compaction.

Change-Id: Id1fad1822479d692551c55cb8bc87cea7b78f759
</pre>
</div>
</content>
</entry>
</feed>
