Commit graph

58 commits

Author SHA1 Message Date
Michael Sevakis
5ee13ebd39 Implements starting playback from a cuesheet.
Before time-based resume this was impossible since playback could not
be started at a specified elapsed time, only seeked with playback already
running.

Right now the "FILE" field is used, if present, to do the lookup from
from the .cue to the audio file when it is separate from the audio file.
If no path is specified, the .cue and audio file must be in the same
directory.

When the cuesheet is embedded, the containing file is used and the FILE
field is ignored.

Supports starting playback and seeking to cue points from the cuesheet
browser even without Cuesheet Support turned on.

Change-Id: Ib5b534c406f179a7f8c7042a31572b24a62c0731
Reviewed-on: http://gerrit.rockbox.org/522
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-03-10 04:13:53 +01:00
Thomas Martitz
2a471c9e84 cuesheet: Fix another possible buffer overflow with long filenames.
Change-Id: I9d8fa8fcb0a872f688664c53881fde93f2de9436
2014-01-11 18:24:48 +01:00
Thomas Martitz
fe08ac4c2f cuesheet: Fix possible buffer overflow with long filenames.
Change-Id: I49fe6da35057895d3c5a08a8723afe41eef7afe8
2014-01-11 18:01:22 +01:00
Konstantin Kudakov
8c286b4686 cuesheet: Search for /path/to/music.mp3.cue as well if all fails.
Change-Id: If58ea7c7b94de54f6d9b014f069807bb88c6a147
2014-01-11 16:29:00 +01:00
Alexander Levin
7f7a2d3b13 Rename 'mp3entry.embed_cuesheet' to 'mp3entry.embedded_cuesheet' and pull out a field (FS#12473)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31406 a1c6a512-1295-4272-9138-f99709370657
2011-12-22 18:56:11 +00:00
Nick Peskett
1b781df59c Convert hard-coded unicode byte order mark values to constants.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31374 a1c6a512-1295-4272-9138-f99709370657
2011-12-20 08:15:36 +00:00
Nick Peskett
02fd314a0b FS #12419 : Support for embedded cuesheets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31321 a1c6a512-1295-4272-9138-f99709370657
2011-12-16 10:09:41 +00:00
Andree Buschmann
ae2233b338 Change the cuesheet fix from r30359 to have a minor binsize increase on SH1.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30362 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 16:46:23 +00:00
Andree Buschmann
9931b3c7a8 Avoid overflow in cuesheet marker positioning. Fixes FS#12246. Thanks to Nick Peskett.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30359 a1c6a512-1295-4272-9138-f99709370657
2011-08-26 15:52:22 +00:00
Jonathan Gordon
e63e19b507 Fix Database red, move the cuesheet->token code into the skin engine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27616 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 13:23:33 +00:00
Jonathan Gordon
2d31d77a8b FS#11470 - new skin code, finally svn uses the new parser from the theme editor. This means that a skin that passes the editor WILL pass svn and checkwps (unless the target runs out of skin buffer or something.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27613 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 12:37:48 +00:00
Jonathan Gordon
b8d98fcc19 Change cuesheet handling so the id3 info is not spoofed anymore. If something wants the subtracks info it is easy to get to. This makes next track display in the skins show the next subtrack if we are in a cuesheet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26611 a1c6a512-1295-4272-9138-f99709370657
2010-06-06 06:28:40 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes).
This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:04:40 +00:00
Teruaki Kawashima
f50885534e Pass width instead of x+width to ab_draw_markers()/cue_draw_markers() and don't recalculate the width in these functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25053 a1c6a512-1295-4272-9138-f99709370657
2010-03-07 12:51:23 +00:00
Michael Chicoine
8e8e2627b2 FS#10856 - Skip to previous track inconsistent when using cuesheet
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24191 a1c6a512-1295-4272-9138-f99709370657
2010-01-06 14:48:42 +00:00
Jeffrey Goode
59dd433ccd Removed unneeded includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23578 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 05:46:08 +00:00
Nils Wallménius
3200d04d75 Make the formatter functions used by the settings return a pointer to avoid usless copying of lang strings, this brought with it a long chain of const correctness and a few random cleanups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22440 a1c6a512-1295-4272-9138-f99709370657
2009-08-20 16:47:44 +00:00
Jonathan Gordon
eb0061411d more cuesheet cleanup. pass the cuesheet into cue functions so they dont have to call audio_current_track()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22020 a1c6a512-1295-4272-9138-f99709370657
2009-07-24 01:13:30 +00:00
Jonathan Gordon
24b136f62d rework cuesheet support:
swcodec: search for a .cue during buffering (with the possibility of adding embedded cuesheets later)
hwcodec: search for a .cue when the id3 info for the current track is requested for the first time (disk should be spining so non issue)

