Compare commits

..

6 commits

Author SHA1 Message Date
Christopher Snowhill
7277d90947 Housecleaning: More project file cleanups
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>
2025-06-24 03:53:48 -07:00
Christopher Snowhill
83dc97058e Housecleaning: Fix typo in comment
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 03:49:58 -07:00
Christopher Snowhill
9b7ff4d663 Bug Fix: Fix potential memory leak
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 03:49:42 -07:00
Christopher Snowhill
4f1a794065 HRTF: Re-enable motion control on newer systems
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>
2025-06-24 03:45:52 -07:00
Christopher Snowhill
8394eb4b0b Housecleaning: Cleaned up a bunch of warnings
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>
2025-06-24 03:44:38 -07:00
Christopher Snowhill
f7b1ebca27 Output: Halve volume when downmixing to mono
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 03:38:15 -07:00
86 changed files with 119 additions and 498 deletions

View file

@ -872,7 +872,7 @@ static void convert_be_to_le(uint8_t *buffer, size_t bitsPerSample, size_t bytes
if(!inputChanged) {
memcpy(&tempData[buffer_adder], inputBuffer, samplesRead * 2);
inputBuffer = &tempData[buffer_adder];
inputChanged = YES;
//inputChanged = YES;
}
convert_u16_to_s16((int16_t *)inputBuffer, samplesRead);
}
@ -912,10 +912,10 @@ static void convert_be_to_le(uint8_t *buffer, size_t bitsPerSample, size_t bytes
vDSP_vflt32((const int *)inputBuffer, 1, (float *)(&tempData[buffer_adder]), 1, samplesRead);
float scale = (1ULL << 31) / gain;
vDSP_vsdiv((const float *)(&tempData[buffer_adder]), 1, &scale, (float *)(&tempData[buffer_adder]), 1, samplesRead);
bitsPerSample = 32;
//bitsPerSample = 32;
bytesReadFromInput = samplesRead * sizeof(float);
isUnsigned = NO;
isFloat = YES;
//isUnsigned = NO;
//isFloat = YES;
inputBuffer = &tempData[buffer_adder];
}

View file

