Commit graph

16162 commits

Author SHA1 Message Date
William Wilgus
e4ee5980c6 lua add _fullpath and argument parsing
WIP for passing arguments to lua scripts

args are recognized by adding ?arg to the end of the script path
The easiest way to do this currently is to use the function rb.restart_lua

local sfile = rawget(_G, "_fullpath") or ""
local sArgs = rawget(_G, "_arguments")

if not sArgs then
    rb.restart_lua(sfile .. "?my arguments")
else
    rb.splash(1000, sfile .. "?" .. sArgs)
end

I'd eventually like to figure out a sensible way to do this from a
shortcut / quick list

Change-Id: I2b60fe3b8f1d04b57361fe532510bd6afee59fbf
2020-06-01 13:23:38 -05:00
Igor B. Poretsky
3bdb96aa02 Radio: Say current frequency or preset when pausing
Change-Id: Iae5b814da5c62536508ba8b9f30b1431c69dc2b1
2020-05-24 17:43:02 +02:00
Kyryljan_Serhij
ff4eb4ed7f Ukrainian language update
Change-Id: I013ae686ffdc03912abc09086396fe6c55e4a537

Ukrainian language update
2020-05-24 16:02:52 +02:00
Sylvain Saubier
1224919f3a Comment details, typos
Change-Id: I71a283b8e705ad8b9274858bc3cde19d25fc7253
2020-05-24 14:31:15 +02:00
Sebastian Leonhardt
2eb15354b7 fix plugin test_boost not properly unboosting
Change-Id: Ib33bb58fc7006c03caa692c377860bfdf463298e
2020-05-24 13:43:30 +02:00
William Wilgus
dcf8154c32 talk.h add failed to load splash
Change-Id: Ie355a52bb6c687d302dc3e39693b9ab40e2dd699
2020-05-22 07:52:01 -05:00
William Wilgus
74f358cf8b talk.h add init status to debug menu
g#2272 adds checks for incompatible version & proper number of clips

Currently incompatible talk files will logf when failure to load occurs

Adds a message to Debug > Talk engine stats
'Talk Status: OK'
'Talk Status: ERR Incompatible voice file'
'Talk Status: ERR (#)' -- OOM, Alloc Error

Change-Id: Ifd2c1f38f710541c9cd929b8abf67bba4363ca53
2020-05-22 06:35:22 -05:00
William Wilgus
776ceae119 Playlist Viewer Fix FS#13197
While playing a track the playlist viewer may not
have a big enough temporary buffer to load and display
'max_files_in_playlist' entries

This patch attempts to load as many entries as possible

If tracks were already playing (dynamic playlist or otherwise)
The original code only gave half the plugin buffer to a playlist
loaded from file

On some targets half the plugin buffer is not enough to load all entries…

Now we attempt to get as many entries possible while at least leaving a
small buffer (MAX_PATH) for the name buffer

Change-Id: Ic06eaabc4e2550f076d625957d6d073790852743
2020-05-20 18:41:58 +02:00
Solomon Peachy
9e674c712f FS#13195: rocker: Improved root menu keymap (Howard Richardson)
This patch addresses a keymapping anomaly on the Rocker. Currently the
Power button when pressed inside a sub-menu will return you to the root
of the menu. However when pressed again it returns you to the sub-menu
you were in previously. This is at odds with how other ports work and
makes it difficult to return to the WPS without manually selecting it on
the root menu.

This patch copies the behaviour of the home button on the Sansa Clip+.
Pressing it once will exit a sub-menu and bring you back to the root
menu. Pressing it again takes you to the WPS. No functionality is lost
or covered up by making this reassignment.

Change-Id: I17789457d49b087a2b4c75f4490ec722d9479a9b
2020-05-18 22:51:01 +02:00
Solomon Peachy
2da6766f75 bookmark: #pragma diagnostic push/pop requires GCC >= 4.6
Change-Id: I7daf6acebd65dd25aa55242535e1df064f1dc260
2020-05-18 03:56:49 +02:00
Solomon Peachy
d9454f11d5 bookmark: Disable -Wformat-truncation around create_bookmark()
GCC 7 and up complain about this false positive when -Wformat-truncation
or -D_FORTIFY_SOURCE is turned on.

Primarily affects simulator builds on hosts with strict defaults.

Change-Id: I385b3c247775e1268b6bbd326b1afc3eb5453db7
2020-05-18 03:27:18 +02:00
Solomon Peachy
0cee5ba91b mikmod: Use -Wno-stringop-truncation with GCC >=8
This will silence a false warning/error when -D_FORTIFY_SOURCE is used

Change-Id: Ic75dbaaa1f419d63163c797d127e6d1928781fd2
2020-05-18 01:15:42 +02:00
Solomon Peachy
d73bfd1a42 pdbox/doom: Use -Wno-stringop-truncation with GCC >=8
This should shut up a lot of the sim build failures

Change-Id: Ieaa387585cb8ca0f8b2faff24c08aad9451b28ce
2020-05-18 00:47:04 +02:00
Kei Miyamoto
5751729284 translation from English to Japanese
Change-Id: I0fc78b25e2f599b630f1e964a57451d25afbc332
Signed-off-by: Kei Miyamoto <RUyJKoKTHc9YMxAm3_MwdKTf4fkeLSz@yahoo.co.jp>
2020-04-19 20:15:45 +02:00
William Wilgus
c93666d08e talk.h make voice files check for proper number of entries on load
In addition to version and target also check id1_max & id2_max
for proper length before allowing voice file to be loaded

Change-Id: I36016059d07781b0bb43dd9873bbb6e565298d76
2020-04-17 07:30:23 +02:00
Thomas Jarosch
87f54b9745 Alpine CD changer emulation: Fix logic error in detecting non-playing status
cppcheck reported:
apps/plugins/alpine_cdc.c:721]: (warning) Logical disjunction always evaluates to true: EXPR != 4 || EXPR != 3.

Change-Id: Ib811defeac18832227aebe96f0524670c2afa76a
2020-04-17 04:33:17 +02:00
Solomon Peachy
dc3537e1c0 Silence a build warning in the superdom plugin.
Potential uninitialized variable, found by android NDK10 toolchain

Change-Id: Ia67f69997d9eab8fe4828111ed52576b0a1c423f
2020-04-13 17:26:22 -04:00
Solomon Peachy
46e2528992 av300: Continue cleaning out keymaps.
(A lot of work was done on this thing, for a target that hasn't been compileable
 at least since we moved to git..)

Change-Id: Ibface9392f3251b5be4bf1e0c4d12639c4f1662d
2020-04-13 22:59:29 +02:00
Solomon Peachy
a820a98361 obsolete: Nuke the very-incomplete Archos AV300 target
It's even missing a config header file.  Just shoot it in the head.

Change-Id: I4c5cdb4fb63361a4e4fc893e93d73d3890fe17df
2020-04-13 22:06:22 +02:00
Solomon Peachy
e28d1fe916 SDL: Silence a large number of compile warnings (WIP)
There are some real bugs in here, but we're drowning in warnings.

