Commit graph

57 commits

Author SHA1 Message Date
William Wilgus
2ffe87902d Add Invalid Voice Announcement to the voice system FS#13216
When a voice file is invalid or fails to load the voice system splash a
message 'Invalid Voice'

Now we supply a single voice file (currently only english is used)
the support for other languages is in but I haven't set it up to
look for anything but InvalidVoice_english.talk

Also adds a one time kill voice thread function
 ie. it doesn't allow re-init after killing the voice thread & queue

Change-Id: I7b43f340c3cc65c65110190f0e0075b31218a7ac
2020-09-20 16:08:49 -04: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
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
Igor B. Poretsky
3fffabf50d Negative values speaking fix for some certain situations 2019-08-09 06:57:03 +02: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
William Wilgus
a06d9c85f7 Auto-Ranging Time Formatting For Menus (hh:mm:ss:mss)
Unifies time formatting in settings_list.c allows time format to
display as HH:MM:SS.MSS or any consecutive combination thereof
(hh:mm:ss, mm:ss, mm:ss.mss, ss.mss, hh, mm, ss ,mss)
works in INT and TABLE settings with the addition of flag 'F_TIME_SETTING'

Time is auto-ranged dependent on value

Adds talk_time_intervals to allow time values to be spoken similar to
display format:  x Hours, x Minutes, x Seconds, x Milliseconds

Table lookups merged or removed from recording, clip meter and lcd timeout
-String_Choice replaced with TABLE_SETTING or INT_SETTING for these
functions as well, cleaned-up cfg_vals that get saved to cfgfile

RTL Languages ARE supported

Negative values ARE supported

Backlight on/off are now Always and Never to share formatter with LCD
Timeout

Added flag to allow ranged units to be locked to a minimum index

Added flag to allow leading zero to be supressed from the largest unit

merged talk_time_unit() and talk_time_intervals()

optimized time_split()

optimized format_time_auto()

Backlight time-out list same as original

Change-Id: I59027c62d3f2956bd16fdcc1a48b2ac32c084abd
2018-12-22 12:27:21 -06:00
Solomon Peachy
4adad0bc1f FS#6323: Speech for ID3 viewer, playlist catalog and playlist viewer
Modified from original ticket, Taken from Igor Poretsky's tree, and
further modified by myself to incorporate feedback.

Change-Id: Ibc2180e52af76890b1448d23f79386fd0f88f709
2018-12-15 18:00:23 +01:00
Thomas Martitz
dac40fdd60 talk: Add debug menu entry to view statistics about talk engine.
This engine includes voicefile, memory usage and cache
hits/misses for TALK_PARTIAL_LOAD.

Change-Id: I331981ddda39ea30c57b4b74504accb3c556c3b9
2014-02-02 19:40:39 +01:00
Thomas Martitz
57000b513b talk: Make talk_voice_required() local to talk.c
Change-Id: I3a04760d550efab7f011a917597ef29c039b05bd
2014-02-02 19:40:39 +01:00
Thomas Martitz
22e802e800 playback,talk: Share audiobuffer via core_alloc_maximum().
This fixes the radioart crash that was the result of buffering.c working
on a freed buffer at the same time as buflib (radioart uses buffering.c for the
images). With this change the buffer is owned by buflib exclusively so this
cannot happen.

As a result, audio_get_buffer() doesn't exist anymore. Callers should call
core_alloc_maximum() directly. This buffer needs to be protected as usual
against movement if necessary (previously it was not protected at all which
cased the radioart crash), To get most of it they can adjust the willingness of
the talk engine to give its buffer away (at the expense of disabling voice
interface) with the new talk_buffer_set_policy() function.

