This also fixes code signing for VGMStream bundle. All frameworks or
bundles which nest other frameworks or libraries must themselves be
signed first in building, not just on embedding.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Motion control, which requires macOS 14.0, was broken completely, ever
since the changes made to the code so it could compile on older Xcode
versions.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
And a bunch of potential memory leaks, and some misbehavior that could
occur due to not checking for errors properly.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Promote or demote all projects to Xcode 12.0, remove signing from any
libraries or frameworks that still have it, and clear identities in the
project files, so that they will derive from the out of repo local
settings file, and will stop inserting my ID into projects every time
they are modified.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
The Feedback Controller was deriving from a class that is no longer used
anywhere, so remove this.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Add setup error checking and failure states, and also add a failure
state for format changes while the device is already running, in case it
returns a nil format structure.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Add NSDictionary initWithOptionalObjects:forKeys:count: helper, to work
around several places that may have been setting nil dictionary valies
on placeholder dictionaries. Hopefully this fixes the crash someone
logged recently.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Whoops, this whitespace got messed with a long time ago. It should be
scripted to do whitespace checking before push, but I neglected setting
that up.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
The attempt to disable it by default only for new installs failed, as
changing the default after restarting with consent achieved, resulted in
the value changing as well, as is the way of changing defaults if the
user has never changed them.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
It would help immensely when updating a library's binaries, to update
the interface headers as well. This update fixes serious problems with
the VGM and related format import and playback, including potential
crashes and memory overwriting.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This code, based on some other vDSP information I found, performs the
DFT in a different fashion, and also pre-converts the spectrum data into
decibel levels, so the DeaDBeeF analyzer calculation code doesn't need
to convert the values itself any more.
Maybe this will also get rid of the use after free problem somewhere in
the audio code? Who knows?
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Somebody somehow sent this an NSMenuItem? I don't have any UI handlers
calling this IBAction from menus, so someone is messing around with the
code and not removing my crash reporter.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Disable this by default, as it doesn't take output buffering into
account, so cursor moves up to 20 seconds ahead of what is actually
audible on the output device.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
A race on the source queue setter could cause a crash. Prevent that by
not attempting to set a nil input node.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Track fades could hang if fired in rapid succession. Now each fade will
be guaranteed to resume input feeding upon removing the current input to
the background fade-out queue.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Attempt to decode random encodings in a different way than before.
Hopefully this works a little better for some people.
Fixes#434
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
These referenced libMAD, which has been replaced. The effect was
essentially harmless, except for a compile time warning.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Oops, I forgot that Cocoa KVO treats key names with periods in them as a
special case, assuming that each dotted word is a separate nested object
from the others. Work around this by using Unicode character replacement
that will hopefully dodge the issue.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Apparently, NSURL path for fileURL can return nil if the resource no
longer exists, or something. Better fail gracefully than cause a crash.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This end of track restart notification may come from a different thread
than the processing thread. Wait on the thread to complete.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
A few places could have used nil checks, but there shouldn't be anything
passing nil URLs to these. Well, just in case, at least it won't lead to
crashes or something...
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This legacy playlist filename handler was falling through on newly
installed and run setups, where none of the files would exist, so the
last one would return a nil NSURL and attempt to add it to the playlist.
Fix this to check for the existence of the file before attempting to
open it. It shouldn't really exist anyway, unless someone really started
with a really old version somehow, and migrated it to the sandbox folder
proper.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
And reordered all the source files in the projects according to name
sort. And removed all the deleted files, including some which were
forgotten in previous updates, but left as 0 byte files. Finally,
updated the project to use C23 / C++23 language standards.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>