Christopher Snowhill
f7dc6beda1
Plugin utilities: Moved encoding guesser to header
...
Moved the string encoding guesser/converter to the Plugin.h header, so
it may be accessible from any plugin. I may make it a global member of
something eventually, but a static inline for such a simple function
should be fine for now.
This function facilitates converting arbitrary 8 bit encoded strings to
Unicode NSString objects. It should be used anywhere that UTF-8 is
expected, but not necessarily guaranteed, and where other 8-bit
encodings may also be supplied by a user's files.
Not using this setup for string inputs has already led to failed UTF-8
decoding resulting in nil NSStrings being passed to the inline array or
dictionary initializers, which results in crashes due to uncaught
exceptions.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-05-24 01:05:43 -07:00
Christopher Snowhill
cad09b8912
CUE Reader: Fix enumerating sheets and tag reading
...
The reader should have been skipping the properties of CUE sheets when
reading the referenced data for the inner files.
Fixes #235
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-13 12:18:58 -08:00
Christopher Snowhill
5ff1f95481
Add decoder open error indicator
...
When decoder is redirected to the internal silence decoder, show an icon
on the playlist indicating a playback error.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 02:15:48 -08:00
Christopher Snowhill
7cea254f4c
Implement framework for dynamic metadata updates
...
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 21:21:53 -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
39a5ee8ab7
Utility: Add stubs to regenerate Info.plist with file type associations
2022-01-18 03:07:32 -08:00
Christopher Snowhill
d24a01a637
Implemented basic embedded CueSheet support
2022-01-14 16:46:35 -08:00
Christopher Snowhill
e2bca8f93b
OpenMPT: Correctly OS version gate the OpenMPT plugins, and add an interface for any other plugin to use, should it ever become necessary
2021-12-27 17:46:09 -08:00
Chris Moeller
03b825ced3
Hopefully fix the last of the Automatic Reference Counting issues that remained.
2016-06-19 12:57:18 -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
Chris Moeller
63fba5930e
Implemented support for multiple decoders per file name extension, with a floating point priority control per interface. In the event that more than one input is registered to a given extension, and we match that extension, it will be passed off to an instance of the multi-decoder wrapper, which will try opening the file with all of the decoders in order of priority, until either one of them accepts it, or all of them have failed. This paves the way for adding a VGMSTREAM input, so I can give it a very low priority, since it has several formats that are verified by file name extension only. All current inputs have been given a priority of 1.0, except for CoreAudio, which was given a priority of 0.5, because it contains an MP3 and AC3 decoders that I'd rather not use if I don't have to.
2013-10-21 10:54:11 -07:00
Chris Moeller
ec0e45381e
Cleaned up most of the warnings, eliminated use of deprecated APIs, and fixed the hotkeys crashing.
2013-10-03 01:00:58 -07:00
lmsilva
dda74d0608
fixed seek slider from becoming active & disabling it when STOP occurs
2008-11-21 15:14:23 +00:00
vspader
5715522470
Moved to frame-based reading/seeking instead of byte/second based. Some formats have still not been updated and are broken.
...
Added icons for other formats.
2007-11-24 20:16:27 +00:00
vspader
9a344922da
Fixed the way plugin controller was setup and loaded.
...
Updated cuesheet to search for alternate types if wav is not there.
2007-10-20 15:53:52 +00:00
vspader
cc806285e0
Updated plugin architecture. No more plugin classes! Now loads classes based on protocol alone.
2007-10-20 15:46:39 +00:00
vspader
535e0e802f
Updated mime-types.
2007-10-14 18:56:23 +00:00
vspader
f1b9141f4b
Added mime type support.
2007-10-14 18:12:15 +00:00
vspader
c536ea06a5
Removed useless PropertiesReader classes.
...
PluginController now uses the decoder if a properties reader class is not found.
PropertiesReaders should still be created if performance can be improved if code is only reading properties.
2007-10-14 17:31:20 +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
78a908274b
Fixed bug where unseekable songs still allowed the user to move the slider and updated the time.
2007-05-27 15:11:30 +00:00
vspader
eb96a75a1f
Modified CoreAudioDecoder to use new source based system. It just ignores the source and uses its own, since the ExtAudioFile API is absolutely hopeless when it comes to streaming.
2007-03-04 04:36:10 +00:00
vspader
1aead1bf0d
Merged decoder and converter threads to facilitate midstream format changing.
2007-03-03 17:19:37 +00:00
vspader
934840ace5
Added source plugin support. Things are incredibly broken. Besides Ogg Vorbis. That should still work.
2007-03-02 01:36:52 +00:00
vspader
47fa30dc58
Reworked preferences a little to make it easier for simple panes.
...
Added Growl notifications for when a song is played, or when the song changes.
2007-02-28 00:35:27 +00:00
vspader
927b65a4a5
Merged with cog-audio-framework branch. Cog now uses plugins.
2007-02-24 20:36:27 +00:00