Compare commits

..

13 commits

Author SHA1 Message Date
Christopher Snowhill
03526aaa44 WIP: Attempt to actually use the custom icons
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 04:07:50 -07:00
Christopher Snowhill
a0b8b1ac56 Add new status icon resources
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 04:07:44 -07:00
Christopher Snowhill
3b00bd94bc Icon: Liquid Glass style icon for macOS Tahoe
Still need to adjust the custom dock icon for this.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 04:07:23 -07:00
Christopher Snowhill
5b26fc9cff Apply recommended settings
Except for deployment target, which is staying at 10.13 for now.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-24 04:07:09 -07:00
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
Christopher Snowhill
23248b2f22 Maintenance: Update project file settings
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>
2025-06-24 00:39:31 -07:00
Christopher Snowhill
952a82bfcd Crash Feedback: Remove unnecessary class attribute
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>
2025-06-24 00:26:10 -07:00
Christopher Snowhill
a0f2b2bfa6 Output: Remove function override from header
This function should be derived from the superclass.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-23 23:52:25 -07:00
96 changed files with 214 additions and 639 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

@ -39,8 +39,6 @@
- (BOOL)selectNextBuffer;
- (void)endOfInputPlayed;
- (BOOL)endOfStream;
- (BOOL)chainQueueHasTracks;
- (double)secondsBuffered;

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,15 +694,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
LastSwiftMigration = 1330;
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CogAudio" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
@ -789,6 +783,7 @@
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
@ -830,6 +825,7 @@
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;

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

@ -2065,16 +2065,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D1107260486CEB800E47090 = {
DevelopmentTeam = "";
LastSwiftMigration = 1220;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cog" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
@ -2981,9 +2974,6 @@
ASSETCATALOG_COMPILER_APPICON_NAME = Cog26;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "Cog color";
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = Cog.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
@ -3051,9 +3041,6 @@
ASSETCATALOG_COMPILER_APPICON_NAME = Cog26;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "Cog color";
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = Cog.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
ENABLE_APP_SANDBOX = YES;
@ -3138,6 +3125,7 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = Cog.entitlements;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@ -3184,6 +3172,7 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = Cog.entitlements;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;

View file

@ -9,7 +9,7 @@
#import "FeedbackSocket.h"
#import <Cocoa/Cocoa.h>
@interface FeedbackController : NSWindowController <FeedbackSocketDelegate> {
@interface FeedbackController : NSWindowController {
IBOutlet NSTextField* nameView;
IBOutlet NSTextField* emailView;
IBOutlet NSTextView* messageView;

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

@ -559,15 +559,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83D3C4D3201C654F005564CB = {
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83D3C4CE201C654F005564CB /* Build configuration list for PBXProject "libAdPlug" */;
compatibilityVersion = "Xcode 8.0";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

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

@ -633,16 +633,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8359FF3B17FEF39F0060F3ED = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8359FF3617FEF39F0060F3ED /* Build configuration list for PBXProject "File_Extractor" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -629,15 +629,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GME" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -250,16 +250,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8343793417F97BDB00584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8343792F17F97BDB00584396 /* Build configuration list for PBXProject "HighlyAdvanced" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -189,16 +189,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8360EF0F17F92C91005208A4 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8360EF0A17F92C91005208A4 /* Build configuration list for PBXProject "HighlyExperimental" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -161,16 +161,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
834378DD17F96E2600584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 834378D817F96E2600584396 /* Build configuration list for PBXProject "HighlyQuixotic" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -203,16 +203,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8343786D17F9658E00584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8343786817F9658E00584396 /* Build configuration list for PBXProject "HighlyTheoretical" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -143,16 +143,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
836FB555182053D700B3AD2D = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 836FB550182053D700B3AD2D /* Build configuration list for PBXProject "HivelyPlayer" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -244,15 +244,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "MPCDec" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -2348,15 +2348,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83E5EFBC1FFEF7CC00659F0F = {
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83E5EFB71FFEF7CC00659F0F /* Build configuration list for PBXProject "libOpenMPT" */;
compatibilityVersion = "Xcode 8.0";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -252,16 +252,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83848FB71807623F00E7332D = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83848FB21807623F00E7332D /* Build configuration list for PBXProject "SSEQPlayer" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -188,15 +188,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8DC2EF4F0486A6940098B216 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Shorten" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
@ -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

@ -231,10 +231,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83D731161A74968900CA1366 /* Build configuration list for PBXProject "g719" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -417,12 +417,10 @@
83D731331A74968900CA1366 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@loader_path/Frameworks";
@ -455,12 +453,10 @@
83D731341A74968900CA1366 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@loader_path/Frameworks";

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

@ -960,16 +960,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83C8B62118AF57770071B040 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83C8B61C18AF57770071B040 /* Build configuration list for PBXProject "lazyusf2" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -187,7 +187,7 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
ORGANIZATIONNAME = "";
TargetAttributes = {
835FC6AF23F61BF0006960FA = {
CreatedOnToolsVersion = 11.3.1;
@ -195,7 +195,7 @@
};
};
buildConfigurationList = 835FC6AA23F61BF0006960FA /* Build configuration list for PBXProject "libatrac9" */;
compatibilityVersion = "Xcode 9.3";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -378,11 +378,10 @@
835FC6B923F61BF0006960FA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
ENABLE_MODULE_VERIFIER = YES;
@ -396,7 +395,6 @@
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14";
PRODUCT_BUNDLE_IDENTIFIER = co.losno.libatrac9;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Debug;
@ -404,11 +402,10 @@
835FC6BA23F61BF0006960FA /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
ENABLE_MODULE_VERIFIER = YES;
@ -422,7 +419,6 @@
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu11 gnu++14";
PRODUCT_BUNDLE_IDENTIFIER = co.losno.libatrac9;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Release;

View file

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

View file

@ -282,7 +282,7 @@
};
};
buildConfigurationList = 83D6761A26539A7100252130 /* Build configuration list for PBXProject "libcelt_0061" */;
compatibilityVersion = "Xcode 9.3";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -552,10 +552,9 @@
83D6762926539A7100252130 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@loader_path/Frameworks";
@ -564,7 +563,6 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.kode54.libcelt-0061";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Debug;
@ -572,10 +570,9 @@
83D6762A26539A7100252130 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@loader_path/Frameworks";
@ -584,7 +581,6 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.kode54.libcelt-0061";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Release;

View file

@ -271,7 +271,7 @@
};
};
buildConfigurationList = 83D676A826539F4E00252130 /* Build configuration list for PBXProject "libcelt_0110" */;
compatibilityVersion = "Xcode 9.3";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -540,10 +540,9 @@
83D676B726539F4E00252130 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@loader_path/Frameworks";
@ -552,7 +551,6 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.kode54.libcelt-0110";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Debug;
@ -560,10 +558,9 @@
83D676B826539F4E00252130 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@loader_path/Frameworks";
@ -572,7 +569,6 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "net.kode54.libcelt-0110";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
};
name = Release;

