Commit graph

670 commits

Author SHA1 Message Date
Serial
99f1c5cf8d Add rough ItemValue::UInt 2021-11-24 15:32:32 -05:00
Serial
eba7efc013 Add tests for Picture -> bytes methods 2021-11-23 19:29:07 -05:00
Serial
a8a6b27ff9 Add tests for format specific Picture parsers 2021-11-23 18:54:57 -05:00
Serial
1113e711ba Add Picture::from_reader, remove Picture::new 2021-11-23 12:41:57 -05:00
Serial
37806ec612 Start documenting pictures.rs 2021-11-23 11:26:08 -05:00
Serial
c527716a8e fmt 2021-11-22 19:28:08 -05:00
Serial
9878e89b33 Add PictureInformation tests 2021-11-22 17:14:02 -05:00
Serial
bae894ccef Add PictureInformation parsing for PNG and JPEG, remove PictureInformation from Picture 2021-11-22 08:31:54 -05:00
Serial
34b6cd9179 Write APE tag's read_only flag 2021-11-22 06:26:22 -05:00
Serial
b6ec17671e fmt 2021-11-22 05:14:29 -05:00
Serial
ee6584d776 Further cleanup chunk reading 2021-11-22 04:33:58 -05:00
Serial
667d0e3bbf Cleanup chunk reading 2021-11-22 04:24:07 -05:00
Serial
4a5bfe4637 Remove TextEncoding from Picture 2021-11-21 16:30:03 -05:00
Serial
bc0c246dbf Add format specific tag structs
This allows for the use of format-specific elements, such as ID3v2 frame headers
2021-11-21 15:18:19 -05:00
Serial
e84731c375 Add format specific audio property structs 2021-10-01 19:30:51 -04:00
Serial
11d4d55dc8 Add Tag::remove_from, get_string, and get_binary 2021-10-01 17:59:53 -04:00
Serial
c2b76462ff Add ID3v2 writing 2021-09-26 22:36:20 -04:00
Serial
8bf22a0115 Fix ID3v2.2 reading, cleanup MPEG header reading 2021-09-19 14:48:35 -04:00
Serial
47f67e019a Break up logic::id3::v1, improve doc comments 2021-09-18 12:22:24 -04:00
Serial
2a88cdf42a Restructure logic::id3 2021-09-18 11:38:26 -04:00
Serial
cb2cb599e9 Add an as_bytes method for GeneralEncapsulatedObject, SynchronizedText, and TagRestrictions 2021-09-18 11:17:25 -04:00
Serial
7c730a27fa Add function for synchsafe integers 2021-09-18 10:47:28 -04:00
Serial
65b51def6d Remove TagFlags::extended_header, fix doc comments 2021-09-18 10:45:42 -04:00
Serial
cec3fd2451 Preserve read only items when using checked insertion 2021-09-13 18:53:18 -04:00
Serial
556aaea287 Leave GEOB/SYLT parsing up to the user, fix docs 2021-09-13 18:35:20 -04:00
Serial
ffba428c98 Fix freeform reading, remove old probe function 2021-09-13 17:39:32 -04:00
Serial
58354679c5 Move TagItem structs out of types::tag 2021-09-13 17:08:16 -04:00
Serial
12fc701e1d No longer require version specification for TagType::Id3v2 2021-09-13 16:55:32 -04:00
Serial
adb8db9dde Add mutable getter methods for all file tags 2021-09-07 01:46:42 -04:00
Serial
4394d9bf8f Remove all allow dead_code 2021-09-07 01:14:36 -04:00
Serial
2e9392196c Add MP4 ilst writing 2021-09-07 01:09:16 -04:00
Serial
07f9724e4e Cleanup tests, fix RIFF INFO reading 2021-09-06 10:41:24 -04:00
Serial
6edee49207 Remove thiserror 2021-09-05 19:22:29 -04:00
Serial
daf24ed2cc Add APE tag writing 2021-09-05 18:48:51 -04:00
Serial
469077598d More derives on public types 2021-09-05 18:44:53 -04:00
Serial
b38cd09ad6 Fix file signature reading 2021-09-05 18:43:48 -04:00
Serial
4e625f7e80 Add ID3v1 writing 2021-09-05 18:41:53 -04:00
Serial
92475b74cf Make file struct tag fields feature dependent 2021-09-05 15:09:13 -04:00
Serial
9c599f2aa9 Cleanup 2021-09-05 14:58:51 -04:00
Serial
7aa96ad0bb Add back RIFF INFO writing 2021-09-05 14:15:15 -04:00
Serial
3eeb08f50a Restructure iff module, cleanup 2021-09-04 21:18:11 -04:00
Serial
4dc0a824ca Add back FLAC writing, restructure ogg module 2021-09-04 20:55:01 -04:00
Serial
4dc0ea8d13 Add AIFF text chunk writing 2021-09-03 16:30:10 -04:00
Serial
351684caec Add TaggedFile::tag and TaggedFile::tag_mut for fetching specific TagTypes 2021-09-03 16:08:39 -04:00
Serial
fd1984b844 Add back OGG Opus/Vorbis writing 2021-09-03 15:37:37 -04:00
Serial
bf703e474d Remove old dependencies 2021-09-02 20:12:14 -04:00
Serial
77278111a1 Update test assets, remove old tests 2021-09-02 20:07:44 -04:00
Serial
cb785ddf95 Add MP4 property reading 2021-09-02 20:01:40 -04:00
Serial
fafda6243d Start work to parse mp4 atoms 2021-09-01 17:23:50 -04:00
Serial
fa97d27eb1 Preserve vendor string on VorbisFile/OpusFile -> TaggedFile conversion 2021-08-28 20:34:12 -04:00
Serial
575d7af692 Put ID3v2 tag restrictions behind a feature, cleanup 2021-08-28 20:11:37 -04:00
Serial
98ab6d4bce fmt 2021-08-24 23:38:56 -04:00
Serial
2c3a041807 Clippy 2021-08-24 23:35:28 -04:00
Serial
b6aa1595e5 Add AiffText keys 2021-08-24 23:30:15 -04:00
Serial
706a61383d Switch from Into to From 2021-08-24 23:10:11 -04:00
Serial
92cb9d51ba Add ID3v2 reading 2021-08-24 22:54:06 -04:00
Serial
0bd0929716 Reimplement read only for APEv2 2021-08-24 22:50:12 -04:00
Serial
fcc63ce0b4 Fix APEv2 reading 2021-08-24 22:46:16 -04:00
Serial
3c0f5e19be Add Debug to more structs 2021-08-24 22:45:37 -04:00
Serial
1d5896ed27 Add flags to Tag 2021-08-24 22:00:33 -04:00
Serial
0c41b3e15e Add ID3v2 tag flags and restrictions 2021-08-24 21:56:46 -04:00
Serial
c5a1af5ccd Move TextEncoding out of picture.rs 2021-08-24 21:53:48 -04:00
Serial
d6466388ac Update synchronized text error, clippy + fmt 2021-08-24 21:47:46 -04:00
Serial
7fd326b327 Update error.rs 2021-08-24 21:44:46 -04:00
Serial
ebc85cd207 Document AudioFile trait 2021-08-24 21:43:24 -04:00
Serial
449ed3b7db Clippy 2021-08-24 21:42:34 -04:00
Serial
1413afd4ff Document ID3v2 issues and workarounds 2021-08-23 23:28:49 -04:00
Serial
d3f6bda1d0 Add support for item flags, add Tag::find 2021-08-23 23:28:00 -04:00
Serial
fc843dd943 Update error.rs 2021-08-23 23:25:06 -04:00
Serial
96c907874a Allow storing an Id3v2Frame in an ItemKey 2021-08-23 23:24:25 -04:00
Serial
1d6fdb3600 Add Id3v2Frame enum, remove old files 2021-08-23 23:23:29 -04:00
Serial
5995115943 Add GEOB frame parsing, separate SYLT information to a separate struct 2021-08-23 23:21:38 -04:00
Serial
c2e0c223e7 Cleanup 2021-08-23 23:20:06 -04:00
Serial
984cbb83e5 Base64 encode FLAC pictures 2021-08-23 05:34:50 -04:00
Serial
91f3d841ab Add de/encoding for ID3v2 synchronized text 2021-08-23 01:43:12 -04:00
Serial
40692dbdd7 Add Tag::insert_item_unchecked 2021-08-22 21:48:52 -04:00
Serial
302db92ad8 Finish tag key mappings 2021-08-22 21:00:19 -04:00
Serial
40a7538804 Document and expose ID3v2 key upgrade functions 2021-08-22 20:38:10 -04:00
Serial
c3a0c28751 Add functions to upgrade ID3v2.2/3 to 2.4 2021-08-22 19:02:28 -04:00
Serial
b8ee9457b1 Update tables 2021-08-19 18:48:41 -04:00
Serial
97253ef487 Fix extensions 2021-08-19 18:26:58 -04:00
Serial
cdc6a33298 Fix visibility and getter methods 2021-08-19 18:14:23 -04:00
Serial
57b35b268d Update docs 2021-08-19 18:02:24 -04:00
Serial
dab1fcb01b Add getters/setters for common tag items 2021-08-19 18:01:53 -04:00
Serial
e893670f35 Add property and file type getters for TaggedFile 2021-08-19 17:59:24 -04:00
Serial
8bd2fbfa65 Add TaggedFile methods to cover the majority of use cases 2021-08-19 16:19:51 -04:00
Serial
711702b504 Add Tag::re_map 2021-08-19 15:21:39 -04:00
Serial
7b7e949b38 Restructure 2021-08-19 15:16:00 -04:00
Serial
4d4341feaf Correct Probe methods 2021-08-19 15:07:40 -04:00
Serial
b856cd1e9c Update id3 module 2021-08-19 14:29:09 -04:00
Serial
f5f6345cfd Finish ID3v2 picture parsing 2021-08-19 14:26:56 -04:00
Serial
888640cb10 Fix some feature issues 2021-08-18 22:13:59 -04:00
Serial
60846d23dc Rename features 2021-08-18 21:58:27 -04:00
Serial
06bf9b0862 Rename error variant 2021-08-18 21:27:31 -04:00
Serial
471dc2f638 Add Tag::new, Tag::iter, and Tag::retain. Add tag mappings for all ID3v2 versions 2021-08-18 21:26:06 -04:00
Serial
0a455f2dec Remove old comment 2021-08-18 18:59:23 -04:00
Serial
3ea1684cdb Allow mapping a key to an ItemKey 2021-08-18 18:58:08 -04:00
Serial
a822c7cdd0 Start work for ID3 2021-08-18 18:49:33 -04:00
Serial
419f8457a3 Start work to expose all tags 2021-08-02 17:25:31 -04:00
Serial
b4ef26904f Actually read pictures correctly 2021-08-01 22:55:37 -04:00
Serial
3563713701 Fix comment and ID3v2 skip read 2021-08-01 15:45:13 -04:00
Serial
4c5d827bf3 Fix doc comments again 2021-07-31 23:16:32 -04:00
Serial
68b584067d Fix doc comments 2021-07-31 23:15:40 -04:00
Serial
fb96411031 Add back FLAC tag removal 2021-07-31 22:40:33 -04:00
Serial
b64091d649 Add APE property reading, remove ape as a dependency 2021-07-31 21:33:52 -04:00
Serial
a739dcd28e Add test for MP4 property reading 2021-07-30 15:13:32 -04:00
Serial
93d0431134 Add MPEG property reading 2021-07-29 21:07:08 -04:00
Serial
40c73050ee Clippy 2021-07-28 19:10:59 -04:00
Serial
efd4239c5a Rebase and update changes 2021-07-28 18:53:50 -04:00
Serial
1c1b7f5916 RiffTag return default on error 2021-07-19 21:10:36 -04:00
Serial
134bef896a Update mp4ameta 2021-07-19 21:01:00 -04:00
Serial
29abe33324 Add credit 2021-07-19 20:34:12 -04:00
Serial
66b5bbd081 Add Tag::remove_from 2021-07-19 20:32:36 -04:00
Serial
9dfb740737 Fix errors 2021-07-19 14:21:38 -04:00
Serial
d2a6e35537 Don't error out on an empty tag 2021-07-19 13:30:24 -04:00
Serial
c8f6a0ebc2 Switch to new derive proc macro 2021-07-19 12:51:08 -04:00
Serial
9f50b48764 Temporarily use rust-ape fork
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 22:53:34 -04:00
Serial
0173d9e3e2 Add ability to get/remove custom keys
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 21:03:20 -04:00
Serial
aae6200ced Add AiffTag to docs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 20:34:34 -04:00
Serial
65b5f131aa Add AudioTagEdit::tag_type
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 20:24:12 -04:00
Serial
c673c7fcbb Add missing title methods to Album
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 19:59:56 -04:00
Serial
a9b78c7aa0 Start using UniCase for OGG formats
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 14:54:54 -04:00
Serial
03a3122c36 Wrong encoder key in APE method
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:50:27 -04:00
Serial
dfd1495146 Make APE keys case insensitive as the spec isn't normally followed
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:49:31 -04:00
Serial
8eb8b12f32 Add encoder methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:31:56 -04:00
Serial
72e361a097 Remove user-provided Cows for Picture::new
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-10 12:16:22 -04:00
Serial
9fe7f6dbef Fix comment
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 15:32:24 -04:00
Serial
1cfdb611a6 Use get_set_methods in RiffTag
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 15:26:42 -04:00
Serial
e1b7dce2cb Start using new get_set_methods macro
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 15:15:33 -04:00
Serial
547d5412c0 Move methods out of OggInnerTag
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:48:47 -04:00
Serial
89af607e2c Get rid of remove_disc method
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:42:05 -04:00
Serial
1fe26739a1 Missing references
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:32:12 -04:00
Serial
244cff1fee More sensible cover methods for Album
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 14:31:06 -04:00
Serial
ac91cbfd63 Add methods to set and remove all pictures, remove pointless panic
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 13:10:49 -04:00
Serial
e6eb8d8d40 AIFF read sanity check
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 12:40:44 -04:00
Serial
3e2d9abcae Add lyricist and composer methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 12:11:16 -04:00
Serial
edd315467f Separate date and year methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 11:57:54 -04:00
Serial
10ca5c0295 Create AudioTagEdit methods with macros, remove useless methods, rename unclear methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 11:45:37 -04:00
Serial
4cdc4a7589 Change bpm to return u16 because of mp4ameta
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-09 11:08:24 -04:00
Serial
7fe21b0315 Add lyrics and bpm methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 22:46:18 -04:00
Serial
b4d8c3657d Add genre methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 22:07:59 -04:00
Serial
9878b5172f Add back RiffTag::date
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 22:01:24 -04:00
Serial
12b97fa44f Fix aiff writing
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 20:10:28 -04:00
Serial
08ec8fca3a Clippy
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 19:35:47 -04:00
Serial
cb725e882d Add copyright methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 19:16:38 -04:00
Serial
f9c2321ba1 Remove pointless Vec
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-08 18:06:00 -04:00
Serial
7dd852d7b7 Fix mistake
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 22:48:05 -04:00
Serial
f46cd1b301 OggTag cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 22:46:02 -04:00
Serial
09c248c6c9 Reorder derives
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 21:36:06 -04:00
Serial
5e641bab28 Remove consts
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 21:34:21 -04:00
Serial
fe58abd7e6 Cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 21:27:28 -04:00
Serial
8b82e0969b Fix feature issue and add AIFF bench
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 21:26:30 -04:00
Serial
e949d2bb85 Add support for AIFF chunks
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 17:29:53 -04:00
Serial
ca52551807 Add empty defaults to AudioTagEdit methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-07 15:07:50 -04:00
Serial
0126bbcd8f Fix error message
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 22:17:48 -04:00
Serial
46a94874fa Remove pointless conversions in RIFF
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 21:55:10 -04:00
Serial
9698e3cbc0 Cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 21:33:10 -04:00
Serial
fe1c81b583 Remove pointless const
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 21:25:58 -04:00
Serial
5980432beb Further RIFF cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 21:25:11 -04:00
Serial
d403b11783 RIFF cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 12:17:08 -04:00
Serial
2a3e54ba25 Remove riff as a dependency
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-06 11:29:00 -04:00
Serial
b0709c0e8f Remove useless RiffTag methods
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 23:56:49 -04:00
Serial
25f0341757 Fix ape panic
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 23:15:45 -04:00
Serial
d97a9ac6e7 Document concrete types
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 21:13:03 -04:00
Serial
275faf4d2d Document AnyTag -> concrete conversion, fix various doc comments
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 21:07:05 -04:00
Serial
e103a481df No longer store artists in a Vec, and stop assuming the delimiter
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 20:49:19 -04:00
Serial
5754fd7c67 Fix missing feature lock
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 20:35:37 -04:00
Serial
95a486e339 Add AnyTag::new
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-07-05 20:27:59 -04:00
Serial
445d5751b6 Make OggTag::write_to guess the format from the file content, finish up fixing features
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-30 01:00:40 -04:00
Serial
e7af53dde7 Fix accidental redefinition
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 23:40:48 -04:00
Serial
3eac3b5bc2 Continue to fix feature issues
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 23:38:20 -04:00
Serial
cc8a0a21d5 Rename VorbisTag, fix feature issue
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 23:18:54 -04:00
Serial
1df0908c38 Remove old comments
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 23:09:58 -04:00
Serial
b80d8a062f Preserve OggFormat when converting to TagType::Ogg
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 14:51:08 -04:00
Serial
845456b9c7 Fix spacing
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 14:45:57 -04:00
Serial
30d62a9064 Remove a comment that no longer applies
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-29 14:44:58 -04:00
Serial
f250101028 Missed a mention of duration
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 14:46:20 -04:00
Serial
d5be11a40e Remove duration feature, out of the scope of this crate
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 14:42:50 -04:00
Serial
6959474c18 Add some comments
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 14:29:44 -04:00
Serial
bd183a821b Downgrade mp4ameta due to lifetime issues
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 14:15:31 -04:00
Serial
f75e693b7d Remove lewton and ogg as dependencies
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 13:56:08 -04:00
Serial
4498e04068 Multi-page write for Opus/Vorbis
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 13:47:27 -04:00
Serial
5c73d485fb Update vorbis_tag.rs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 13:45:18 -04:00
Serial
ea0c6931b6 Do Picture conversion immediately after read
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 13:44:42 -04:00
Serial
d4148cf5da Actually retain the audio data in FLAC
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 13:43:06 -04:00
Serial
804f8f42a9 Add read function for vorbis/opus
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 12:49:08 -04:00
Serial
abe18f6242 Fix set_track method
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-27 12:34:07 -04:00
Serial
181b4cfef0 Update error.rs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 17:04:02 -04:00
Serial
f10165f728 Move OGG page logic to its own crate
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 16:39:01 -04:00
Serial
7b58e72657 Add crc32 function for OGG pages
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 15:41:34 -04:00
Serial
2b1b009c1a Update TagType in traits.rs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 15:37:50 -04:00
Serial
0a7b327c03 Update tags
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 15:35:39 -04:00
Serial
730ce2ff6a Separate flac
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 15:33:17 -04:00
Serial
5dd38003d6 Separate Riff
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 15:32:51 -04:00
Serial
1448d8cca9 Fix modules missing feature conditions
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 15:06:39 -04:00
Serial
4ebf885eaa Reorder PictureType methods, fix Album comment
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 14:48:47 -04:00
Serial
ca0c03ddf1 Cleanup errors, add generic read_from_reader function, remove multiple useless File::open calls
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-26 14:46:30 -04:00
Serial
ce76d861b6 Less verbose README, fix comments
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-06-20 23:24:59 -04:00
Serial
8a09b90811 Change errors
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-25 17:22:53 -04:00
Serial
5f8e114f8e Ape no longer requires filepath
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-25 16:44:20 -04:00
Serial
9661092d3f Umbrella feature for ogg 2021-05-22 16:41:05 -04:00
Serial
338d90968c Uncheck write for opus since there's no multi-page support yet 2021-05-19 15:31:57 -04:00
Serial
18edf1eebc Improve docs 2021-05-19 15:25:09 -04:00
Serial
63a92c87ef Fix writing to flac + some cleanup 2021-05-19 15:01:44 -04:00
Serial
0d5724d661 Pictures now parse properly 2021-05-19 01:00:18 -04:00
Serial
a6d49fd9ce Support new pictures and proc macro 2021-05-18 22:26:27 -04:00
Serial
25368a428f Picture overhaul 2021-05-18 22:24:53 -04:00
Serial
81e561263e Remove old macros file 2021-05-18 22:22:55 -04:00
Serial
d03f206d5a Rename features 2021-05-16 23:07:26 -04:00
Serial
9637923284 Note 2021-05-16 22:30:23 -04:00
Serial
b9ee301756 Remove old TODOs 2021-05-16 21:49:46 -04:00
Serial
36d9d5195a Partial cover support for MP4
Since MP4 doesn't let you differentiate one image from another, all images are PictureType::Other, and all back_cover functions are aliases for front_cover.
2021-05-16 21:46:05 -04:00
Serial
16f4ecce0d Cover support for ape 2021-05-16 21:12:38 -04:00
Serial
29ff3d8030 Start work to support back covers
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-16 13:16:57 -04:00
Serial
79cbbd5339 Make filepath an optional dependency
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-16 02:47:26 -04:00
Serial
7f0501d95d Add date method
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-16 02:41:16 -04:00
Serial
ce1f873fee Version 0.1.2
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-16 01:32:25 -04:00
Serial
9dccd733a2 Start tracking duration availability
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-16 00:44:05 -04:00
Serial
83a0f84b9e Fully document the crate
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-16 00:39:19 -04:00
Serial
ccf9367b4e Support multiple picture types
This will be used in the future, for now only the front cover is accessible. This doesn't fully work for opus due to opus_headers only storing a single k/v pair.

Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-15 23:44:10 -04:00
Serial
028afaa9ee Only read RIFF INFO LISTs instead of all LISTs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-05-15 20:57:31 -04:00
Serial
c285b36629 Album cover support for ogg/opus/flac 2021-04-23 21:15:33 -04:00
Serial
946d19e0e1 Fix links 2021-04-23 18:12:55 -04:00
Serial
1491ba55f0 Fix writing to opus 2021-04-23 18:09:36 -04:00
Serial
14c04f3ae8 Support writing to opus 2021-04-23 13:31:35 -04:00
Serial
c182b293fb Fix all clippy errors 2021-04-22 22:57:47 -04:00
Serial
c372a491a7 Make clippy happy 2021-04-22 22:50:13 -04:00
Serial
202c9e91f0 Forgot to update feature list 2021-04-22 18:04:48 -04:00
Serial
754bf03413 Make things less confusing to use 2021-04-22 18:01:09 -04:00
Serial
bd48066b64 Add extra verification to tests 2021-04-22 13:56:51 -04:00
Serial
afbdd35493 Add aif extension 2021-04-22 13:27:50 -04:00
Serial
186d540d00 Clippy 2021-04-22 12:59:16 -04:00
Serial
dc23ec1ffd Support AIFF 2021-04-22 12:57:20 -04:00
Serial
fbfe0e916b Cleanup 2021-04-22 11:15:19 -04:00
Serial
b08efcc3ff Remove old lints 2021-04-21 14:58:53 -04:00
Serial
587de8f0a6 Comments for Vorbis/RiffFormat 2021-04-21 14:53:11 -04:00
Serial
3be3bf8880 Better table in README 2021-04-21 14:48:45 -04:00
Serial
79c03431bf Forgot to change TagType::Vorbis's features 2021-04-21 14:24:24 -04:00
Serial
6b770dc14c Give features better names 2021-04-21 14:22:52 -04:00
Serial
de334cc62b Clippy 2021-04-21 13:51:51 -04:00
Serial
90161287ab Add some benchmarks for reading from extension/signature 2021-04-21 13:48:21 -04:00
Serial
4d65545940 Update README 2021-04-21 13:03:06 -04:00
Serial
bc2bb8a92c Neater imports 2021-04-21 12:56:35 -04:00
Serial
05c7ac6d04 Support ID3 tags in RIFF chunks 2021-04-21 12:49:27 -04:00
Serial
4e01f98463 Use the correct names 2021-04-21 11:06:41 -04:00
Serial
297db6fbac Move some conversions to impl_tag macro 2021-04-20 23:14:17 -04:00
Serial
253609cc4b Add the ability to guess file format from file signature
Adds a new DetermineFrom enum to be used in Tag::read_from_path. This allows you to choose between guessing from extension or file signature.
2021-04-20 23:06:03 -04:00
Serial
8ff6bb52c8 Start work on duration
Added a duration field to each tag struct, and implemented duration reading for mp3. All other tags return None for now.
2021-04-20 15:15:05 -04:00
Serial
0dd57cc4da Remove old trait 2021-04-20 12:21:09 -04:00
Serial
cdfa5de045 Forgot to remove old album_artists_vec method for Mp4Tag 2021-04-20 12:06:39 -04:00
Serial
e5231567cc Remove add_artist and add_album_artist
These were useless methods that shouldn't be handled by lofty anyway
2021-04-20 11:25:09 -04:00
Serial
f5c743f3aa Finish all methods except for album covers
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 15:32:59 -04:00
Serial
e28b3b5f7f Remove unused unstable features
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 14:30:00 -04:00
Serial
d0a381278f Switch to using "/" as a separator
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 14:25:11 -04:00
Serial
b072f0b0e5 Finally separate VorbisTag::read_from_path from the other tags
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 14:07:26 -04:00
Serial
48e6182e3a WAV now rereads properly
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 13:45:53 -04:00
Serial
3df43317fd Forgot some MP4 extensions
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 00:24:32 -04:00
Serial
c886cc87be Implement read/write for WAV (RIFF INFO LIST)
This format is pretty limited, and a few non-standard IDs were used, so there's a high chance the data will be inaccurate. At least it works somewhat :)

Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-18 00:12:47 -04:00
Serial
511aa597b2 Would make sense to stop reading when the end is reached :)
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-17 17:09:32 -04:00
Serial
7797c1e92b Forgot to remove stuff from testing
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-17 15:45:40 -04:00
Serial
4cc33b5e53 Start work on wav decoding
Very few IDs supported right now, test doesn't work yet, and this only supports RIFF INFO chunks, ID3 has to wait for https://github.com/polyfloyd/rust-id3/pull/64

Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-17 15:42:06 -04:00
Serial
e59a41420b Much nicer supported formats table :)
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-16 16:02:12 -04:00
Serial
4d6f2db8e9 Ape is no longer TODO :)
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-15 13:40:54 -04:00
Serial
001c33bf86 Implement read/write for ape
Quite a few weird things had to be done due to the ape crate's choices, and ape's lack of a standardized set of keys, but it all seems to work.

Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-15 13:26:06 -04:00
Serial
04a9ab4634 Clippy and some more doc comments
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-15 11:53:10 -04:00
Serial
ae81ff21e9 Clippy and misc cleanup
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-14 12:17:38 -04:00
Serial
0ec56ca015 Created conversion for VorbisTag -> metaflac::Tag
This fixes write_to for flac.

Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-14 11:14:08 -04:00
Serial
f956dfd3e2 Working (rough) implementation of write_to for ogg
ogg can now successfully be read from and written to. This breaks all other tests currently.

Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-13 23:29:13 -04:00
Serial
7c72287586 Created conversion for metaflac::Tag -> VorbisTag, fixed inner test 2021-04-06 22:33:39 -04:00
Serial
88ecd1c136 Forgot to delete the old files 2021-04-06 20:58:15 -04:00
Serial
702f6617c5 VERY rough implementation of a single VorbisTag struct for all formats using vorbis comments, seems to work so far. 2021-04-06 20:57:30 -04:00
Serial
c835687098 Actually use the correct name 2021-04-06 17:55:39 -04:00
Serial
9eda7096d2 Get rid of some warnings 2021-04-06 16:50:46 -04:00
Serial
f9d8981ca2 Fix existing tests 2021-04-06 16:37:31 -04:00
Serial
0a9d87553f Move assets to tests folder 2021-04-03 23:32:54 -04:00
Serial
2bf7daa918 Even more doc comments
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 22:46:58 -04:00
Serial
9950eea7fa Start work to use Album struct in AnyTag
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 22:38:48 -04:00
Serial
8c1f016e6d Forgot the opus sample
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 14:32:25 -04:00
Serial
4e33e9edaa Implemented read_from_path and a test for opus
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 14:31:13 -04:00
Serial
4ba25553e1 Rename get/set functions
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 14:09:30 -04:00
Serial
521f53a9a7 Added extra tests for future formats, ogg test passes
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 14:00:21 -04:00
Serial
271cc15fa1 Further improve docs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 13:03:40 -04:00
Serial
fce2ade6ed Separate types
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 12:29:51 -04:00
Serial
cd96dfca0b Begin cleanup and reorganization
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 12:19:21 -04:00
Serial
de1422d7b3 Fix more docs
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-03 11:44:33 -04:00
Serial
070717fee5 Add functions to set/append artists and fix some doc comments.
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-02 21:43:32 -04:00
Serial
030ce9c822 Remove separate macro crate
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-02 21:07:28 -04:00
Serial
555819e6a8 Initial work
Signed-off-by: Serial <69764315+Serial-ATA@users.noreply.github.com>
2021-04-02 20:47:44 -04:00
Tianyi
1206194d5f 0.2.7182 2020-10-29 18:01:21 +00:00
Tianyi
aa945ae7b6 it worked! From dyn Tag into any concrete tag without cloning 2020-10-29 13:26:35 +00:00
Tianyi
e218f6c47d update manual 2020-10-27 23:18:03 +00:00
Tianyi
6e10a0b93d use TryFrom instead of From for downcasting because it could fail 2020-10-27 22:55:45 +00:00
Tianyi
0418d98955 impl downcasts
just accidentally discovered that I could write impl From<Box<dyn xxx>>
2020-10-27 22:24:05 +00:00
Tianyi Shi
fececf76e9 black magic 2020-10-27 15:33:19 +00:00
Tianyi Shi
47ae10071a downcast 2020-10-27 15:24:54 +00:00
Tianyi Shi
c72f09d3e2 add frominner and intoinner traits 2020-10-27 15:00:22 +00:00
Tianyi Shi
873a6e831d refactor 2020-10-27 14:38:31 +00:00
Tianyi Shi
b955bb60c8 simplify 2020-10-27 14:19:10 +00:00
Tianyi Shi
0dca646968 refactor 2020-10-27 14:01:03 +00:00
Tianyi Shi
f233955413 simplify 2020-10-27 13:50:07 +00:00
Tianyi Shi
d0b2409164 remove cow 2020-10-27 12:43:32 +00:00
Tianyi
87a63d72e6 better config handling 2020-10-27 12:16:26 +00:00
Tianyi
d4af2dcb03 prevent clone 2020-10-27 12:01:15 +00:00
Tianyi
6abb1e9d4d config 2020-10-27 11:40:51 +00:00
Tianyi
d2d1bedafa v0.2.3 2020-10-27 02:40:57 +00:00
Tianyi
dfc8f4f395 convert artists 2020-10-27 02:08:05 +00:00
Tianyi
bf71a050df 0.2.2 2020-10-27 00:52:29 +00:00
Tianyi
b4f2ae38ef v0.2.1 2020-10-26 23:19:49 +00:00
Tianyi
0f4d6eeab5 better error handling 2020-10-26 23:19:27 +00:00
Tianyi
276302b607 better error handling 2020-10-26 23:16:04 +00:00
Tianyi
7450d36348 convert tags; 0.2.0 2020-10-26 20:43:11 +00:00
Tianyi
3b1280fcee cow 2020-10-26 15:37:10 +00:00
Tianyi
ec3f59e1f3 add remove artists 2020-10-26 10:47:45 +00:00
Tianyi
caabc9a3e5 refactor 2020-10-26 02:14:28 +00:00
Tianyi
5ea4cca24d fix 2020-10-26 01:42:12 +00:00
Tianyi
4b66c81297 clean 2020-10-26 01:18:49 +00:00
Tianyi
7b2390b170 fix 2020-10-26 00:54:47 +00:00
Tianyi
8d4d3fa4a5 0.1.0 2020-10-25 21:39:38 +00:00
Tianyi
5dffc0ee55 0.0.2 2020-10-25 16:29:14 +00:00
Tianyi
57171bd561 0.0.1 2020-10-25 14:58:50 +00:00