Again, this is for the best anyway. Reopening the file repeatedly really
was slow, and resulted in deadlocks with rapid fire seeking, especially
with the Touch Bar scrubber control.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Relax it from cycling for 1ms to 10ms. This isn't absolutely time
critical, after all, since this usually happens when there is some
buffering.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
Motion tracking was storing a strong reference to the HRTF DSP node,
which was resulting in the DSP not shutting down or restarting properly,
leading to playback hanging.
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
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>