storage_sleepnow() is the one that is actually implemented
by storage drivers. storage_sleep() sends a Q_STORAGE_SLEEP
event to the storage thread, which will normally end up
calling the driver's sleepnow() function.
Change-Id: Ib6523073348431dcc75c0f10ef99060c6960efd8
This new tag returns the position in the playlist as a percent. The main usecase for this is to use it as a bar tag, allowing themes to visually present playlist progress.
Change-Id: I0eb001e7458d97b8a0db39f3980d9c283bc8806b
For commit-type operations it's useful to be able to pass
unaligned addresses, so round the address/size to ensure
all cache lines in the address range are hit.
Change-Id: Ibb23050ecf11b6ef6ab1dd517990a68ef62ecfa9
With this change, the code that looks for the VOICE_INVALID_VOICE_FILE
and VOICE_LANG_NAME to produce standalone clips will finally work.
Change-Id: I65ec592a1d3a6c83f92efadec72657c42552b41a
Enable high speed USB for the Echo R1. Includes reasonably
complete support for full speed USB on the STM32H743 since
that was necessary to debug why it wasn't working at first
(which turned out to be a bug in memcpy, not a hardware or
driver issue).
Change-Id: Ie713195b22ba88c79b9b0d6eb289cb9ccd2763c2
The "mov lr, pc" instruction doesn't link a proper return
address in Thumb mode: bit 0 will be unset, leading to a
UsageFault exception when returning from the thread's main
function.
Cortex-M has the "blx" instruction to automatically branch
and link the correct return address, so use that.
Change-Id: I4c0ca55b1b2204286343f906f0b53be0c0ddc392
The implementations diverge enough that it is too confusing
to support them in the same source file; split them so it
is easier to understand.
Change-Id: Ic2f91c75e8a9bb605241441f2caed841585f5b87
This supply is shared by the USB PHY and the audio codec,
so it needs to be reference counted to allow them to be
powered up & down independently (and not just leave the
1V8 regulator enabled all the time).
Change-Id: Ib99b41c2a94b9f0c378153b33c6f91b4370ee998
This allows targets to select full speed operation instead
of the default high-speed mode, which is mainly interesting
for debugging USB communication.
Change-Id: I405ff63c6660ca03ea04282a12b59dac06ca46f5
If the PHY doesn't correctly report the ID pin state,
then the DWC2 core may operate in host mode by default.
Defining USB_DW_FORCE_DEVICE_MODE in the target config
will set the FDMOD bit in the GUSBCFG register to force
the core into device mode regardless of what the PHY
reports.
Change-Id: If2391aaa4a7c65ba6c90dd56074faeb3ed1ac2ca
Two cache discards for targets with POST_DMA_FLUSH were
not properly guarded by USB_DW_ARCH_SLAVE, which causes
data loss when DMA is disabled.
Change-Id: If14ffdc5662f77b3ff57a04c5b9f94d4cac7e514
Buffer contents are only moved after the callback
returns, so we need to log the path before it has
been updated to prevent reading garbage.
Change-Id: I187fbd56484249c456155ffcbdde9e44e766dde8
This commit does the following changes:
- Fix mkdir implementation not reporting EEXIST error.
- Fix database build feature.
- Small speed-up when parsing directories and files.
- Fix buffering thread hogging cpu and preventing other threads to run.
- Fix sdl plugins not compiling by re-adding ctru specific cflags in sdl.make.
Change-Id: I507c0dcc85cdbcc607ab9c9c6d0b42e6a80caa5a
Every build includes .rockbox/lang/voicestrings.zip, which contains
everything needed to build a voice file for that build.
This is already used by the rockbox utility, but now it is possible to
achieve the same using purely cmdline tools.
If the new voice-enum.txt file is present in the voicestrings.zip file,
this new flow produces bit-for-bit identical voice as the existing 'make
voice' flow.
Change-Id: Ieb24bc261a75b0e531c1889c49402217f7d14302
This maps the numerical IDs contained within the binary .vstrings files
to their logical LANG_* and VOICE_* names.
While not strictly needed to produce voice files, it adds the final
piece to be able to use vstrings files to produce the same voice files
as the existing 'make voice' flow that directly parses the language files.
The 'make voice' flow intentionally divert a few of the generated clips
into standalone files:
* "invalid voice file"
* <spoken language name>
* <short pause>
For this to be possible, we need to know which specific entries in
vstrings map to the ones we care about, and without this enumeration
(which can change on a per-target or even per-build basis) this is
effectively impossible.
The produced lang-enum.txt is simple, with one entry per line of the
format: number:name
Note that nothing uses this new file yet; that will come in subsequent
commits.
Change-Id: Iec3fccbb6d503dd7e2d529aad318009a489b1d77
there are no functional changes in this patch
it just makes it easier to build lua in core app
or plugin form
-Update moved some things around messing up compilation on Native targets
due to *errno
Change-Id: I0921df62d72a87516ad95c68e986b5931c35345e
The ARM assembly versions of memcpy and memmove try to
directly modify the PC based on the number of bytes to
be copied as an "optimization"; but this only works if
instructions are guaranteed to be 4 bytes wide.
This trick is completely broken on Cortex-M, since an
instruction can be 2-4 bytes wide: for example a memcpy
of 4 bytes ends up storing 32 bytes worth of garbage to
the target address!
Use the C memcpy/memmove implementations for Cortex-M
instead; fixing the ASM version is more trouble than
it's worth.
Change-Id: I695587fd585ec25ef276f2dbc61e2290b7015e13
asm.make replaces source files listed in asm/SOURCES with
a corresponding .c or .S file under firmware/asm/${ARCH}.
This makes it difficult to handle differences within one
architecture, eg. different instruction sets or versions
of the architecture.
Get rid of asm.make, and instead use the preprocessor to
select the architecture-specific sources directly from
asm/SOURCES. This is slightly more verbose but is more
flexible.
Change-Id: Id2a484794d5d951b7ba7b54a552de6960414fa45
All non-simulator and non-hostfs targets are required to implement storage_get_info() since 04dc052a
Change-Id: I87febd12e101797d9cbbffc0e2e46efc2dace9da
* "english.list" started the VOICE_* enumeration at the wrong number
* vstrings file had the wrong string count
There is still one remaining issue; Currently the vstrings header is
generated with a section size that is consistently 6 bytes shorter than
the actual data. However, the non-voice .lng file has correct size.
Change-Id: I01f9622399cf3f3ac4c62ddea1deeb19a7b028ba
It was only taking into account LANG_* strings, and ignoring VOICE_*
Fortunately rbutil currently ignores this field as it's not needed.
Change-Id: If58230cd047abe7a80ebab7eca9147e510b034ea
Some of the inline assembly generates "impossible constraint"
errors in this function, but only when DEBUG is enabled.
Change-Id: I3b1135a8a55436bd3068ef560ebcef64a5184a05
Define HAVE_LC_OPEN_FROM_MEM if the target implements
lc_open_from_mem(). Make HAVE_CODEC_BUFFERING depend
on this feature.
Change-Id: If5f70db58963dcdc33848b860c028841ac380ab2
Move HAVE_CODEC_BUFFERING to config.h, and disable all
related code on targets that don't support the feature,
ie. hosted targets that can't implement lc_open_from_mem().
Change-Id: I0d2a43900cd05b1a80c3cee519f8ad7b26e39fe7
Add CONFIG_BINFMT to select the binary format used for
plugins/codecs and define two options for the existing
implementations (native ".rock" format or dlopen-based).
Split the load_code.h header into two separate headers
to make it look less messy.
Change-Id: Ibd66773160df35a8c6f29a617d12c961bdabf317
new operators @~, *~
contains_oneof and not_contains_oneof
genre @~ "metal|core"
black metal, death metal, grindcore, mathcore
genre ~ "jazz" & genre *~ "rock|pop|fusion"
included: jazz, free jazz, cool jazz, etc.
excluded: jazz rock, jazz pop, jazz fusion
Change-Id: If9590c8607b58373a98f5c9ea537f54df78d5a2f
They have not been touched in over 20 years, and have effectively
bitrotted to the point where they are effectively untranslated.
Any interest in these translations would have to effectively start from
scratch anyway, so let's stop pretending the status quo is useful.
Change-Id: I13e1ae920883f5babb232f0592076be24c8122d4
The former was removed from the upstream repositories "at the request of
contributors", leaving only the latter.
Change-Id: I4afe827be9037915d6d13b4d7ec0713509b88da3
Enable pullups on SDMMC CMD/DATx lines and set output
speed to medium. Using HIGH and VERYHIGH speeds seems
to cause data corruption, with frequent CRC failures.
Change-Id: I732d19e03a2a857453755b68b6749497eafaef70