View file

@ -1155,7 +1155,7 @@
};
};
buildConfigurationList = EDBE8EF325E7E641001EB4A4 /* Build configuration list for PBXProject "sidplayfp" */;
compatibilityVersion = "Xcode 9.3";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -1106,16 +1106,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83CA24121D7BC47C00F2EA53 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83CA240D1D7BC47C00F2EA53 /* Build configuration list for PBXProject "mGBA" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -173,16 +173,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83B066AB180D56B9008E3612 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83B066A6180D56B9008E3612 /* Build configuration list for PBXProject "midi_processing" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

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

@ -147,16 +147,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8343781B17F93CB500584396 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8343781617F93CB500584396 /* Build configuration list for PBXProject "psflib" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

@ -1 +1 @@
Subproject commit c88d631577473a9bf1847d9f5cc1630321e4e90d
Subproject commit fede7a2c6dcd340098f300ea89dca70e554cf708

View file

@ -3131,10 +3131,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
ORGANIZATIONNAME = "";
};
buildConfigurationList = 836F6B3318BDB8880095E648 /* Build configuration list for PBXProject "libvgmstream" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -4078,8 +4078,6 @@
836F6B6218BDB8880095E648 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@ -4088,7 +4086,6 @@
INFOPLIST_FILE = "vgmstream/libvgmstream-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.libvgmstream;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
WRAPPER_EXTENSION = framework;
};
@ -4097,8 +4094,6 @@
836F6B6318BDB8880095E648 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@ -4107,7 +4102,6 @@
INFOPLIST_FILE = "vgmstream/libvgmstream-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.libvgmstream;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
WRAPPER_EXTENSION = framework;
};

View file

@ -296,16 +296,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83DE0C05180A9BD400269051 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83DE0C00180A9BD400269051 /* Build configuration list for PBXProject "vio2sf" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

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,15 +157,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
99B989F30CC7E10400C256E9 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "APL" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -186,15 +186,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83D3C5F2201C674D005564CB = {
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83D3C5EE201C674D005564CB /* Build configuration list for PBXProject "AdPlug" */;
compatibilityVersion = "Xcode 8.0";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -190,16 +190,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8359FF1617FEF35C0060F3ED = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8359FF1217FEF35C0060F3ED /* Build configuration list for PBXProject "ArchiveSource" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

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,15 +161,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CoreAudio" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

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,15 +191,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CueSheet" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

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,15 +246,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FFMPEG" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

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,15 +185,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FileSource" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -194,15 +194,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Flac" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -233,15 +233,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "GME" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

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,15 +184,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "HTTPSource" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -427,16 +427,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8360EEE317F92AC8005208A4 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8360EEDF17F92AC8005208A4 /* Build configuration list for PBXProject "HighlyComplete" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

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

@ -200,16 +200,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
836FB52C1820538700B3AD2D = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 836FB5281820538700B3AD2D /* Build configuration list for PBXProject "Hively" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -159,15 +159,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "M3u" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -398,16 +398,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83B06686180D5668008E3612 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83B06682180D5668008E3612 /* Build configuration list for PBXProject "MIDI" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -198,15 +198,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Musepack" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -181,15 +181,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83E5EFA21FFEF78100659F0F = {
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83E5EF9E1FFEF78100659F0F /* Build configuration list for PBXProject "OpenMPT" */;
compatibilityVersion = "Xcode 8.0";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -173,16 +173,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8375B03B17FFEA400092A79F = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8375B03717FFEA400092A79F /* Build configuration list for PBXProject "OpusPlugin" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 56;
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@ -144,7 +144,7 @@
};
};
buildConfigurationList = 8327DB78293C90E300CD0580 /* Build configuration list for PBXProject "Organya" */;
compatibilityVersion = "Xcode 14.0";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -308,11 +308,9 @@
8327DB82293C90E300CD0580 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INFOPLIST_KEY_NSPrincipalClass = "";
@ -329,11 +327,9 @@
8327DB83293C90E300CD0580 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INFOPLIST_KEY_NSPrincipalClass = "";