major beenfit from this is simplofy cuesheet handling code a bit... if mp3entry.cuesheet != NULL then there is a valid cuesheet.. no need to worry about if its enabled and preloaded.
There is the possibility of putting the next/prev subtrack handling inside the playback code (as well as the id3 updating stuff (see FS#9789 for more info), but thats probably not a good idea.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21978 a1c6a512-1295-4272-9138-f99709370657
2009-07-20 05:18:18 +00:00
Nils Wallménius
3d4701a6e4 FS#10080
* Move strncpy() from core to the pluginlib
* Introduce strlcpy() and use that instead in most places (use memcpy in a few) in core and some plugins
* Drop strncpy() from the codec api as no codec used it
* Bump codec and plugin api versions


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21863 a1c6a512-1295-4272-9138-f99709370657
2009-07-14 13:57:45 +00:00
Bertrik Sikken
30a2713b6e Clean up some more #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20243 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 18:37:32 +00:00
Nils Wallménius
5a55772201 Small code reuse improvement
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19943 a1c6a512-1295-4272-9138-f99709370657
2009-02-08 11:09:55 +00:00
Bertrik Sikken
91948d12aa FS#9638 - temp_cue is unused and wasting memory.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19890 a1c6a512-1295-4272-9138-f99709370657
2009-01-31 19:41:29 +00:00
Jonathan Gordon
3c1dbb269f Fix FS#9830 - utf8 encoded .cue files dont get displayed properly
Also fix a possible problem where the performer and songwriter tags could get cut off


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19858 a1c6a512-1295-4272-9138-f99709370657
2009-01-26 11:24:11 +00:00
Nils Wallménius
93a87685c3 Clean up use of snprintf where strncpy if suited, avoid useless copying of constant strings for wps token evaluator, minor const police too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18625 a1c6a512-1295-4272-9138-f99709370657
2008-09-24 20:03:53 +00:00
Dominik Riebeling
02103a2fa7 Unify opening of utf-8 files (FS#6203). This also adds ignoring the BOM in several places it has been missing (as FS#6071).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18185 a1c6a512-1295-4272-9138-f99709370657
2008-08-02 20:39:03 +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
Bertrik Sikken
2843469876 Moved atoi declaration to stdlib.h. Deleted atoi.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17280 a1c6a512-1295-4272-9138-f99709370657
2008-04-28 16:18:04 +00:00
Nils Wallménius
a01996436d Use file_exists and dir_exists functions where appropriate, fix one wrong file descriptor check and one possible dir descriptor leak
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17147 a1c6a512-1295-4272-9138-f99709370657
2008-04-16 19:51:43 +00:00
Nils Wallménius
6848961aa5 Pass the buffer length to the list_get_name callback functions instead of using hardcoded MAX_PATH
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17049 a1c6a512-1295-4272-9138-f99709370657
2008-04-09 15:25:17 +00:00
Nicolas Pennequin
06c199e347 Some more debug output disabling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17026 a1c6a512-1295-4272-9138-f99709370657
2008-04-07 19:33:48 +00:00
Jonathan Gordon
5ca1539969 the menu and list now accepts a parent viewport to draw in (and the menu can be told to not show status/button bars). This lays the groundwork to fix colour problems with plugin menus (see star.c for an example.) This hopefully fixes some button bar issues as well as theme problems.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16812 a1c6a512-1295-4272-9138-f99709370657
2008-03-26 03:35:24 +00:00
Nicolas Pennequin
9e8045cc80 Fix a possible crash in the cuesheet code if the filename lacks a slash, which happens for some reason I don't quite understand yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16229 a1c6a512-1295-4272-9138-f99709370657
2008-02-05 20:00:14 +00:00
Nils Wallménius
e39fc28fdc Code police, declare pointers in .c and expor them
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15653 a1c6a512-1295-4272-9138-f99709370657
2007-11-17 14:25:02 +00:00
Robert Kukla
e1c45d227b FS#6944 - honour the default codepage setting when reading cue sheets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15595 a1c6a512-1295-4272-9138-f99709370657
2007-11-12 12:39:56 +00:00
Jonathan Gordon
cf1cef5f57 minor update to gui_synclist_do_button() which will hopefully simplify things later.
Now returns true if the action was handled in that function instead of returning the handled action.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14733 a1c6a512-1295-4272-9138-f99709370657
2007-09-17 10:08:50 +00:00
Nicolas Pennequin
5c1d259fe2 Set properties for the files I added.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14003 a1c6a512-1295-4272-9138-f99709370657
2007-07-26 14:23:08 +00:00
Jonathan Gordon
f7675a244b remove the need for action_signalscreenchange().
Fixes problems with targets where the ACTION_STD_CANCEL event is a combo


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13956 a1c6a512-1295-4272-9138-f99709370657
2007-07-22 06:05:53 +00:00
Nicolas Pennequin
d696769a82 Fix the warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13509 a1c6a512-1295-4272-9138-f99709370657
2007-05-28 23:28:55 +00:00
Nicolas Pennequin
6579818b43 Add the possibility to store cuesheets in /.rockbox/cue. The code will look for a cuesheet there in case there wasn't one in the same folder as the audio file. This is to reduce the clutter created by one cuesheet per audio file in some places.
Also some duplicate code was replaced by a function call.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13508 a1c6a512-1295-4272-9138-f99709370657
2007-05-28 23:18:31 +00:00
Nicolas Pennequin
6190a0d68d Add an item to the WPS context menu to browse a currently playing cuesheet. The menu that appears allows changing tracks within the cuesheet. It was already reachable by selecting the right cuesheet file in the file browser, but this makes it easier to use (and should help users noticing that possibility because many seemed to ignore this viewer existed).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13388 a1c6a512-1295-4272-9138-f99709370657
2007-05-14 17:34:52 +00:00
Dave Chapman
1feb8bd4a1 Minor header file cleanup - try and include the minimal number of files, and only where they are needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13344 a1c6a512-1295-4272-9138-f99709370657
2007-05-07 13:32:56 +00:00
Michael Sevakis
26d242ae65 General housekeeping: Make plugin buffer functions take size_t * instead of int * to match the parameter type of the buffer functions called in the core. Get rid of unsafe int * <==> size_t * casting. Use ssize_t where int was used and size_t where unsigned int was used in the buffer calls to not alter signedness in the plugins. No API version change since it should only be an issue for 64-bit sim builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13233 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 18:38:25 +00:00
Nicolas Pennequin
af2ca4706e Better check when using the plugin buffer to store a temp cuesheet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13007 a1c6a512-1295-4272-9138-f99709370657
2007-04-03 18:18:35 +00:00
Nicolas Pennequin
bbe1eaf89e Improve ID3 "spoofing" to allow detection of missing information by the WPS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13005 a1c6a512-1295-4272-9138-f99709370657
2007-04-02 19:40:53 +00:00
Nicolas Pennequin
d77274aeb9 Cuesheet tweaks:
* Max length for the info strings is now 80, according to the cue spec.
* Don't display the album artist if it's the same as the track artist.
* If the cue has composer info but not the tracks, the cue composer info is displayed for all the tracks.
* Slightly change the display in the cue viewer.
* A few cosmetic changes in the code.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12964 a1c6a512-1295-4272-9138-f99709370657
2007-03-29 18:39:04 +00:00
Nicolas Pennequin
8f3a37ceaa Fix the warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12950 a1c6a512-1295-4272-9138-f99709370657
2007-03-28 19:55:41 +00:00
Nicolas Pennequin
10e9dc617a Improved cuesheet parser. Among other improvements, the use of quotation marks around strings in cuesheet files is now optional.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12949 a1c6a512-1295-4272-9138-f99709370657
2007-03-28 19:43:03 +00:00
Nicolas Pennequin
538126cb34 Use isspace() instead of a naive comparison.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12948 a1c6a512-1295-4272-9138-f99709370657
2007-03-28 14:17:10 +00:00
Nicolas Pennequin
025d8d6133 Add support for the SONGWRITER cuesheet command, displayed as composer in the WPS. Also, use the album artist tag to store the disc artist defined in the cuesheet. Finally, only look for INDEX 01 commands instead of simply INDEX: we only care about INDEX 01.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12932 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 20:26:41 +00:00