Commit Graph

47 Commits (e25cfbf22c8d8c53ab5dfdfd602779c642da6a38)

Author SHA1 Message Date
Christopher Snowhill 8ee4a04f3b Experimental tag support redesign
This redesign completely changes how tags are stored in memory. Now all
arbitrary tag names are supported, where possible. Some extra work will
be needed to support arbitrary tags with TagLib, such as replacing it
with a different library.

Translation pending for a couple of strings.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-08 16:35:34 -07:00
Christopher Snowhill cd45941a93 Greatly improve tag reading performance
Improve tag reading performance for Ogg, Opus, FLAC, TTA, and TAK, by
eliminating TagLib from the equation in those cases and just using the
respective file inputs to do the tag reading, which is apparently a lot
faster anyway.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-05 00:55:21 -07:00
Christopher Snowhill 6a46389310 [Tag Reading] Moved external cover art reader
Moved external cover art reader to a place where it can be used for any
format, even formats unsupported by Metadata Reader interfaces.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-02 14:59:19 -07:00
Christopher Snowhill bf1afd1923 [TagLib] Disable MP4 tag reader, as it can crash
This MP4 tag reader is buggy. Disable it in favor of FFmpeg decoder's
metadata reader.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-02 04:38:29 -07:00
Christopher Snowhill 8dddf6a115 [Sandbox] Refine broker to return handle to token
Sandbox Broker now returns a handle to the exact path object that was
retained by the caller, so it will be released correctly, regardless of
what happens to the list of bookmarked paths.

Also refined the bookmark path comparison function. For existing paths,
it will find the first match. For new paths, it will prefer the longest
path instead, to try to find the deepest matching bookmark.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-20 22:10:43 -07:00
Christopher Snowhill c23bece62c Reintroducing App Sandbox, and more
- Implemented App Sandboxing in a more friendly manner.
- All sandboxed paths will need to be set in Preferences. Set as loose
  a path as you want. The shortest path will be preferred.
- Removed Last.fm client support, as it was non-functional by now,
  unfortunately. Maybe something better can come in the future.
- Added support for insecure SSL to the HTTP/S reader, in case anyone
  needs streams which are "protected" by self-signed or expired
  certificates, without having to futz around by adding certificates to
  the system settings, especially for expired certificates that can't
  otherwise be dodged this way.