View file

@ -159,15 +159,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Pls" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -196,15 +196,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Shorten" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -114,16 +114,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
83F9D7E61A884B44007ABEC2 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 83F9D7E21A884B44007ABEC2 /* Build configuration list for PBXProject "SilenceDecoder" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -203,15 +203,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "TagLib" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -218,15 +218,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "VorbisPlugin" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -170,15 +170,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "WavPack" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -218,15 +218,9 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
TargetAttributes = {
8D5B49AC048680CD000E48DA = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "libvgmPlayer" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (

View file

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "2600"
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

@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 55;
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@ -133,7 +133,7 @@
};
};
buildConfigurationList = 8372C91E27C785BD00E250C9 /* Build configuration list for PBXProject "minimp3" */;
compatibilityVersion = "Xcode 13.0";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

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

@ -177,16 +177,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
TargetAttributes = {
8314D6301A354DFE00EEE8E6 = {
DevelopmentTeam = "";
ProvisioningStyle = Manual;
};
};
ORGANIZATIONNAME = "";
};
buildConfigurationList = 8314D62C1A354DFE00EEE8E6 /* Build configuration list for PBXProject "sidplay" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (

View file

@ -212,10 +212,10 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 2600;
ORGANIZATIONNAME = "Christopher Snowhill";
ORGANIZATIONNAME = "";
};
buildConfigurationList = 836F6B0B18BDB80D0095E648 /* Build configuration list for PBXProject "vgmstream" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@ -446,12 +446,8 @@
836F6B2318BDB80D0095E648 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "vgmstream/vgmstream-Prefix.pch";
HEADER_SEARCH_PATHS = (
@ -465,7 +461,6 @@
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.vgmstream;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;
@ -475,12 +470,8 @@
836F6B2418BDB80D0095E648 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "vgmstream/vgmstream-Prefix.pch";
HEADER_SEARCH_PATHS = (
@ -494,7 +485,6 @@
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.vgmstream;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = bundle;

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

@ -412,7 +412,7 @@
LastUpgradeCheck = 2600;
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Preferences" */;
compatibilityVersion = "Xcode 3.2";
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
@ -586,13 +586,9 @@
1DEB913B08733D840010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GCC_DYNAMIC_NO_PIC = NO;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
@ -604,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;
@ -614,12 +609,8 @@
1DEB913C08733D840010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Preferences_Prefix.pch;
@ -629,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;