Commit graph

60 commits

Author SHA1 Message Date
Christopher Snowhill
2755ce5e64 VGMStream: Considerably rewrite plugin interface
It was about time to rewrite this anyway. Now adapted to the new public
interface API.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-03-23 16:13:24 -07:00
Christopher Snowhill
ee7aae922d Audio: Add full timestamp accounting to playback
Audio Chunks now have full timestamp accounting, including DSP playback
speed ratio for the one DSP that can change play ratio, Rubber Band.
Inputs which support looping and actually reporting the absolute play
position now do so.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-02-12 14:08:17 -08:00
Christopher Snowhill
6c339bb9f9 VGMStream: Fix fade time configuration
Fade time was reading from some completely wrong
configuration field name, so fades weren't working.
2024-09-17 02:24:13 -07:00
Christopher Snowhill
9fa9274ce5 VGMStream: Change render API, allocate off heap
Change to the future render api, hopefully float support
will be available eventually. Also change to allocate the
sample buffers from the heap instead of the stack.
2024-09-17 02:23:36 -07:00
Christopher Snowhill
626a9e2205 Updated VGMStream to r1917-201-g7ab622d3
Also updated filename extensions,  and the interface plugins.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2024-08-17 03:20:11 -07:00
Christopher Snowhill
8d851e5bda [Input API] Change input readAudio method
readAudio now returns an AudioChunk object directly, and all inputs have
been changed to accomodate this. Also, input and converter processing
have been altered to better work with this.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-10 15:22:04 -07:00
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
5d7a9798fe [Synthesizers] Implement default overrides
Default time, fade, loop count, and sample rate may now be overridden.