@ -146,7 +146,6 @@ static OSStatus eqRenderCallback(void *inRefCon, AudioUnitRenderActionFlags *ioA
- (BOOL)fullInit {
if(enableEqualizer) {
AudioComponentDescription desc;
NSError *err;
desc.componentType = kAudioUnitType_Effect;
desc.componentSubType = kAudioUnitSubType_GraphicEQ;
@ -161,8 +160,8 @@ static OSStatus eqRenderCallback(void *inRefCon, AudioUnitRenderActionFlags *ioA
return NO;
}
OSStatus _err = AudioComponentInstanceNew(comp, &_eq);
if(err) {
OSStatus status = AudioComponentInstanceNew(comp, &_eq);
if(status != noErr) {
return NO;
}
@ -209,8 +208,8 @@ static OSStatus eqRenderCallback(void *inRefCon, AudioUnitRenderActionFlags *ioA
AudioUnitReset(_eq, kAudioUnitScope_Global, 0);
_err = AudioUnitInitialize(_eq);
if(_err != noErr) {
status = AudioUnitInitialize(_eq);
if(status != noErr) {
return NO;
}

View file

@ -19,7 +19,7 @@
#include <AvailabilityMacros.h>
#if defined(MAC_OS_X_VERSION_14_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_14_0
#if defined(MAC_OS_VERSION_14_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_14_0
#define MOTION_MANAGER 1
#endif
@ -27,6 +27,7 @@ static void * kDSPHRTFNodeContext = &kDSPHRTFNodeContext;
static NSString *CogPlaybackDidResetHeadTracking = @"CogPlaybackDigResetHeadTracking";
#ifdef MOTION_MANAGER
static simd_float4x4 convertMatrix(CMRotationMatrix r) {
simd_float4x4 matrix = {
simd_make_float4(r.m33, -r.m31, r.m32, 0.0f),
@ -37,7 +38,6 @@ static simd_float4x4 convertMatrix(CMRotationMatrix r) {
return matrix;
}
#ifdef MOTION_MANAGER
static NSLock *motionManagerLock = nil;
API_AVAILABLE(macos(14.0)) static CMHeadphoneMotionManager *motionManager = nil;
static DSPHRTFNode *registeredMotionListener = nil;

View file

@ -157,6 +157,8 @@ static void downmix_to_mono(const float *inBuffer, int channels, uint32_t config
}
cblas_scopy((int)count, inBuffer, 2, outBuffer, 1);
vDSP_vadd(outBuffer, 1, inBuffer + 1, 2, outBuffer, 1, count);
const float scale = 0.5f;
vDSP_vsmul(outBuffer, 1, &scale, outBuffer, 1, count);
}
static void upmix(const float *inBuffer, int inchannels, uint32_t inconfig, float *outBuffer, int outchannels, uint32_t outconfig, size_t count) {

View file

@ -191,7 +191,7 @@
- (void)reconnectInputAndReplumb {
Node *finalNode = nil;
if(rubberbandNode) {
if(DSPsLaunched) {
finalNode = [[controller bufferChain] finalNode];
if(finalNode) {
[rubberbandNode setPreviousNode:finalNode];

View file

@ -694,12 +694,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
LastSwiftMigration = 1330;
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CogAudio" */;
compatibilityVersion = "Xcode 12.0";
@ -891,7 +885,6 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@ -944,7 +937,6 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_NO_COMMON_BLOCKS = YES;

View file

@ -351,17 +351,9 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons
AudioObjectAddPropertyListener(kAudioObjectSystemObject, &theAddress, default_device_changed, (__bridge void *_Nullable)(self));
defaultdevicelistenerapplied = YES;
}
} else {
err = noErr;
}
if(err != noErr) {
DLog(@"No output device with ID %d could be found.", deviceID);
return err;
}
return err;
return noErr;
}
- (BOOL)setOutputDeviceWithDeviceDict:(NSDictionary *)deviceDict {
@ -415,15 +407,18 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons
.mElement = kAudioObjectPropertyElementMaster
};
__Verify_noErr(AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &theAddress, 0, NULL, &propsize));
OSStatus status = AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &theAddress, 0, NULL, &propsize);
if(status != noErr) return;
UInt32 nDevices = propsize / (UInt32)sizeof(AudioDeviceID);
AudioDeviceID *devids = (AudioDeviceID *)malloc(propsize);
__Verify_noErr(AudioObjectGetPropertyData(kAudioObjectSystemObject, &theAddress, 0, NULL, &propsize, devids));
status = AudioObjectGetPropertyData(kAudioObjectSystemObject, &theAddress, 0, NULL, &propsize, devids);
if(status != noErr) return;
theAddress.mSelector = kAudioHardwarePropertyDefaultOutputDevice;
AudioDeviceID systemDefault;
propsize = sizeof(systemDefault);
__Verify_noErr(AudioObjectGetPropertyData(kAudioObjectSystemObject, &theAddress, 0, NULL, &propsize, &systemDefault));
status = AudioObjectGetPropertyData(kAudioObjectSystemObject, &theAddress, 0, NULL, &propsize, &systemDefault);
if(status != noErr) return;
theAddress.mScope = kAudioDevicePropertyScopeOutput;
@ -431,17 +426,23 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons
UInt32 isAlive = 0;
propsize = sizeof(isAlive);
theAddress.mSelector = kAudioDevicePropertyDeviceIsAlive;
__Verify_noErr(AudioObjectGetPropertyData(devids[i], &theAddress, 0, NULL, &propsize, &isAlive));
status = AudioObjectGetPropertyData(devids[i], &theAddress, 0, NULL, &propsize, &isAlive);
if(status != noErr) return;
if(!isAlive) continue;
CFStringRef name = NULL;
propsize = sizeof(name);
theAddress.mSelector = kAudioDevicePropertyDeviceNameCFString;
__Verify_noErr(AudioObjectGetPropertyData(devids[i], &theAddress, 0, NULL, &propsize, &name));
status = AudioObjectGetPropertyData(devids[i], &theAddress, 0, NULL, &propsize, &name);
if(status != noErr) return;
propsize = 0;
theAddress.mSelector = kAudioDevicePropertyStreamConfiguration;
__Verify_noErr(AudioObjectGetPropertyDataSize(devids[i], &theAddress, 0, NULL, &propsize));
status = AudioObjectGetPropertyDataSize(devids[i], &theAddress, 0, NULL, &propsize);
if(status != noErr) {
if(name) CFRelease(name);
return;
}
if(propsize < sizeof(UInt32)) {
if(name) CFRelease(name);
@ -449,7 +450,15 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons
}
AudioBufferList *bufferList = (AudioBufferList *)malloc(propsize);
__Verify_noErr(AudioObjectGetPropertyData(devids[i], &theAddress, 0, NULL, &propsize, bufferList));
if(!bufferList) {
if(name) CFRelease(name);
return;
}
status = AudioObjectGetPropertyData(devids[i], &theAddress, 0, NULL, &propsize, bufferList);
if(status != noErr) {
if(name) CFRelease(name);
return;
}
UInt32 bufferCount = bufferList->mNumberBuffers;
free(bufferList);
@ -466,7 +475,7 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons
systemDefault,
&stop);
CFRelease(name);
if(name) CFRelease(name);
if(stop) {
break;

View file

@ -60,7 +60,6 @@ static void
_init_buffers(int fft_size) {
if(fft_size != _fft_size) {
fft_free();
_fft_size = 0;
_dftSetup = vDSP_DFT_zrop_CreateSetup(NULL, fft_size * 2, vDSP_DFT_FORWARD);
if(!_dftSetup) return;
@ -136,4 +135,5 @@ void __attribute__((destructor)) fft_free(void) {
_window = NULL;
_rawSpectrum = NULL;
_dftSetup = NULL;
_fft_size = 0;
}

View file

@ -1044,8 +1044,8 @@ static int hdcd_envelope(int32_t *samples, int count, int stride, int gain, int
/* hold a steady level */
if (gain == 0x800000) {
if (count > 0)
samples += count * stride;
/*if (count > 0)
samples += count * stride;*/
} else {
while (--count >= 0) {
APPLY_GAIN(*samples, gain);

View file

@ -139,7 +139,7 @@ static void vorbis_lpc_predict(float *coeff, float *prime, int m, float *data, l
}
void lpc_extrapolate2(float *const data, const size_t data_len, const int nch, const int lpc_order, const size_t extra_bkwd, const size_t extra_fwd, void **extrapolate_buffer, size_t *extrapolate_buffer_size) {
const size_t max_to_prime = (data_len < lpc_order) ? data_len : lpc_order;
//const size_t max_to_prime = (data_len < lpc_order) ? data_len : lpc_order;
const size_t min_data_len = (data_len < lpc_order) ? lpc_order : data_len;
const size_t tdata_size = sizeof(float) * (extra_bkwd + min_data_len + extra_fwd);
@ -153,6 +153,7 @@ void lpc_extrapolate2(float *const data, const size_t data_len, const int nch, c
if(new_size > *extrapolate_buffer_size) {
*extrapolate_buffer = realloc(*extrapolate_buffer, new_size);
*extrapolate_buffer_size = new_size;
if(!*extrapolate_buffer) return;
}
double *aut = (double *)(*extrapolate_buffer);

View file

@ -44,6 +44,7 @@ static void samples_len(unsigned* r1, unsigned* r2, unsigned N, unsigned M)
{
if (r1 == 0 || r2 == 0) return;
unsigned v = local_gcd(*r1, *r2); // v = 300
if (v == 0) return;
*r1 /= v; *r2 /= v; // r1 = 147; r2 = 160 == 1/300th of second
unsigned n = (v + N-1) / N; // n = 300/20 = 15 times
unsigned z = max(*r1, *r2); // z = 160

View file

@ -130,6 +130,7 @@ static VisualizationController *_sharedController = nil;
@synchronized(self) {
if(!sampleRate) {
free(visAudioTemp);
if(outPCM) bzero(outPCM, 4096 * sizeof(float));
if(outFFT) bzero(outFFT, 2048 * sizeof(float));
return;

View file

@ -2044,13 +2044,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1500;
TargetAttributes = {
8D1107260486CEB800E47090 = {
DevelopmentTeam = "";
LastSwiftMigration = 1220;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cog" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -55,7 +55,6 @@
if(path) {
[panel setDirectoryURL:[NSURL fileURLWithPath:path]];
}
[panel setTitle:@"Open to choose tree path"];
NSInteger result = [panel runModal];
if(result == NSModalResponseOK) {
[[SandboxBroker sharedSandboxBroker] addFolderIfMissing:[panel URL]];

View file

@ -560,11 +560,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83D3C4D3201C654F005564CB = {
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83D3C4CE201C654F005564CB /* Build configuration list for PBXProject "libAdPlug" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -486,12 +486,6 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Dumb" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -634,12 +634,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1640;
ORGANIZATIONNAME = "";
TargetAttributes = {
8359FF3B17FEF39F0060F3ED = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8359FF3617FEF39F0060F3ED /* Build configuration list for PBXProject "File_Extractor" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -629,12 +629,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GME" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -251,12 +251,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8343793417F97BDB00584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8343792F17F97BDB00584396 /* Build configuration list for PBXProject "HighlyAdvanced" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -190,12 +190,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8360EF0F17F92C91005208A4 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8360EF0A17F92C91005208A4 /* Build configuration list for PBXProject "HighlyExperimental" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -162,12 +162,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
834378DD17F96E2600584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 834378D817F96E2600584396 /* Build configuration list for PBXProject "HighlyQuixotic" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -204,12 +204,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8343786D17F9658E00584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8343786817F9658E00584396 /* Build configuration list for PBXProject "HighlyTheoretical" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -144,12 +144,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
836FB555182053D700B3AD2D = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 836FB550182053D700B3AD2D /* Build configuration list for PBXProject "HivelyPlayer" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -244,12 +244,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "MPCDec" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -2349,11 +2349,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83E5EFBC1FFEF7CC00659F0F = {
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83E5EFB71FFEF7CC00659F0F /* Build configuration list for PBXProject "libOpenMPT" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -253,12 +253,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83848FB71807623F00E7332D = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83848FB21807623F00E7332D /* Build configuration list for PBXProject "SSEQPlayer" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -188,12 +188,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Shorten" */;
compatibilityVersion = "Xcode 12.0";
@ -280,6 +274,7 @@
INSTALL_PATH = "@loader_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.shorten;
PRODUCT_NAME = Shorten;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = framework;
@ -307,6 +302,7 @@
OTHER_CFLAGS = "-DHAVE_CONFIG_H";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.lib.shorten;
PRODUCT_NAME = Shorten;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SHARED_PRECOMPS_DIR = "$(CACHE_ROOT)/SharedPrecompiledHeaders";
SKIP_INSTALL = YES;

View file

@ -443,6 +443,7 @@
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11";
PRODUCT_BUNDLE_IDENTIFIER = "org.cogx.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Debug;
@ -475,6 +476,7 @@
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11";
PRODUCT_BUNDLE_IDENTIFIER = "org.cogx.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Release;

View file

@ -599,13 +599,7 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83C8B62118AF57770071B040 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83C8B61C18AF57770071B040 /* Build configuration list for PBXProject "lazyusf" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -961,12 +961,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83C8B62118AF57770071B040 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83C8B61C18AF57770071B040 /* Build configuration list for PBXProject "lazyusf2" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -127,12 +127,7 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83D3C67A201D37D8005564CB = {
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83D3C675201D37D8005564CB /* Build configuration list for PBXProject "libbinio" */;
compatibilityVersion = "Xcode 8.0";

View file

@ -1107,12 +1107,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83CA24121D7BC47C00F2EA53 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83CA240D1D7BC47C00F2EA53 /* Build configuration list for PBXProject "mGBA" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -174,12 +174,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83B066AB180D56B9008E3612 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83B066A6180D56B9008E3612 /* Build configuration list for PBXProject "midi_processing" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -150,13 +150,7 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83F4D53918D82105009B2DE6 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83F4D53418D82105009B2DE6 /* Build configuration list for PBXProject "modplay" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -129,13 +129,7 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83A0F4971816CEAD00119DB4 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83A0F4921816CEAD00119DB4 /* Build configuration list for PBXProject "playptmod" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -148,12 +148,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8343781B17F93CB500584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8343781617F93CB500584396 /* Build configuration list for PBXProject "psflib" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -4076,7 +4076,6 @@
836F6B6218BDB8880095E648 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@ -4093,7 +4092,6 @@
836F6B6318BDB8880095E648 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;

View file

@ -297,12 +297,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83DE0C05180A9BD400269051 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83DE0C00180A9BD400269051 /* Build configuration list for PBXProject "vio2sf" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -452,8 +452,6 @@ static void *playlistControllerContext = &playlistControllerContext;
float fontSize = [[[NSUserDefaultsController sharedUserDefaultsController] defaults] floatForKey:@"fontSize"];
BOOL cellRating = NO;
if(pe) {
cellIdentifier = [tableColumn identifier];
NSUInteger index = [cellIdentifiers indexOfObject:cellIdentifier];
@ -527,7 +525,6 @@ static void *playlistControllerContext = &playlistControllerContext;
rating = 5;
cellText = [@"" stringByPaddingToLength:rating withString:filledStar startingAtIndex:0];
cellText = [cellText stringByPaddingToLength:5 withString:emptyStar startingAtIndex:0];
cellRating = YES;
break;
}

View file

@ -536,6 +536,7 @@ NSURL *_Nullable urlForPath(NSString *_Nullable path) {
NSString *tagName = [PlaylistEntry metaTagForKey:key];
NSString *lowerKey = [tagName lowercaseString];
id valueObj = [metadata objectForKey:key];
id genericValue;
NSArray *values = nil;
NSString *firstValue = nil;
NSData *dataValue = nil;
@ -544,15 +545,22 @@ NSURL *_Nullable urlForPath(NSString *_Nullable path) {
if([values count]) {
firstValue = values[0];
}
genericValue = values;
} else if([valueObj isKindOfClass:[NSString class]]) {
firstValue = (NSString *)valueObj;
values = @[firstValue];
genericValue = values;
} else if([valueObj isKindOfClass:[NSNumber class]]) {
NSNumber *numberValue = (NSNumber *)valueObj;
firstValue = [numberValue stringValue];
values = @[firstValue];
genericValue = values;
} else if([valueObj isKindOfClass:[NSData class]]) {
dataValue = (NSData *)valueObj;
genericValue = dataValue;
} else {
// Unknown object in metadata block
genericValue = valueObj;
}
if([lowerKey isEqualToString:@"bitrate"]) {
self.bitrate = [firstValue intValue];
@ -593,7 +601,7 @@ NSURL *_Nullable urlForPath(NSString *_Nullable path) {
} else if([lowerKey isEqualToString:@"albumart"]) {
self.albumArt = dataValue;
} else {
[metaDict setObject:values forKey:key];
[metaDict setObject:genericValue forKey:key];
}
}
self.metadataBlob = [NSDictionary dictionaryWithDictionary:metaDict];

View file

@ -578,6 +578,7 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
[containerQueue waitUntilAllOperationsAreFinished];
progress = weakProgress;
[self setProgressJobStatus:progress];
[containerTask finish];
}
@ -682,8 +683,6 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
DLog(@"Valid urls: %@", validURLs);
progress = 0.0;
// Create actual entries
int count = (int)[validURLs count];
if(xmlData) count += [[xmlData objectForKey:@"entries"] count];
@ -867,10 +866,10 @@ NSURL *_Nullable urlForPath(NSString *_Nullable path);
double progressstep;
if(metadataLoadInProgress && [queueThisJob count]) {
if(metadataLoadInProgress) {
progressstep = 100.0 / (double)([queueThisJob count] + 1);
progress = progressstep;
} else if([queueThisJob count]) {
} else {
[self beginProgress:NSLocalizedString(@"ProgressActionLoadingMetadata", @"")];
[self beginProgressJob:NSLocalizedString(@"ProgressSubActionLoadingMetadata", @"") percentOfTotal:50.0];

View file

@ -157,12 +157,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
99B989F30CC7E10400C256E9 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "APL" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -187,11 +187,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83D3C5F2201C674D005564CB = {
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83D3C5EE201C674D005564CB /* Build configuration list for PBXProject "AdPlug" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -191,12 +191,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8359FF1617FEF35C0060F3ED = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8359FF1217FEF35C0060F3ED /* Build configuration list for PBXProject "ArchiveSource" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -174,13 +174,7 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
839BCFD11965133E00947767 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 839BCFCD1965133E00947767 /* Build configuration list for PBXProject "BASSMODS" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -161,12 +161,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CoreAudio" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -166,7 +166,7 @@ static SInt64 getSizeProc(void *clientData) {
asbdSize = sizeof(asbd);
err = ExtAudioFileGetProperty(_in, kExtAudioFileProperty_FileDataFormat, &asbdSize, &asbd);
if(err != noErr) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
@ -174,7 +174,7 @@ static SInt64 getSizeProc(void *clientData) {
size = sizeof(total);
err = ExtAudioFileGetProperty(_in, kExtAudioFileProperty_FileLengthFrames, &size, &total);
if(err != noErr) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
totalFrames = total;
@ -182,7 +182,7 @@ static SInt64 getSizeProc(void *clientData) {
size = sizeof(afi);
err = ExtAudioFileGetProperty(_in, kExtAudioFileProperty_AudioFile, &size, &afi);
if(err != noErr) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
@ -193,7 +193,7 @@ static SInt64 getSizeProc(void *clientData) {
if(err == kAudioFileUnsupportedPropertyError) {
formatBitsPerSample = 0; // floating point formats apparently don't return this any more
} else {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
}
@ -202,36 +202,36 @@ static SInt64 getSizeProc(void *clientData) {
size = sizeof(_bitrate);
err = AudioFileGetProperty(afi, kAudioFilePropertyBitRate, &size, &_bitrate);
if(err != noErr) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
err = AudioFileGetPropertyInfo(afi, kAudioFilePropertyChannelLayout, &size, NULL);
if(err != noErr || size == 0) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
AudioChannelLayout *acl = malloc(size);
err = AudioFileGetProperty(afi, kAudioFilePropertyChannelLayout, &size, acl);
if(err != noErr) {
free(acl);
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
uint32_t config = 0;
for(uint32_t i = 0; i < acl->mNumberChannelDescriptions; ++i) {
int channelNumber = ffat_get_channel_id(acl->mChannelDescriptions[i].mChannelLabel);
if(channelNumber >= 0) {
if(config & (1 << channelNumber)) {
if(channelNumber >= 0 && channelNumber <= 31) {
if(config & (1U << channelNumber)) {
free(acl);
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
config |= 1 << channelNumber;
} else {
free(acl);
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
}
@ -246,7 +246,7 @@ static SInt64 getSizeProc(void *clientData) {
size = sizeof(formatName);
err = AudioFormatGetProperty(kAudioFormatProperty_FormatName, asbdSize, &asbd, &size, &formatName);
if(err != noErr) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}
@ -298,7 +298,7 @@ static SInt64 getSizeProc(void *clientData) {
err = ExtAudioFileSetProperty(_in, kExtAudioFileProperty_ClientDataFormat, sizeof(result), &result);
if(noErr != err) {
err = ExtAudioFileDispose(_in);
/*err =*/ ExtAudioFileDispose(_in);
return NO;
}

View file

@ -191,12 +191,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CueSheet" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -39,7 +39,6 @@
NSMutableArray *tracks = [NSMutableArray array];
BOOL embedded = NO;
CueSheet *cuesheet = nil;
NSDictionary *fileMetadata;
@ -79,7 +78,6 @@
if(sheetString && [sheetString length]) {
cuesheet = [CueSheet cueSheetWithString:sheetString withFilename:[url path]];
}
embedded = YES;
} else
cuesheet = [CueSheet cueSheetWithFile:[url path]];

View file

@ -287,12 +287,6 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Dumb" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -246,12 +246,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FFMPEG" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -47,8 +47,6 @@
AVFormatContext *formatCtx = NULL;
AVIOContext *ioCtx = NULL;
BOOL isStream = NO;
uint8_t *buffer = NULL;
FFMPEGReader *reader = nil;
@ -61,8 +59,6 @@
[source close];
source = nil;
isStream = YES;
formatCtx = avformat_alloc_context();
if(!formatCtx) {
ALog(@"Unable to allocate AVFormat context");
@ -112,8 +108,8 @@
}
int streamIndex = -1;
int metadataIndex = -1;
int attachedPicIndex = -1;
//int metadataIndex = -1;
//int attachedPicIndex = -1;
AVCodecParameters *codecPar;
for(i = 0; i < formatCtx->nb_streams; i++) {
@ -123,9 +119,9 @@
DLog(@"audio codec found");
streamIndex = i;
} else if(codecPar->codec_id == AV_CODEC_ID_TIMED_ID3) {
metadataIndex = i;
//metadataIndex = i;
} else if(stream->disposition & AV_DISPOSITION_ATTACHED_PIC) {
attachedPicIndex = i;
//attachedPicIndex = i;
} else {
stream->discard = AVDISCARD_ALL;
}

View file

@ -798,7 +798,7 @@ static void setDictionary(NSMutableDictionary *dict, NSString *tag, NSString *va
int seekBytesSkip = 0;
int errcode;
int errcode = 0;
int8_t *targetBuf = (int8_t *)buf;
memset(buf, 0, bytesToRead);

View file

@ -185,12 +185,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FileSource" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -194,12 +194,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Flac" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -233,12 +233,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "GME" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -256,7 +256,7 @@ static size_t handle_icy_headers(size_t avail, HTTPSource *fp, char *ptr) {
fp->icyheader = 1;
// check for ternmination marker
// check for termination marker
if(avail >= 4 && !memcmp(ptr, "\r\n\r\n", 4)) {
avail -= 4;
ptr += 4;

View file

@ -184,12 +184,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "HTTPSource" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -428,12 +428,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8360EEE317F92AC8005208A4 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8360EEDF17F92AC8005208A4 /* Build configuration list for PBXProject "HighlyComplete" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -756,8 +756,10 @@ static int load_twosf_mapz(struct twosf_loader_state *state, int issave, const u
{
uLong ccrc = crc32(crc32(0L, Z_NULL, 0), rdata, (uInt)usize);
if(ccrc != zcrc)
if(ccrc != zcrc) {
free(rdata);
return -1;
}
}
ret = load_twosf_map(state, issave, rdata, (unsigned)usize);

View file

@ -201,12 +201,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
836FB52C1820538700B3AD2D = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 836FB5281820538700B3AD2D /* Build configuration list for PBXProject "Hively" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -159,12 +159,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "M3u" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -399,12 +399,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83B06686180D5668008E3612 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83B06682180D5668008E3612 /* Build configuration list for PBXProject "MIDI" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -198,12 +198,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Musepack" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -182,11 +182,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83E5EFA21FFEF78100659F0F = {
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83E5EF9E1FFEF78100659F0F /* Build configuration list for PBXProject "OpenMPT" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -174,12 +174,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8375B03B17FFEA400092A79F = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8375B03717FFEA400092A79F /* Build configuration list for PBXProject "OpusPlugin" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -159,12 +159,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Pls" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -196,12 +196,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Shorten" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -115,12 +115,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
83F9D7E61A884B44007ABEC2 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 83F9D7E21A884B44007ABEC2 /* Build configuration list for PBXProject "SilenceDecoder" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -203,12 +203,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "TagLib" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -218,12 +218,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "VorbisPlugin" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -170,12 +170,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "WavPack" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -218,12 +218,6 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "libvgmPlayer" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1640"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D5B49AC048680CD000E48DA"
BuildableName = "GME.bundle"
BlueprintName = "GME Plugin"
ReferencedContainer = "container:GME.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D5B49AC048680CD000E48DA"
BuildableName = "GME.bundle"
BlueprintName = "GME Plugin"
ReferencedContainer = "container:GME.xcodeproj">
</BuildableReference>
</MacroExpansion>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D5B49AC048680CD000E48DA"
BuildableName = "GME.bundle"
BlueprintName = "GME Plugin"
ReferencedContainer = "container:GME.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -15,9 +15,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8372C92227C785BD00E250C9"
BuildableName = "MAD.bundle"
BlueprintName = "MAD"
ReferencedContainer = "container:MAD.xcodeproj">
BuildableName = "minimp3.bundle"
BlueprintName = "minimp3"
ReferencedContainer = "container:minimp3.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
@ -33,9 +33,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8372C92227C785BD00E250C9"
BuildableName = "MAD.bundle"
BlueprintName = "MAD"
ReferencedContainer = "container:MAD.xcodeproj">
BuildableName = "minimp3.bundle"
BlueprintName = "minimp3"
ReferencedContainer = "container:minimp3.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -69,9 +69,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8372C92227C785BD00E250C9"
BuildableName = "MAD.bundle"
BlueprintName = "MAD"
ReferencedContainer = "container:MAD.xcodeproj">
BuildableName = "minimp3.bundle"
BlueprintName = "minimp3"
ReferencedContainer = "container:minimp3.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>

View file

@ -227,13 +227,7 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83F4D51418D8206A009B2DE6 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83F4D51018D8206A009B2DE6 /* Build configuration list for PBXProject "modplay" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -236,13 +236,7 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83A0F46E1816CE5E00119DB4 = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83A0F46A1816CE5E00119DB4 /* Build configuration list for PBXProject "playptmod" */;
compatibilityVersion = "Xcode 3.2";

View file

@ -178,12 +178,6 @@
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620;
ORGANIZATIONNAME = "";
TargetAttributes = {
8314D6301A354DFE00EEE8E6 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 8314D62C1A354DFE00EEE8E6 /* Build configuration list for PBXProject "sidplay" */;
compatibilityVersion = "Xcode 12.0";

View file

@ -197,7 +197,6 @@
[panel setCanChooseFiles:NO];
[panel setFloatingPanel:YES];
[panel setDirectoryURL:[NSURL fileURLWithPath:pi.path]];
[panel setTitle:@"Open to add path"];
NSInteger result = [panel runModal];
if(result == NSModalResponseOK) {
[sandboxPathBehaviorController addUrl:[panel URL]];

View file

@ -600,7 +600,6 @@
INSTALL_PATH = "$(HOME)/Library/Bundles";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog.preferences;
PRODUCT_NAME = Preferences;
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = preferencePane;
ZERO_LINK = YES;
@ -621,7 +620,6 @@
INSTALL_PATH = "$(HOME)/Library/Bundles";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog.preferences;
PRODUCT_NAME = Preferences;
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = preferencePane;
};

View file

@ -2,6 +2,6 @@
@interface NSDictionary (Optional)
+ (NSDictionary *)initWithOptionalObjects:(const id _Nonnull [_Nullable])objects forKeys:(id<NSCopying> const[])keys count:(NSUInteger)cnt;
+ (NSDictionary *_Nonnull)initWithOptionalObjects:(const id _Nullable [_Nullable])objects forKeys:(id<NSCopying> const _Nullable [_Nullable])keys count:(NSUInteger)cnt;
@end

View file

@ -2,11 +2,13 @@
@implementation NSDictionary (Optional)
+ (NSDictionary *)initWithOptionalObjects:(const id _Nonnull [_Nullable])objects forKeys:(id<NSCopying> const[])keys count:(NSUInteger)cnt {
+ (NSDictionary *_Nonnull)initWithOptionalObjects:(const id _Nullable [_Nullable])objects forKeys:(id<NSCopying> const _Nullable [_Nullable])keys count:(NSUInteger)cnt {
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
for(NSUInteger i = 0; i < cnt; ++i) {
if(keys[i] && objects[i]) {
[dictionary setObject:objects[i] forKey:keys[i]];
if(keys && objects && cnt) {
for(NSUInteger i = 0; i < cnt; ++i) {
if(keys[i] && objects[i]) {
[dictionary setObject:objects[i] forKey:keys[i]];
}
}
}
return [NSDictionary dictionaryWithDictionary:dictionary];

View file

@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (SandboxBroker *)sharedSandboxBroker;
+ (NSURL *)urlWithoutFragment:(NSURL *)url;
+ (NSURL *_Nullable)urlWithoutFragment:(NSURL *)url;
+ (BOOL)isPath:(NSURL *)path aSubdirectoryOf:(NSURL *)directory;
+ (void)cleanupFolderAccess;
@ -28,8 +28,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)requestFolderForFile:(NSURL *)fileUrl;
- (const void *)beginFolderAccess:(NSURL *)fileUrl;
- (void)endFolderAccess:(const void *)handle;
- (const void *_Nullable)beginFolderAccess:(NSURL *)fileUrl;
- (void)endFolderAccess:(const void *_Nullable)handle;
- (BOOL)areAllPathsSafe:(NSArray *)urls;

View file

@ -96,11 +96,11 @@ static SandboxBroker *kSharedSandboxBroker = nil;
return [NSClassFromString(@"PlaylistController") sharedPersistentContainer];
}
+ (NSURL *)urlWithoutFragment:(NSURL *)url {
+ (NSURL *_Nullable)urlWithoutFragment:(NSURL *)url {
if(![url isFileURL]) return url;
NSString *s = [url path];
if(!s) return NULL; // Cool, the resource no longer exists!
if(!s) return nil; // Cool, the resource no longer exists!
NSRange fragmentRange = [s rangeOfString:@"#"
options:NSBackwardsSearch];
@ -116,12 +116,12 @@ static SandboxBroker *kSharedSandboxBroker = nil;
}
- (id)init {
id _self = [super init];
if(_self) {
self = [super init];
if(self) {
storage = [[NSMutableArray alloc] init];
}
return _self;
return self;
}
- (void)shutdown {
@ -421,7 +421,7 @@ static inline void dispatch_async_reentrant(dispatch_queue_t queue, dispatch_blo
}];
}
- (const void *)beginFolderAccess:(NSURL *)fileUrl {
- (const void *_Nullable)beginFolderAccess:(NSURL *)fileUrl {
if(!fileUrl) return NULL;
NSURL *folderUrl = [SandboxBroker urlWithoutFragment:fileUrl];
if(!folderUrl || ![folderUrl isFileURL]) return NULL;
@ -459,7 +459,7 @@ static inline void dispatch_async_reentrant(dispatch_queue_t queue, dispatch_blo
return NULL;
}
- (void)endFolderAccess:(const void *)handle {
- (void)endFolderAccess:(const void *_Nullable)handle {
if(!handle) return;
SandboxEntry *entry = CFBridgingRelease(handle);
if(!entry) return;

View file

@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic) BOOL isListening;
@property(nonatomic) BOOL isWorking;
+ (SpectrumViewSK *)createGuardWithFrame:(NSRect)frame;
+ (SpectrumViewSK *_Nullable)createGuardWithFrame:(NSRect)frame;
- (void)enableCameraControl;
- (void)startPlayback;

View file

@ -56,7 +56,7 @@ extern NSString *CogPlaybackDidStopNotificiation;
@implementation SpectrumViewSK
+ (SpectrumViewSK *)createGuardWithFrame:(NSRect)frame {
+ (SpectrumViewSK *_Nullable)createGuardWithFrame:(NSRect)frame {
if (![NSUserDefaults.standardUserDefaults boolForKey:@"spectrumSceneKit"])
return nil;