Change-Id: I7c2c0eafc8426327521bdd8a3ac2d3742ac16864
2020-04-11 19:29:47 +02:00
Solomon Peachy
02d347bc6f lang: Clean up a warning in the Norweigan translation
Change-Id: I416798a88e1c31e4c39b195726e170f81ea84a16
2020-04-11 04:34:42 +02:00
Solomon Peachy
751185c039 FS13189: Norweigan Language Update (Alexander Drammen)
Change-Id: I77b3d0ee9b48b6bf16f297ec01c59ad5236f06de
2020-04-11 03:13:17 +02:00
Solomon Peachy
4e32234a1f lang: Synchronize English(US)
Change-Id: Idbb3d7e49d4a13bac8d441565899a4888bda719c
2020-04-10 22:20:42 +02:00
Johannes König
91739d124e enable keylock for Sony NWZ-E370/E380
enable keylock in WPS and FMS by simultaniously pressing POWER and BACK.
It was necessary to change the ACTION_FM_EXIT from BUTTON_BACK-button-press-event to
BUTTON_BACK|BUTTON_REL-event and BUTTON_BACK|BUTTON_REPEAT-event to easily be able
to press BUTTON_POWER|BUTTON_BACK without accidentally triggering ACTION_FM_EXIT.

also rebase to current master and add myself to docs/CREDITS

Change-Id: I263a034d0d8fd047d39265e3598ae7936dd8133d
2020-04-10 20:06:52 +02:00
Marcin Bukat
180cef835b xDuoo X3II and X20 port
Provided by Roman Stolyarov
Integration, Refactoring, and Upstreaming by Solomon Peachy

X3II confirmed working by forum tester, X20 is nearly identical.

This includes bootloader, main firmware, and the flash image patcher.

Eventual Todo:

 * Further refactor AGPTek Rocker & xduoo hiby bootloaders
 * Further refactor AGPTek Rocker & xduoo hosted platform code

Change-Id: I34a674051d368efcc75d1d18c725971fe46c3eee
2020-04-06 18:15:41 +02:00
Moshe Piekarski
ced3a20aac Remove unused score tracker from Pacbox AI
Change-Id: I0a72f397f8d22b6543380e963383f6f7649a777b
2020-04-06 02:52:32 +02:00
Franklin Wei
6087c1caa5 Fix red introduced in 191ffe2.
Some leftover code from upstream was triggered by the __linux__ macro on
hosted targets.

Change-Id: Ib338e99d3b0d491d983dd92b8d554eed0c547c76
2020-04-05 00:44:30 -04:00
Solomon Peachy
c0ebbd4ccb jpeg: Fix an overflow when decoding images for non-color targets.
(Warning raised by GCC 4.9.4 -Os)

Change-Id: I1d2f491c8bdb11fe89ffb119e248ca0f4eb69de2
2020-04-05 06:34:21 +02:00
Solomon Peachy
0bf0d47072 Enable SDL for native MIPS and hosted targets.
Change-Id: I36f16530bf6dc108e44e1fd1ff5a550aa8139641
2020-04-05 01:34:24 +02:00
Solomon Peachy
c8111eb5b7 archos: Shut up a compiler warning by marking an inline function as static
Change-Id: I6222b87159235a28f2b69b512f95eafb8dd60564
2020-04-01 03:18:41 +02:00
Solomon Peachy
849320422c Actually commit the translation this time. Bad Solomon.
Change-Id: I26a3ae3be1d52d1f866bf6817c6f5210d2e79a62
2020-03-30 20:44:36 +02:00
Solomon Peachy
5bcf4e6807 FS#13191: Update Italian Translation (David Chionne)
Change-Id: I81f3e2ad5caa8e68c23536dc1781e963fb8a9317
2020-03-29 19:12:23 +02:00
Solomon Peachy
51ad625404 FS#13186: IAP: Send periodic updates in mode 4 (Stefan Ott)
Devices in IAP mode 4 do not explicitly request specific notifications, thus they don't get *any* periodic notifications at the moment (in particular, they miss the track position updates that are supposed to be sent out every 500 ms).

The attached patch fixes this by skipping an early return for devices in IST_EXTENDED state.

Change-Id: I23e35247dd0494e537429d4fd9d51dc7f4653d76
2020-03-29 18:44:15 +02:00
Franklin Wei
f8cd15e226 sdl: disable alignment trap
Apparently causing issues on some devices.

Change-Id: I6adb65513bf65c559a0fa8980e693f1e5324d4ad
2020-02-01 22:11:56 -05:00
William Wilgus
f45db552f3 lua rockev rewrite
After a few issues with the timer code in the hosted players

I realized a few shortcomings in the original rockev code...
This rewrite gives thread_exit an explicit flag instead of 0
custom events now have a set-able timeout
previous lua hooks are restored
flags are stored in uint8_t

Change-Id: I9ca45246ac9233a2faa581e26a8cc5e5fb512e88
2019-11-15 14:28:03 +01:00
William Wilgus
62e5a3076c MultiBoot_Firmware
Stop gap till I get a chance to work on the root folder stuff

Makes whatever volume marked by bootdata.boot_volume
the base or root volume, mounts all other volumes after
the specified boot volume.
Has the effect of swapping the SD card to the slot for internal
and Internal storage is mounted as the Sd-card.

Does not honor root redirect -- uses .rockbox folder in the root of boot volume