Synchronized preferences strings tables. Spanish translation of new
options pending, new releases won't be pushed until they're complete.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-02 01:27:01 -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
872816f056 VGM Decoder: Change logic of dictionary creation
Metadata logic code should be using this dictionaryWithDictionary method
so that the resulting dictionary is actually immutable, like it claims
to be, rather than simply casting it. Safety coding, all that jazz. Not
really a major issue, just feels right.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-05-24 01:09:39 -07:00
Christopher Snowhill
8cf37cadf3 Unicode metadata: Change most logic to use guesser
Most file formats the player supports may or may not have UTF-8 safe
strings in their metadata. This should not be assumed to be UTF-8, and
when it is assumed, it results in nil NSString objects, which results in
inline initializers crashing due to uncaught exceptions.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-05-24 01:07:55 -07:00
Christopher Snowhill
69ebce32c0 Revert "VGMStream Input: Remove downmixing, add layout"
This reverts commit 0d4ee4c901.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-03-21 16:34:49 -07:00
Christopher Snowhill
183a03657d VGMStream Decoder: Fix mutable dictionary
This dictionary was replaced with an inline literal declaration, but
this defines an immutable dictionary. Change it to a mutable copy.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-03-06 03:57:03 -08:00
Christopher Snowhill
0d4ee4c901 VGMStream Input: Remove downmixing, add layout
Downmixing should no longer be necessary, unless someone actually tries
to emit up to 64 channels, while we support only 32 channels, but really
only 18 channels. Also read the channel layout field from the decoder,
so that the speaker layout will propagate from the files to the player.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-15 22:55:34 -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
b927f4c02b Replace more NSDictionary use with literals
Use literals to initialize fixed NSDictionary objects in various places.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 19:56:04 -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
0c4d5002f6 Metadata: Now supports storing cuesheet tags and encoding quality status properties 2022-01-21 22:38:54 -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
39a5ee8ab7 Utility: Add stubs to regenerate Info.plist with file type associations 2022-01-18 03:07:32 -08:00
Christopher Snowhill
1eb2270049 VGMStream: Rewrite file interface based on the VGMStream stdio interface, only using CogSource files 2022-01-06 22:12:34 -08:00
Christopher Snowhill
ee6faec757 VGMStream: oops, coding error 2021-10-02 18:49:00 -07:00
Christopher Snowhill
6c8c807781 VGMStream: Clear sample buffer, just in case 2021-10-02 18:47:04 -07:00
Christopher Snowhill
cbf20dab08 VGMStream: Correctly implement mixing support and output channel reporting for downmixes 2021-10-02 18:38:23 -07:00
Christopher Snowhill
cb70b066d7 Updated VGMStream to r1640-85-gfe316bb2 2021-10-01 20:21:50 -07:00
Christopher Snowhill
fdae7eec21 File info: Implemented support for Album Artist and Codec fields 2021-10-01 19:18:42 -07:00
Christopher Snowhill
42a6738e8f Updated VGMStream to r1640-11-gdfa3779a 2021-09-06 09:28:26 -07:00
Christopher Snowhill
75a4f1e722 VGMStream: Fix one shot files actually decoding to completion instead of getting stuck forever 2021-06-15 01:34:01 -07:00
Christopher Snowhill
668475c43a VGMStream: Correctly report ReplayGain tags from external M3U tags 2021-05-30 14:47:21 -07:00
Christopher Snowhill
7acfdf774d VGMStream: Fix length reporting and track termination when not looping forever 2021-04-22 23:53:59 -07:00
Christopher Snowhill
2c20205f8f Fix VGMStream info parser to remove anchors and URL percent encodings from filenames 2021-04-06 16:51:08 -07:00
Dzmitry Neviadomski
70a22e9611 Fix some more warnings. 2021-01-27 05:12:07 +03:00
Christopher Snowhill
4eb7a3eebf Update VGMStream plugin with new API changes a bit, and now force auto downmixing to 6ch 2020-09-21 22:33:18 -07:00
Christopher Snowhill
86681e9726 Implemented support for VGMStream external !tags.m3u metadata playlists 2019-11-23 20:36:57 -08:00
Christopher Snowhill
389a701553 Implemented new VGMStream properties and metadata caching, which keeps file smashing under control, which stops Hardened Runtime from crashing on us 2019-10-18 20:21:27 -07:00
Christopher Snowhill
b3eb934a38 VGMStream plugin correctly fades channel counts other than stereo. 2018-07-17 23:34:25 -07:00
Christopher Snowhill
5c25e3b071 Fix decoder so it ends properly on non-looped files when Repeat One is enabled. 2018-07-17 18:09:59 -07:00
Christopher Snowhill
16e0a006f2 Updated VGMStream to r1050-866-g5cc215b4. 2017-12-16 20:17:41 -08:00
Christopher Snowhill
d0f0f516a3 Really add title reading this time. 2017-09-17 19:21:38 -07:00
Christopher Snowhill
29e548d583 Added title reading for multi-song VGMStream files. 2017-09-17 18:41:04 -07:00
Christopher Snowhill
9c80799aea Updated VGMStream to r1050-670-g165cda22. 2017-09-16 21:24:57 -07:00
Christopher Snowhill
9df683829a Fix VGMStream to not crash on open failure, and generate its file name extension list dynamically. 2017-07-09 15:01:25 -07:00
Christopher Snowhill
89a2ab07a1 Updated VGMStream. 2016-12-26 16:45:02 -08:00
Christopher Snowhill
b0e2332ce5 Updated VGMStream. 2016-12-18 11:32:02 -08:00
Christopher Snowhill
5e7180fe34 Updated VGMStream. 2016-12-08 14:47:10 -08:00
Christopher Snowhill
de77fef181 Enabled .mtaf extension decoding in VGMStream. 2016-08-24 17:36:39 -07:00
Christopher Snowhill
e4f3d02473 Add .sgb and .sgd extensions to VGMStream decoder. 2016-08-10 18:36:53 -07:00
Chris Moeller
ff46687597 Updated VGMStream with FFmpeg support, and moved the supported formats over to that plug-in. 2016-07-16 23:03:44 -07:00
Chris Moeller
ed33e37214 Fix file handle leak in vgmstream decoder. 2016-06-30 15:40:43 -07:00