<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rockbox, 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: User selectable USB mode.</title>
<updated>2015-02-02T21:43:46+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2015-01-21T19:51:36+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=95fdad5e2827685160a5a669c3e8b4dc783995ad'/>
<id>95fdad5e2827685160a5a669c3e8b4dc783995ad</id>
<content type='text'>
Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -&gt; General -&gt; System: USB Mode.

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Mass Storage: The default, on USB connect export the internal and external
drives as usual. Rockbox will exit gracefully in this case, since the internal
drive (/mnt/sdcard) is exported as mass storage device and Android prevents
Rockbox from continued execution.
- Charge Only: USB charge only, do not export the internal and external drives.
This will not close Rockbox.
- ADB: Enable the Android Debug Bridge. This will not close Rockbox.

Charge only and ADB are actually the same, since it is not yet established if
charge only is doable without adb and major hooks into Android.

German translation provided.

This may be genric for Android based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I616247c29946c6595ebcf8f0c14b2410c9f0498b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -&gt; General -&gt; System: USB Mode.

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Mass Storage: The default, on USB connect export the internal and external
drives as usual. Rockbox will exit gracefully in this case, since the internal
drive (/mnt/sdcard) is exported as mass storage device and Android prevents
Rockbox from continued execution.
- Charge Only: USB charge only, do not export the internal and external drives.
This will not close Rockbox.
- ADB: Enable the Android Debug Bridge. This will not close Rockbox.

Charge only and ADB are actually the same, since it is not yet established if
charge only is doable without adb and major hooks into Android.

German translation provided.

This may be genric for Android based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I616247c29946c6595ebcf8f0c14b2410c9f0498b
</pre>
</div>
</content>
</entry>
<entry>
<title>iBasso DX50/DX90: User selectable freq scaling governor.</title>
<updated>2015-02-02T20:58:25+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2015-01-30T21:47:30+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=040306a71663d98f1ca568b61010ee125d1e6501'/>
<id>040306a71663d98f1ca568b61010ee125d1e6501</id>
<content type='text'>
Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -&gt; General
-&gt; System: Freq Scaling Governor

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Conservative: Slow frequency switching.
- Ondemand or Interactive: Fast frequency switching.
- Powersave: Allways lowest frequency.
- Performance: Allways highest frequency.

German translation provided.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I10296f5be9586ad3a409105db0cd03682a30e9c1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Depends on http://gerrit.rockbox.org/r/#/c/1043/.

This patch adds a new setting in Settings -&gt; General
-&gt; System: Freq Scaling Governor

Usable in Quickscreen and Shortcuts.

Possible settings are:
- Conservative: Slow frequency switching.
- Ondemand or Interactive: Fast frequency switching.
- Powersave: Allways lowest frequency.
- Performance: Allways highest frequency.

German translation provided.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I10296f5be9586ad3a409105db0cd03682a30e9c1
</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>iBasso DX50/DX90: Rockbox loader, replacement for original firmware MangoPlayer.</title>
<updated>2015-02-02T20:01:00+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2015-02-02T20:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=cef17e3d59ad93f766e8ee23b1610540a33dfe5e'/>
<id>cef17e3d59ad93f766e8ee23b1610540a33dfe5e</id>
<content type='text'>
This loader is needed to use Rockbox on iBasso DX50/DX90 devices. It replaces
/system/bin/MangoPlayer.

It expects
- the original firmware MangoPlayer as /system/bin/MangoPlayer_original
- the chooser.bmp file as /system/chooser.bmp
- the rbmissing.bmp file as /system/rbmissing.bmp
- the usb.bmp file as  /system/usb.bmp
- Rockbox in /mnt/sdcard/.rockbox/ (internal device storage accessable via USB)

On first boot or if the device is booted with the hold switch engaged (upper,
locked position) this loader will let the user choose between Rockbox and the
orginal firmware MangoPlayer. It remembers the last choice and will start the
choosen player an following boots.

In the chooser screen
- the device can be powered off with a power button long press.
- Rockbox can be startet with the "Next/Fast Forward" button or by touching the
right part of the touchscreen.
- the orginal firmware MangoPlayer can be startet with the "Previous/Rewind"
button or by touching the left part of the touchscreen.

If Rockbox can not be found/executed than a "Rockbox is missing" screen will be
shown and the orginal firmware MangoPlayer will be started after 30 seconds.

This loader will (try to) restart Rockbox or the orginal firmware MangoPlayer if
something unexpected happens.

This loader can be installed via a customized firmware image (update.img) or
manually via the Android Debug Bridge (if you get adbd started on the device).

This is a rewrite and code clean up of the original submission, eliminating the
need for a custom Android Vold. This loader "knows", when Rockbox has exited due
to a USB mass storage connection remounting /mnt/sdcard and acts accordingly,
displaying a "USB connection" screen while waiting to restart Rockbox.

Change-Id: I2698e173437f9c7aa1ff40649a290220e2ee0439
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This loader is needed to use Rockbox on iBasso DX50/DX90 devices. It replaces
/system/bin/MangoPlayer.

