TODO:
* Dynamically hide the sample rates that aren't supported
by the current sink
* Better "default" selection based on hardware type/speed
Change-Id: I261544fc3ba78429eaaa81c89aebd2e68106caa3
Every menu heading except the top-level "MPEG Player" (ie the name of
the plugin) now uses pre-existing translated strings.
Change-Id: I65ee64ddc537be4947872da4757bc2f6a27d0bae
Removes `#ifdef`s in many places to just have `HAVE_TOUCHSCREEN` be the
input fall back, as is already tentatively the case in the code.
Solitaire was the only app excluded since there aren’t enough buttons
for it mapped in the SDL layer.
Change-Id: I62450b7110b86c8037a121e96cd2e46754be79a3
get_more() can disable audio when there's nothing more to genreate
but that can get called (and "fail") _before_ we set the flag
that audio is turned on. If this occurs, we will incorrecly
set the "audio on" flag after the failure which will prevent
the mixer from being re-started.
(We're at the mercy of thread scheduling)
Change-Id: I4f6c50a71c7ad685ff45f775e7e4b1c61b8b7777
This is more of an ease of use enhancement than a bug
but it should prevent the annoyance of the message about the missing entry
without needing to go and reset the start in screen setting
Change-Id: I15eb005ce254eb0f0d3f2543abf710b68468a8b3
The context was supplied with context|flag but expected context x flag
Also fixes a bug where the user export doesn't show the correct save location
if changed -- it still saved properly anyway..
Change-Id: I061d63e15475d2cb73d070737dc18d56d7800472
- Move all devkitpro includes before the Rockbox ones so that the macros which are both conflicting and unused can be undef'd
- Remove unused result variables
- Exclude an unused function from being compiled for this target
- Fix hex number formatting
- Fix the return value of dummy functions
- Fix macro redefinition in the plugins keypad config
- Remove duplicate button mapping
- Turn off -Wchar-subscripts as it's already handled in Rockbox's ctype.h
Change-Id: I3f5a3d492c585f233277a380feaea5fe877a044f
FONT_UI is a placeholder when it gets assigned it isn't resolved
immediately
when its time to resolve the font it is processed with font_get(int font)
first it sets it to the last slot
and then decrements till it gets a valid font
I think this is intended to allow the largest
chance of getting a loaded font
instead if global_status->font_id has been set use that
similar to how the screen helper does
Change-Id: If97e504466265fafecbe07b7b72adb4808b67e6a
tapefiles return a leak handle error if it is quit before end of tape is
reached, ensure it always gets closed on exit
Change-Id: I0f6224c7164fd87c209166be9e10d62d6a644a50
If the list of plugins given to configure did not include
a subdir-based plugin, then all subdir-based plugins would
be built (since SELECTED_PLUGINS_SUBDIRS is empty then).
To prevent this issue use an explicit value ('DEFAULT') to
signal that we want to build the standard set of plugins.
Change-Id: I42d9dc8d754ed9ac1cd4b5c62c0a106ca3dfcd91
Check for USE_IRAM to determine if IRAM should be used.
SoCs that don't define USE_IRAM no longer need to define
IRAMSIZE to 0 either.
When IRAM is not used, any symbols bound for IRAM will
be discarded instead of linking them in DRAM. In theory
these symbols shouldn't exist, since nothing should be
placed into IRAM sections to begin with for !USE_IRAM.
If an IRAM section attribute leaks into the plugin/codec
anyway, it should now cause a link time error.
Change-Id: I55c1854cfe8beb5cb09b865336906f9945084b33
Move the definition of DRAMSIZE into the SoC-specific
ifdef block below. This keeps the memory map defines
for a SoC together in one place and as a result it is
much easier to understand.
Change-Id: Ie7293616a3c572b381cfeab3531751562c19a9c4
Move the rather large block of code that's been copied
in three separate linker scripts into the CPU header.
Change-Id: I9f38e4901fa4ff699f00d97064a9cdaf7cfd6aab
Move the definition of NOCACHE_BASE to the CPU headers
instead of having them copy-and-pasted in a few places.
Change-Id: Ibbab27a5a07906d46dbd4dd9065f2238bc885d6b
Mostly motivated by PP needing CACHEALIGN_SIZE in linker
scripts, which can't include system.h, so move these to
cpu.h instead. Also gets rid of the default 32 byte line
size that was used if the target didn't define alignment
itself. RK24xx, DM320, and JZ4740 were missing this but
have been confirmed (from datasheets) to use 32-byte cache
lines.
Add checks to make sure the macros are appropriately
(un)defined based on the HAVE_CPU_CACHE_ALIGN define,
and make sure their values are consistent when they
are defined.
Disable HAVE_CPU_CACHE_ALIGN for hosted targets since it
arguably doesn't matter if there's a cache, if we aren't
responsible for cache maintenance.
A few files in rbcodec use CACHEALIGN_SIZE, but these
can be converted to MEM_ALIGN_SIZE, which is identical
to CACHEALIGN_SIZE if the latter is defined. On other
targets, it aligns to at least sizeof(intptr_t).
Change-Id: If8cf8f6ec327dc3732f4cd5022a858546b9e63d6
This matches the behavior of codecs, which define CODEC,
and is needed to get an accurate definition of USE_IRAM
out of config.h.
Change-Id: I84855ba88d01495bb63c609b3e4d67922b908440
Remove now-unused stuff related to the PNX0101 processor,
which was missed during the removal of the IFP-7xx port.
Change-Id: I5ff248b3e83cb67a357743130c3e51ed84a720e5
Try to use 11KHz if possible, if that's not an option, fall
back to 44KHz which is always available. Simulators always use
44KHz.
Change-Id: I7547e7c1bddf7ce4634f7fd7bc64d4a5c9b62c29
int zx_kbd_input(char* text/*, int buflen*/)
is supplied with a single char by all callers
thats fine till we get to here in the decode routine
while (*utf8)
since it just reads till it hits a 0 its probably fine
but Address Sanitizer caught it
make c a char array of 8 bytes to ensure a NULL
Change-Id: Iad3284df34cb7451422fc96ae0bb8e159ee440b0
* pcm_play_data
* pcm_play_stop
* pcm_play_stop_int
* pcm_is_playing
* pcm_set_frequency
* pcm_get_frequency
* pcm_apply_settings
Now, the only user of these functions are the mixer and recording layers
that provide a higher-level API to plugins and the main [playback]
application.
Outside of the PCM core, pcm_apply_settings() was only used immediately
following a call to mixer_set_frequency(), so the latter function
now always calls the former.
Change-Id: I61c3144dc156b9de9b7963160b525c6d10c6ad4b
pcm_play_data -> mixer_channel_play_data
pcm_set_frequeny -> mixer_set_frequency
pcm_play_stop -> audio_stop at startup / mixer_channel_stop at shutdown
pcm_is_playing -> mixer_channel_status
All of these have been removed from the plugin API. Updated API docs to
clarify role of audio_stop() vs mixer_channel_stop()
Todo: get rid of pcm_play_[un]lock().
Change-Id: I8800c131b51f064ee923a4c6e42aa405d33851fc
With the statusbar enabled, the UI viewport's
font may be different from the UI font, which
breaks stringsize calculations in LRC Player
that are currently all based on the UI font.
Change-Id: Ib53de62134b250fa50353074959843278f38478f
It was added back in 2007 (commit 8b6d28790e) apparently
in a half-baked state, and has never been enabled since.
Change-Id: I728b5730fe05262bae292cd7fcdcfe4b53c4b315
lrcplayer currently automatically scrolls the lyrics for you, as it assumes that there is sync information in the lyrics. In the case where there aren't (like for ID3V2 USLT tags), the plugin will automatically assume timestamps and will scroll automatically.
This commit adds an option in the Display Menu to allow automatic scrolling to be disabled. When disabled, you can scroll the lyrics using the volume keys (like you would on the iPod's OS).
Change-Id: I87ef27fd2b84c97374bdfd0e47f4c00ddb4bc85e
Use ":" as the separator. Useful for plugin development and debugging.
Example:
../tools/configure --target=hibyr1 --type=ADS --plugins="properties.c:imageviewer"
This creates a debug simulator build for Hiby R1 with the properties.c file and the imageviewer directory plugins enabled.
Change-Id: If974cfb0c54bd2c1a53ae11cc3f942c698ef2fe4
SDL needs to do lcd_update from the main thread
stars.lua uses an event that runs in a timer thread
so in the sim the screen never updates
Change-Id: I6002525363010c3133ebbfb490763f747c5d773a
you should be able to have multiple parameters to a single plugin
you can do this from outsid the plugin, but not from within the plugin
this makes it possible to have several entries with the same
plugin and a different parameter for each entry
it now also updates the name of the entry to the name of the parameter
instead of the name of the plugin (unless user edited it)
Change-Id: Ifb52b21e3b8ed3257364635b5d92e7c21a35a199
They haven't seen development activity for the better part
of two decades and apparently were never able to even boot
to Rockbox, although the Rockbox bootloader could load the
original firmware.
Change-Id: I5cfa5909c21feaf2825aa685a05e78044b893a13
Removing STUBOFFSET in commit 78542df466 caused DRAMSIZE
to be computed incorrectly, not taking into account the
16k offset used for 'IRAM'. As a result plugins & codecs
got shifted 16k upwards from their intended load address,
making them unable to load.
Change-Id: I6c338e04506e12fa2b8a69286a1ed785a2f8042d
The mess here can be reduced by paying careful attention to
how the linker allocates LMAs/VMAs within MEMORY regions.
Changing the way .ncdata and .ncbss are defined so that they
reserve the LMA/VMA ranges they use in PLUGIN_RAM removes the
need to explicitly set the VMAs of other sections, cutting
down on the number of ifdefs needed and making the script a
bit simpler.
Change-Id: I316fc6e8dedd621537261d52c1ec7c20ec09438a