If you want to import your old playlists to the new version, copy the
contents of `~/Library/Application Support/Cog` to the alternate sandbox
path: `~/Library/Containers/org.cogx.cog/Data/Library/Application `...
...continued...`Support/Cog`. The preferences file will migrate to the
new version automatically.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-20 03:35:29 -07:00
Christopher Snowhill 39f4d09c1a Use NSNumber Literals as much as possible
Replaced a bunch of [NSNumber numberWith...] with NSNumber Literals.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-17 06:39:02 -07:00
Christopher Snowhill 90b06850d0 [TagLib Plugin] Fixed some mislocated headers
These header files were imported from the wrong path. I really have no
idea why Xcode didn't catch these already with my build tree.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-17 02:05:48 -07:00
Christopher Snowhill 7f3bf052ca Update supported file name extensions for art
Art read from external files supports more formats than previously
listed here. Amend the list accordingly.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-16 01:56:34 -08:00
Christopher Snowhill 85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00
Christopher Snowhill 72f1168498 TagLib: Support reading Apple SoundCheck tags from ID3v2 and MP4 2022-01-22 20:20:24 -08:00
Christopher Snowhill 2165d37144 Metadata: Now supports disc number field where possible 2022-01-21 21:49:17 -08:00
Christopher Snowhill 684951bdc0 Change a bunch of NSArray declarations to const collection literals 2022-01-18 18:12:57 -08:00
Christopher Snowhill d24a01a637 Implemented basic embedded CueSheet support 2022-01-14 16:46:35 -08:00
Christopher Snowhill fdae7eec21 File info: Implemented support for Album Artist and Codec fields 2021-10-01 19:18:42 -07:00
Christopher Snowhill 510c762921 TagLib plugin: Implement FLAC embedded art reading 2021-07-03 15:31:26 -07:00
Dzmitry Neviadomski a6aaeafdca Re-apply patch for replay gain support 2021-02-07 06:50:28 +03:00
Dzmitry Neviadomski 15cbc97040 Adapt to new version of TagLib and read Vorbis Album art. 2021-02-07 04:48:49 +03:00
Dzmitry Neviadomski 1d84b7b682 Fix loading of cover art from same directory. 2021-02-07 03:54:31 +03:00
Dzmitry Neviadomski 70a22e9611 Fix some more warnings. 2021-01-27 05:12:07 +03:00
Christopher Snowhill b7596caa44 Fixed WavPack tag reading, by actually enabling it 2020-03-22 00:16:13 -07:00
Chris Moeller 0e3644177e Updated everything else to ARC, and plugged a release cycle. 2016-05-05 13:05:39 -07:00
Chris Moeller a6b6369a6d Added class priority levels to metadata readers, properties readers, and containers, all so sidplay can be downvoted for mishandling id MUS format when trying to read its own MUS format 2015-04-13 00:39:24 -07:00
o1 3c4cecd1e4 Fighting mp3 tag charset problem:
* id3v1 tags are now displayed in default windows charset rather than always being latin1
* only reading required bits from encoding byte (cures some faulty tag problem)
* faulty utf16 headers without endianness will now display correctly as well
2015-01-15 09:02:24 +03:00
o1 9cb9a86248 Updated project settings 2015-01-07 15:09:29 +03:00
Chris Moeller 97e94c0330 Updated TagLib 2013-10-12 13:51:36 -07:00
Chris Moeller 4d7b96107b Added TrueAudio support 2013-10-10 23:51:19 -07:00
Chris Moeller 21b78fde9f Added DCA/DTS/DTS-HD support 2013-10-10 22:13:27 -07:00
Chris Moeller de467b38d6 Added AC3 decoder to FFMPEG plugin 2013-10-10 21:53:28 -07:00
Chris Moeller 4aab503658 Removed APE tag reader from APL plugin and enabled stub APE tag reading of APE tags from APL files in the TagLib plugin 2013-10-10 21:49:16 -07:00
Chris Moeller cade82ee64 Removed unnecessary variable 2013-10-10 03:41:59 -07:00
Chris Moeller 3e057adf56 Replaced every instance of NSEnumerator with for/in loops 2013-10-10 01:44:45 -07:00
Chris Moeller 555ccc9e87 Now storing all album art internally as its original format and synthesizing NSImage objects on demand 2013-10-09 13:53:13 -07:00
Chris Moeller 2f730e1822 Added TAK support 2013-10-07 11:09:38 -07:00
Chris Moeller 525e296cc7 Implemented Opus decoder and tag reader 2013-10-05 02:01:33 -07:00
Chris Moeller 132fe98e84 Added APE and ASF tag support 2013-10-03 02:56:41 -07:00
Chris Moeller 4c0cf34250 More ReplayGain support, now with metadata handling, but only if the metadata is already loaded 2013-10-02 02:30:04 -07:00
mscott 1269de06f9 Add artwork fetch from image file in directory when no embedded image is found (looks for image files named or ending with "cover", "folder", "album" or "front").
Clean up playlist popup menu validation.
2010-04-05 12:40:17 -05:00
vspader 7491fd3bf0 Support for album art metadata. 2009-03-08 13:04:09 -07:00
lmsilva dda74d0608 fixed seek slider from becoming active & disabling it when STOP occurs 2008-11-21 15:14:23 +00:00
vspader 79cd625152 Changed year to an NSNumber. Fixed up taglib plugin. Tracks/Years with 0 now show up as nothing. 2008-03-04 00:43:47 +00:00
vspader 9af41d7542 A few taglib fixes. Reads id3v2 before ape for mp3 files. Added AutoReleasePool to backgrounded method. 2008-03-03 03:26:19 +00:00
vspader 6a4b661208 Modified taglib plugin to not use the C bindings since they are not thread safe. Used C++ classes instead, which are. 2008-03-03 01:55:25 +00:00
vspader 0e2dcf5014 Added m4a to taglib types. 2007-10-16 22:45:09 +00:00
vspader 535e0e802f Updated mime-types. 2007-10-14 18:56:23 +00:00
vspader 88aecc7de2 Added AudioContainer plugin and made pls and m3u loaders that use it. 2007-10-09 01:20:46 +00:00
vspader 927b65a4a5 Merged with cog-audio-framework branch. Cog now uses plugins. 2007-02-24 20:36:27 +00:00