It expects
- the original firmware MangoPlayer as /system/bin/MangoPlayer_original
- the chooser.bmp file as /system/chooser.bmp
- the rbmissing.bmp file as /system/rbmissing.bmp
- the usb.bmp file as  /system/usb.bmp
- Rockbox in /mnt/sdcard/.rockbox/ (internal device storage accessable via USB)

On first boot or if the device is booted with the hold switch engaged (upper,
locked position) this loader will let the user choose between Rockbox and the
orginal firmware MangoPlayer. It remembers the last choice and will start the
choosen player an following boots.

In the chooser screen
- the device can be powered off with a power button long press.
- Rockbox can be startet with the "Next/Fast Forward" button or by touching the
right part of the touchscreen.
- the orginal firmware MangoPlayer can be startet with the "Previous/Rewind"
button or by touching the left part of the touchscreen.

If Rockbox can not be found/executed than a "Rockbox is missing" screen will be
shown and the orginal firmware MangoPlayer will be started after 30 seconds.

This loader will (try to) restart Rockbox or the orginal firmware MangoPlayer if
something unexpected happens.

This loader can be installed via a customized firmware image (update.img) or
manually via the Android Debug Bridge (if you get adbd started on the device).

This is a rewrite and code clean up of the original submission, eliminating the
need for a custom Android Vold. This loader "knows", when Rockbox has exited due
to a USB mass storage connection remounting /mnt/sdcard and acts accordingly,
displaying a "USB connection" screen while waiting to restart Rockbox.

Change-Id: I2698e173437f9c7aa1ff40649a290220e2ee0439
</pre>
</div>
</content>
</entry>
<entry>
<title>CPUFreq scaling governor interface for Linux/Android hosted devices.</title>
<updated>2015-01-30T19:15:58+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2015-01-21T19:35:03+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=a312ca1c5002f70c7e8cf9fcb802bbf7689dfca2'/>
<id>a312ca1c5002f70c7e8cf9fcb802bbf7689dfca2</id>
<content type='text'>
For a usage example see http://gerrit.rockbox.org/r/#/c/1074/

Change-Id: I1d61e0eba6552a9b5d6e15a2e3169435b2f7079d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For a usage example see http://gerrit.rockbox.org/r/#/c/1074/

Change-Id: I1d61e0eba6552a9b5d6e15a2e3169435b2f7079d
</pre>
</div>
</content>
</entry>
<entry>
<title>iBasso DX50/DX90: CPU info enhancements.</title>
<updated>2015-01-30T19:15:21+00:00</updated>
<author>
<name>Udo Schläpfer</name>
<email>rockbox-2014.10@desktopwarrior.net</email>
</author>
<published>2014-12-13T19:45:03+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=6d3dc8fce0401da24ad45593e4eb9a68e2cde297'/>
<id>6d3dc8fce0401da24ad45593e4eb9a68e2cde297</id>
<content type='text'>
System -&gt; Debug (Keep Out) -&gt; View CPU stats

Will now show the current cpufreq scaling governor, minimum, current and
maximum cpufreq scaling frequency for each CPU.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I53e212f8707bf2abaa557e297293fb559ac37058
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
System -&gt; Debug (Keep Out) -&gt; View CPU stats

Will now show the current cpufreq scaling governor, minimum, current and
maximum cpufreq scaling frequency for each CPU.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I53e212f8707bf2abaa557e297293fb559ac37058
</pre>
</div>
</content>
</entry>
<entry>
<title>fix surround &amp; pbe dsp crash</title>
<updated>2015-01-30T19:06:00+00:00</updated>
<author>
<name>Chiwen Chang</name>
<email>rock1104.tw@yahoo.com.tw</email>
</author>
<published>2015-01-28T06:30:54+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=572b36a51a7796e88c11cf0658ced40c1a6efece'/>
<id>572b36a51a7796e88c11cf0658ced40c1a6efece</id>
<content type='text'>
check handle before clean up buffer in flush().

Change-Id: I36a130c45c9f5dce97aa723ef98922b6935ead75
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
check handle before clean up buffer in flush().

Change-Id: I36a130c45c9f5dce97aa723ef98922b6935ead75
</pre>
</div>
</content>
</entry>
<entry>
<title>ypr0/ypr1: GPIO handling API refactoring</title>
<updated>2015-01-29T19:28:59+00:00</updated>
<author>
<name>Lorenzo Miori</name>
<email>memoryS60@gmail.com</email>
</author>
<published>2015-01-04T14:13:41+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=f35d63bc216e59ba1eecfb138e23915521716128'/>
<id>f35d63bc216e59ba1eecfb138e23915521716128</id>
<content type='text'>
The GPIO APIs for ypr0 and ypr1 targets was messy, requiring a
direct communication via several ioctls calls.
Since it is planned to add support to other devices, more GPIO are
going to be used. For that reason the functions shall be clear and
easy to use.

Change-Id: Ia2304335e1fed1305cc2c4320bd4c097e13079be
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The GPIO APIs for ypr0 and ypr1 targets was messy, requiring a
direct communication via several ioctls calls.
Since it is planned to add support to other devices, more GPIO are
going to be used. For that reason the functions shall be clear and
easy to use.

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