Change-Id: I0f786aa0c8721e21cba607366775be3e3c0cf474
2019-11-15 11:26:56 +01:00
Frank Gevaerts
1925d043a2 Greek language update. Thanks to Constantine Mountantonakis (FS#13179)
Change-Id: Ie817df92dfbe896512b72f53921d4d682ea54a2f
2019-11-04 16:49:16 +01:00
Franklin Wei
05dd4390c6 solitaire: reword menu to "Quit without Saving" and "Quit"
Patch submitted by Michael Carr.

Change-Id: I3a1555fe4b6182211203dc8770137e868c76e245
2019-11-03 21:44:48 -05:00
Moshe Piekarski
85a437780e Pacbox AI Improvements
-Make pacbox AI score agnostic.
 -Fix corner case of Game Over/reset with AI on.
 -AI can now start on level where pattern starts facing right.

Change-Id: Ibc5416a53ebc07506c31434051b6d47b276cf668
2019-11-03 21:31:19 -05:00
Franklin Wei
19c154fe8f wolf3d: change version to shareware
This makes wolf3d work with the shareware files available on the wiki. This
will make things work out-of-the-box with Rockbox Utility.

Change-Id: I9118ecf8715c688565982fc4feb29a8641d68b6a
2019-10-30 00:07:09 -04:00
William Wilgus
7f1e6b4638 lua rockev cleanup
with the addition of suspending all events on thread start and exit
we don't really need to block on THREAD_QUIT in so many places

Removed suspend clearing on event unregister and updated comments

Change-Id: Id9c6a460def558c5331ee292035691a9f82b2c43
2019-10-07 22:07:22 -05:00
William Wilgus
19084181a1 lua rockev fix possible race on thread exit
report of call after free on event thread on Agptek Rocker
I'm guessing its a race condition between the thread and the timer
but can't say for sure without some more testing

Change-Id: If11bd718b3cfa81ea13fff378df56d12afa17a7f
2019-10-08 01:09:52 +02:00
Franklin Wei
c0cc9aa9e8 quake: clean up asm mixer
Fixes my ugly formatting.
2019-10-07 14:52:30 -04:00
William Wilgus
01cccaf2d2 lua move strip_extension and create_numbered_filename out of main binary
rb.strip_extension and rb.create_numbered_filename
have been moved to include_lua/files.lua
to use simply add require('files') to your script

Change-Id: I95af7b312c8614cb10da4b71b22714b3e282e08a
2019-09-28 03:15:15 +02:00
William Wilgus
4fb783582f lua rocklib_aux.pl support for enums
everything that would have been added has already been added or
needs more supporting functions so they've been excluded for the time being

Change-Id: I4ae4753c543287934702a3bd2eeccce5b032235d
2019-09-27 11:11:34 -05:00
William Wilgus
bad739c0d8 Fix red lua remove and consolidate some rb plugin functions
I'll revisit adding enums once I research it a bit more

Change-Id: If10c445cf770e5b90defc543f08d8de0817b2f3d
2019-09-27 00:17:33 -05:00
William Wilgus
de06a06351 lua remove and consolidate some rb plugin functions
removes some usless / duplicated functions
removes atoi - lua tonumber() does this for you
removes strlen - lua string.len does this for you
removes system_memory_guard - if a device that actually implements
              system_memory_guard needs it we can add it back conditionally

consolidates talk_number and talk_spell (on backend)
consolidates talk_shutup and talk_force_shutup talk_shutup(bForce)

Change-Id: Id132642f087975a7c132e99a668a41c977942b81
2019-09-26 23:45:38 -05:00
William Wilgus
5afdcdd460 Bug fix icon.c crashes with negative icon index
The index for Icon_NOICON is -1 which is caught properly
as is icon > Icon_Last_Themeable

But if you pass an index lower than Icon_NOICON screen_put_iconxy()
tries to read memory prior to the iconset resulting in a crash

Change-Id: I415e650932d65214d883a1595e22261f22e776b6
2019-09-24 23:51:12 -05:00
William Wilgus
60825970e9 Bug fix menu -- general
Several places in the menu code assume MT_MENU though no guarantee existed
menu type is now explicitly checked prior to use of the submenu variable

Change-Id: Ib9013684309eb2d4cf4a8a809d097b096d3fcffc
2019-09-20 19:23:18 -05:00
William Wilgus
70aeac4666 Fix red dynamic menus
missed one.

Change-Id: Ifa986b0a3397fed8ef28931ecbcdd2910d203ea3
2019-09-20 03:57:38 -05:00
William Wilgus
10e5e56f3c Bug fix dynamic menus
Dynamic menus had a buffer_len variable in the parent function but it
was discarded before passing to the callbacks

Why!!?? No clue but everything that used it was assuming MAXPATH
Wouldn't be surprised to see some bugs pop out from this one..

init_menu_lists() was assuming MENU_HAS_DESC and setting the
menu title + icon based on such even though it could be invalid
didn't see anywhere in the code that was currently using MENU_DYNAMIC_DESC
in relation to a top level menu but considering it caused all kinds
of corruption to the menu when I tried its probably been tried
and abandoned before...

Change-Id: I8d961d748918bfa8ea6adb5ad60491af4d739d6e
2019-09-20 03:07:29 -05:00
William Wilgus
d0883d747a lua give luadir the ability to return table of attributes
for fname, isdir, attrib in luadir.dir(scrpath, true) do

passing true for the second argument returns table of
file/dir attributes in attrib

Change-Id: I7c999e2fc5dac95b8ccbe169f2119c31b63f6a41
2019-09-18 21:20:42 -05:00
William Wilgus
13245ebf76 lua add menu callback
forum user fprockboxer asked for a way to detect long presses within the
do_menu routine this adds that functionality

result = rb.do_menu("Title",t_items, start, menu_callback)

function menu_callback(action)
    ...
    return action
end

Change-Id: I110c590095a743a57d0a7d45b24309899a4629cf
2019-09-14 04:48:04 -05:00
William Wilgus
f9225da811 Fix red Lua extend error splash timeout and stop cutting off info
Change-Id: Icd6fe0fa1088ab59b8214f7c860f262ce67fe205
2019-09-06 21:13:16 -05:00
William Wilgus
bbd4a6cb91 Lua extend error splash timeout and stop cutting off info
Change-Id: Ia1a9e39b9f203002cbbea85ef965e66c334b83fc
2019-09-06 20:19:42 -05:00
William Wilgus
267d04d2bd Lua add metadata and settings reading helper module
Adds example scripts for reading track metadata + dumping albumart
and rockbox settings

settings are now stored as a table of strings rather than a table of tables
as it saves ~15 kb of ram without adding much complexity

Change-Id: I611c312b2a60ab96e595e4710b17aedbd6c0689b
2019-09-07 03:10:59 +02:00
Solomon Peachy
a3cbd86a51 Slovak language update (From Peter Lecký)
Change-Id: I1d148efaa90ac36985db031dbff7bd85f179d50b
2019-09-01 09:06:22 -04:00
William Wilgus
c251d1879f lua fix mem_read_write, strtol
back when I wrote this I was running the sim on a 32 bit machine
I didn't catch the hardcoded LONG_MAX reference or the fact that
lua_tointeger maxes ot at 32 bits

on 64 bit machines strtol caused all kinds of issues especially since
it returned the real LONG_MIN/MAX values

Change-Id: I3571ebbd9df333f7cbf4077562412c27429bfadc
2019-08-28 00:56:08 -05:00
William Wilgus
b99d4d7fa9 lua optimize poly_draw add draw_number, poly_points modules
Change-Id: Id36e765f18234f5a4f3092d090c0adffa3da1612
2019-08-26 22:17:33 -05:00
Vencislav Atanasov
9f551b09f6
sdl: Fix path substitution in log messages, fix game names in comments
Change-Id: I7854d55153d656e84e791759f8ed664e41bff7e5
2019-08-22 22:00:43 +03:00
Igor B. Poretsky
9e186e34ab Save and apply settings after resetting settings in menu.
Change-Id: I8c38d34d04f59090f02f4b7374860ece153a57ce
2019-08-20 15:36:54 +02:00
Igor B. Poretsky
293e3e0fd7 FS#9213 - Fix for audio dropout after startup
Original Patch by Martin Buck
Updated by Igor Poretsky
2019-08-20 13:17:23 +02:00
William Wilgus
ecfb4590ad lua fix polydraw missing functions
Change-Id: I9e2537e4839e2b4f9beddbc887610213ed954a87
2019-08-20 01:58:16 -05:00
William Wilgus
8b7ae89b43 Playlist rework
consolidate some of the playlist create functions
remove extensions from playlist naming (you can still add it if you desire)
switch to strlcpy, strlcpy functions

Change-Id: Ibd62912da4d1f68ed5366baa887d92d4c6b1f933
2019-08-18 10:18:31 -05:00
William Wilgus
5a4cdb96b9 Playlist Fix failure to append default file name pt2
fix create_playlist too

Change-Id: Ic1de1382d5b534991253d662cb1b3aa5520f8887
2019-08-17 09:06:14 -05:00
William Wilgus
fd19a2caa2 Playlist Fix failure to append default file name
FS#12992 - Can't create playlist with all tracks on device (regression)
references this issue

empty_playlist() only sets filename[0] = '\0'
the code was checking filename[1]..
bug ensued

strip extra leading '/' from default path

Change-Id: Ibd8973666ee45583b9e11e3ba317c0e247f085c1
2019-08-17 06:34:52 -05:00
William Wilgus
0ff6a31d7d opus reset decoder on seek completion to prevent stack overflow
apparently we should be doing this anyway

mark4o> The packets overlap and may reuse state set by other recent packets,
        so if you seek to a different position,
        resetting the state helps to ensure that the subsequent
        packets won't use the state set by the unrelated packets
        that were processed before the seek.

remove stack bump WORKAROUND_FS13060

Change-Id: I1c14e23b1721a360b91e3e55202c1557aef0fcc6
2019-08-14 17:54:35 +02:00
Solomon Peachy
8570d4063b Fix build on IHIFI 800 and iBasso DX50
Change-Id: I564f838b96577edbc01b602e94e9293efedfac14
2019-08-14 16:48:43 +02:00
Solomon Peachy
de68310bac Fix compile on IHIFI770/770C/800 targets.
Change-Id: If8b150627c2b9746b24123d263edc69d91df855d
2019-08-14 15:54:36 +02:00
Solomon Peachy
58452a4cb2 Make 'filter roll off' strings conditional, for specific targets only.
Patch by Igor Poretsky

Change-Id: Ic22ee5169015c5bdc3d7e7513dacaf2a536264f0
2019-08-14 15:00:36 +02:00
Solomon Peachy
22c6326974 Improvements for vbrfix plugin:
* Properly account for ID3v1 tags
 * Play time computation fixes
 * Add speech feedback

Patch by Igor Poretsky

Change-Id: Ia6df8fb171882a88527cfa9d3b76b705f09becdd
2019-08-13 17:07:07 +02:00
Solomon Peachy
c46147c6b2 Tweak how the pictureflow plugin is invoked
- Only load when database is ready
 - Assign to file browser only when returning to WPS
 - Minor speech fixes

Patch by Igor Poretsky
Re-synchronized by myself

Change-Id: If9c943b3af415a2decd3dd5803d730bd790d09fe
2019-08-13 16:41:14 +02:00
Igor B. Poretsky
e3ed277f68 Enhanced shortcuts speech feedback
Trying to guess proper talk clip if it is not specified
explicitly. Using spelling as a fallback.

Change-Id: I9eeca3fbe23086c2d8fd45360546b6afaa9c7067
2019-08-13 13:08:33 +02:00
William Wilgus
3d06d35bf6 lua rock events crash on error in main state
on errors thread stack overflows
yielding before thread_exit() is a bad idea apparently

Change-Id: Iac45d4321fac496738384fdbbeb480356ef2a1bb
2019-08-12 07:28:24 +02:00
Sebastian Leonhardt
3b75f98700 Windows shortcuts: remove warnings
Change-Id: I987cbf14da2f320ddbe3190b48ba5f8006d2ea3f
2019-08-11 22:57:08 +02:00
Sebastian Leonhardt
5c701b0280 Add support for Windows shortcuts (*.lnk files)
Supports only relative links across the same volume.

Change-Id: I4f61bb9d5f2385d5b15d2b9d9a3f814a7ac85b54
2019-08-11 22:26:49 +02:00
Franklin Wei
49dd38c184 quake: further optimize D_DrawSpans8
Found on http://forums.insideqc.com/viewtopic.php?f=3&t=3327

Adds 1.1FPS (+8%) on ipod6g.

Change-Id: I608588ff99d70ff5ce28d2c649afa4b10038cc03
2019-08-09 23:05:46 -04:00
Franklin Wei
4397194110 quake: enable PQ_OPT5 (a fixed-point DrawSpans8)
This boosts performance to 13.0FPS on ipod6g for `timedemo demo1'. That's a
+34% increase from baseline.

Change-Id: I50bae7783ff2fce46e8257c251c6b639c069e7cb
2019-08-09 21:27:55 -04:00
Franklin Wei
f5bb7fddec quake: merge the remaining Pocket Quake PQ_OPT changes
I didn't do _OPT3 because it's disabled in the PQ source.

This gives as +0.2FPS boost over the last commit.

Change-Id: I9c3c8fb7bd23262beb810da6e9469d6b6c4b2a81
2019-08-09 21:27:55 -04:00
Franklin Wei
ee70dad305 quake: merge some fixed-point optimizations from PocketQuake
The PocketQuake project, available below, has some nice fixed-point code:

https://web.archive.org/web/20150412233306/http://quake.pocketmatrix.com/PocketQuake0062_src.zip

I'd like to see most of them merged into our Quake port. This commit
gives +0.9FPS on ipod6g. (A big change given that it was running at
only 9.7FPS to begin with!)

Change-Id: I91931bdd5c22f14fb28616de938a03b4e7d7b076
2019-08-09 21:27:42 -04:00
Igor B. Poretsky
3fffabf50d Negative values speaking fix for some certain situations 2019-08-09 06:57:03 +02:00
Igor B. Poretsky
20798aaa1c xduoox3: LANG_DISK_NAME strings for non-English languages and proper corresponding voice strings 2019-08-09 06:55:46 +02:00
Igor B. Poretsky
0340513421 Russian translations fix 2019-08-09 06:53:37 +02:00
Solomon Peachy
7737327bfe Fix mikmod plugin build on armv4 targets (broke in 5b23c9e)
Change-Id: I1c79fbe44c13396388c533c4664b4ce1db150ac9
2019-08-08 23:04:11 +02:00
Solomon Peachy
5b23c9eb0a Introduce HW_SAMPR_MIN_GE_22 macro
Gives us the lowest HW sample rate that's >= 22KHz.

Needed because some targets that don't support 22K support 11K or 8K, so
HW_SAMPR_MIN will give us much lower quality than is acceptable.

Take advantage of this new macro in the SDL, MIDI, and MIKMOD plugins,
and implement a crude "fast enough" test to enable higher sample rates
on more capable targets.

Change-Id: I6ad38026fb3410c62da028e78512e027729bb851
2019-08-08 22:37:30 +02:00
Solomon Peachy
a430e275dd Fix lua compile error on most targets, introduced in 8d77ec8
Change-Id: I217f78a9e348a18552563c6c3b235c9aed956f54
2019-08-08 15:09:04 +02:00
William Wilgus
8d77ec88a5 lua LCD fix
forgot to set new size after realloc

forgot to set sizelineinfo to 0 after free

Change-Id: Iaf7533aafaba1e2abf9599c9e1d0b75d913a8c36
2019-08-08 07:36:04 -05:00
William Wilgus
d61ea6c5ee lua LCD (Lua Compact Debug) patch
LCD developed 9/2015 by Terry Ellison

 We've already discarded the ldebug module from lua
 it only makes sense to discard the debug info as well
 adds 1.5 K to the binary
 saves 8 Kb on the base state
 once scripts start getting called i've seen 10-50Kb savings but it all depends on
 what exactly you are running

Change-Id: Ibb74f344df1c4c96380ec6c98b010a810e9ae9cc
2019-08-08 07:11:30 +02:00
Franklin Wei
1dabca6c26 sdl: document some pointer voodoo
This was lifted straight from pictureflow...

Change-Id: Ie09184390e6fcea007e7daea001f075de307f878
2019-08-08 00:10:34 -04:00
Solomon Peachy
cd77d9283f Further lanuage tweaks:
- Corrected X3 mSD slot voices
 - Synchronized English-US
 - Synchronized Russian

Change-Id: If0dffc7b06b5434a318342856e101d997a91b861
2019-08-07 20:07:27 +02:00
Solomon Peachy
4b12b685b9 Further updates to the Russian voiced strings, by Igor Poretsky
(These had to be fixed up by hand)

Change-Id: I951d1bcf50af03e6a313e5636f8594c285656507
2019-08-07 17:23:18 +02:00
Solomon Peachy
5ace14b55d Major update to Russian Translation, by Igor Poretsky
(Not all chunks made it due to dependencies on non-merged stuff)

Change-Id: I370ecba4ac4d4009e65b2829c32dfc3bde00220f
2019-08-07 17:01:51 +02:00
Solomon Peachy
b1f2c795a6 Speech feedback in the pictureflow plugin
Patch by Igor Poretsky

Change-Id: I99d789e43d1093c69b4d76f58704303d3c1b3c80
2019-08-07 09:50:27 -04:00
Solomon Peachy
2ebb8da275 Mikmod plugin improvements
- Improved sound quality (use 44.1KHz)
 - Conventional mixer is now used
 - Playback is performed in a separate thread
 - Speech feedback in menus

Patch by Igor Poretsky

Change-Id: I13baa224cefd67aefe6d62b988971bfbd421757d
2019-08-07 09:48:15 -04:00
Solomon Peachy
e6b03ffa82 Respect age when freeing thumbnails from clip cache.
Otherwise they could get freed while queued.

Patch by Igor Poretsky

Change-Id: I436b074d81a85cfeb68a07a17320a3c9c0a43e1e
2019-08-06 13:37:20 +02:00
Solomon Peachy
2d70fdcd8c Improved reliability of runtime accounting and speaking it.
Change-Id: I6f0fb907e0378487cec387a2cfd3a20b9a596c4e
2019-08-06 04:47:20 +02:00
Solomon Peachy
4c481d2b0e Fix some bad strings in two language files.
Patch by Igor Poretsky

Change-Id: Id46eb8829eb343db1bb0e936363e71fcc071fd97
2019-08-06 04:45:56 +02:00
William Wilgus
951a614852 lua fix lua_close on os.exit(0)
Change-Id: Ib225ecf9ea64c95e438c4114b23239c118ab19a2
2019-08-05 21:25:01 -05:00
William Wilgus
1b41e6ec43 lua fix crashes EGC failure to lock stack in concat
Change-Id: I980637b1d8aa91d7ac0ed71fd0e7d21bda7876c4
2019-08-05 21:20:30 -05:00
Solomon Peachy
305ec1211f Synchronize the english-US translation, including missing voice strings.
Change-Id: I9e5841ff0ce71f513feb2ce84489b71787d215e9
2019-08-06 03:17:08 +02:00
Solomon Peachy
0544d974f9 Fix rockbox info screen on non-MULTIVOLUME targets
Regression introduced in c3a775c05b

Change-Id: Idd069d6325e3403b4de445856184758d3f8230a5
2019-08-05 21:15:40 -04:00
Solomon Peachy
ed724fecb1 Midiplay plugin ehancements
- Improved robustness
 - Improved sound quality
 - Use mixer and DSP

Patch by Igor Poretsky

Change-Id: I6fa617158cbaa53ae842295cdbdbe3a478e49ded
2019-08-05 20:48:40 +02:00
Solomon Peachy
eea5bfc9ae Two more warning fixes for the Chinese (Traditional) translation.
Change-Id: I646ee9ee8ebe9efc64ff9c7551cddf093579d9a0
2019-08-05 16:12:11 +02:00
Solomon Peachy
9c8bccbc39 Fix up warnings introduced by Traditional Chinese Language update.
I think I got them all.

Change-Id: If3a2e0438c92472ec8aaf86f4341dc5fd7412e2d
2019-08-05 15:18:01 +02:00
Solomon Peachy
ca5bb32d6c FS#13071: Updated Chinese (Traditional) Translation
Courtesy of Guo Zhong Kai

Change-Id: Ic117fa1f01ea507c970521f54b130a0f47301d89
2019-08-05 14:17:56 +02:00
Solomon Peachy
8143e4437b Speech Feedback improvements on the Quickscreen
Patch by Igor Poretsky

Change-Id: I1bb94965cb18efaa0787d7780f6cf22814231144
2019-08-05 05:01:29 +02:00
Solomon Peachy
3b7ae5e06b Improved robustness in talk code
Patch by Igor Poretsky

Change-Id: I5c0dcc693b647c7573379e33406a7b9d4b192725
2019-08-05 05:01:11 +02:00
Solomon Peachy
701bf06b26 Voice enable properties plugin
Patch by Igor Poretsky
Updated by Solomon Peachy

Change-Id: Ia2adf4a65723b08d6c438f836e3e811cba3dced0
2019-08-05 04:10:25 +02:00
Solomon Peachy
2a737d3e6f Fix stack overflow issues in properties plugin
Patch by Igor Poretsky
Updated by Solomon Peachy

Change-Id: I6b90845712ff92ce7b08b41e5ec92eb33faeff50
2019-08-05 03:25:17 +02:00
Solomon Peachy
40da2f7ba7 Speech enabled main menu config plugin
Patch by Igor Poretsky

Change-Id: Idffba2b1f1d225fc9278dcfab6a728fca5afe81d
2019-08-05 02:33:37 +02:00
Solomon Peachy
5e05484fe8 Synchronize english-us language files
Change-Id: I654e6fbd879ac7d709fc85a4758d71312eeb0cc5
2019-08-05 00:10:04 +02:00
Solomon Peachy
4d5dfab3ee Several minor voice string corrections.
Patch by Igor Poretsky

Change-Id: If8d0174e37254e9f1c24c4e0f7f29876e7f29906
2019-08-04 23:10:01 +02:00
Franklin Wei
08fd69c347 sdl: fall back to minimum supported sample rate if 22 kHz is not supported
Fixes too-fast audio playback on devices that don't support 22 kHz.

Change-Id: I78d4934bfd40f69c0d7bc9e8021df3f4edf0a9fb
2019-08-04 22:57:58 +02:00
Solomon Peachy
4ad76652ef Speech feedback in mpegplayer menus
Patch by Igor Poretsky

Change-Id: Idc6920e17be6537557f2b1cf00f7e559e30b45e8
2019-08-04 22:47:00 +02:00
Franklin Wei
7234de58ae sdl: don't set alignment trap if < ARMv5
This should fix crashes on ARM7TDMI as reported by foolsh.

Change-Id: I9aaf6196837d284a67a9e2b0edc72ecd644fd59f
2019-08-04 20:59:30 +02:00
William Wilgus
448b97a888 fix recording.c file split time in seconds not minutes
FS#13173

Change-Id: Icae45bf21c3470e04e7d99355a09d016d204d574
2019-08-04 13:38:38 -05:00
William Wilgus
d1f349bf77 lua optimize print include, fix draw_poly
Change-Id: Ibb530cfa63681727be518173404952e897c9d297
2019-08-04 17:54:03 +02:00
William Wilgus
f85df30e3e lua add rlimg.lua example script split large includes to separate files
Change-Id: I67cac5bc4ce5525ab30abf9443f6cc1a33190512
2019-08-04 16:57:02 +02:00
Solomon Peachy
4209c09770 Fix warning on Fuze+ introduced by a09d4adb
Change-Id: Ie39ef6f32578ecced81db9f04c49eeb9d58a128f
2019-08-03 21:25:02 -04:00
Moshe Piekarski
9d79cefc91 Fuze+ hotkeys and quickscreen
Add bottom left as quickscreen and bottom right as hotkey acroos the
board for fuze+. Meant as a
stopgap until gesture support becomes good enough that it is unnecessary

Also adds my name to CREDITS

Change-Id: If1729b7d53d967081b6d97a9a49cd66312c96ed4
2019-08-04 01:56:51 +02:00
Solomon Peachy
a18803af27 Creative Zen keymap fixes:
- Assigned hotkey to long back
 - Assigned quickscreen invocation to long menu
 - Fixed pitchscreen control
 - Assigned long presses in pitchscreen

Patch by Igor Poretsky

Change-Id: I56ca8ea046ba564356f0a178a724182df88a3ac1
2019-08-04 00:41:30 +02:00
Solomon Peachy
51d47c53f7 Pitchscreen keymap fixes for Sony NWZ targets
- Pitchscreen control fixed
  - Long press assigned

Patch by Igor Poretsky

Change-Id: Ic05ad0556b02de4c994ffc7383f1582d0b9619f4
2019-08-04 00:24:38 +02:00
Solomon Peachy
e73ef014cd Correct speech feedback for volume limit setting
Patch by Igor Poretsky

Change-Id: I514785b22701395ea1505cde2606ea59898ea6df
2019-08-03 23:24:10 +02:00
Franklin Wei
827c881583 quake: update readme
Change-Id: Ic9ec250ad9c58dad33b703f0874c0307962fd199
2019-08-03 12:30:40 -04:00
Franklin Wei
7ba2ef566e sdl: use mutex in printf()
This prevents lines of output being overwritten by different threads.

Change-Id: I24cee52238b53c8a4b2536e082bb4bcd103d8d60
2019-08-03 05:05:35 +02:00
Franklin Wei
fee68fc612 quake: synchronize Mod_LoadModel and S_LoadSound
This is not a very pretty fix, but code that doesn't crash is better than
code that crashes... "If it runs, it's done."

Change-Id: Ia1d0c537e5e5e60fb80cf7d7de2332e1c712806f
2019-08-03 05:05:05 +02:00
William Wilgus
9d2af8777f lua update tagnav.lua with reload menu and bug fixes
Change-Id: I0e7364a3432bf867cb368c131bf83643115f9d0b
2019-08-02 05:16:43 +02:00
William Wilgus
501404d703 tagtree add %reload to allow hot reloading of tagnavi config
adds (static) function tagtree_unload
 frees all buflib allocations for tagtree

adds command %reload that allows a new tagnavi file to be loaded
without device restart
use it like so..
"Reload..." -> %reload

Allocations are now checked for validity (probably a good idea anyway)

Change-Id: I2b4b9b7e253f97f3e6575e0ea7a92905e004d47f
2019-08-02 05:16:16 +02:00
Solomon Peachy
e6fae44520 xduoox3: Use correct LANG_DISK_NAME strings.
Change-Id: Ic2e16f3e67e080dc53ce7a5f994fbaeaa15d10bc
2019-08-01 15:18:14 +02:00
Solomon Peachy
c3a775c05b Make info screen properly multi-volume aware.
It will now display a line for every volume that's backed by a real drive.

Change-Id: I8fec9018729fc1b0d4f4322cd4421ce7fa945e75
2019-08-01 15:17:40 +02:00
Vencislav Atanasov
722ddcf6ba sdl: Fixes for the SDL apps, so they support building simulator on Windows
Change-Id: I277d391482a80e5bf9dd8049cd3b78c5cae7205e
2019-07-31 19:34:18 +02:00
Franklin Wei
94109a9506 quake: fix file loading errors
Forgot a return statement in Sys_FileRead (which slipped by since I've made
the questionable decision to disable all warnings...)

Change-Id: Ia0f3da52b43765b8e0e9953893ac7957ec2f6c2e
2019-07-30 03:44:43 +02:00
Franklin Wei
5e0bd5bfc0 quake: add notification upon strange error
For some reason a NULL pointer creeps in, on the simulator only, it seems.
This makes sure that if it happens on target we'll know about it.

Change-Id: I7a5bc9dd3ef71f28d58d0d456d23007dc0d49ce3
2019-07-30 03:44:25 +02:00
Franklin Wei
caee6c578d quake: fix race condition
COM_LoadStackFile was not thread-safe since it relied on a global variable
to pass the loadbuf parameter to COM_LoadFile. This was causing mysterious
crashes when model loading and audio mixing were happening simultaneously.

Change-Id: I505c5ef0ed49d0c4aa4b11cfed05647c75b5b40d
2019-07-30 03:44:09 +02:00
Franklin Wei
0b23348610 sdl: forward-declare fscanf_wrapper
Silences a few warnings (if you enable them).

Change-Id: Id9a9f4c688742c13ee3eb0777c40b4d4edcda224
2019-07-30 03:43:57 +02:00
Franklin Wei
c31700f922 quake: properly synchronize zone.c
Preventative measures. Somehow SDLQuake managed without these...

Change-Id: Icef15f3f653fa115ad8fb1ccc3f9682e453701c3
2019-07-30 03:42:36 +02:00
Solomon Peachy
4f469e90ef Debug menu now show partitions on all drives, not just the first.
Change-Id: I76e4cb6cb3d23ed72a6dc6432910eb8c3415c5d8
2019-07-29 21:26:17 -04:00
William Wilgus
138a4f9d3d lua rocklib_img optimize functions with multiple checkint calls
Uses int arrays and calls luaL_checkint in a loop

Change-Id: Ib73dab886f018c787bd995f64d990981d194069f
2019-07-29 05:54:27 -05:00
William Wilgus
90118f14cf lua add demo scripts, atexit handler, gui_scrollbar_draw
Change-Id: Ie8794e8a487f73952dae43e036787b6972fdbbee
2019-07-29 02:51:29 -05:00
Franklin Wei
8bafa1bc9b pacbox: fix red and enable AI on all targets
Change-Id: I4275e4ec374f3b5a6839890e4a2aa0f577f56522
2019-07-28 21:03:38 -04:00
Moshe Piekarski
b3295f0ed6 Pacbox AI
Pacman can make moves by itself

Change-Id: I7a39fed1e2bf5dbfb07e4d801d080a6e097730e9
2019-07-28 20:25:16 -04:00
Vencislav Atanasov
183e45e8d0
sdl: Remove platform-specific code
Also nuke the Makefiles of Duke Nukem 3D (pun intended).

Change-Id: If2707cf079bfb9299347f9c5f980780134b6ecda
2019-07-29 01:59:40 +03:00
Franklin Wei
e19857e712 duke3d: remove unused files
A bunch of cruft left over when I copied the files...

Change-Id: I29d12dae9e507af477fc06ff348c02aee68606a8
2019-07-29 00:50:23 +02:00
Franklin Wei
8379b230f6 lua: wrap thread_set_priority with #ifdef HAVE_PRIORITY_SCHEDULING
Should fix a compile-time error on simulator.

Change-Id: I5962479579350ebffe6dcce4f65a629b108ff936
2019-07-29 00:50:11 +02:00
Solomon Peachy
5572904887 chessbox: Fixes and enhancements
- Unfinished game is now saved along with current position.
- All savings are automatically done on shutdown.
- Implemented facility to view played games.
- Fixed bug that prevented program from the very first move.

Patch by Igor Poretsky

Change-Id: I997b97752e4362ed953309bea985d071f9db229b
2019-07-28 18:39:41 -04:00
Vencislav Atanasov
7f9fc20afa Use full_path_subst on more places, to avoid replacing the wrong occurrences in
paths.

If ROOTDIR=/rockbox and BUILDDIR=/rockbox/build-something, it is now possible to
successfully build both target binaries and simulators.

Change-Id: If12d1d5933c5a15feebf627a4f1636dc1e3a67fa
2019-07-28 21:00:57 +02:00
Franklin Wei
d8330c9c18 sdl: gut OS/2, win32 code from SDL.c
This should help with compiling win32 simulators.

Change-Id: Icfbf78f7d0a8b0ddebffa8daac3adf55ac21f139
2019-07-28 14:27:49 -04:00
Franklin Wei
090bdedc62 quake: add README with some notes
Change-Id: I702e81f8715b505d4ed6d0eca861e3ddb680038d
2019-07-28 14:06:45 -04:00
Franklin Wei
711ddfdaad sdl: gut non-Rockbox platform detection code
This should prevent false positives when simulators for other systems (e.g.
win32).

Change-Id: Ib14a277fbfeb1b0ae141ebc4591d80a2cc0f526d
2019-07-28 13:59:32 -04:00
Solomon Peachy
c2139db6c5 Ninety-nine bugs on the wall, Fix one bug, pass it around, 101 bugs on the wall..
Properly fixes bug introduced in 4beafe1 (and incorrectly fixed in 51fe1b6)

Change-Id: I053bb110746afdc3d9588b1b502a4cb333468a2b
2019-07-28 10:07:27 -04:00
Solomon Peachy
51fe1b6705 volume_ismounted is gated by HAVE_DIRCACHE rather than HAVE_MULTIVOLUME
Should fix the various sim builds.

Change-Id: I1dc5e8228698afb32c84ada2aa916e52e19f49d7
2019-07-28 15:27:04 +02:00
William Wilgus
45bd14b392 Lua Add Emergency Garbage Collector
Derivative of work by RobertGabrielJakabosky
 http://lua-users.org/wiki/EmergencyGarbageCollector

I've only implemented the not enough memory part and
 expanded this idea to adding a mechanism to signal
 the OOM condition of the plugin buffer which allows us to only
 grab the playback buffer after garbage collection fails
 (SO THE MUSIC KEEPS PLAYING AS LONG AS POSSIBLE)

Change-Id: I684fb98b540ffc01f7ba324ab5b761ceb59b9f9b
2019-07-28 15:17:48 +02:00
Solomon Peachy
4beafe16fa Show time, date, and recording directory in the info screen
Patch by Igor Poretsky

Change-Id: I5db0d018742c11dd9bf3ca4c9539cd91f94d4c2e
2019-07-28 14:57:14 +02:00
William Wilgus
ddf612c84b lua remove unneeded plugin functions
Change-Id: I04bc38d03b7f0ca65a815685eb6ab0f5ff825c45
2019-07-28 07:29:10 -05:00
Franklin Wei
fd20114eb2 robotfindskitten: clear message line before cinema scene
Just writes a bunch of spaces to clear the space before playing our
animation.

Change-Id: I9422190b691039252de70a5c7eec6286c686f031
2019-07-28 01:30:29 +02:00
Franklin Wei
feacbcd639 quake: cache files in memory to eliminate skips
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
2019-07-27 16:07:39 -04:00
William Wilgus
42263152d4 Multiboot update manual entry
Change-Id: I99abe45adaade350222fa1f0aaf864a06d6dfcdf
2019-07-27 21:46:54 +02:00
William Wilgus
e1475a38ef Fix non aligned crashes with tlsf
When the starting address of the plugin buffer
 is not aligned to 8 bytes crashes occur in tlsf
(on ARM atleast)

Change-Id: I655500c25e1c8f84b4a2418e9ec5c5948e4bea82
2019-07-27 14:30:45 +02:00
Franklin Wei
cdfb7d44f2 sdl: fix video regression introduced by 5d05b9d
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
2019-07-25 14:27:17 -04:00
William Wilgus
6e32e06498 lua add sound_current, consolidate sound_ functions
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
2019-07-25 10:17:40 -05:00
William Wilgus
5f9d1f59d3 Add sound_current to plugin api
Adds:
	sound_current(int setting)
		returns the current sound setting from global_settings
		complements sound_max, sound_min and sound_default

Change-Id: I35bd893753c958f808492906fe533edc51d5d57c
2019-07-25 00:48:40 -05:00
Franklin Wei
7e4902bf6b quake: fix errorneous endian-correcting reads
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
2019-07-24 21:02:11 -04:00
Solomon Peachy
7bef453e03 FS#12887: Fix playlist order after moving a track before current
Original patch by Juan Gonzalez
Updated by Igor Poretsky

Change-Id: I913d96df906e56fb4063485a6725cd13e395f165
2019-07-24 14:20:03 -04:00
Franklin Wei
ef9ee8935f quake: fix unaligned accesses in model.c
Allows playing registered episodes.

Change-Id: I20e1ca2000776a19767a9c3caef790d4f62ca188
2019-07-21 15:13:35 -04:00
Franklin Wei
2ca47176f9 quake: pack structs which could potentially be unaligned
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
2019-07-21 15:13:35 -04:00
Franklin Wei
f83de422fa quake: enable building Quake2
Change-Id: I67f8f7c6e7e337806751057d1c9ebdae16c54119
2019-07-21 15:13:35 -04:00
Solomon Peachy
5a84239e43 Add speech feedback to imageviewer plugin
Patch by Igor Poretsky

Change-Id: Ifcca7342d07f0d7fb90d282468f7e6576c13d36b
2019-07-20 17:20:19 -04:00
Frank Gevaerts
859f762814 Move get_codepage_name() back out of #ifdef HAVE_LCD_BITMAP
55eb1c54 accidentally put it there.

Change-Id: I25d1984f7d4a1e6d65d23aafab5eefea4f92322e
2019-07-20 22:06:30 +02:00
Frank Gevaerts
4d2874fd3d Don't have the inclusion of lang_enum.h depend on PLUGIN
This #ifdef apparcntly confuses dependency generation, and since lang_enum.h
just declares an enum, including it unconditionally is harmless.

Change-Id: I8feaff7657080962f1ae6305492075c8a5bca673
2019-07-20 21:32:23 +02:00
Solomon Peachy
78892b5eb0 FS#7705: Voice enable battery bench plugin
Original patch by Daniel Dalton
Updated by Igor Poretsky

Change-Id: I40d3bb89dbaf3582e1d7af8e8964205507cd2a8d
2019-07-20 20:42:02 +02:00
Solomon Peachy
4edaf3fb98 FS#7912: Voice enable the chessbox plugin
Original patch by Mario Lang
Heavily updated by Igor Poretsky

Change-Id: Iaa0c32a79a464860ff294096825ae788f35cf312
2019-07-20 20:14:18 +02:00
Franklin Wei
ee659d4d7a Move date/time strings out of RTC context
Should fix plugin build.

Change-Id: I332235a4e7d08a80abd91fa0705e950c7dfec449
2019-07-20 13:36:10 -04:00
Solomon Peachy
d1b8b39f55 Fix build on non-RTC targets.
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
2019-07-20 13:00:30 -04:00
Frank Gevaerts
3665eecf47 Increase set_time_screen() buffer size for hosted to keep the compiler happy.
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
2019-07-20 17:11:32 +02:00
Solomon Peachy
3cb272c97a build: Fix puzzles build due to missing dependency
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
2019-07-20 10:06:12 -04:00
William Wilgus
6392e05476 Plugin API
Reorganize Plugin functions in prep for API bump

Stub in sound_current

add sleep_timer

Change-Id: I74b3a433c86bd6cec43a7c45ae0d2db95c97bb60
2019-07-20 04:50:57 -05:00
Solomon Peachy
55eb1c54eb FS#7704 - Talk support for plugins
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
2019-07-20 08:48:35 +02:00
Franklin Wei
9c17734394 Silence warning in stdio_compat.h
Change-Id: I5aecaf6fcf42fbaf2deb933e590dcda6d01ac212
2019-07-19 23:51:07 -04:00
Franklin Wei
5d05b9d3e9 Quake!
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
2019-07-19 22:37:40 -04:00
William Wilgus
3e2b50ed3b lua events from rockbox
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
2019-07-19 20:48:34 -05:00
William Wilgus
8bd992c503 lua disable bytecode dump & undump functions
Adds a flag to remove the ability to dump and load lua bytecode

saves 6+kb

Change-Id: I080323df7f03f752e0a10928e22a7ce3190a9633
2019-07-18 14:56:00 -05:00
William Wilgus
d5908f520e Fix Red lua move constants out of binary image
didn't consider sims might have reserved enums

Change-Id: Ic404972f0836bc81ba149f4ecdd3ec61bd8bd4b3
2019-07-18 10:53:34 -05:00
William Wilgus
c9aeb4284e lua move constants out of binary image
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
2019-07-18 08:42:00 -05:00
William Wilgus
47639fb9ac lua alphabetically sort perl generated rocklib_aux functions
Change-Id: I6566c19a0fee630a5e250c1244159d5b488b57ff
2019-07-17 10:22:21 -05:00
eevan78
03e6b17a28 Updated Serbian translation
Change-Id: I93477548ddd92a5390ac2a828b4262e3bb516f4b
2019-07-15 14:09:25 +02:00
William Wilgus
fc25562842 lua close state on os.exit
Change-Id: I376fad0f92f1155698740e1b8599a3385998575c
2019-07-13 07:46:32 -05:00
Franklin Wei
7739ad6622 wolf3d: allow entering in-game jukebox by holding fire button
Change-Id: I8936178191e682b70c64ef6ae04d6636e5cf3521
2019-07-12 16:21:11 -04:00
William Wilgus
ee58f2601c lua reduce heap allocated buffer sizes, organize luaconf.h
Change-Id: Ib9e568ea73a01474facd57cc155e62fa3dc093f7
2019-07-11 11:59:43 -05:00
William Wilgus
a332924f68 lua late bound cfunction tables
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
2019-07-11 00:09:54 -05:00
William Wilgus
c6fcb1cf45 lua inbinary strings
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
d54659b572

Change-Id: I21d6dcfa32523877efd9f70fb0f88f2a02872649
2019-07-11 00:31:41 +02:00
Franklin Wei
42240f6990 wolf3d: increase default viewport size
Makes things a little bigger by default (but not maximized).

Change-Id: I9e4ae725e22458f1e5140a560ff242159ef582d7
2019-07-10 17:03:26 -04:00
Franklin Wei
89aea2d5fe wolf3d: write configs to /.rockbox/wolf3d instead of /.wolf4sdl
Let's keep things neat.

Change-Id: I995b2c4949d3adbbd7ea4ef361f0712aa222612e
2019-07-10 17:03:26 -04:00
William Wilgus
3e27705eb9 tagtree.c->loadroot() guard against overflow
forum user chris_s noted an possible unhandled cache overflow

Change-Id: Ia79399d6581ef6b635578896519fda8126c731d7
2019-07-10 09:38:36 +02:00
William Wilgus
cf6584a483 Fix possible truncation playlist_catalog.c->catalog_add_to_a_playlist
Change-Id: Ib142b07916ccca044674e5cabec379316c07e9d9
2019-07-10 06:52:43 +02:00
William Wilgus
3ec002e121 Fix truncation warning color_picker.c->draw_screen
Change-Id: I72f16163684aba6c9c3fcf4ade6f2906d80b3899
2019-07-10 06:31:22 +02:00
William Wilgus
a980c0b3e5 Fix possible truncation statusbar.c->gui_statusbar_icon_battery
limit percent range to 0 - 100%

Change-Id: I46477cdfe954fb1ea3e6158949c920769447762e
2019-07-10 06:09:46 +02:00
William Wilgus
fc7a45853b Fix possible truncation albumart.c
Change-Id: Ie0e576f26c0507cc12fbdc12093d6fe924377e1d
2019-07-09 22:58:06 -05:00
William Wilgus
c0dbfc8130 lua add track length & elapsed to rb.audio()
track elapsed is needed to use fast-forward and rewind effectively
track length might as well be added too..

Change-Id: I906c92eb5260164c6177d8c0a8ff879b1fad7898
2019-07-10 05:07:25 +02:00
Franklin Wei
152e415b0d wolf3d: fix FM OPL alignment bug in a cleaner way
wl_def.h has a #pragma pack(1), which causes issues when we take the
address of an unaligned struct field. This fixes the issue by
disabling packing in fmopl_gpl.c.

Change-Id: I526880fa73226e8028855896f7efc3a66571b3ec
2019-07-09 17:34:09 -04:00
Franklin Wei
b1f16371b0 sdl: fix build
-T flag is program-specific.

Change-Id: I730a9c19be43e79c7ff4e6d4fb5b8f498f08515e
2019-07-09 13:07:43 -04:00