Age | Commit message (Collapse) | Author |
|
This caches large files (arbitrarily defined as >1MB) in memory, which
reduces the delay when a new model or sound is needed.
Change-Id: I0f96449555a32f05d771fe900c10eaf21ecbb4f6
|
|
Change-Id: I99abe45adaade350222fa1f0aaf864a06d6dfcdf
|
|
When the starting address of the plugin buffer
is not aligned to 8 bytes crashes occur in tlsf
(on ARM atleast)
Change-Id: I655500c25e1c8f84b4a2418e9ec5c5948e4bea82
|
|
Vagrant is an application that automates creation and provisioning of a virtual
machine for development. The config here creates an Ubuntu 16.04 LTS machine,
updates it, downloads and installs the toolchains for sh, m68k and arm,
mingw-w64, SDL (for Windows simulators) and other packages needed for building
Rockbox.
It works fine for building a Windows simulator and compiling iPod classic
binaries. It should be possible to make the other build types, too.
MIPS toolchain fails to build, ARM-APP is not tested because the files download
very slow on my connection. Please test if it works for you, and let me know.
Quick start: download and install Vagrant and VirtualBox for your operating
system, make sure VT-x / AMD-V is enabled in your BIOS/EFI setup, open a
shell in rockbox/tools and input the command "vagrant up"
Change-Id: Ief5476ab066663a4db7e85404b25d2d781d90532
|
|
Again, this is inferred from their Gerrit username. I've also emailed
them to confirm the name.
Change-Id: I2aced94a5a0a8847c86da0e425db4130b4dccb69
|
|
Addition of rtc support for AGPtEK ROCKER broke building the UI Simulator
for Windows. This patch removes the rtc support if building UI Simulator for
Windows.
|
|
This name is inferred from the contributor's Github account email
(interpreted using the standard given-family name Chinese convention).
Change-Id: I2285a62c3332d562f44c5087b296e4ea2d61200e
|
|
|
|
The quake commit tried to optimize lcd updates but inadvertently broke
wolf3d (which always uses a 320x200 screen size). This fixes that and also
lets direct mode truly exit early to hopefully save some cycles.
Change-Id: I41d96cd584257fe25e791c7f615812849f348e4f
|
|
add defines for sound functions
SOUND_VOLUME, SOUND_BALANCE, SOUND_CHANNELS, SOUND_STEREO_WIDTH ...
defines depend on target
require "sound_defines" to add them to rb.sound_settings[]
consolidates:
sound_set, sound_current, sound_default, sound_min, sound_max,
sound_unit, sound_pitch, sound_val2phys to a single function
rb.sound("name", setting, [value])
require "sound.lua" for old functionality
Change-Id: Ice695218aa433f4fcbb48fbd6b8a9bf29c994110
|
|
Change-Id: Iae31a5fd414708b4a222ba0b05b5828a8e0d19af
|
|
Remove dependency on settings.g for bootloader
ifdef out AUDIOHW_HAVE_EQ Settings these should be indexing the
global_settings.hw_eq_bands[AUDIOHW_EQ_BAND_NUM] struct
Change-Id: I1d1a8556ef88ce43397b600261696dacdf372034
|
|
Adds:
sound_current(int setting)
returns the current sound setting from global_settings
complements sound_max, sound_min and sound_default
Change-Id: I35bd893753c958f808492906fe533edc51d5d57c
|
|
ef9ee89 introduced Read{Big,Little}{Short,Long,Float} functions to safely
read a value in memory. These incorrectly take char*, which causes them to
output erroneous 0xff bytes when given bytes with bit 7 set.
Change-Id: I9531172301aecfdacae405d2f782f662608ce6df
|
|
Original patch by Juan Gonzalez
Updated by Igor Poretsky
Change-Id: I913d96df906e56fb4063485a6725cd13e395f165
|
|
Allows playing registered episodes.
Change-Id: I20e1ca2000776a19767a9c3caef790d4f62ca188
|
|
The d*_t structs are from "d"isk, which means they could be
unaligned. Packing them saves me from having to rewrite every single
access to them.
Change-Id: I6d5a9525fff368bf29bdb85cf1672fce02ce3396
|
|
Change-Id: I67f8f7c6e7e337806751057d1c9ebdae16c54119
|
|
Patch by Igor Poretsky
Change-Id: Ifcca7342d07f0d7fb90d282468f7e6576c13d36b
|
|
55eb1c54 accidentally put it there.
Change-Id: I25d1984f7d4a1e6d65d23aafab5eefea4f92322e
|
|
This #ifdef apparcntly confuses dependency generation, and since lang_enum.h
just declares an enum, including it unconditionally is harmless.
Change-Id: I8feaff7657080962f1ae6305492075c8a5bca673
|
|
Original patch by Daniel Dalton
Updated by Igor Poretsky
Change-Id: I40d3bb89dbaf3582e1d7af8e8964205507cd2a8d
|
|
Original patch by Mario Lang
Heavily updated by Igor Poretsky
Change-Id: Iaa0c32a79a464860ff294096825ae788f35cf312
|
|
Should fix plugin build.
Change-Id: I332235a4e7d08a80abd91fa0705e950c7dfec449
|
|
talk_time and talk_date are now exposed to plugins, so the strings they
reference need to be moved from rtc-only to global.
Change-Id: I88166dc21455d595878d3d1ec557289cd3a5ff6b
|
|
The format strings in the snprintf can in theory need 60 characters
This will not happen in practice (because seconds are 0..60 and not
full-range integers etc.), but -D_FORTIFY_SOURCE will still warn
about it, so we use 60 characters for HOSTED to make the compiler
happy. Native builds still use 20, which is enough in practice.
Change-Id: I22a2bab8134442e531a10bf883f3a369ade0fdc3
|
|
As rbcompat.h is -include'd on the command line, the mkdep script doesn't
pick it up. Explicitly add the dependency to lang_enum.h to the makefile.
Also add lang_enum.h to the 'make clean' target!
Change-Id: I33c8ed0cd5c1d44dce02ac9285469c0e4feac00e
|
|
generate lang_enum prior to apps
Change-Id: Ib484138e2b01267db856415db0364d8c93237073
|
|
Reorganize Plugin functions in prep for API bump
Stub in sound_current
add sleep_timer
Change-Id: I74b3a433c86bd6cec43a7c45ae0d2db95c97bb60
|
|
Original patch by Mario Lang
Heavily updated by Igor Poretsky
Further updated by myself
This patch breaks binary API compatibility by placing the new
functions where they make the most logical sense. IMO this is
the better approach to take given the scope of the changes needed
for talk support.
Since binary API is changing, the patch also moves some other
functions around to more logical locations.
As well as voice support in plugins, this patch voice-enables several
simple plugins. There will be follow-up patches for many plugins that
build on this one.
Change-Id: I18070c06e77e8a3c016c2eb6b6c5dbe6633b9b54
|
|
Change-Id: I5aecaf6fcf42fbaf2deb933e590dcda6d01ac212
|
|
The Quake plugin is the only code that actually relies on float
formatting. Because Quake only runs on targets with huge memory
anyway, limiting their formatting to just those targets will minimize
the increased memory use in the core.
Change-Id: Icdbe26ec6ede564861cc01ac4add76a12b00ecd5
|
|
This ports id Software's Quake to run on the SDL plugin runtime. The
source code originated from id under the GPLv2 license. I used
https://github.com/ahefner/sdlquake as the base of my port.
Performance is, unsurprisingly, not on par with what you're probably
used to on PC. I average about 10FPS on ipod6g, but it's still
playable.
Sound works well enough, but in-game music is not supported. I've
written ARM assembly routines for the inner sound loop. Make sure you
turn the "brightness" all the way down, or colors will look funky.
To run, extract Quake's data files to /.rockbox/quake. Have fun!
Change-Id: I4285036e967d7f0722802d43cf2096c808ca5799
|
|
Wanted to see how gnarly it is to do.
Big number handling could be done with better algorithms
since it can get a bit slow with large integers or tiny
fractions with many lead zeros when only a few digits are
needed.
Anyway, it supports %e, %E, %f, %F, %g and %G. No %a or long
double support seems warranted at the moment.
Assumes IEEE 754 double format but it's laid out to be able to
replace a function to handle others if needed.
Tested in a driver program that has a duplicate vuprintf and
the content was pasted in once it looked sound enough to put
up a patch.
Change-Id: I6dae8624d3208e644c88e36e6a17d8fc9144f988
|
|
This library allows events to be subscribed / recieved within a lua script
most events in rb are synchronous so flags are set and later checked by a
secondary thread to make them (semi?) asynchronous.
There are a few caveats to be aware of:
FIRST, The main lua state is halted till the lua callback(s) are finished
Yielding will not return control to your script from within a callback
Also, subsequent callbacks may be delayed by the code in your lua callback
SECOND, You must store the value returned from the event_register function
you might get away with it for a bit but gc will destroy your callback
eventually if you do not store the event
THIRD, You only get one cb per event type
["action", "button", "custom", "playback", "timer"]
(Re-registration of an event overwrites the previous one)
Usage:
possible events =["action", "button", "custom", "playback", "timer"]
local evX = rockev.register("event", cb_function, [timeout / flags])
cb_function([id] [, data]) ... end
rockev.suspend(["event"/nil][true/false]) passing nil affects all events
stops event from executing, any but the last event before
re-enabling will be lost, passing false, unregistering or re-registering
an event will clear the suspend
rockev.trigger("event", [true/false], [id])
sets an event to triggered,
NOTE!, CUSTOM_EVENT must be unset manually
id is only passed to callback by custom and playback events
rockev.unregister(evX)
Use unregister(evX) to remove an event
Unregistering is not necessary before script end, it will be
cleaned up on script exit
Change-Id: Iea12a5cc0c0295b955dcc1cdf2eec835ca7e354d
|
|
For unknown reasons, -thumb builds need -lfirmware after -lrbcodec (but
still before -lunwarminder)i. Other builds are still happy if we do that.
Including it via CORE_LIBS instead of explicitly achieves that.
Change-Id: Id69e4a0c042f90f71cfd9a72202ce4d8ef6a4181
|
|
Adds a flag to remove the ability to dump and load lua bytecode
saves 6+kb
Change-Id: I080323df7f03f752e0a10928e22a7ce3190a9633
|
|
didn't consider sims might have reserved enums
Change-Id: Ic404972f0836bc81ba149f4ecdd3ec61bd8bd4b3
|
|
Rockbox constants are auto generated by a perl script like the majority
of the plugin functions.
Constants are contained in rb_defines.lua, if the file exists it is auto loaded
by the lua state for backwards compatibility
Frees ~1k
Change-Id: I237700576c748f468249e501c839d89effca3f39
|
|
Change-Id: I6566c19a0fee630a5e250c1244159d5b488b57ff
|
|
Long overdue, but better late than never.
Change-Id: I3403641b68ba6ef0d6e748b482431f05921b81f9
|
|
Change-Id: I93477548ddd92a5390ac2a828b4262e3bb516f4b
|
|
Change-Id: I376fad0f92f1155698740e1b8599a3385998575c
|
|
Change-Id: I8936178191e682b70c64ef6ae04d6636e5cf3521
|
|
Change-Id: Ib9e568ea73a01474facd57cc155e62fa3dc093f7
|
|
We have quite a bit of ram tied up in lua with our c libraries
I was searching for a way to free up some of this when I came
across read only tables in e-lua but that involved a lot of patching
through the source
Instead I came up with this..
it frees about 15k ram without much slowdown in code execution
since after a function gets called it is automatically added to the table
If you have a performance issue you can call the bind method
to bind a specific function or the whole table in one shot
for instance rb table
rb("lcd_clear") -- binds/returns function rb.lcd_clear()
rb(nil) -- binds every function in rb table + removes latebind metatable ..
-- added pairs and ipairs code from lua 5.2
-- cleaned up code + made more seamless
existing fields are now saved rather than overwritten when table is bound
Change-Id: I1c20e76b736c032dedc727d2e58928641e40191d
|
|
Allows saving of ram by reusing strings already stored in the binary
and storing a pointer instead of malloc and copy to get them inside
the lua state
Saves about 1.5K overall
Derivative of work by bogdanm
RAM optimizations: pseudo RO strings, functions in Flash
https://github.com/elua/elua/commit/d54659b5723bcd2b1e3900362398c72c18a9aa0b
Change-Id: I21d6dcfa32523877efd9f70fb0f88f2a02872649
|
|
Makes things a little bigger by default (but not maximized).
Change-Id: I9e4ae725e22458f1e5140a560ff242159ef582d7
|
|
Let's keep things neat.
Change-Id: I995b2c4949d3adbbd7ea4ef361f0712aa222612e
|
|
forum user chris_s noted an possible unhandled cache overflow
Change-Id: Ia79399d6581ef6b635578896519fda8126c731d7
|