Change-Id: I52123012208d04967876a304451d634e2bef3a33
2013-12-23 12:17:38 +01:00
Boris Gjenero
bda8a963ad Add conditionals for functions only needed on SWCODEC targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31296 a1c6a512-1295-4272-9138-f99709370657
2011-12-15 20:58:14 +00:00
Thomas Martitz
d1322b7159 GSoC/Buflib: Replace all direct accesses to audiobuf with buffer API functions.
Namely, introduce buffer_get_buffer() and buffer_release_buffer().
buffer_get_buffer() aquires all available and grabs a lock, attempting to
call buffer_alloc() or buffer_get_buffer() while this lock is locked will cause
a panicf() (doesn't actually happen, but is for debugging purpose).
buffer_release_buffer() unlocks that lock and can additionally increment the
audiobuf buffer to make an allocation. Pass 0 to only unlock if buffer was
used temporarily only.
buffer_available() is a replacement function to query audiobuflen, i.e. what's
left in the buffer.
Buffer init is moved up in the init chain and handles ipodvideo64mb internally.

Further changes happened to mp3data.c and talk.c as to not call the above API
functions, but get the buffer from callers. The caller is the audio system
which has the buffer lock while mp3data.c and talk mess with the buffer.
mpeg.c now implements some buffer related functions of playback.h, especially
audio_get_buffer(), allowing to reduce #ifdef hell a tiny bit.

audiobuf and audiobufend are local to buffer.c now.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30308 a1c6a512-1295-4272-9138-f99709370657
2011-08-14 15:13:00 +00:00
Andree Buschmann
460d54977a FS#11939: Simplify talk_time_unit().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29347 a1c6a512-1295-4272-9138-f99709370657
2011-02-20 15:23:18 +00:00
Andree Buschmann
e3abdb1a52 Undo unwanted commit r29310.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29311 a1c6a512-1295-4272-9138-f99709370657
2011-02-15 20:10:50 +00:00
Andree Buschmann
237ca504e1 All AAC-HE files will double the frame sample count, not only AAC-HE files with SBR upsampling. This change fixes issues with some m4a files reported in the forums.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29310 a1c6a512-1295-4272-9138-f99709370657
2011-02-15 20:00:28 +00:00
Nils Wallménius
b82fd56e0f Delete unused function, const police, minor style police
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18664 a1c6a512-1295-4272-9138-f99709370657
2008-09-29 16:29:51 +00:00
Stéphane Doyon
3eb76d053d talk.c helper functions to voice a filename, in a more generic way
than from tree.c
Voice a file or dir's thumbnail from path components,
or spell last path component. Ability to prefix the thumbnail or
spelling with some talk ids.

This is the talk_file patch from FS#6323, just refactored a bit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18048 a1c6a512-1295-4272-9138-f99709370657
2008-07-15 14:55:31 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Nicolas Pennequin
357ffb3c46 Convert the whole codebase to UTF-8, except docs/COMMITTERS and tools/creative.c, which need checking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17369 a1c6a512-1295-4272-9138-f99709370657
2008-05-05 10:32:46 +00:00
Nils Wallménius
2521bf5d26 Fix speaking of decimal values to work when decimals != 1, spell the fractional part instead of speaking it like a number, break out a part of output_dyn_value into a separate function and use it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17185 a1c6a512-1295-4272-9138-f99709370657
2008-04-20 11:02:42 +00:00
Nils Wallménius
05d2bfd5e0 Introduce support for passing decimal numbers in talk ids and speak them, use in the settings menu to fix FS#7622
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17168 a1c6a512-1295-4272-9138-f99709370657
2008-04-19 13:19:04 +00:00
Steve Bavin
cd88e2ad93 Code police raid on the settings code, consting and putting headers alongside their implementation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16798 a1c6a512-1295-4272-9138-f99709370657
2008-03-25 15:24:03 +00:00
Nils Wallménius
acbd780239 Make id's created with the TALK_ID macro work in 64 bit sims
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15723 a1c6a512-1295-4272-9138-f99709370657
2007-11-20 19:50:52 +00:00
Michael Sevakis
99617d71ba Make speex the new voice format for SWCODEC targets (non-Archos). Remove codec swapping and build speex voice decoding directly into the core binary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15668 a1c6a512-1295-4272-9138-f99709370657
2007-11-18 17:12:19 +00:00
Nils Wallménius
f801714572 Actually check if a voice file has the correct version before using it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15629 a1c6a512-1295-4272-9138-f99709370657
2007-11-15 19:32:15 +00:00
Jonathan Gordon
5cab5dab0e fix red
fix Björn's name in the (c)
fix FS#8105 - backing out of the submenus in the context menus shuoldnt leave the context menu completly (expect playlist which possibly makes sense?)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15513 a1c6a512-1295-4272-9138-f99709370657
2007-11-07 10:06:21 +00:00
Jonathan Gordon
c14430a9c1 compile talk.c on hwcodec sim. it wont actually talk though
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15512 a1c6a512-1295-4272-9138-f99709370657
2007-11-07 09:28:07 +00:00
Stéphane Doyon
8b8785b541 Accept FS#7798: Voice unit for time
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15416 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 03:43:12 +00:00
Steve Bavin
072a3c5017 Complete info screen voicing; now consistent with displayed screen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15284 a1c6a512-1295-4272-9138-f99709370657
2007-10-24 12:32:12 +00:00
Steve Bavin
32a9575130 FS#7994 - Rename talk.c API, make talk_disable() affect all talking (not just menus), hopefully save some space.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15206 a1c6a512-1295-4272-9138-f99709370657
2007-10-19 15:31:42 +00:00
Stéphane Doyon
3e31d50955 Export shutup() function from talk.c.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15061 a1c6a512-1295-4272-9138-f99709370657
2007-10-10 03:12:17 +00:00
Jonathan Gordon
d7d6b780d4 Accept FS#7897 with some changes by me. moves the code to talk time/date out of main_menu.c to make it hopefully more useful.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15011 a1c6a512-1295-4272-9138-f99709370657
2007-10-07 08:12:01 +00:00
Nils Wallménius
441fa76a6d Fix flushing of voice during playback, patch in FS#6239 by Stephane Doyon and Daniel Dalton
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14517 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 15:11:19 +00:00
Peter D'Hoye
ebcf06d237 Make peakmeter release setting work in units per tick (was units per read), add the unit and make it voiced. Make old leftover in lang file deprecated
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14390 a1c6a512-1295-4272-9138-f99709370657
2007-08-18 23:03:03 +00:00
Nils Wallménius
1ff0c351f7 Fix red archos sims and make some minor cleanup
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14216 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 15:01:45 +00:00
Nils Wallménius
5b76936a44 Accept FS#6159 'Add voice to roughly 100 splash screens and yes-no menus' by Stephane Doyon with some minor tweaks by me. Rerun 'configure' and do a 'make clean' before rebuilding your voice files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14213 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 13:08:36 +00:00
Steve Bavin
541f403342 ..and add a couple of comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13617 a1c6a512-1295-4272-9138-f99709370657
2007-06-11 08:34:42 +00:00
Steve Bavin
24d9f59c78 When recording, disable voice menus without actually modifying user settings. Patch FS#7272, fixes bug FS #6163
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13615 a1c6a512-1295-4272-9138-f99709370657
2007-06-11 08:28:38 +00:00
Jens Arnold
2597a13497 Next round of static'ing and related fixes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11836 a1c6a512-1295-4272-9138-f99709370657
2006-12-25 14:01:47 +00:00
Michael Sevakis
97d1ca5a23 SWCODEC: Audio-related threads must be free of further tasks before returning buffers. Cleanup declarations of related functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11618 a1c6a512-1295-4272-9138-f99709370657
2006-11-28 15:00:56 +00:00
Michael Sevakis
acc29d95be SWCODEC/IRAM: Save voice IRAM when a plugin initializes its IRAM. Defines two macros for declaring and initializing IRAM. Plugins should use these instead. See mp3_encoder, doom, etc. for details. Further tweaks in buffer restoration after other use. Hiding of some interfaces that should only be used by buffer management.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11544 a1c6a512-1295-4272-9138-f99709370657
2006-11-18 02:18:29 +00:00
Michael Sevakis
287deb0e74 Fixed voice units in recording quality and filesplit by size options.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11063 a1c6a512-1295-4272-9138-f99709370657
2006-09-26 17:44:43 +00:00
Michael Sevakis
4fc717a4c1 Added FS#2939 Encoder Codec Interface + Codecs by Antonius Hellmann with additional FM Recording support and my modifications
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10789 a1c6a512-1295-4272-9138-f99709370657
2006-08-28 22:38:41 +00:00
Linus Nielsen Feltzing
42f0ad3c8f Patch #5766 by Steve Bavin - Fix for various voice related crashes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10590 a1c6a512-1295-4272-9138-f99709370657
2006-08-15 18:01:42 +00:00
Martin Scarratt
9130a2a4a7 Added options to timesplit recording feature (now renamed filesplit). Choose to split file by either time or filesize. Also have the option to either start a new file or stop recording at split point. Bumped config version so save your settings before you update your build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10285 a1c6a512-1295-4272-9138-f99709370657
2006-07-22 17:23:05 +00:00
Jens Arnold
67de1d3d9b Thorough .lang rework: Removed all deprecated strings, combined string which were only split because long ago we had no splash(), sorted strings into logical groups to ease the transition to langv2. Bunped binary .lng version.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9398 a1c6a512-1295-4272-9138-f99709370657
2006-04-01 13:36:33 +00:00
Miika Pekkarinen
159c52dd36 Initial voice ui support for software codec platforms. Added also a
beep when changing tracks.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7360 a1c6a512-1295-4272-9138-f99709370657
2005-08-20 11:13:19 +00:00
Jean-Philippe Bernardy
45e0de3e63 long policy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5929 a1c6a512-1295-4272-9138-f99709370657
2005-02-12 11:26:36 +00:00
Jörg Hohensohn
40ae63b4fc Improvement for talking filenames: While loading the directory, already cache for which files are clips available. This avoids unsuccessful spinups while browsing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5317 a1c6a512-1295-4272-9138-f99709370657
2004-10-21 18:34:48 +00:00
Jörg Hohensohn
d48442039e patch #978765 by Carsten Tschach, new option for voice filenames: every file may have an optional .talk companion, with a filename clip. While at it, I removed the "on enter" directory talking, nobody used it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5194 a1c6a512-1295-4272-9138-f99709370657
2004-10-06 21:37:46 +00:00