aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite manual Chapter 13 Track InformationPetteri Hintsanen2021-03-081-97/+281
| | | | | | | Include emms-info-native and use homogeneous style for all info methods and their dependencies. Also describe what info symbols are recognized by Emms.
* Fix byte compilationPetteri Hintsanen2021-02-271-147/+149
| | | | | | | - Add requires to load seq-... and string-trim-right functions during compilation. - Reorder code to fix warnings about free and undeclared variables.
* Match id3v1 genres in id3v2.4 framePetteri Hintsanen2021-02-261-5/+6
| | | | v2.4 does not enclose genre references in parentheses.
* Add support for id3v1 genresPetteri Hintsanen2021-02-241-1/+141
|
* Decode id3v2 user-defined text framesPetteri Hintsanen2021-02-241-59/+86
| | | | | Frames are assumed to be key/value pairs. If key is an info-field identifier, return the value for that info-field.
* Fix id3v2 frame id to info-field mappingPetteri Hintsanen2021-02-231-16/+24
| | | | | Use TDRC for info-date. Also add some more well-known tags so that id3v2 can provide the same info-fields than Vorbis.
* Replace curved quotes with ASCII quotesPetteri Hintsanen2021-02-231-46/+46
|
* Fix whitespace trimmingPetteri Hintsanen2021-02-231-6/+7
| | | | Don't try to trim nil.
* Trim trailing whitespace from all info-fieldsPetteri Hintsanen2021-02-211-6/+5
|
* Put some id3v2.4 frame data to info-date instead of info-yearPetteri Hintsanen2021-02-211-3/+3
| | | | | | | TDRC (‘Recording time’), TDRL (‘Release time’) and TDOR (‘Original release time’) frames in id3v2.4 are time stamps, not years, so they should go to info-date and info-originaldate fields instead of info-year and info-originalyear.
* Trim trailing whitespace from id3v2 stringsPetteri Hintsanen2021-02-211-5/+7
|
* Improve id3v2 validity checksPetteri Hintsanen2021-02-211-40/+48
| | | | | | | | | - Remove id3v2 size checks agains emms-info-native--max-peek-size. Decoded sizes do not guide memory reservation anymore so checks are in that sense redundant. Trigger errors on zero-sized elements though, because they are always wrong. - Verify frame identifiers.
* Improve id3v2 error handlingPetteri Hintsanen2021-02-191-41/+51
| | | | | | | | | | - Allow zero-sized frames; in practice they mean start of padding. - Do not try to read frame headers going over tag boundary. These cases also mean start of padding in practice. - Return nil from emms-info-native--decode-id3v2 in case of errors *or* if there were no useful metadata.
* Read and parse id3v2 frames individuallyPetteri Hintsanen2021-02-181-62/+72
| | | | | | | Instead of reading the whole tag and then parsing it, do reading and parsing one frame at a time, and skip uninteresting frames. This may conserve memory and give better performance in some cases.
* Add mappings for more id3v2 text framesPetteri Hintsanen2021-02-161-0/+6
| | | | | Extract "artistsort", "titlesort", "albumsort" and few more "year" and "originalyear" frames.
* Fix id3v2 bugsPetteri Hintsanen2021-02-151-50/+102
| | | | | | | | | | | | | - Tag-level id3v2 unsynchronization is now supported. Frame-level unsynchronization is still missing, and likely won’t be implemented at all. - Fix frame size decoding between different id3v2 versions. - Use correct id3v2.2 sizes during decoding. - Remove a terminating null byte from text strings only if there is one.
* Remove emms-info-native return valuePetteri Hintsanen2021-02-111-8/+3
| | | | The value was wrong and not used anyway.
* Reorder functions and constantsPetteri Hintsanen2021-02-101-77/+73
| | | | | Constructs are now ordered from generic to specific ("top-down") and are thus, hopefully, easier to follow.
* Simplify FLAC codePetteri Hintsanen2021-02-101-66/+42
| | | | Clean up block decoder and fix incorrect last-flag calculation.
* Fix Opus channel mapping decodingPetteri Hintsanen2021-02-101-4/+13
| | | | | | It seems that bindat specs cannot refer outside themselves, so use a special variable ‘emms-info-native--opus-channel-count’ with dynamic binding to keep track of channel count.
* Use lexical bindingPetteri Hintsanen2021-02-101-1/+1
|
* Fix typos in CommentaryPetteri Hintsanen2021-02-101-4/+4
|
* Clean up Opus codePetteri Hintsanen2021-02-101-11/+8
| | | | These are only stylistic changes.
* Clean up Vorbis codePetteri Hintsanen2021-02-101-22/+19
| | | | These are only stylistic changes.
* Simplify Ogg-related codePetteri Hintsanen2021-02-101-64/+89
| | | | | Split long functions to smaller functions that are easier to understand.
* Add id3v2 (MP3) support to emms-info-nativePetteri Hintsanen2021-02-101-68/+287
| | | | | Also adjust Ogg and FLAC decoders to return info fields in a unified format.
* Add native Emacs Lisp info methodPetteri Hintsanen2020-12-242-1/+492
| | | | | This info method is a pure elisp implementation for Ogg Vorbis, Opus and FLAC file formats.
* * doc/developer-release.txt: better incantationYoni Rabkin2020-11-091-1/+1
|
* * doc/developer-release.txt: correct arcane incantationYoni Rabkin2020-11-091-1/+1
|
* * emms-tag-editor.el:Yoni Rabkin2020-11-051-1/+5
|
* * emms-tag-editor.el: Bug fixes for the tag editor.Yoni Rabkin2020-11-053-11/+20
| | | | Patches by Feng Shu <tumashu@163.com>.
* * Makefile: keep the info fileYoni Rabkin2020-11-051-1/+0
|
* * emms-info-exiftool.el: read track numbers as stringsYoni Rabkin2020-11-053-1/+6
| | | | From: Feng Shu <tumashu@163.com>: tracknumber and year should be string.
* * doc/developer-release.txt: update push commandYoni Rabkin2020-11-051-14/+14
| | | | | | | | | | | Update push command according to Stefan Monnier's advice: > + - from the "elpa" branch in Savannah push to elpa.git: > + "git push elpa elpa:refs/heads/externals/emms" AFAIK the use of "refs/heads/externals/emms" is necessary when creating this branch (i.e. for the initial push) but for updates, you can use the more concise and friendly "externals/emms".
* * emms.el: add seq as an ELPA requirementYoni Rabkin2020-11-051-2/+2
|
* * doc/developer-release.txt:Yoni Rabkin2020-10-271-1/+5
|
* * doc/developer-release.txt:Yoni Rabkin2020-10-271-2/+2
|
* * emms.info: add to root for elpaYoni Rabkin2020-10-271-76/+79
|
* update NEWS and version bumpYoni Rabkin2020-10-273-3/+6
|
* * doc/emms.texinfo:Yoni Rabkin2020-09-251-11/+12
|
* * emms-setup.el: add exiftoolYoni Rabkin2020-09-241-0/+1
|
* * doc/emms.texinfo: update manual regarding exiftoolYoni Rabkin2020-09-243-84/+138
|
* * emms-info-exiftool.el: new info methodYoni Rabkin2020-09-241-0/+101
|
* * emms.el: version bumpYoni Rabkin2020-09-221-2/+2
|
* * emms-later-do.el: name changeYoni Rabkin2020-09-223-36/+39
| | | | Conver later-do to emms-later-do in order not to pollute the namespace.
* * doc/developer-release.txt: elpa notesYoni Rabkin2020-09-221-3/+6
|
* * emms-volume.el: Fix missing quote in emms-volume-change-functionBruno Félix Rezende Ribeiro2020-07-161-1/+1
| | | | | | This change was originally commited in b136d63, but somehow got lost. It’s critical because otherwise EMMS volume library won’t load on systems lacking ‘amixer’ and ‘pactl’.
* * NEWS: update newsYoni Rabkin2020-06-121-0/+1
|
* version bump for elpaYoni Rabkin2020-06-122-3/+3
|
* Add emms.info to top-level for elpa to find.Yoni Rabkin2020-06-122-0/+3792
|