Compare commits

...

6 commits

Author SHA1 Message Date
Christopher Snowhill
2f23420a6c 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-07-17 03:48:13 -07:00
Christopher Snowhill
b4a3bc6fdc Apply recommended settings
Except for deployment target, which is staying at 10.13 for now.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-07-17 03:48:04 -07:00
Christopher Snowhill
6c0ca775cd VGMStream: Updated libvgmstream code base
Updated VGMStream to r2023-66-g6eb1f65c

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-07-17 03:43:02 -07:00
Christopher Snowhill
f05aada52d Dependencies: Update bundled libraries
libvgm: 7cad78367fa35c3f7b3ae16a296d31063cd3a7e4
flac: v1.5.0
ogg: v1.3.6
opus: v1.5.2-153-g7aa5be98
opusfile: v0.12-51-g24d6e75

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-07-17 03:41:57 -07:00
Christopher Snowhill
aebc52880b libvgm: Add exception handling, and move buffer
Move the player buffer off the stack, as well as adding exception
handlers to the init, playback, and shutdown code.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-07-15 06:50:03 -07:00
Christopher Snowhill
e8a7eaf954 libvgm: Fix track ending without glitches
Track rendering returns the number of bytes rendered, which also cuts
short when the track ends. So properly react to this count when running
the player, so we don't keep trying to render, or pick up uninitialized
data from the buffer.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-07-15 06:32:27 -07:00
164 changed files with 2771 additions and 1381 deletions

2
.gitignore vendored
View file

@ -36,7 +36,7 @@ Xcode-config/SENTRY_SETTINGS.xcconfig
/ThirdParty/ffmpeg/lib/libavformat.61.dylib /ThirdParty/ffmpeg/lib/libavformat.61.dylib
/ThirdParty/ffmpeg/lib/libavutil.59.dylib /ThirdParty/ffmpeg/lib/libavutil.59.dylib
/ThirdParty/ffmpeg/lib/libswresample.5.dylib /ThirdParty/ffmpeg/lib/libswresample.5.dylib
/ThirdParty/flac/lib/libFLAC.12.dylib /ThirdParty/flac/lib/libFLAC.14.dylib
/ThirdParty/libid3tag/lib/libid3tag.a /ThirdParty/libid3tag/lib/libid3tag.a
/ThirdParty/libmad/lib/libmad.a /ThirdParty/libmad/lib/libmad.a
/ThirdParty/libopenmpt/lib/libopenmpt.a /ThirdParty/libopenmpt/lib/libopenmpt.a

View file

@ -693,7 +693,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CogAudio" */; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CogAudio" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -905,6 +905,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
PRODUCT_MODULE_NAME = CogAudio; PRODUCT_MODULE_NAME = CogAudio;
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h";
SYMROOT = ../build; SYMROOT = ../build;
}; };
@ -952,6 +953,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
PRODUCT_MODULE_NAME = CogAudio; PRODUCT_MODULE_NAME = CogAudio;
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "CogAudio-Bridging-Header.h";
SYMROOT = ../build; SYMROOT = ../build;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -7,15 +7,5 @@
<string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string>
</array> </array>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict> </dict>
</plist> </plist>

View file

@ -129,7 +129,7 @@
836EF0C827BB91E600BF35B2 /* libogg.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C427BB919300BF35B2 /* libogg.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 836EF0C827BB91E600BF35B2 /* libogg.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C427BB919300BF35B2 /* libogg.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
836EF0C927BB91E900BF35B2 /* libvorbisfile.3.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C627BB91AB00BF35B2 /* libvorbisfile.3.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 836EF0C927BB91E900BF35B2 /* libvorbisfile.3.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C627BB91AB00BF35B2 /* libvorbisfile.3.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
836EF0CA27BB91EB00BF35B2 /* libvorbis.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C527BB91AB00BF35B2 /* libvorbis.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 836EF0CA27BB91EB00BF35B2 /* libvorbis.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C527BB91AB00BF35B2 /* libvorbis.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
836EF0CB27BB91EE00BF35B2 /* libFLAC.12.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C727BB91BC00BF35B2 /* libFLAC.12.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 836EF0CB27BB91EE00BF35B2 /* libFLAC.14.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0C727BB91BC00BF35B2 /* libFLAC.14.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
836EF0E027BB98A800BF35B2 /* libopus.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0CC27BB94E100BF35B2 /* libopus.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 836EF0E027BB98A800BF35B2 /* libopus.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0CC27BB94E100BF35B2 /* libopus.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
836EF0E127BB98AB00BF35B2 /* libopusfile.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0CD27BB94F100BF35B2 /* libopusfile.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 836EF0E127BB98AB00BF35B2 /* libopusfile.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 836EF0CD27BB94F100BF35B2 /* libopusfile.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
836F5BF91A357A01002730CC /* sidplay.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8314D6411A354DFF00EEE8E6 /* sidplay.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 836F5BF91A357A01002730CC /* sidplay.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8314D6411A354DFF00EEE8E6 /* sidplay.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@ -158,6 +158,7 @@
83988F0E27BE0A5900A0E89A /* RedundantPlaylistDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 83988F0D27BE0A5900A0E89A /* RedundantPlaylistDataStore.m */; }; 83988F0E27BE0A5900A0E89A /* RedundantPlaylistDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 83988F0D27BE0A5900A0E89A /* RedundantPlaylistDataStore.m */; };
8399D4E21805A55000B503B1 /* XmlContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399D4E01805A55000B503B1 /* XmlContainer.m */; }; 8399D4E21805A55000B503B1 /* XmlContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399D4E01805A55000B503B1 /* XmlContainer.m */; };
839B837F286D7F8D00F529EE /* NumberHertzToStringTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B837E286D7F8D00F529EE /* NumberHertzToStringTransformer.swift */; }; 839B837F286D7F8D00F529EE /* NumberHertzToStringTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B837E286D7F8D00F529EE /* NumberHertzToStringTransformer.swift */; };
839C957A2DF8E70900D007EB /* Cog26.icon in Resources */ = {isa = PBXBuildFile; fileRef = 839C95792DF8E70900D007EB /* Cog26.icon */; };
839DA7CF274A2D4C001B18E5 /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */; }; 839DA7CF274A2D4C001B18E5 /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */; };
839E56F52879625100DFB5F4 /* SADIE_D02-96000.mhr in Resources */ = {isa = PBXBuildFile; fileRef = 839E56F12879625100DFB5F4 /* SADIE_D02-96000.mhr */; }; 839E56F52879625100DFB5F4 /* SADIE_D02-96000.mhr in Resources */ = {isa = PBXBuildFile; fileRef = 839E56F12879625100DFB5F4 /* SADIE_D02-96000.mhr */; };
839E876E2D5DA0AC00A13526 /* RubberbandEngineTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 839E876D2D5DA0AC00A13526 /* RubberbandEngineTransformer.m */; }; 839E876E2D5DA0AC00A13526 /* RubberbandEngineTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 839E876D2D5DA0AC00A13526 /* RubberbandEngineTransformer.m */; };
@ -721,7 +722,7 @@
836DF617298F6F1700CD0580 /* libsoxr.0.dylib in CopyFiles */, 836DF617298F6F1700CD0580 /* libsoxr.0.dylib in CopyFiles */,
836EF0E127BB98AB00BF35B2 /* libopusfile.0.dylib in CopyFiles */, 836EF0E127BB98AB00BF35B2 /* libopusfile.0.dylib in CopyFiles */,
836EF0E027BB98A800BF35B2 /* libopus.0.dylib in CopyFiles */, 836EF0E027BB98A800BF35B2 /* libopus.0.dylib in CopyFiles */,
836EF0CB27BB91EE00BF35B2 /* libFLAC.12.dylib in CopyFiles */, 836EF0CB27BB91EE00BF35B2 /* libFLAC.14.dylib in CopyFiles */,
836EF0CA27BB91EB00BF35B2 /* libvorbis.0.dylib in CopyFiles */, 836EF0CA27BB91EB00BF35B2 /* libvorbis.0.dylib in CopyFiles */,
83256B69286661FC0036D9C0 /* libmpg123.0.dylib in CopyFiles */, 83256B69286661FC0036D9C0 /* libmpg123.0.dylib in CopyFiles */,
836EF0C927BB91E900BF35B2 /* libvorbisfile.3.dylib in CopyFiles */, 836EF0C927BB91E900BF35B2 /* libvorbisfile.3.dylib in CopyFiles */,
@ -951,7 +952,7 @@
836EF0C427BB919300BF35B2 /* libogg.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libogg.0.dylib; path = ThirdParty/ogg/lib/libogg.0.dylib; sourceTree = "<group>"; }; 836EF0C427BB919300BF35B2 /* libogg.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libogg.0.dylib; path = ThirdParty/ogg/lib/libogg.0.dylib; sourceTree = "<group>"; };
836EF0C527BB91AB00BF35B2 /* libvorbis.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libvorbis.0.dylib; path = ThirdParty/vorbis/lib/libvorbis.0.dylib; sourceTree = "<group>"; }; 836EF0C527BB91AB00BF35B2 /* libvorbis.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libvorbis.0.dylib; path = ThirdParty/vorbis/lib/libvorbis.0.dylib; sourceTree = "<group>"; };
836EF0C627BB91AB00BF35B2 /* libvorbisfile.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libvorbisfile.3.dylib; path = ThirdParty/vorbis/lib/libvorbisfile.3.dylib; sourceTree = "<group>"; }; 836EF0C627BB91AB00BF35B2 /* libvorbisfile.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libvorbisfile.3.dylib; path = ThirdParty/vorbis/lib/libvorbisfile.3.dylib; sourceTree = "<group>"; };
836EF0C727BB91BC00BF35B2 /* libFLAC.12.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libFLAC.12.dylib; path = ThirdParty/flac/lib/libFLAC.12.dylib; sourceTree = "<group>"; }; 836EF0C727BB91BC00BF35B2 /* libFLAC.14.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libFLAC.14.dylib; path = ThirdParty/flac/lib/libFLAC.14.dylib; sourceTree = "<group>"; };
836EF0CC27BB94E100BF35B2 /* libopus.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libopus.0.dylib; path = ThirdParty/opus/lib/libopus.0.dylib; sourceTree = "<group>"; }; 836EF0CC27BB94E100BF35B2 /* libopus.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libopus.0.dylib; path = ThirdParty/opus/lib/libopus.0.dylib; sourceTree = "<group>"; };
836EF0CD27BB94F100BF35B2 /* libopusfile.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libopusfile.0.dylib; path = ThirdParty/opusfile/lib/libopusfile.0.dylib; sourceTree = "<group>"; }; 836EF0CD27BB94F100BF35B2 /* libopusfile.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libopusfile.0.dylib; path = ThirdParty/opusfile/lib/libopusfile.0.dylib; sourceTree = "<group>"; };
836F6B2518BDB80D0095E648 /* vgmstream.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = vgmstream.xcodeproj; path = Plugins/vgmstream/vgmstream.xcodeproj; sourceTree = "<group>"; }; 836F6B2518BDB80D0095E648 /* vgmstream.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = vgmstream.xcodeproj; path = Plugins/vgmstream/vgmstream.xcodeproj; sourceTree = "<group>"; };
@ -1004,6 +1005,7 @@
8399D4E01805A55000B503B1 /* XmlContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XmlContainer.m; sourceTree = "<group>"; }; 8399D4E01805A55000B503B1 /* XmlContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XmlContainer.m; sourceTree = "<group>"; };
8399D4E11805A55000B503B1 /* XmlContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlContainer.h; sourceTree = "<group>"; }; 8399D4E11805A55000B503B1 /* XmlContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlContainer.h; sourceTree = "<group>"; };
839B837E286D7F8D00F529EE /* NumberHertzToStringTransformer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = NumberHertzToStringTransformer.swift; path = Transformers/NumberHertzToStringTransformer.swift; sourceTree = "<group>"; }; 839B837E286D7F8D00F529EE /* NumberHertzToStringTransformer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = NumberHertzToStringTransformer.swift; path = Transformers/NumberHertzToStringTransformer.swift; sourceTree = "<group>"; };
839C95792DF8E70900D007EB /* Cog26.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = Cog26.icon; sourceTree = "<group>"; };
839DA7CB274A2D4C001B18E5 /* NSDictionary+Merge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Merge.h"; sourceTree = "<group>"; }; 839DA7CB274A2D4C001B18E5 /* NSDictionary+Merge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Merge.h"; sourceTree = "<group>"; };
839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Merge.m"; sourceTree = "<group>"; }; 839DA7CE274A2D4C001B18E5 /* NSDictionary+Merge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Merge.m"; sourceTree = "<group>"; };
839E3B53286595D700880EA2 /* GeneralPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GeneralPane.h; path = Preferences/Preferences/GeneralPane.h; sourceTree = "<group>"; }; 839E3B53286595D700880EA2 /* GeneralPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GeneralPane.h; path = Preferences/Preferences/GeneralPane.h; sourceTree = "<group>"; };
@ -1154,7 +1156,7 @@
835FAC7D27BCDF5B00BA8562 /* libavif.a */, 835FAC7D27BCDF5B00BA8562 /* libavif.a */,
836EF0CD27BB94F100BF35B2 /* libopusfile.0.dylib */, 836EF0CD27BB94F100BF35B2 /* libopusfile.0.dylib */,
836EF0CC27BB94E100BF35B2 /* libopus.0.dylib */, 836EF0CC27BB94E100BF35B2 /* libopus.0.dylib */,
836EF0C727BB91BC00BF35B2 /* libFLAC.12.dylib */, 836EF0C727BB91BC00BF35B2 /* libFLAC.14.dylib */,
836EF0C527BB91AB00BF35B2 /* libvorbis.0.dylib */, 836EF0C527BB91AB00BF35B2 /* libvorbis.0.dylib */,
836EF0C627BB91AB00BF35B2 /* libvorbisfile.3.dylib */, 836EF0C627BB91AB00BF35B2 /* libvorbisfile.3.dylib */,
836EF0C427BB919300BF35B2 /* libogg.0.dylib */, 836EF0C427BB919300BF35B2 /* libogg.0.dylib */,
@ -1473,6 +1475,7 @@
29B97314FDCFA39411CA2CEA /* Cog */ = { 29B97314FDCFA39411CA2CEA /* Cog */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
839C95792DF8E70900D007EB /* Cog26.icon */,
0A1B412E286F6301008A6A44 /* Localizable.stringsdict */, 0A1B412E286F6301008A6A44 /* Localizable.stringsdict */,
83D0380E24A40DF2004CF90F /* CogAssets.xcassets */, 83D0380E24A40DF2004CF90F /* CogAssets.xcassets */,
83859520234FEB35004E9946 /* Cog.entitlements */, 83859520234FEB35004E9946 /* Cog.entitlements */,
@ -2043,7 +2046,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1500; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cog" */; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cog" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -2467,6 +2470,7 @@
839614AD286EDA5C00D3EEDB /* SpectrumWindow.xib in Resources */, 839614AD286EDA5C00D3EEDB /* SpectrumWindow.xib in Resources */,
171B57DD0C091F2B00F6AFAF /* flac.icns in Resources */, 171B57DD0C091F2B00F6AFAF /* flac.icns in Resources */,
171B57DE0C091F2B00F6AFAF /* m4a.icns in Resources */, 171B57DE0C091F2B00F6AFAF /* m4a.icns in Resources */,
839C957A2DF8E70900D007EB /* Cog26.icon in Resources */,
839E56F52879625100DFB5F4 /* SADIE_D02-96000.mhr in Resources */, 839E56F52879625100DFB5F4 /* SADIE_D02-96000.mhr in Resources */,
830C37A127B95E3000E02BB0 /* Equalizer.xib in Resources */, 830C37A127B95E3000E02BB0 /* Equalizer.xib in Resources */,
171B57DF0C091F2B00F6AFAF /* mp3.icns in Resources */, 171B57DF0C091F2B00F6AFAF /* mp3.icns in Resources */,
@ -2943,10 +2947,15 @@
C01FCF4B08A954540054247B /* Debug */ = { C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = Cog26;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "Cog color"; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "Cog color";
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
ENABLE_USER_SELECTED_FILES = readwrite;
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ThirdParty/Frameworks"; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ThirdParty/Frameworks";
GCC_DYNAMIC_NO_PIC = NO; GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_EXCEPTIONS = YES;
@ -2971,6 +2980,7 @@
"$(PROJECT_DIR)", "$(PROJECT_DIR)",
"$(PROJECT_DIR)/ThirdParty/rubberband/lib", "$(PROJECT_DIR)/ThirdParty/rubberband/lib",
); );
MACOSX_DEPLOYMENT_TARGET = 10.13;
OTHER_CFLAGS = ( OTHER_CFLAGS = (
"-D__MACOSX__", "-D__MACOSX__",
"-DHAVE_CONFIG_H", "-DHAVE_CONFIG_H",
@ -2989,6 +2999,9 @@
); );
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog; PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog;
PRODUCT_NAME = Cog; PRODUCT_NAME = Cog;
PROVISIONING_PROFILE_SPECIFIER = "";
RUNTIME_EXCEPTION_ALLOW_JIT = YES;
RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = YES;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_OBJC_BRIDGING_HEADER = "Cog-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Cog-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -3000,9 +3013,14 @@
C01FCF4C08A954540054247B /* Release */ = { C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = Cog26;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "Cog color"; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "Cog color";
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
ENABLE_USER_SELECTED_FILES = readwrite;
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ThirdParty/Frameworks"; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ThirdParty/Frameworks";
GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_EXCEPTIONS = YES;
HEADER_SEARCH_PATHS = ThirdParty/avif/include; HEADER_SEARCH_PATHS = ThirdParty/avif/include;
@ -3025,6 +3043,7 @@
"$(PROJECT_DIR)", "$(PROJECT_DIR)",
"$(PROJECT_DIR)/ThirdParty/rubberband/lib", "$(PROJECT_DIR)/ThirdParty/rubberband/lib",
); );
MACOSX_DEPLOYMENT_TARGET = 10.13;
OTHER_CFLAGS = ( OTHER_CFLAGS = (
"-D__MACOSX__", "-D__MACOSX__",
"-DHAVE_CONFIG_H", "-DHAVE_CONFIG_H",
@ -3043,6 +3062,9 @@
); );
PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog; PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog;
PRODUCT_NAME = Cog; PRODUCT_NAME = Cog;
PROVISIONING_PROFILE_SPECIFIER = "";
RUNTIME_EXCEPTION_ALLOW_JIT = YES;
RUNTIME_EXCEPTION_DISABLE_LIBRARY_VALIDATION = YES;
SDKROOT = macosx; SDKROOT = macosx;
SWIFT_OBJC_BRIDGING_HEADER = "Cog-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Cog-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -3079,7 +3101,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = Cog.entitlements; CODE_SIGN_ENTITLEMENTS = Cog.entitlements;
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
ENABLE_HARDENED_RUNTIME = YES; DEAD_CODE_STRIPPING = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES; ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
@ -3093,6 +3115,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13; MACOSX_DEPLOYMENT_TARGET = 10.13;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -3124,8 +3147,8 @@
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_ENTITLEMENTS = Cog.entitlements; CODE_SIGN_ENTITLEMENTS = Cog.entitlements;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@ -3136,6 +3159,7 @@
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.13; MACOSX_DEPLOYMENT_TARGET = 10.13;
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.7"> version = "1.7">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 720 720" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1.00628,0.269633,-0.322362,1.20307,-166.912,-364.608)">
<g>
<path d="M688.647,164.035C696.109,164.437 702.246,169.104 703.433,175.279C705.212,184.454 707.761,197.712 709.467,206.587C710.54,212.171 715.688,216.592 722.334,217.638C735.557,219.762 748.579,222.681 761.306,226.357C767.68,228.229 774.772,226.554 779.036,222.172C785.832,215.21 795.964,204.793 802.977,197.584C807.701,192.727 815.814,191.25 822.524,194.026C834.796,199.178 846.699,204.926 858.161,211.252C864.383,214.721 866.908,221.329 864.244,227.173C860.301,235.863 854.582,248.41 850.754,256.809C848.346,262.095 850.161,268.076 855.292,271.761C865.473,279.131 875.006,287.104 883.831,295.61C888.231,299.897 895.374,301.413 901.686,299.401C911.734,296.214 926.736,291.43 937.119,288.12C944.113,285.889 952.022,288.003 956.173,293.213C963.722,302.807 970.594,312.763 976.739,323.035C980.053,328.641 978.29,335.42 972.49,339.367C963.88,345.243 951.427,353.719 943.091,359.391C937.846,362.961 935.842,368.901 938.083,374.238C942.494,384.878 945.984,395.771 948.542,406.828C949.79,412.381 955.07,416.681 961.74,417.578C972.346,419.02 988.197,421.151 999.17,422.626C1006.56,423.62 1012.15,428.76 1012.63,435.009C1013.43,446.473 1013.43,457.967 1012.61,469.43C1012.13,475.673 1006.55,480.808 999.167,481.801C988.198,483.289 972.346,485.421 961.736,486.847C955.059,487.745 949.774,492.051 948.524,497.61C945.984,508.67 942.495,519.562 938.1,530.207C935.862,535.538 937.864,541.471 943.103,545.037C951.427,550.721 963.88,559.197 972.5,565.063C978.306,569.014 980.071,575.799 976.754,581.411C970.594,591.677 963.722,601.633 956.16,611.219C952.012,616.424 944.112,618.536 937.125,616.308C926.736,613.01 911.734,608.226 901.693,605.025C895.374,603.01 888.223,604.528 883.817,608.82C875.006,617.336 865.473,625.31 855.303,632.691C850.178,636.372 848.366,642.347 850.772,647.626C854.582,656.03 860.301,668.578 864.259,677.263C866.926,683.113 864.398,689.728 858.17,693.201C846.699,699.515 834.796,705.262 822.516,710.402C815.813,713.175 807.709,711.7 802.989,706.848C795.964,699.647 785.832,689.23 779.05,682.258C774.782,677.871 767.681,676.195 761.3,678.069C748.579,681.759 735.557,684.678 722.337,686.817C715.699,687.862 710.557,692.278 709.485,697.856C707.761,706.728 705.212,719.986 703.448,729.163C702.261,735.345 696.118,740.016 688.648,740.419C674.94,741.09 661.196,741.09 647.488,740.405C640.026,740.003 633.889,735.336 632.702,729.161C630.923,719.986 628.375,706.728 626.669,697.854C625.596,692.269 620.448,687.848 613.802,686.802C600.579,684.678 587.557,681.759 574.83,678.083C568.456,676.211 561.364,677.886 557.1,682.268C550.304,689.23 540.172,699.647 533.159,706.856C528.435,711.713 520.322,713.19 513.612,710.414C501.339,705.263 489.437,699.515 477.975,693.189C471.753,689.72 469.228,683.112 471.892,677.268C475.835,668.578 481.554,656.03 485.382,647.632C487.79,642.346 485.975,636.365 480.845,632.68C470.663,625.31 461.13,617.336 452.305,608.83C447.905,604.543 440.762,603.027 434.45,605.039C424.402,608.226 409.4,613.01 399.017,616.32C392.023,618.551 384.114,616.437 379.963,611.227C372.414,601.633 365.542,591.677 359.397,581.405C356.083,575.799 357.846,569.02 363.646,565.073C372.256,559.197 384.709,550.721 393.044,545.049C398.29,541.479 400.294,535.539 398.053,530.202C393.641,519.562 390.152,508.67 387.594,497.613C386.346,492.06 381.066,487.76 374.397,486.863C363.79,485.42 347.939,483.289 336.967,481.813C329.577,480.82 323.992,475.682 323.511,469.434C322.709,457.968 322.709,446.472 323.527,435.007C324.008,428.766 329.587,423.633 336.97,422.64C347.939,421.152 363.79,419.02 374.399,417.594C381.076,416.696 386.362,412.39 387.612,406.831C390.152,395.771 393.642,384.878 398.036,374.232C400.274,368.902 398.272,362.969 393.033,359.403C384.709,353.719 372.256,345.243 363.636,339.377C357.83,335.426 356.065,328.641 359.382,323.029C365.542,312.763 372.414,302.807 379.976,293.221C384.124,288.016 392.024,285.904 399.011,288.132C409.4,291.43 424.402,296.214 434.443,299.415C440.762,301.43 447.913,299.912 452.319,295.62C461.13,287.104 470.663,279.131 480.832,271.75C485.957,268.069 487.77,262.094 485.364,256.815C481.554,248.41 475.835,235.863 471.877,227.178C469.21,221.328 471.738,214.713 477.966,211.24C489.437,204.926 501.339,199.178 513.62,194.038C520.323,191.265 528.427,192.74 533.147,197.592C540.172,204.793 550.304,215.21 557.086,222.182C561.354,226.569 568.455,228.245 574.836,226.371C587.557,222.681 600.579,219.762 613.798,217.623C620.437,216.578 625.579,212.162 626.651,206.584C628.375,197.712 630.923,184.454 632.687,175.278C633.874,169.096 640.018,164.424 647.488,164.022C661.196,163.351 674.94,163.351 688.647,164.035Z" style="fill:rgb(170,170,170);"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 444 444" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-290.495,-290.495)">
<g transform="matrix(1.64928,0,0,2.40966,-344.908,-858.521)">
<ellipse cx="519.565" cy="568.761" rx="134.304" ry="91.924" style="fill:rgb(255,200,0);"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 701 B

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 207 234" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-421.248,-394.96)">
<g transform="matrix(11.2166,0,0,11.2166,395.945,394.96)">
<path d="M2.256,19.17C2.256,20.322 2.93,20.859 3.721,20.859C4.063,20.859 4.424,20.752 4.766,20.557L19.453,11.924C20.361,11.397 20.693,11.025 20.693,10.43C20.693,9.824 20.361,9.453 19.453,8.926L4.766,0.293C4.424,0.098 4.063,0 3.721,0C2.93,0 2.256,0.527 2.256,1.68L2.256,19.17Z" style="fill:rgb(226,255,0);fill-opacity:0.85;fill-rule:nonzero;"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 950 B

170
Cog26.icon/icon.json Normal file
View file

@ -0,0 +1,170 @@
{
"fill" : "automatic",
"groups" : [
{
"blend-mode" : "plus-lighter",
"blur-material" : 1,
"layers" : [
{
"blend-mode-specializations" : [
{
"value" : "plus-lighter"
},
{
"appearance" : "tinted",
"value" : "plus-darker"
}
],
"fill-specializations" : [
{
"value" : {
"automatic-gradient" : "extended-gray:1.00000,1.00000"
}
},
{
"appearance" : "tinted",
"value" : {
"solid" : "srgb:0.74968,0.74968,0.74968,1.00000"
}
}
],
"glass" : true,
"image-name" : "play.svg",
"name" : "play",
"opacity" : 0.51,
"position" : {
"scale" : 1.06,
"translation-in-points" : [
21,
0
]
}
}
],
"shadow" : {
"kind" : "layer-color",
"opacity" : 1
},
"specular" : true,
"translucency-specializations" : [
{
"value" : {
"enabled" : true,
"value" : 1
}
},
{
"appearance" : "tinted",
"value" : {
"enabled" : false,
"value" : 1
}
}
]
},
{
"blur-material" : 0.53,
"hidden" : false,
"layers" : [
{
"fill-specializations" : [
{
"value" : {
"automatic-gradient" : "srgb:1.00000,0.45770,0.00000,1.00000"
}
},
{
"appearance" : "tinted",
"value" : {
"linear-gradient" : [
"gray:0.69290,1.00000",
"srgb:0.30390,0.30390,0.30390,1.00000"
]
}
}
],
"glass" : true,
"hidden" : false,
"image-name" : "orb.svg",
"name" : "orb",
"position" : {
"scale" : 1.15,
"translation-in-points" : [
0,
0
]
}
}
],
"lighting" : "combined",
"name" : "Group",
"position" : {
"scale" : 1,
"translation-in-points" : [
0,
0
]
},
"shadow" : {
"kind" : "layer-color",
"opacity" : 1
},
"specular" : true,
"translucency" : {
"enabled" : true,
"value" : 0
}
},
{
"blur-material" : null,
"layers" : [
{
"blend-mode" : "normal",
"fill-specializations" : [
{
"value" : "automatic"
},
{
"appearance" : "light",
"value" : {
"automatic-gradient" : "extended-gray:0.45594,1.00000"
}
},
{
"appearance" : "dark",
"value" : {
"automatic-gradient" : "extended-gray:0.57231,1.00000"
}
}
],
"hidden" : false,
"image-name" : "cog.svg",
"name" : "cog",
"opacity" : 1,
"position" : {
"scale" : 1.15,
"translation-in-points" : [
0,
0
]
}
}
],
"lighting" : "combined",
"shadow" : {
"kind" : "layer-color",
"opacity" : 1
},
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.72
}
}
],
"supported-platforms" : {
"squares" : [
"macOS"
]
}
}

View file

@ -558,7 +558,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83D3C4CE201C654F005564CB /* Build configuration list for PBXProject "libAdPlug" */; buildConfigurationList = 83D3C4CE201C654F005564CB /* Build configuration list for PBXProject "libAdPlug" */;
@ -743,6 +743,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -802,6 +803,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -632,7 +632,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1640; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 8359FF3617FEF39F0060F3ED /* Build configuration list for PBXProject "File_Extractor" */; buildConfigurationList = 8359FF3617FEF39F0060F3ED /* Build configuration list for PBXProject "File_Extractor" */;
@ -811,6 +811,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -863,6 +864,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -628,7 +628,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GME" */; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "GME" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -849,6 +849,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -896,6 +897,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -249,7 +249,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 8343792F17F97BDB00584396 /* Build configuration list for PBXProject "HighlyAdvanced" */; buildConfigurationList = 8343792F17F97BDB00584396 /* Build configuration list for PBXProject "HighlyAdvanced" */;
@ -375,6 +375,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -426,6 +427,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -188,7 +188,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 8360EF0A17F92C91005208A4 /* Build configuration list for PBXProject "HighlyExperimental" */; buildConfigurationList = 8360EF0A17F92C91005208A4 /* Build configuration list for PBXProject "HighlyExperimental" */;
@ -312,6 +312,7 @@
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -363,6 +364,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13; MACOSX_DEPLOYMENT_TARGET = 10.13;
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -160,7 +160,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 834378D817F96E2600584396 /* Build configuration list for PBXProject "HighlyQuixotic" */; buildConfigurationList = 834378D817F96E2600584396 /* Build configuration list for PBXProject "HighlyQuixotic" */;
@ -284,6 +284,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -342,6 +343,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -202,7 +202,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 8343786817F9658E00584396 /* Build configuration list for PBXProject "HighlyTheoretical" */; buildConfigurationList = 8343786817F9658E00584396 /* Build configuration list for PBXProject "HighlyTheoretical" */;
@ -331,6 +331,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -391,6 +392,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -142,7 +142,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 836FB550182053D700B3AD2D /* Build configuration list for PBXProject "HivelyPlayer" */; buildConfigurationList = 836FB550182053D700B3AD2D /* Build configuration list for PBXProject "HivelyPlayer" */;
@ -261,6 +261,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -314,6 +315,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -243,7 +243,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "MPCDec" */; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "MPCDec" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -410,6 +410,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -455,6 +456,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -2347,7 +2347,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83E5EFB71FFEF7CC00659F0F /* Build configuration list for PBXProject "libOpenMPT" */; buildConfigurationList = 83E5EFB71FFEF7CC00659F0F /* Build configuration list for PBXProject "libOpenMPT" */;
@ -2611,6 +2611,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
USE_HEADERMAP = YES; USE_HEADERMAP = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
@ -2684,6 +2685,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
USE_HEADERMAP = YES; USE_HEADERMAP = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";

View file

@ -251,7 +251,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83848FB21807623F00E7332D /* Build configuration list for PBXProject "SSEQPlayer" */; buildConfigurationList = 83848FB21807623F00E7332D /* Build configuration list for PBXProject "SSEQPlayer" */;
@ -380,6 +380,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -431,6 +432,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -187,7 +187,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Shorten" */; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Shorten" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -362,6 +362,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -414,6 +415,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -230,7 +230,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83D731161A74968900CA1366 /* Build configuration list for PBXProject "g719" */; buildConfigurationList = 83D731161A74968900CA1366 /* Build configuration list for PBXProject "g719" */;
@ -353,6 +353,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -407,6 +408,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -959,7 +959,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83C8B61C18AF57770071B040 /* Build configuration list for PBXProject "lazyusf2" */; buildConfigurationList = 83C8B61C18AF57770071B040 /* Build configuration list for PBXProject "lazyusf2" */;
@ -1123,6 +1123,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -1175,6 +1176,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -186,7 +186,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
TargetAttributes = { TargetAttributes = {
835FC6AF23F61BF0006960FA = { 835FC6AF23F61BF0006960FA = {
@ -308,6 +308,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -368,6 +369,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -126,7 +126,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83D3C675201D37D8005564CB /* Build configuration list for PBXProject "libbinio" */; buildConfigurationList = 83D3C675201D37D8005564CB /* Build configuration list for PBXProject "libbinio" */;
@ -233,6 +233,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -292,6 +293,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -274,7 +274,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
TargetAttributes = { TargetAttributes = {
83D6761F26539A7100252130 = { 83D6761F26539A7100252130 = {
CreatedOnToolsVersion = 12.5; CreatedOnToolsVersion = 12.5;
@ -441,6 +441,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -542,6 +543,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -263,7 +263,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
TargetAttributes = { TargetAttributes = {
83D676AD26539F4E00252130 = { 83D676AD26539F4E00252130 = {
CreatedOnToolsVersion = 12.5; CreatedOnToolsVersion = 12.5;
@ -429,6 +429,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -530,6 +531,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -1147,7 +1147,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
TargetAttributes = { TargetAttributes = {
EDBE8EF825E7E641001EB4A4 = { EDBE8EF825E7E641001EB4A4 = {
CreatedOnToolsVersion = 12.5; CreatedOnToolsVersion = 12.5;
@ -1320,6 +1320,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -1380,6 +1381,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -1105,7 +1105,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83CA240D1D7BC47C00F2EA53 /* Build configuration list for PBXProject "mGBA" */; buildConfigurationList = 83CA240D1D7BC47C00F2EA53 /* Build configuration list for PBXProject "mGBA" */;
@ -1266,6 +1266,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -1324,6 +1325,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -172,7 +172,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83B066A6180D56B9008E3612 /* Build configuration list for PBXProject "midi_processing" */; buildConfigurationList = 83B066A6180D56B9008E3612 /* Build configuration list for PBXProject "midi_processing" */;
@ -301,6 +301,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -354,6 +355,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -146,7 +146,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 8343781617F93CB500584396 /* Build configuration list for PBXProject "psflib" */; buildConfigurationList = 8343781617F93CB500584396 /* Build configuration list for PBXProject "psflib" */;
@ -264,6 +264,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -315,6 +316,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -62,7 +62,7 @@
8306B0EB20984590000302D4 /* wave_segmented.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D02098458F000302D4 /* wave_segmented.c */; }; 8306B0EB20984590000302D4 /* wave_segmented.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D02098458F000302D4 /* wave_segmented.c */; };
8306B0EC20984590000302D4 /* pcm_sre.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D12098458F000302D4 /* pcm_sre.c */; }; 8306B0EC20984590000302D4 /* pcm_sre.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D12098458F000302D4 /* pcm_sre.c */; };
8306B0ED20984590000302D4 /* txtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D22098458F000302D4 /* txtp.c */; }; 8306B0ED20984590000302D4 /* txtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D22098458F000302D4 /* txtp.c */; };
8306B0EE20984590000302D4 /* smc_smh.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D32098458F000302D4 /* smc_smh.c */; }; 8306B0EE20984590000302D4 /* smh_smc.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D32098458F000302D4 /* smh_smc.c */; };
8306B0EF20984590000302D4 /* ubi_bao.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D420984590000302D4 /* ubi_bao.c */; }; 8306B0EF20984590000302D4 /* ubi_bao.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D420984590000302D4 /* ubi_bao.c */; };
8306B0F020984590000302D4 /* atsl.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D520984590000302D4 /* atsl.c */; }; 8306B0F020984590000302D4 /* atsl.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D520984590000302D4 /* atsl.c */; };
8306B0F120984590000302D4 /* ppst.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D620984590000302D4 /* ppst.c */; }; 8306B0F120984590000302D4 /* ppst.c in Sources */ = {isa = PBXBuildFile; fileRef = 8306B0D620984590000302D4 /* ppst.c */; };
@ -154,6 +154,8 @@
832BF82B21E0514B006F50F1 /* xopus.c in Sources */ = {isa = PBXBuildFile; fileRef = 832BF81921E0514A006F50F1 /* xopus.c */; }; 832BF82B21E0514B006F50F1 /* xopus.c in Sources */ = {isa = PBXBuildFile; fileRef = 832BF81921E0514A006F50F1 /* xopus.c */; };
832BF82C21E0514B006F50F1 /* hca_keys_awb.h in Headers */ = {isa = PBXBuildFile; fileRef = 832BF81A21E0514A006F50F1 /* hca_keys_awb.h */; }; 832BF82C21E0514B006F50F1 /* hca_keys_awb.h in Headers */ = {isa = PBXBuildFile; fileRef = 832BF81A21E0514A006F50F1 /* hca_keys_awb.h */; };
832BF82D21E0514B006F50F1 /* nus3audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 832BF81B21E0514B006F50F1 /* nus3audio.c */; }; 832BF82D21E0514B006F50F1 /* nus3audio.c in Sources */ = {isa = PBXBuildFile; fileRef = 832BF81B21E0514B006F50F1 /* nus3audio.c */; };
832F9EA62E29047F00D08728 /* srcd.c in Sources */ = {isa = PBXBuildFile; fileRef = 832F9EA52E29047F00D08728 /* srcd.c */; };
832F9EA82E2905D500D08728 /* mhwk.c in Sources */ = {isa = PBXBuildFile; fileRef = 832F9EA72E2905D500D08728 /* mhwk.c */; };
832FC36C278FA4CB0056A860 /* ubi_ckd_cwav_streamfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 832FC367278FA4CB0056A860 /* ubi_ckd_cwav_streamfile.h */; }; 832FC36C278FA4CB0056A860 /* ubi_ckd_cwav_streamfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 832FC367278FA4CB0056A860 /* ubi_ckd_cwav_streamfile.h */; };
832FC36D278FA4CB0056A860 /* ubi_ckd_cwav.c in Sources */ = {isa = PBXBuildFile; fileRef = 832FC36B278FA4CB0056A860 /* ubi_ckd_cwav.c */; }; 832FC36D278FA4CB0056A860 /* ubi_ckd_cwav.c in Sources */ = {isa = PBXBuildFile; fileRef = 832FC36B278FA4CB0056A860 /* ubi_ckd_cwav.c */; };
832FC36F278FAE3E0056A860 /* encrypted_mc161_streamfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 832FC36E278FAE3E0056A860 /* encrypted_mc161_streamfile.h */; }; 832FC36F278FAE3E0056A860 /* encrypted_mc161_streamfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 832FC36E278FAE3E0056A860 /* encrypted_mc161_streamfile.h */; };
@ -515,7 +517,7 @@
836F6F9418BDC2190095E648 /* iivb.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5818BDC2180095E648 /* iivb.c */; }; 836F6F9418BDC2190095E648 /* iivb.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5818BDC2180095E648 /* iivb.c */; };
836F6F9518BDC2190095E648 /* kraw.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5918BDC2180095E648 /* kraw.c */; }; 836F6F9518BDC2190095E648 /* kraw.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5918BDC2180095E648 /* kraw.c */; };
836F6F9618BDC2190095E648 /* lsf.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5A18BDC2180095E648 /* lsf.c */; }; 836F6F9618BDC2190095E648 /* lsf.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5A18BDC2180095E648 /* lsf.c */; };
836F6F9818BDC2190095E648 /* mattel_hyperscan.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5C18BDC2180095E648 /* mattel_hyperscan.c */; }; 836F6F9818BDC2190095E648 /* kvag.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5C18BDC2180095E648 /* kvag.c */; };
836F6F9918BDC2190095E648 /* maxis_xa.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5D18BDC2180095E648 /* maxis_xa.c */; }; 836F6F9918BDC2190095E648 /* maxis_xa.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E5D18BDC2180095E648 /* maxis_xa.c */; };
836F6F9A18BDC2190095E648 /* meta.h in Headers */ = {isa = PBXBuildFile; fileRef = 836F6E5E18BDC2180095E648 /* meta.h */; }; 836F6F9A18BDC2190095E648 /* meta.h in Headers */ = {isa = PBXBuildFile; fileRef = 836F6E5E18BDC2180095E648 /* meta.h */; };
836F6F9C18BDC2190095E648 /* mp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E6018BDC2180095E648 /* mp4.c */; }; 836F6F9C18BDC2190095E648 /* mp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 836F6E6018BDC2180095E648 /* mp4.c */; };
@ -1020,7 +1022,7 @@
8306B0D02098458F000302D4 /* wave_segmented.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wave_segmented.c; sourceTree = "<group>"; }; 8306B0D02098458F000302D4 /* wave_segmented.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wave_segmented.c; sourceTree = "<group>"; };
8306B0D12098458F000302D4 /* pcm_sre.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcm_sre.c; sourceTree = "<group>"; }; 8306B0D12098458F000302D4 /* pcm_sre.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcm_sre.c; sourceTree = "<group>"; };
8306B0D22098458F000302D4 /* txtp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = txtp.c; sourceTree = "<group>"; }; 8306B0D22098458F000302D4 /* txtp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = txtp.c; sourceTree = "<group>"; };
8306B0D32098458F000302D4 /* smc_smh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smc_smh.c; sourceTree = "<group>"; }; 8306B0D32098458F000302D4 /* smh_smc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smh_smc.c; sourceTree = "<group>"; };
8306B0D420984590000302D4 /* ubi_bao.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ubi_bao.c; sourceTree = "<group>"; }; 8306B0D420984590000302D4 /* ubi_bao.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ubi_bao.c; sourceTree = "<group>"; };
8306B0D520984590000302D4 /* atsl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = atsl.c; sourceTree = "<group>"; }; 8306B0D520984590000302D4 /* atsl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = atsl.c; sourceTree = "<group>"; };
8306B0D620984590000302D4 /* ppst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ppst.c; sourceTree = "<group>"; }; 8306B0D620984590000302D4 /* ppst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ppst.c; sourceTree = "<group>"; };
@ -1112,6 +1114,8 @@
832BF81921E0514A006F50F1 /* xopus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xopus.c; sourceTree = "<group>"; }; 832BF81921E0514A006F50F1 /* xopus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xopus.c; sourceTree = "<group>"; };
832BF81A21E0514A006F50F1 /* hca_keys_awb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hca_keys_awb.h; sourceTree = "<group>"; }; 832BF81A21E0514A006F50F1 /* hca_keys_awb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hca_keys_awb.h; sourceTree = "<group>"; };
832BF81B21E0514B006F50F1 /* nus3audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nus3audio.c; sourceTree = "<group>"; }; 832BF81B21E0514B006F50F1 /* nus3audio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nus3audio.c; sourceTree = "<group>"; };
832F9EA52E29047F00D08728 /* srcd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = srcd.c; sourceTree = "<group>"; };
832F9EA72E2905D500D08728 /* mhwk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mhwk.c; sourceTree = "<group>"; };
832FC367278FA4CB0056A860 /* ubi_ckd_cwav_streamfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ubi_ckd_cwav_streamfile.h; sourceTree = "<group>"; }; 832FC367278FA4CB0056A860 /* ubi_ckd_cwav_streamfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ubi_ckd_cwav_streamfile.h; sourceTree = "<group>"; };
832FC36B278FA4CB0056A860 /* ubi_ckd_cwav.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ubi_ckd_cwav.c; sourceTree = "<group>"; }; 832FC36B278FA4CB0056A860 /* ubi_ckd_cwav.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ubi_ckd_cwav.c; sourceTree = "<group>"; };
832FC36E278FAE3E0056A860 /* encrypted_mc161_streamfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encrypted_mc161_streamfile.h; sourceTree = "<group>"; }; 832FC36E278FAE3E0056A860 /* encrypted_mc161_streamfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encrypted_mc161_streamfile.h; sourceTree = "<group>"; };
@ -1473,7 +1477,7 @@
836F6E5818BDC2180095E648 /* iivb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = iivb.c; sourceTree = "<group>"; }; 836F6E5818BDC2180095E648 /* iivb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = iivb.c; sourceTree = "<group>"; };
836F6E5918BDC2180095E648 /* kraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = kraw.c; sourceTree = "<group>"; }; 836F6E5918BDC2180095E648 /* kraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = kraw.c; sourceTree = "<group>"; };
836F6E5A18BDC2180095E648 /* lsf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lsf.c; sourceTree = "<group>"; }; 836F6E5A18BDC2180095E648 /* lsf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lsf.c; sourceTree = "<group>"; };
836F6E5C18BDC2180095E648 /* mattel_hyperscan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mattel_hyperscan.c; sourceTree = "<group>"; }; 836F6E5C18BDC2180095E648 /* kvag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = kvag.c; sourceTree = "<group>"; };
836F6E5D18BDC2180095E648 /* maxis_xa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maxis_xa.c; sourceTree = "<group>"; }; 836F6E5D18BDC2180095E648 /* maxis_xa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = maxis_xa.c; sourceTree = "<group>"; };
836F6E5E18BDC2180095E648 /* meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = meta.h; sourceTree = "<group>"; }; 836F6E5E18BDC2180095E648 /* meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = meta.h; sourceTree = "<group>"; };
836F6E6018BDC2180095E648 /* mp4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mp4.c; sourceTree = "<group>"; }; 836F6E6018BDC2180095E648 /* mp4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mp4.c; sourceTree = "<group>"; };
@ -2498,6 +2502,7 @@
83D20074248DDB760048BD24 /* ktsr.c */, 83D20074248DDB760048BD24 /* ktsr.c */,
834F7CFE2C7085EA003AC386 /* ktsr_streamfile.h */, 834F7CFE2C7085EA003AC386 /* ktsr_streamfile.h */,
830EBE122004656E0023AA10 /* ktss.c */, 830EBE122004656E0023AA10 /* ktss.c */,
836F6E5C18BDC2180095E648 /* kvag.c */,
8373342423F60CDB00DE14DC /* kwb.c */, 8373342423F60CDB00DE14DC /* kwb.c */,
835B9B8C2730BF2C00F87EE3 /* lopu_fb.c */, 835B9B8C2730BF2C00F87EE3 /* lopu_fb.c */,
836F6E9918BDC2180095E648 /* lp_ap_lep.c */, 836F6E9918BDC2180095E648 /* lp_ap_lep.c */,
@ -2509,11 +2514,11 @@
8373341F23F60CDB00DE14DC /* lrmd_streamfile.h */, 8373341F23F60CDB00DE14DC /* lrmd_streamfile.h */,
836F6E5A18BDC2180095E648 /* lsf.c */, 836F6E5A18BDC2180095E648 /* lsf.c */,
83EDE5D61A70951A005F5D84 /* madp.c */, 83EDE5D61A70951A005F5D84 /* madp.c */,
836F6E5C18BDC2180095E648 /* mattel_hyperscan.c */,
836F6E5D18BDC2180095E648 /* maxis_xa.c */, 836F6E5D18BDC2180095E648 /* maxis_xa.c */,
836F6E9D18BDC2180095E648 /* mcg.c */, 836F6E9D18BDC2180095E648 /* mcg.c */,
83709E011ECBC1A4005C03D3 /* mcss.c */, 83709E011ECBC1A4005C03D3 /* mcss.c */,
836F6E5E18BDC2180095E648 /* meta.h */, 836F6E5E18BDC2180095E648 /* meta.h */,
832F9EA72E2905D500D08728 /* mhwk.c */,
834FE0DE215C79EB000A5D3D /* mib_mih.c */, 834FE0DE215C79EB000A5D3D /* mib_mih.c */,
836F6EAC18BDC2180095E648 /* mic_koei.c */, 836F6EAC18BDC2180095E648 /* mic_koei.c */,
83B73C4A2D8FF19800A57F08 /* mio.c */, 83B73C4A2D8FF19800A57F08 /* mio.c */,
@ -2660,7 +2665,7 @@
83CBF5422D46339200AA2D75 /* skex.c */, 83CBF5422D46339200AA2D75 /* skex.c */,
836F6EBB18BDC2180095E648 /* sl3.c */, 836F6EBB18BDC2180095E648 /* sl3.c */,
836F6EF218BDC2190095E648 /* sli.c */, 836F6EF218BDC2190095E648 /* sli.c */,
8306B0D32098458F000302D4 /* smc_smh.c */, 8306B0D32098458F000302D4 /* smh_smc.c */,
837CEAEB23487F2B00E62A4A /* smk.c */, 837CEAEB23487F2B00E62A4A /* smk.c */,
83F0AA5C21E2028B004BBC04 /* smp.c */, 83F0AA5C21E2028B004BBC04 /* smp.c */,
836F6EBC18BDC2180095E648 /* smpl.c */, 836F6EBC18BDC2180095E648 /* smpl.c */,
@ -2679,6 +2684,7 @@
83A21F84201D8981000F04B9 /* sqex_sead.c */, 83A21F84201D8981000F04B9 /* sqex_sead.c */,
837CEAF023487F2C00E62A4A /* sqex_streamfile.h */, 837CEAF023487F2C00E62A4A /* sqex_streamfile.h */,
83C0C75C2AA435C60056AFD8 /* squeak.c */, 83C0C75C2AA435C60056AFD8 /* squeak.c */,
832F9EA52E29047F00D08728 /* srcd.c */,
834FE0D6215C79E9000A5D3D /* sscf.c */, 834FE0D6215C79E9000A5D3D /* sscf.c */,
8396BE792935FC2F00CD0580 /* sscf_encrypted.h */, 8396BE792935FC2F00CD0580 /* sscf_encrypted.h */,
8396BE782935FC2F00CD0580 /* sscf_encrypted.c */, 8396BE782935FC2F00CD0580 /* sscf_encrypted.c */,
@ -3127,7 +3133,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 836F6B3318BDB8880095E648 /* Build configuration list for PBXProject "libvgmstream" */; buildConfigurationList = 836F6B3318BDB8880095E648 /* Build configuration list for PBXProject "libvgmstream" */;
@ -3245,7 +3251,7 @@
83A21F8D201D8982000F04B9 /* sqex_sead.c in Sources */, 83A21F8D201D8982000F04B9 /* sqex_sead.c in Sources */,
834F7ED32C70A786003AC386 /* mixing.c in Sources */, 834F7ED32C70A786003AC386 /* mixing.c in Sources */,
83EED5D3203A8BC7008BEB45 /* ea_swvr.c in Sources */, 83EED5D3203A8BC7008BEB45 /* ea_swvr.c in Sources */,
8306B0EE20984590000302D4 /* smc_smh.c in Sources */, 8306B0EE20984590000302D4 /* smh_smc.c in Sources */,
834F7DAB2C7093EA003AC386 /* asf_decoder.c in Sources */, 834F7DAB2C7093EA003AC386 /* asf_decoder.c in Sources */,
834F7E0C2C7093EA003AC386 /* ws_decoder.c in Sources */, 834F7E0C2C7093EA003AC386 /* ws_decoder.c in Sources */,
834F7EDB2C70A786003AC386 /* streamfile_api.c in Sources */, 834F7EDB2C70A786003AC386 /* streamfile_api.c in Sources */,
@ -3553,7 +3559,7 @@
834F7E962C70A45C003AC386 /* txtp_parser.c in Sources */, 834F7E962C70A45C003AC386 /* txtp_parser.c in Sources */,
834FE0EA215C79ED000A5D3D /* aif_asobo.c in Sources */, 834FE0EA215C79ED000A5D3D /* aif_asobo.c in Sources */,
836F700418BDC2190095E648 /* vas_kceo.c in Sources */, 836F700418BDC2190095E648 /* vas_kceo.c in Sources */,
836F6F9818BDC2190095E648 /* mattel_hyperscan.c in Sources */, 836F6F9818BDC2190095E648 /* kvag.c in Sources */,
8306B0BA20984552000302D4 /* blocked_wsi.c in Sources */, 8306B0BA20984552000302D4 /* blocked_wsi.c in Sources */,
834F7E802C709EA0003AC386 /* adp_ongakukan.c in Sources */, 834F7E802C709EA0003AC386 /* adp_ongakukan.c in Sources */,
83BAFB6C19F45EB3005DAB60 /* bfstm.c in Sources */, 83BAFB6C19F45EB3005DAB60 /* bfstm.c in Sources */,
@ -3667,6 +3673,7 @@
834F7DB62C7093EA003AC386 /* compresswave_lib.c in Sources */, 834F7DB62C7093EA003AC386 /* compresswave_lib.c in Sources */,
834F7E042C7093EA003AC386 /* vorbis_custom_utils_awc.c in Sources */, 834F7E042C7093EA003AC386 /* vorbis_custom_utils_awc.c in Sources */,
8306B0EC20984590000302D4 /* pcm_sre.c in Sources */, 8306B0EC20984590000302D4 /* pcm_sre.c in Sources */,
832F9EA62E29047F00D08728 /* srcd.c in Sources */,
836F6FC818BDC2190095E648 /* pos.c in Sources */, 836F6FC818BDC2190095E648 /* pos.c in Sources */,
836F6F8918BDC2190095E648 /* gca.c in Sources */, 836F6F8918BDC2190095E648 /* gca.c in Sources */,
836F6FA418BDC2190095E648 /* nds_hwas.c in Sources */, 836F6FA418BDC2190095E648 /* nds_hwas.c in Sources */,
@ -3805,6 +3812,7 @@
836F6FA918BDC2190095E648 /* ngc_adpdtk.c in Sources */, 836F6FA918BDC2190095E648 /* ngc_adpdtk.c in Sources */,
836F6FDC18BDC2190095E648 /* iab.c in Sources */, 836F6FDC18BDC2190095E648 /* iab.c in Sources */,
83C7282122BC893D00678B4A /* msf_konami.c in Sources */, 83C7282122BC893D00678B4A /* msf_konami.c in Sources */,
832F9EA82E2905D500D08728 /* mhwk.c in Sources */,
833E82F72A2858EF00CD0580 /* reader.c in Sources */, 833E82F72A2858EF00CD0580 /* reader.c in Sources */,
83B69B222845A26600D2435A /* bw_mp3_riff.c in Sources */, 83B69B222845A26600D2435A /* bw_mp3_riff.c in Sources */,
834F7E192C709A1D003AC386 /* ea_schl_abk.c in Sources */, 834F7E192C709A1D003AC386 /* ea_schl_abk.c in Sources */,
@ -3981,6 +3989,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -4066,6 +4075,7 @@
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.7"> version = "1.7">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -10,7 +10,6 @@ void decode_tantalus(VGMSTREAMCHANNEL* stream, sample_t* outbuf, int channelspac
size_t bytes_per_frame, samples_per_frame; size_t bytes_per_frame, samples_per_frame;
int32_t hist1 = stream->adpcm_history1_32; int32_t hist1 = stream->adpcm_history1_32;
int32_t hist2 = stream->adpcm_history2_32;
/* external interleave (fixed size), mono */ /* external interleave (fixed size), mono */

View file

@ -347,6 +347,7 @@ static const char* extension_list[] = {
"mds", "mds",
"mdsp", "mdsp",
"med", "med",
"mhwk",
"mjb", "mjb",
"mi4", //fake extension for .mib (renamed, to be removed) "mi4", //fake extension for .mib (renamed, to be removed)
"mib", "mib",
@ -536,7 +537,7 @@ static const char* extension_list[] = {
"skx", "skx",
"slb", //txth/reserved [THE Nekomura no Hitobito (PS2)] "slb", //txth/reserved [THE Nekomura no Hitobito (PS2)]
"sli", "sli",
"smc", "smh",
"smk", "smk",
"smp", "smp",
"smv", "smv",
@ -558,6 +559,7 @@ static const char* extension_list[] = {
"spsd", "spsd",
"spw", "spw",
"srsa", "srsa",
"srcd",
"ss2", "ss2",
"ssd", //txth/reserved [Zack & Wiki (Wii)] "ssd", //txth/reserved [Zack & Wiki (Wii)]
"ssf", "ssf",
@ -1253,7 +1255,7 @@ static const meta_info meta_info_list[] = {
{meta_LSF_N1NJ4N, "Gizmondo Studios Helsingborg LSF header"}, {meta_LSF_N1NJ4N, "Gizmondo Studios Helsingborg LSF header"},
{meta_XWAV, "feelplus XWAV header"}, {meta_XWAV, "feelplus XWAV header"},
{meta_RAW_SNDS, "PC .snds raw header"}, {meta_RAW_SNDS, "PC .snds raw header"},
{meta_HYPERSCAN_KVAG, "Mattel Hyperscan KVAG"}, {meta_KVAG, "Mattel KVAG header"},
{meta_PSND, "Polarbit PSND header"}, {meta_PSND, "Polarbit PSND header"},
{meta_ADP_WILDFIRE, "Wildfire ADP! header"}, {meta_ADP_WILDFIRE, "Wildfire ADP! header"},
{meta_QD_ADP, "Quantic Dream .ADP header"}, {meta_QD_ADP, "Quantic Dream .ADP header"},
@ -1479,6 +1481,8 @@ static const meta_info meta_info_list[] = {
{meta_AUDIOPKG, "Inevitable .AUDIOPKG header"}, {meta_AUDIOPKG, "Inevitable .AUDIOPKG header"},
{meta_SWAR, "Nintendo SWAR header"}, {meta_SWAR, "Nintendo SWAR header"},
{meta_IVB, "Metro IVB header"}, {meta_IVB, "Metro IVB header"},
{meta_SRCD, "Capcom SRCD header"},
{meta_MHWK, "Broderbund MHWK header"}
}; };
void get_vgmstream_coding_description(VGMSTREAM* vgmstream, char* out, size_t out_size) { void get_vgmstream_coding_description(VGMSTREAM* vgmstream, char* out, size_t out_size) {

View file

@ -1,22 +1,22 @@
#include "layout.h" #include "layout.h"
#include "../vgmstream.h" #include "../vgmstream.h"
//MxCh blocked layout as used by Lego Island //MxCh blocked layout as used by Lego Island
void block_update_mxch(off_t block_offset, VGMSTREAM * vgmstream) { void block_update_mxch(off_t block_offset, VGMSTREAM * vgmstream) {
vgmstream->current_block_offset = block_offset; vgmstream->current_block_offset = block_offset;
vgmstream->next_block_offset = block_offset + vgmstream->next_block_offset = block_offset +
read_32bitLE(vgmstream->current_block_offset+4,vgmstream->ch[0].streamfile)+8; read_32bitLE(vgmstream->current_block_offset+4,vgmstream->ch[0].streamfile)+8;
/* skip pad blocks */ /* skip pad blocks */
while ( while (
read_32bitBE(vgmstream->current_block_offset, read_32bitBE(vgmstream->current_block_offset,
vgmstream->ch[0].streamfile) == 0x70616420) vgmstream->ch[0].streamfile) == 0x70616420)
{ {
vgmstream->current_block_offset = vgmstream->next_block_offset; vgmstream->current_block_offset = vgmstream->next_block_offset;
vgmstream->next_block_offset = vgmstream->current_block_offset + vgmstream->next_block_offset = vgmstream->current_block_offset +
read_32bitLE(vgmstream->current_block_offset+4,vgmstream->ch[0].streamfile)+8; read_32bitLE(vgmstream->current_block_offset+4,vgmstream->ch[0].streamfile)+8;
} }
vgmstream->current_block_size = vgmstream->current_block_size =
read_32bitLE(vgmstream->current_block_offset+4, vgmstream->ch[0].streamfile)-0xe; read_32bitLE(vgmstream->current_block_offset+4, vgmstream->ch[0].streamfile)-0xe;
// only one channel for now // only one channel for now
vgmstream->ch[0].offset = vgmstream->current_block_offset+8+0xe; vgmstream->ch[0].offset = vgmstream->current_block_offset+8+0xe;
} }

View file

@ -25,13 +25,13 @@ VGMSTREAM* init_vgmstream_astl(STREAMFILE* sf) {
// 28: -1? // 28: -1?
// 2c: -1? // 2c: -1?
if (read_u16le(0x30,sf) != 0x0001) // PCM only // fmt-like
return NULL; int format = read_u16le(0x30 + 0x00, sf);
channels = read_u16le(0x32, sf); channels = read_u16le(0x30 + 0x02, sf);
int sample_rate = read_s32le(0x34,sf); int sample_rate = read_s32le(0x30 + 0x04, sf);
// 38: bitrate // 08: avg bitrate
// 3a: block size // 0a: block size
// 3c: bps // 0e: bps
loop_flag = 0; // unlike X360 no apparent loop info in the files loop_flag = 0; // unlike X360 no apparent loop info in the files
@ -42,11 +42,51 @@ VGMSTREAM* init_vgmstream_astl(STREAMFILE* sf) {
vgmstream->meta_type = meta_ASTL; vgmstream->meta_type = meta_ASTL;
vgmstream->sample_rate = sample_rate; vgmstream->sample_rate = sample_rate;
vgmstream->num_samples = pcm16_bytes_to_samples(data_size, channels);
vgmstream->coding_type = coding_PCM16LE; switch(format) {
vgmstream->layout_type = layout_interleave; case 0x0001:
vgmstream->interleave_block_size = 0x2; vgmstream->num_samples = pcm16_bytes_to_samples(data_size, channels);
vgmstream->coding_type = coding_PCM16LE;
vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = 0x2;
break;
#ifdef VGM_USE_FFMPEG
case 0xFFFE: { // WAVEFORMATEXTENSIBLE
uint32_t avg_bitrate = read_u32le(0x30 + 0x08, sf);
uint16_t block_size = read_u16le(0x30 + 0x0c, sf);
uint32_t channel_layout = read_u32le(0x30 + 0x14, sf);
// actually a GUID but first 32b matches fmt (0x0162 / STATIC_KSDATAFORMAT_SUBTYPE_WMAUDIO3 only?)
uint32_t xwma_format = read_u32le(0x30 + 0x18, sf);
uint32_t dpds_offset = 0x30 + 0x28;
uint32_t dpds_size;
uint32_t offset = dpds_offset;
// TODO channel layout
vgmstream->codec_data = init_ffmpeg_xwma(sf, start_offset, data_size, xwma_format, channels, sample_rate, avg_bitrate, block_size);
if (!vgmstream->codec_data) goto fail;
vgmstream->coding_type = coding_FFmpeg;
vgmstream->layout_type = layout_none;
vgmstream->channel_layout = channel_layout;
// somehow there is no dpds size, so find last value before null padding
while (offset < start_offset) {
uint32_t sample = read_u32le(offset, sf);
if (sample == 0)
break;
offset += 0x04;
}
dpds_size = offset - dpds_offset;
vgmstream->num_samples = xwma_dpds_get_samples(sf, dpds_offset, dpds_size, channels, false);
break;
}
#endif
default:
goto fail;
}
if (!vgmstream_open_stream(vgmstream, sf, start_offset)) if (!vgmstream_open_stream(vgmstream, sf, start_offset))
goto fail; goto fail;

View file

@ -9,7 +9,7 @@ VGMSTREAM * init_vgmstream_bar(STREAMFILE *streamFile) {
off_t start_offset; off_t start_offset;
off_t ch2_start_offset; off_t ch2_start_offset;
int loop_flag; int loop_flag;
int channel_count; int channel_count;
long file_size; long file_size;

View file

@ -175,10 +175,10 @@ VGMSTREAM* init_vgmstream_ea_swvr(STREAMFILE* sf) {
do { do {
block_update(vgmstream->next_block_offset,vgmstream); block_update(vgmstream->next_block_offset,vgmstream);
switch(vgmstream->coding_type) { switch(vgmstream->coding_type) {
case coding_PSX: num_samples = ps_bytes_to_samples(vgmstream->current_block_size,1); break; case coding_PSX: num_samples = ps_bytes_to_samples(vgmstream->current_block_size,1); break;
case coding_NGC_DSP: num_samples = dsp_bytes_to_samples(vgmstream->current_block_size,1); break; case coding_NGC_DSP: num_samples = dsp_bytes_to_samples(vgmstream->current_block_size,1); break;
case coding_PCM8_U_int: num_samples = pcm_bytes_to_samples(vgmstream->current_block_size,1,8); break; case coding_PCM8_U_int: num_samples = pcm_bytes_to_samples(vgmstream->current_block_size,1,8); break;
default: num_samples = 0; break; default: num_samples = 0; break;
} }
vgmstream->num_samples += num_samples; vgmstream->num_samples += num_samples;

View file

@ -50,11 +50,18 @@ VGMSTREAM* init_vgmstream_fsb5_fev_bank(STREAMFILE* sf) {
goto fail; goto fail;
switch(chunk_type) { switch(chunk_type) {
case 0x4C495354: /* "LIST" with "SNDH" (usually v0x28 but also in Fall Guys's BNK_Music_RoundReveal) */ case 0x4C495354: /* "LIST" */
if (read_u32be(offset + 0x04, sf) == 0x534E4448) { // "SNDH" (usually v0x28 but also in Fall Guys's BNK_Music_RoundReveal)
if (read_u32be(offset + 0x04, sf) == get_id32be("SNDH")) {
bank_offset = offset + 0x0c; bank_offset = offset + 0x0c;
bank_size = read_s32le(offset + 0x08,sf); bank_size = read_s32le(offset + 0x08,sf);
} }
// multiple CrankcaseAudio REV ADM3 [Rennsport (PC)]
if (read_u32be(offset + 0x00, sf) == get_id32be("PEFX")) {
bank_offset = offset;
bank_size = chunk_size;
}
break; break;
case 0x534E4448: /* "SNDH" */ case 0x534E4448: /* "SNDH" */

View file

@ -1572,6 +1572,9 @@ static const hcakey_info hcakey_list[] = {
// Sand Land (multi) // Sand Land (multi)
{910990237314908160}, // 0CA47CCB51010000 {910990237314908160}, // 0CA47CCB51010000
// Patapon 1 & 2 Reloaded (PC)
{3316332033470531258}, // 2E05FA69EC4286BA
}; };
#endif #endif

View file

@ -1,44 +1,45 @@
#include "meta.h" #include "meta.h"
#include "../coding/coding.h" #include "../coding/coding.h"
/* IDSP - from Inevitable Entertainment games [Defender (GC)] */ /* IDSP - from Inevitable Entertainment games [Defender (GC)] */
VGMSTREAM * init_vgmstream_idsp_ie(STREAMFILE *streamFile) { VGMSTREAM* init_vgmstream_idsp_ie(STREAMFILE* sf) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
off_t start_offset; off_t start_offset;
int loop_flag, channel_count; int loop_flag, channels;
/* checks */ /* checks */
if ( !check_extensions(streamFile,"idsp") ) if (!is_id32be(0x00, sf, "IDSP"))
goto fail; return NULL;
if (read_32bitBE(0x00,streamFile) != 0x49445350) /* "IDSP" */ if (!check_extensions(sf,"idsp"))
goto fail; return NULL;
loop_flag = 0; channels = read_s32be(0x0C,sf);
channel_count = read_32bitBE(0x0C,streamFile); if (channels > 2) return NULL;
if (channel_count > 2) goto fail;
start_offset = 0x70; loop_flag = 0;
start_offset = 0x70;
/* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag); /* build the VGMSTREAM */
if (!vgmstream) goto fail; vgmstream = allocate_vgmstream(channels,loop_flag);
if (!vgmstream) goto fail;
vgmstream->meta_type = meta_IDSP_IE;
vgmstream->sample_rate = read_32bitBE(0x08,streamFile); vgmstream->meta_type = meta_IDSP_IE;
vgmstream->coding_type = coding_NGC_DSP; vgmstream->sample_rate = read_s32be(0x08,sf);
vgmstream->num_samples = dsp_bytes_to_samples(read_32bitBE(0x04,streamFile), channel_count); vgmstream->coding_type = coding_NGC_DSP;
vgmstream->num_samples = dsp_bytes_to_samples(read_u32be(0x04,sf), channels);
vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = read_32bitBE(0x10,streamFile); vgmstream->layout_type = layout_interleave;
dsp_read_coefs_be(vgmstream,streamFile,0x14,0x2E); vgmstream->interleave_block_size = read_u32be(0x10,sf);
dsp_read_coefs_be(vgmstream, sf, 0x14, 0x2E);
if ( !vgmstream_open_stream(vgmstream, streamFile, start_offset) )
goto fail; if (!vgmstream_open_stream(vgmstream, sf, start_offset))
return vgmstream; goto fail;
return vgmstream;
fail:
close_vgmstream(vgmstream); fail:
return NULL; close_vgmstream(vgmstream);
} return NULL;
}

View file

@ -1,115 +1,113 @@
#include "meta.h" #include "meta.h"
#include "../coding/coding.h" #include "../coding/coding.h"
/* .IMC - from iNiS Gitaroo Man (PS2) */ /* .IMC (subfile) - from iNiS Gitaroo Man (PS2) */
VGMSTREAM * init_vgmstream_imc(STREAMFILE *streamFile) { VGMSTREAM* init_vgmstream_imc(STREAMFILE* sf) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
off_t start_offset;
int loop_flag, channel_count, sample_rate, interleave, blocks; /* checks */
size_t file_size, data_size; /* .imc: extension from the main container */
if (!check_extensions(sf, "imc"))
return NULL;
/* checks */
/* .imc: extension from the main container */ int channels = read_s32le(0x00, sf);
if (!check_extensions(streamFile, "imc")) int sample_rate = read_s32le(0x04, sf);
goto fail; int interleave = read_s32le(0x08, sf) * 0x10; // number of frames in a block
int blocks = read_s32le(0x0c, sf); // number of interleave blocks (even in mono)
channel_count = read_32bitLE(0x00, streamFile);
sample_rate = read_32bitLE(0x04, streamFile); uint32_t start_offset = 0x10;
interleave = read_32bitLE(0x08, streamFile) * 0x10; /* number of frames in a block */ uint32_t file_size = get_streamfile_size(sf);
blocks = read_32bitLE(0x0c, streamFile); /* number of interleave blocks (even in mono) */ bool loop_flag = false;
file_size = get_streamfile_size(streamFile); // extra checks since the header is so simple
loop_flag = 0; if (channels < 1 || channels > 8)
start_offset = 0x10; return NULL;
/* extra checks since the header is so simple */ // Game can play 11025, 16000, 22050, 32000, 44100, 48000. Anything else will be
if (channel_count < 1 || channel_count > 8) // silent in-game. ST10.IMC subsongs 42-47 use 22000, those are unused silent audio
goto fail; if (sample_rate < 11025 || sample_rate > 48000)
if (sample_rate < 11025 || sample_rate > 48000) return NULL;
/* game can play 11025, 16000, 22050, 32000, 44100, 48000. Anything else will be
silent in-game. ST10.IMC subsongs 42-47 use 22000, those are unused silent audio */ if (interleave * blocks + start_offset != file_size)
goto fail; return NULL;
if (interleave*blocks + start_offset != file_size)
goto fail; uint32_t data_size = file_size - start_offset;
data_size -= ps_find_padding(sf, start_offset, data_size, channels, interleave, 0);
data_size = file_size - start_offset;
data_size -= ps_find_padding(streamFile, start_offset, data_size, channel_count, interleave, 0);
/* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channels, loop_flag);
/* build the VGMSTREAM */ if (!vgmstream) goto fail;
vgmstream = allocate_vgmstream(channel_count, loop_flag);
if (!vgmstream) goto fail; vgmstream->meta_type = meta_IMC;
vgmstream->sample_rate = sample_rate;
vgmstream->meta_type = meta_IMC; vgmstream->num_samples = ps_bytes_to_samples(data_size, channels);
vgmstream->sample_rate = sample_rate; vgmstream->coding_type = coding_PSX;
vgmstream->num_samples = ps_bytes_to_samples(data_size, channel_count); vgmstream->layout_type = layout_interleave;
vgmstream->coding_type = coding_PSX; vgmstream->interleave_block_size = interleave;
vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = interleave; if (!vgmstream_open_stream(vgmstream, sf, start_offset))
goto fail;
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset)) return vgmstream;
goto fail;
return vgmstream; fail:
close_vgmstream(vgmstream);
fail: return NULL;
close_vgmstream(vgmstream); }
return NULL;
} /* ****************************************************************************** */
/* ****************************************************************************** */ /* .IMC in containers */
VGMSTREAM* init_vgmstream_imc_container(STREAMFILE* sf) {
/* .IMC in containers */ VGMSTREAM* vgmstream = NULL;
VGMSTREAM * init_vgmstream_imc_container(STREAMFILE *streamFile) { STREAMFILE* temp_sf = NULL;
VGMSTREAM *vgmstream = NULL; off_t header_offset, subfile_offset, next_offset, name_offset;
STREAMFILE *temp_streamFile = NULL; size_t subfile_size;
off_t header_offset, subfile_offset, next_offset, name_offset; int total_subsongs, target_subsong = sf->stream_index;
size_t subfile_size;
int total_subsongs, target_subsong = streamFile->stream_index;
/* checks */
if (!check_extensions(sf, "imc"))
/* checks */ return NULL;
if (!check_extensions(streamFile, "imc"))
goto fail; total_subsongs = read_s32le(0x00, sf);
if (target_subsong == 0) target_subsong = 1;
total_subsongs = read_32bitLE(0x00, streamFile); if (target_subsong < 0 || target_subsong > total_subsongs || total_subsongs < 1) goto fail;
if (target_subsong == 0) target_subsong = 1;
if (target_subsong < 0 || target_subsong > total_subsongs || total_subsongs < 1) goto fail;
header_offset = 0x04 + 0x20 * (target_subsong - 1);
header_offset = 0x04 + 0x20*(target_subsong-1); name_offset = header_offset + 0x00;
/* 0x08: flags? (0x702ADE77|0x002ADE77|0x20000000|etc) */
name_offset = header_offset + 0x00; /* 0x0c: same for all songs in single .imc but varies between .imc */
/* 0x08: flags? (0x702ADE77|0x002ADE77|0x20000000|etc) */ subfile_offset = read_u32le(header_offset + 0x10,sf);
/* 0x0c: same for all songs in single .imc but varies between .imc */ /* 0x14: flags/size? (0xF0950000|0x3CFA1200|etc) */
subfile_offset = read_32bitLE(header_offset + 0x10,streamFile); /* 0x18: same for all songs in single .imc but varies between .imc */
/* 0x14: flags/size? (0xF0950000|0x3CFA1200|etc) */ /* 0x1c: flags? (0 or 2) */
/* 0x18: same for all songs in single .imc but varies between .imc */
/* 0x1c: flags? (0 or 2) */ if (target_subsong == total_subsongs) {
next_offset = get_streamfile_size(sf);
if (target_subsong == total_subsongs) { }
next_offset = get_streamfile_size(streamFile); else {
} next_offset = read_u32le(header_offset + 0x20 + 0x10,sf);
else { }
next_offset = read_32bitLE(header_offset + 0x20 + 0x10,streamFile); subfile_size = next_offset - subfile_offset;
}
subfile_size = next_offset - subfile_offset;
temp_sf = setup_subfile_streamfile(sf, subfile_offset,subfile_size, NULL);
if (!temp_sf) goto fail;
temp_streamFile = setup_subfile_streamfile(streamFile, subfile_offset,subfile_size, NULL);
if (!temp_streamFile) goto fail; vgmstream = init_vgmstream_imc(temp_sf);
if (!vgmstream) goto fail;
vgmstream = init_vgmstream_imc(temp_streamFile);
if (!vgmstream) goto fail; vgmstream->num_streams = total_subsongs;
read_string(vgmstream->stream_name,0x08+1, name_offset,sf);
close_streamfile(temp_streamFile);
vgmstream->num_streams = total_subsongs; close_streamfile(temp_sf);
read_string(vgmstream->stream_name,0x08+1, name_offset,streamFile); return vgmstream;
return vgmstream; fail:
close_streamfile(temp_sf);
fail: close_vgmstream(vgmstream);
close_streamfile(temp_streamFile); return NULL;
close_vgmstream(vgmstream); }
return NULL;
}

View file

@ -0,0 +1,32 @@
#include "meta.h"
#include "../util/meta_utils.h"
/* KVAG - Mattel Hyperscan games [Marvel Heroes (Hyperscan), X-Men (Hyperscan)] */
VGMSTREAM* init_vgmstream_hyperscan_kvag(STREAMFILE* sf) {
/* checks */
if (!is_id32be(0x00,sf, "KVAG"))
return NULL;
if (!check_extensions(sf,"bvg"))
return NULL;
meta_header_t h = {0};
h.meta = meta_KVAG;
h.stream_size = read_u32le(0x04, sf);
h.sample_rate = read_s32le(0x08, sf);
h.channels = read_s16le(0x0c, sf) + 1;
h.stream_offset = 0x0e;
if (h.channels > 2) // 2ch is rare [Ben 10's Theme22ks]
return NULL;
h.num_samples = ima_bytes_to_samples(h.stream_size, h.channels);
h.coding = coding_DVI_IMA;
h.layout = layout_none;
h.open_stream = true;
h.sf = sf;
return alloc_metastream(&h);
}

View file

@ -1,66 +0,0 @@
#include "meta.h"
#include "../util.h"
/* Mattel Hyperscan,
- Place all metas for this console here (there are just 5 games) */
VGMSTREAM * init_vgmstream_hyperscan_kvag(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT];
off_t start_offset;
int loop_flag = 0;
int channel_count;
/* check extension, case insensitive */
streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("bvg",filename_extension(filename))) goto fail;
/* check header */
if (read_32bitBE(0x00,streamFile) != 0x4B564147) /* "KVAG" */
goto fail;
channel_count = 1;
/* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag);
if (!vgmstream) goto fail;
/* fill in the vital statistics */
start_offset = 0xE;
vgmstream->channels = channel_count;
vgmstream->sample_rate = read_32bitLE(0x8,streamFile);
vgmstream->coding_type = coding_DVI_IMA;
vgmstream->num_samples = read_32bitLE(0x4,streamFile)*2;
#if 0
if (loop_flag) {
vgmstream->loop_start_sample = (read_32bitLE(0x08,streamFile)-1)*28;
vgmstream->loop_end_sample = (read_32bitLE(0x0c,streamFile)-1)*28;
}
#endif
vgmstream->layout_type = layout_none;
vgmstream->meta_type = meta_HYPERSCAN_KVAG;
/* open the file for reading */
{
int i;
STREAMFILE * file;
file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
if (!file) goto fail;
for (i=0;i<channel_count;i++) {
vgmstream->ch[i].streamfile = file;
vgmstream->ch[i].channel_start_offset=
vgmstream->ch[i].offset=start_offset+
vgmstream->interleave_block_size*i;
}
}
return vgmstream;
/* clean up anything we may have opened */
fail:
if (vgmstream) close_vgmstream(vgmstream);
return NULL;
}

View file

@ -1,58 +1,54 @@
#include "meta.h" #include "meta.h"
#include "../util.h" #include "../util.h"
/* Maxis XA - found in Sim City 3000 (PC), The Sims 2 (PC) */ /* Maxis XA - found in Sim City 3000 (PC), The Sims 2 (PC) */
VGMSTREAM * init_vgmstream_maxis_xa(STREAMFILE *streamFile) { VGMSTREAM* init_vgmstream_maxis_xa(STREAMFILE* sf) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
off_t start_offset;
int avg_byte_rate, channel_count, loop_flag, resolution, sample_align, sample_rate; /* checks */
if ((read_u32be(0x00,sf) & 0xFFFF0000) != get_id32be("XA\0\0")) // 02: "I"/"J"/null (version?)
/* check extension, case insensitive */ return NULL;
if (!check_extensions(streamFile,"xa"))
goto fail; uint32_t pcm_size = read_u32le(0x04,sf);
if (read_u16le(0x08,sf) != 0x0001)
/* check header */ return NULL;
if ((read_16bitBE(0x00,streamFile) != 0x5841)) /* "XA" */
goto fail; if (!check_extensions(sf,"xa"))
return NULL;
/* check format tag */
if ((read_16bitLE(0x08,streamFile) != 0x0001)) int channels = read_s16le(0x0A,sf);
goto fail; int sample_rate = read_s32le(0x0C,sf);
int avg_byte_rate = read_s32le(0x10,sf);
channel_count = read_16bitLE(0x0A,streamFile); int sample_align = read_u16le(0x14,sf);
sample_rate = read_32bitLE(0x0C,streamFile); int resolution = read_u16le(0x16,sf);
avg_byte_rate = read_32bitLE(0x10,streamFile);
sample_align = read_16bitLE(0x14,streamFile); /* check alignment */
resolution = read_16bitLE(0x16,streamFile); if (sample_align != (resolution / 8) * channels)
return NULL;
/* check alignment */
if (sample_align != (resolution/8)*channel_count) /* check average byte rate */
goto fail; if (avg_byte_rate != sample_rate * sample_align)
return NULL;
/* check average byte rate */
if (avg_byte_rate != sample_rate*sample_align) off_t start_offset = 0x18;
goto fail;
/* build the VGMSTREAM */
loop_flag = 0; vgmstream = allocate_vgmstream(channels, false);
start_offset = 0x18; if (!vgmstream) goto fail;
/* build the VGMSTREAM */ vgmstream->sample_rate = sample_rate;
vgmstream = allocate_vgmstream(channel_count,loop_flag); vgmstream->num_samples = pcm_size / sizeof(short) / channels;
if (!vgmstream) goto fail;
vgmstream->meta_type = meta_MAXIS_XA;
vgmstream->sample_rate = sample_rate; vgmstream->coding_type = coding_MAXIS_XA;
vgmstream->num_samples = read_32bitLE(0x04,streamFile)/2/channel_count; vgmstream->layout_type = layout_none;
vgmstream->meta_type = meta_MAXIS_XA; /* open streams */
vgmstream->coding_type = coding_MAXIS_XA; if (!vgmstream_open_stream(vgmstream, sf, start_offset))
vgmstream->layout_type = layout_none; goto fail;
return vgmstream;
/* open streams */
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset)) fail:
goto fail; close_vgmstream(vgmstream);
return vgmstream; return NULL;
}
fail:
close_vgmstream(vgmstream);
return NULL;
}

View file

@ -701,7 +701,7 @@ VGMSTREAM * init_vgmstream_msb_msh(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_txtp(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_txtp(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_smc_smh(STREAMFILE * streamFile); VGMSTREAM* init_vgmstream_smh_smc(STREAMFILE* sf);
VGMSTREAM * init_vgmstream_ppst(STREAMFILE *streamFile); VGMSTREAM * init_vgmstream_ppst(STREAMFILE *streamFile);
@ -1035,4 +1035,8 @@ VGMSTREAM* init_vgmstream_swar(STREAMFILE* sf);
VGMSTREAM* init_vgmstream_ivb(STREAMFILE* sf); VGMSTREAM* init_vgmstream_ivb(STREAMFILE* sf);
VGMSTREAM* init_vgmstream_mhwk(STREAMFILE* sf);
VGMSTREAM* init_vgmstream_srcd(STREAMFILE* sf);
#endif #endif

View file

@ -0,0 +1,104 @@
#include "meta.h"
#include "../coding/coding.h"
/* MHWK - Broderbund's Mohawk engine (.mhk) */
VGMSTREAM* init_vgmstream_mhwk(STREAMFILE* sf) {
VGMSTREAM* vgmstream = NULL;
off_t start_offset = 0;
int loop_flag = 0, channels = 0, sample_rate = 0, format = 0;
int32_t num_samples = 0, loop_start = 0, loop_end = 0;
off_t current_offset;
uint32_t chunk_id;
uint32_t chunk_size;
/* Check for MHWK magic word */
if (!is_id32be(0x00, sf, "MHWK"))
return NULL;
if (!check_extensions(sf, "mhk"))
return NULL;
/* Check for WAVE magic word, which follows the MHWK header */
if (!is_id32be(0x08, sf, "WAVE"))
goto fail;
current_offset = 0x0C;
while (current_offset < get_streamfile_size(sf)) {
chunk_id = read_u32be(current_offset, sf);
chunk_size = read_u32be(current_offset + 0x04, sf);
current_offset += 0x08;
if (chunk_id == get_id32be("Cue#")) {
current_offset += chunk_size;
continue;
}
else if (chunk_id == get_id32be("ADPC")) {
current_offset += chunk_size;
continue;
}
else if (chunk_id == get_id32be("Data")) {
break;
}
else {
goto fail;
}
}
/* Data chunk header */
/* Header size is consistently 20 bytes from analysis */
sample_rate = read_u16be(current_offset + 0x00, sf);
num_samples = read_u32be(current_offset + 0x02, sf);
/* 0x06: sample width (1 byte), 0x07: channels (1 byte) */
channels = read_u8(current_offset + 0x07, sf);
format = read_u16be(current_offset + 0x08, sf);
if (read_u16be(current_offset + 0x0A, sf) == 0xFFFF) {
loop_flag = 1;
loop_start = read_u32be(current_offset + 0x0C, sf);
loop_end = read_u32be(current_offset + 0x10, sf);
}
/* The actual audio data starts after the header's 20 bytes not 28 bytes */
start_offset = current_offset + 0x14;
vgmstream = allocate_vgmstream(channels, loop_flag);
if (!vgmstream)
goto fail;
vgmstream->meta_type = meta_MHWK;
vgmstream->sample_rate = sample_rate;
vgmstream->num_samples = num_samples;
vgmstream->loop_start_sample = loop_start;
vgmstream->loop_end_sample = loop_end;
/* Determine coding type based on format ID */
switch (format) {
//Myst 1993
case 0x0000: /* 8-bit unsigned PCM. Default */
vgmstream->coding_type = coding_PCM8_U;
vgmstream->layout_type = layout_interleave; // Usually mono.
vgmstream->interleave_block_size = 0x01;
break;
//Carmen Sandiego: Word Detective
case 0x0001: /* IMA ADPCM */
vgmstream->coding_type = coding_IMA;
vgmstream->layout_type = layout_none;
break;
default: /* Unknown format */
goto fail;
}
if (!vgmstream_open_stream(vgmstream, sf, start_offset))
goto fail;
return vgmstream;
fail:
close_vgmstream(vgmstream);
return NULL;
}

View file

@ -7,37 +7,37 @@
static VGMSTREAM* init_vgmstream_mp4_aac_offset(STREAMFILE* sf, uint64_t start, uint64_t size); static VGMSTREAM* init_vgmstream_mp4_aac_offset(STREAMFILE* sf, uint64_t start, uint64_t size);
VGMSTREAM* init_vgmstream_mp4_aac(STREAMFILE* sf) { VGMSTREAM* init_vgmstream_mp4_aac(STREAMFILE* sf) {
return init_vgmstream_mp4_aac_offset( sf, 0x00, get_streamfile_size(sf)); return init_vgmstream_mp4_aac_offset( sf, 0x00, get_streamfile_size(sf));
} }
static VGMSTREAM* init_vgmstream_mp4_aac_offset(STREAMFILE* sf, uint64_t start, uint64_t size) { static VGMSTREAM* init_vgmstream_mp4_aac_offset(STREAMFILE* sf, uint64_t start, uint64_t size) {
VGMSTREAM* vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
mp4_aac_codec_data* data = NULL; mp4_aac_codec_data* data = NULL;
data = init_mp4_aac(sf); data = init_mp4_aac(sf);
if (!data) goto fail; if (!data) goto fail;
int channels = mp4_aac_get_channels(data); int channels = mp4_aac_get_channels(data);
vgmstream = allocate_vgmstream(channels, 0); vgmstream = allocate_vgmstream(channels, 0);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
vgmstream->sample_rate = mp4_aac_get_sample_rate(data); vgmstream->sample_rate = mp4_aac_get_sample_rate(data);
vgmstream->num_samples = mp4_aac_get_samples(data); vgmstream->num_samples = mp4_aac_get_samples(data);
vgmstream->codec_data = data; vgmstream->codec_data = data;
vgmstream->coding_type = coding_MP4_AAC; vgmstream->coding_type = coding_MP4_AAC;
vgmstream->layout_type = layout_none; vgmstream->layout_type = layout_none;
vgmstream->meta_type = meta_MP4; vgmstream->meta_type = meta_MP4;
return vgmstream; return vgmstream;
fail: fail:
free_mp4_aac(data); free_mp4_aac(data);
if (vgmstream) { if (vgmstream) {
vgmstream->codec_data = NULL; vgmstream->codec_data = NULL;
close_vgmstream(vgmstream); close_vgmstream(vgmstream);
} }
return NULL; return NULL;
} }
#endif #endif

View file

@ -1,218 +1,218 @@
//MxSt files ripped from Jukebox.si in Lego Island //MxSt files ripped from Jukebox.si in Lego Island
#include "meta.h" #include "meta.h"
#include "../layout/layout.h" #include "../layout/layout.h"
#include "../util.h" #include "../util.h"
VGMSTREAM * init_vgmstream_pc_mxst(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_pc_mxst(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
int loop_flag=0; int loop_flag=0;
int bits_per_sample; int bits_per_sample;
int channel_count; int channel_count;
int sample_rate,bytes_per_second; int sample_rate,bytes_per_second;
long sample_count; long sample_count;
int i; int i;
off_t file_size; off_t file_size;
off_t chunk_list_size=-1; off_t chunk_list_size=-1;
off_t start_offset; off_t start_offset;
/* check extension, case insensitive */ /* check extension, case insensitive */
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("mxst",filename_extension(filename))) goto fail; if (strcasecmp("mxst",filename_extension(filename))) goto fail;
/* looping info not found yet */ /* looping info not found yet */
//loop_flag = get_streamfile_size(streamFile) > 700000; //loop_flag = get_streamfile_size(streamFile) > 700000;
/* check MxSt header */ /* check MxSt header */
if (0x4d785374 != read_32bitBE(0, streamFile)) goto fail; if (0x4d785374 != read_32bitBE(0, streamFile)) goto fail;
file_size = read_32bitLE(4, streamFile) + 8; file_size = read_32bitLE(4, streamFile) + 8;
if (file_size != get_streamfile_size(streamFile)) goto fail; if (file_size != get_streamfile_size(streamFile)) goto fail;
/* read chunks */ /* read chunks */
{ {
off_t MxDa=-1; /* points inside the MxDa chunk */ off_t MxDa=-1; /* points inside the MxDa chunk */
off_t MxCh=-1; /* point at start of the first MxCh chunk */ off_t MxCh=-1; /* point at start of the first MxCh chunk */
off_t chunk_offset = 8; off_t chunk_offset = 8;
uint32_t stream_id; uint32_t stream_id;
while (chunk_offset < file_size) while (chunk_offset < file_size)
{ {
uint32_t chunk_size = (read_32bitLE(chunk_offset+4, streamFile)+1)/2*2; uint32_t chunk_size = (read_32bitLE(chunk_offset+4, streamFile)+1)/2*2;
switch (read_32bitBE(chunk_offset, streamFile)) switch (read_32bitBE(chunk_offset, streamFile))
{ {
case 0x4d784f62: /* MxOb */ case 0x4d784f62: /* MxOb */
/* not interesting for playback */ /* not interesting for playback */
break; break;
case 0x20574156: /* " WAV" */ case 0x20574156: /* " WAV" */
if (chunk_size == 1) if (chunk_size == 1)
chunk_size = 8; chunk_size = 8;
break; break;
case 0x4c495354: /* LIST */ case 0x4c495354: /* LIST */
{ {
off_t first_item_offset = chunk_offset+0x14; off_t first_item_offset = chunk_offset+0x14;
off_t list_chunk_offset = first_item_offset+ off_t list_chunk_offset = first_item_offset+
read_32bitLE(chunk_offset+0x10,streamFile); read_32bitLE(chunk_offset+0x10,streamFile);
if (read_32bitBE(chunk_offset+0x8,streamFile) == 0x4d784461) /* MxDa */ if (read_32bitBE(chunk_offset+0x8,streamFile) == 0x4d784461) /* MxDa */
MxDa = first_item_offset; MxDa = first_item_offset;
else else
goto fail; goto fail;
if (read_32bitBE(chunk_offset+0xC,streamFile) == if (read_32bitBE(chunk_offset+0xC,streamFile) ==
0x4d784368) /* MxCh */ 0x4d784368) /* MxCh */
{ {
MxCh = list_chunk_offset; MxCh = list_chunk_offset;
chunk_list_size = chunk_size - (list_chunk_offset-(chunk_offset+8)); chunk_list_size = chunk_size - (list_chunk_offset-(chunk_offset+8));
} }
else else
goto fail; goto fail;
break; break;
} }
default: default:
goto fail; goto fail;
} }
chunk_offset += 8 + chunk_size; chunk_offset += 8 + chunk_size;
if (chunk_offset > file_size) goto fail; if (chunk_offset > file_size) goto fail;
} }
if (MxDa == -1 || MxCh == -1 || chunk_list_size == -1) goto fail; if (MxDa == -1 || MxCh == -1 || chunk_list_size == -1) goto fail;
/* parse MxDa */ /* parse MxDa */
{ {
/* ??? */ /* ??? */
if (0 != read_16bitLE(MxDa+0x00,streamFile)) goto fail; if (0 != read_16bitLE(MxDa+0x00,streamFile)) goto fail;
stream_id = read_32bitLE(MxDa+0x2,streamFile); stream_id = read_32bitLE(MxDa+0x2,streamFile);
/* First sample (none in MxDa block) */ /* First sample (none in MxDa block) */
if (-1 != read_32bitLE(MxDa+0x06,streamFile)) goto fail; if (-1 != read_32bitLE(MxDa+0x06,streamFile)) goto fail;
/* size of format data */ /* size of format data */
if (0x18 != read_32bitLE(MxDa+0x0a,streamFile)) goto fail; if (0x18 != read_32bitLE(MxDa+0x0a,streamFile)) goto fail;
/* PCM */ /* PCM */
if (1 != read_16bitLE(MxDa+0x0e,streamFile)) goto fail; if (1 != read_16bitLE(MxDa+0x0e,streamFile)) goto fail;
/* channel count */ /* channel count */
channel_count = read_16bitLE(MxDa+0x10,streamFile); channel_count = read_16bitLE(MxDa+0x10,streamFile);
/* only mono known */ /* only mono known */
if (1 != channel_count) goto fail; if (1 != channel_count) goto fail;
sample_rate = read_32bitLE(MxDa+0x12,streamFile); sample_rate = read_32bitLE(MxDa+0x12,streamFile);
bits_per_sample = read_16bitLE(MxDa+0x1c,streamFile); bits_per_sample = read_16bitLE(MxDa+0x1c,streamFile);
/* bytes per second */ /* bytes per second */
bytes_per_second = read_32bitLE(MxDa+0x16,streamFile); bytes_per_second = read_32bitLE(MxDa+0x16,streamFile);
if (bits_per_sample/8*channel_count*sample_rate != bytes_per_second) goto fail; if (bits_per_sample/8*channel_count*sample_rate != bytes_per_second) goto fail;
/* block align */ /* block align */
if (bits_per_sample/8*channel_count != if (bits_per_sample/8*channel_count !=
read_16bitLE(MxDa+0x1a,streamFile)) goto fail; read_16bitLE(MxDa+0x1a,streamFile)) goto fail;
sample_count = read_32bitLE(MxDa+0x1e,streamFile)/(bits_per_sample/8)/channel_count; sample_count = read_32bitLE(MxDa+0x1e,streamFile)/(bits_per_sample/8)/channel_count;
/* 2c? data offset in normal RIFF WAVE? */ /* 2c? data offset in normal RIFF WAVE? */
if (0x2c != read_32bitLE(MxDa+0x22,streamFile)) goto fail; if (0x2c != read_32bitLE(MxDa+0x22,streamFile)) goto fail;
} }
/* parse through all MxCh for consistency check */ /* parse through all MxCh for consistency check */
{ {
long samples = 0; long samples = 0;
int split_frames_seen = 0; int split_frames_seen = 0;
off_t MxCh_offset = MxCh; off_t MxCh_offset = MxCh;
while (MxCh_offset < MxCh+chunk_list_size) while (MxCh_offset < MxCh+chunk_list_size)
{ {
uint16_t flags; uint16_t flags;
if (read_32bitBE(MxCh_offset,streamFile)!=0x70616420) /*pad*/ if (read_32bitBE(MxCh_offset,streamFile)!=0x70616420) /*pad*/
{ {
if (read_32bitBE(MxCh_offset,streamFile)!=0x4d784368) /*MxCh*/ if (read_32bitBE(MxCh_offset,streamFile)!=0x4d784368) /*MxCh*/
goto fail; goto fail;
flags = read_16bitLE(MxCh_offset+8+0,streamFile); flags = read_16bitLE(MxCh_offset+8+0,streamFile);
if (read_32bitLE(MxCh_offset+8+2,streamFile)!=stream_id) if (read_32bitLE(MxCh_offset+8+2,streamFile)!=stream_id)
goto fail; goto fail;
if (flags & 0x10) if (flags & 0x10)
{ {
split_frames_seen ++; split_frames_seen ++;
if (split_frames_seen == 1) if (split_frames_seen == 1)
{ {
if (read_32bitLE(MxCh_offset+8+6,streamFile)!=(samples*UINT64_C(1000)+sample_rate-1)/sample_rate) if (read_32bitLE(MxCh_offset+8+6,streamFile)!=(samples*UINT64_C(1000)+sample_rate-1)/sample_rate)
goto fail; goto fail;
} }
else if (split_frames_seen == 2) else if (split_frames_seen == 2)
{ {
if ( read_32bitLE(MxCh_offset+8+0xa,streamFile)!= if ( read_32bitLE(MxCh_offset+8+0xa,streamFile)!=
read_32bitLE(MxCh_offset+4,streamFile)-0xe ) goto fail; read_32bitLE(MxCh_offset+4,streamFile)-0xe ) goto fail;
split_frames_seen = 0; split_frames_seen = 0;
} }
else goto fail; else goto fail;
} }
if (!(flags & 0x10)) if (!(flags & 0x10))
{ {
if (split_frames_seen != 0) if (split_frames_seen != 0)
{ {
goto fail; goto fail;
} }
if (read_32bitLE(MxCh_offset+8+6,streamFile)!=(samples*UINT64_C(1000)+sample_rate-1)/sample_rate) if (read_32bitLE(MxCh_offset+8+6,streamFile)!=(samples*UINT64_C(1000)+sample_rate-1)/sample_rate)
goto fail; goto fail;
if ( read_32bitLE(MxCh_offset+8+0xa,streamFile)!= if ( read_32bitLE(MxCh_offset+8+0xa,streamFile)!=
read_32bitLE(MxCh_offset+4,streamFile)-0xe ) goto fail; read_32bitLE(MxCh_offset+4,streamFile)-0xe ) goto fail;
} }
samples += (read_32bitLE(MxCh_offset+4,streamFile)-0xe)/(bits_per_sample/8/channel_count); samples += (read_32bitLE(MxCh_offset+4,streamFile)-0xe)/(bits_per_sample/8/channel_count);
} }
MxCh_offset += 8 + (read_32bitLE(MxCh_offset+4,streamFile)+1)/2*2; MxCh_offset += 8 + (read_32bitLE(MxCh_offset+4,streamFile)+1)/2*2;
if (MxCh_offset > MxCh+chunk_list_size) goto fail; if (MxCh_offset > MxCh+chunk_list_size) goto fail;
} }
//printf("samples=%d sample_count=%d\n",samples,sample_count); //printf("samples=%d sample_count=%d\n",samples,sample_count);
//samples = (samples * (bits_per_sample/8) * channel_count + 31)/32*32/(bits_per_sample/8)/channel_count; //samples = (samples * (bits_per_sample/8) * channel_count + 31)/32*32/(bits_per_sample/8)/channel_count;
if (samples < sample_count) if (samples < sample_count)
{ {
sample_count = samples; sample_count = samples;
} }
if (samples != sample_count) goto fail; if (samples != sample_count) goto fail;
} }
start_offset = MxCh; start_offset = MxCh;
} }
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag); vgmstream = allocate_vgmstream(channel_count,loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
/* fill in the vital statistics */ /* fill in the vital statistics */
vgmstream->channels = channel_count; vgmstream->channels = channel_count;
vgmstream->sample_rate = sample_rate; vgmstream->sample_rate = sample_rate;
vgmstream->layout_type = layout_blocked_mxch; vgmstream->layout_type = layout_blocked_mxch;
vgmstream->meta_type = meta_PC_MXST; vgmstream->meta_type = meta_PC_MXST;
if(bits_per_sample == 8) if(bits_per_sample == 8)
{ {
vgmstream->coding_type = coding_PCM8_U; vgmstream->coding_type = coding_PCM8_U;
} }
else if (bits_per_sample == 16) else if (bits_per_sample == 16)
{ {
vgmstream->coding_type = coding_PCM16LE; vgmstream->coding_type = coding_PCM16LE;
} }
else goto fail; else goto fail;
vgmstream->num_samples = sample_count; vgmstream->num_samples = sample_count;
if(loop_flag) if(loop_flag)
{ {
vgmstream->loop_start_sample = 0; vgmstream->loop_start_sample = 0;
vgmstream->loop_end_sample=vgmstream->num_samples; vgmstream->loop_end_sample=vgmstream->num_samples;
} }
/* open the file for reading by each channel */ /* open the file for reading by each channel */
{ {
for (i=0;i<channel_count;i++) { for (i=0;i<channel_count;i++) {
vgmstream->ch[i].streamfile = vgmstream->ch[i].streamfile =
streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE); streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
if (!vgmstream->ch[i].streamfile) goto fail; if (!vgmstream->ch[i].streamfile) goto fail;
} }
} }
block_update_mxch(start_offset, vgmstream); block_update_mxch(start_offset, vgmstream);
return vgmstream; return vgmstream;
/* clean up anything we may have opened */ /* clean up anything we may have opened */
fail: fail:
if (vgmstream) close_vgmstream(vgmstream); if (vgmstream) close_vgmstream(vgmstream);
return NULL; return NULL;
} }

View file

@ -1,256 +1,256 @@
#include "meta.h" #include "meta.h"
#include "../coding/coding.h" #include "../coding/coding.h"
/* Headerless PS-ADPCM /* Headerless PS-ADPCM
* Guesses interleave/channels/loops by testing data and using the file extension for sample rate. * Guesses interleave/channels/loops by testing data and using the file extension for sample rate.
* This is an ugly crutch for older sets, use TXTH to properly play headerless data instead. */ * This is an ugly crutch for older sets, use TXTH to properly play headerless data instead. */
VGMSTREAM * init_vgmstream_ps_headerless(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_ps_headerless(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
off_t start_offset = 0x00; off_t start_offset = 0x00;
char filename[PATH_LIMIT]; char filename[PATH_LIMIT];
uint8_t mibBuffer[0x10]; uint8_t mibBuffer[0x10];
uint8_t testBuffer[0x10]; uint8_t testBuffer[0x10];
size_t fileLength; size_t fileLength;
off_t loopStart = 0; off_t loopStart = 0;
off_t loopEnd = 0; off_t loopEnd = 0;
off_t interleave = 0; off_t interleave = 0;
off_t readOffset = 0; off_t readOffset = 0;
off_t loopStartPoints[0x10] = {0}; off_t loopStartPoints[0x10] = {0};
int loopStartPointsCount=0; int loopStartPointsCount=0;
off_t loopEndPoints[0x10] = {0}; off_t loopEndPoints[0x10] = {0};
int loopEndPointsCount=0; int loopEndPointsCount=0;
int loopToEnd=0; int loopToEnd=0;
int forceNoLoop=0; int forceNoLoop=0;
int gotEmptyLine=0; int gotEmptyLine=0;
int i, channel_count=0; int i, channel_count=0;
/* checks /* checks
* .mib: common, but many ext-less files are renamed to this. * .mib: common, but many ext-less files are renamed to this.
* .mi4: fake .mib to force another sample rate */ * .mi4: fake .mib to force another sample rate */
streamFile->get_name(streamFile,filename,sizeof(filename)); streamFile->get_name(streamFile,filename,sizeof(filename));
if (strcasecmp("mib",filename_extension(filename)) && if (strcasecmp("mib",filename_extension(filename)) &&
strcasecmp("mi4",filename_extension(filename))) strcasecmp("mi4",filename_extension(filename)))
goto fail; goto fail;
/* test if raw PS-ADPCM */ /* test if raw PS-ADPCM */
if (!ps_check_format(streamFile, 0x00, 0x2000)) if (!ps_check_format(streamFile, 0x00, 0x2000))
goto fail; goto fail;
fileLength = get_streamfile_size(streamFile); fileLength = get_streamfile_size(streamFile);
/* Search for interleave value (checking channel starts) and loop points (using PS-ADPCM flags). /* Search for interleave value (checking channel starts) and loop points (using PS-ADPCM flags).
* Channel start will by 0x0000, 0x0002, 0x0006 followed by 12 zero values. * Channel start will by 0x0000, 0x0002, 0x0006 followed by 12 zero values.
* Interleave value is the offset where those repeat, and channels the number of times. * Interleave value is the offset where those repeat, and channels the number of times.
* Loop flags in second byte are: 0x06 = start, 0x03 = end (per channel). * Loop flags in second byte are: 0x06 = start, 0x03 = end (per channel).
* Interleave can be large (up to 0x20000 found so far) and is always a 0x10 multiple value. */ * Interleave can be large (up to 0x20000 found so far) and is always a 0x10 multiple value. */
readOffset+=(off_t)read_streamfile(mibBuffer,0,0x10,streamFile); readOffset+=(off_t)read_streamfile(mibBuffer,0,0x10,streamFile);
mibBuffer[0]=0; mibBuffer[0]=0;
{ {
uint8_t doChannelUpdate=1; uint8_t doChannelUpdate=1;
uint8_t bDoUpdateInterleave=1; uint8_t bDoUpdateInterleave=1;
readOffset=0; readOffset=0;
do { do {
readOffset+=(off_t)read_streamfile(testBuffer,readOffset,0x10,streamFile); readOffset+=(off_t)read_streamfile(testBuffer,readOffset,0x10,streamFile);
// be sure to point to an interleave value // be sure to point to an interleave value
if(readOffset<(int32_t)(fileLength*0.5)) { if(readOffset<(int32_t)(fileLength*0.5)) {
if(memcmp(testBuffer+2, mibBuffer+2,0x0e)) { if(memcmp(testBuffer+2, mibBuffer+2,0x0e)) {
if(doChannelUpdate) { if(doChannelUpdate) {
doChannelUpdate=0; doChannelUpdate=0;
channel_count++; channel_count++;
} }
if(channel_count<2) if(channel_count<2)
bDoUpdateInterleave=1; bDoUpdateInterleave=1;
} }
testBuffer[0]=0; testBuffer[0]=0;
if(!memcmp(testBuffer,mibBuffer,0x10)) { if(!memcmp(testBuffer,mibBuffer,0x10)) {
gotEmptyLine=1; gotEmptyLine=1;
if(bDoUpdateInterleave) { if(bDoUpdateInterleave) {
bDoUpdateInterleave=0; bDoUpdateInterleave=0;
interleave=readOffset-0x10; interleave=readOffset-0x10;
} }
if(readOffset-0x10 == channel_count*interleave) { if(readOffset-0x10 == channel_count*interleave) {
doChannelUpdate=1; doChannelUpdate=1;
} }
} }
} }
// Loop Start ... // Loop Start ...
if(testBuffer[0x01]==0x06) { if(testBuffer[0x01]==0x06) {
if(loopStartPointsCount<0x10) { if(loopStartPointsCount<0x10) {
loopStartPoints[loopStartPointsCount] = readOffset-0x10; loopStartPoints[loopStartPointsCount] = readOffset-0x10;
loopStartPointsCount++; loopStartPointsCount++;
} }
} }
// Loop End ... // Loop End ...
if(testBuffer[0x01]==0x03 && testBuffer[0x03]!=0x77) { if(testBuffer[0x01]==0x03 && testBuffer[0x03]!=0x77) {
if(loopEndPointsCount<0x10) { if(loopEndPointsCount<0x10) {
loopEndPoints[loopEndPointsCount] = readOffset; loopEndPoints[loopEndPointsCount] = readOffset;
loopEndPointsCount++; loopEndPointsCount++;
} }
} }
if(testBuffer[0x01]==0x04) { if(testBuffer[0x01]==0x04) {
// 0x04 loop points flag can't be with a 0x03 loop points flag // 0x04 loop points flag can't be with a 0x03 loop points flag
if(loopStartPointsCount<0x10) { if(loopStartPointsCount<0x10) {
loopStartPoints[loopStartPointsCount] = readOffset-0x10; loopStartPoints[loopStartPointsCount] = readOffset-0x10;
loopStartPointsCount++; loopStartPointsCount++;
// Loop end value is not set by flags ... // Loop end value is not set by flags ...
// go until end of file // go until end of file
loopToEnd=1; loopToEnd=1;
} }
} }
} while (readOffset<((int32_t)fileLength)); } while (readOffset<((int32_t)fileLength));
} }
if(testBuffer[0]==0x0c && testBuffer[1]==0) if(testBuffer[0]==0x0c && testBuffer[1]==0)
forceNoLoop=1; forceNoLoop=1;
if(channel_count==0) if(channel_count==0)
channel_count=1; channel_count=1;
// Calc Loop Points & Interleave ... // Calc Loop Points & Interleave ...
if(loopStartPointsCount>=2) { if(loopStartPointsCount>=2) {
// can't get more then 0x10 loop point ! // can't get more then 0x10 loop point !
if(loopStartPointsCount<=0x0F) { if(loopStartPointsCount<=0x0F) {
// Always took the first 2 loop points // Always took the first 2 loop points
interleave=loopStartPoints[1]-loopStartPoints[0]; interleave=loopStartPoints[1]-loopStartPoints[0];
loopStart=loopStartPoints[1]; loopStart=loopStartPoints[1];
// Can't be one channel .mib with interleave values // Can't be one channel .mib with interleave values
if(interleave>0 && channel_count==1) if(interleave>0 && channel_count==1)
channel_count=2; channel_count=2;
} else { } else {
loopStart=0; loopStart=0;
} }
} }
if(loopEndPointsCount>=2) { if(loopEndPointsCount>=2) {
// can't get more then 0x10 loop point ! // can't get more then 0x10 loop point !
if(loopEndPointsCount<=0x0F) { if(loopEndPointsCount<=0x0F) {
// No need to recalculate interleave value ... // No need to recalculate interleave value ...
loopEnd=loopEndPoints[loopEndPointsCount-1]; loopEnd=loopEndPoints[loopEndPointsCount-1];
// Can't be one channel .mib with interleave values // Can't be one channel .mib with interleave values
if(channel_count==1) if(channel_count==1)
channel_count=2; channel_count=2;
} else { } else {
loopToEnd=0; loopToEnd=0;
loopEnd=0; loopEnd=0;
} }
} }
if (loopToEnd) if (loopToEnd)
loopEnd=fileLength; loopEnd=fileLength;
if(forceNoLoop) if(forceNoLoop)
loopEnd=0; loopEnd=0;
if(interleave>0x10 && channel_count==1) if(interleave>0x10 && channel_count==1)
channel_count=2; channel_count=2;
if(interleave==0) if(interleave==0)
interleave=0x10; interleave=0x10;
// further check on channel_count ... // further check on channel_count ...
if(gotEmptyLine) { if(gotEmptyLine) {
int newChannelCount = 0; int newChannelCount = 0;
readOffset=0; readOffset=0;
/* count empty lines at interleave = channels */ /* count empty lines at interleave = channels */
do { do {
newChannelCount++; newChannelCount++;
read_streamfile(testBuffer,readOffset,0x10,streamFile); read_streamfile(testBuffer,readOffset,0x10,streamFile);
readOffset+=interleave; readOffset+=interleave;
} while(!memcmp(testBuffer,mibBuffer,16)); } while(!memcmp(testBuffer,mibBuffer,16));
newChannelCount--; newChannelCount--;
if(newChannelCount>channel_count) if(newChannelCount>channel_count)
channel_count=newChannelCount; channel_count=newChannelCount;
} }
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,(loopEnd!=0)); vgmstream = allocate_vgmstream(channel_count,(loopEnd!=0));
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
vgmstream->coding_type = coding_PSX; vgmstream->coding_type = coding_PSX;
vgmstream->layout_type = (channel_count == 1) ? layout_none : layout_interleave; vgmstream->layout_type = (channel_count == 1) ? layout_none : layout_interleave;
vgmstream->interleave_block_size = interleave; vgmstream->interleave_block_size = interleave;
if(!strcasecmp("mib",filename_extension(filename))) if(!strcasecmp("mib",filename_extension(filename)))
vgmstream->sample_rate = 44100; vgmstream->sample_rate = 44100;
if(!strcasecmp("mi4",filename_extension(filename))) if(!strcasecmp("mi4",filename_extension(filename)))
vgmstream->sample_rate = 48000; vgmstream->sample_rate = 48000;
vgmstream->num_samples = (int32_t)(fileLength/16/channel_count*28); vgmstream->num_samples = (int32_t)(fileLength/16/channel_count*28);
if(loopEnd!=0) { if(loopEnd!=0) {
if(vgmstream->channels==1) { if(vgmstream->channels==1) {
vgmstream->loop_start_sample = loopStart/16*18; //todo 18 instead of 28 probably a bug vgmstream->loop_start_sample = loopStart/16*18; //todo 18 instead of 28 probably a bug
vgmstream->loop_end_sample = loopEnd/16*28; vgmstream->loop_end_sample = loopEnd/16*28;
} else { } else {
vgmstream->loop_start_sample = ((((loopStart/vgmstream->interleave_block_size)-1)*vgmstream->interleave_block_size)/16*14*channel_count)/channel_count; vgmstream->loop_start_sample = ((((loopStart/vgmstream->interleave_block_size)-1)*vgmstream->interleave_block_size)/16*14*channel_count)/channel_count;
if(loopStart%vgmstream->interleave_block_size) { if(loopStart%vgmstream->interleave_block_size) {
vgmstream->loop_start_sample += (((loopStart%vgmstream->interleave_block_size)-1)/16*14*channel_count); vgmstream->loop_start_sample += (((loopStart%vgmstream->interleave_block_size)-1)/16*14*channel_count);
} }
if(loopEnd==fileLength) { if(loopEnd==fileLength) {
vgmstream->loop_end_sample=(loopEnd/16*28)/channel_count; vgmstream->loop_end_sample=(loopEnd/16*28)/channel_count;
} else { } else {
vgmstream->loop_end_sample = ((((loopEnd/vgmstream->interleave_block_size)-1)*vgmstream->interleave_block_size)/16*14*channel_count)/channel_count; vgmstream->loop_end_sample = ((((loopEnd/vgmstream->interleave_block_size)-1)*vgmstream->interleave_block_size)/16*14*channel_count)/channel_count;
if(loopEnd%vgmstream->interleave_block_size) { if(loopEnd%vgmstream->interleave_block_size) {
vgmstream->loop_end_sample += (((loopEnd%vgmstream->interleave_block_size)-1)/16*14*channel_count); vgmstream->loop_end_sample += (((loopEnd%vgmstream->interleave_block_size)-1)/16*14*channel_count);
} }
} }
} }
} }
if(loopToEnd) { if(loopToEnd) {
// try to find if there's no empty line ... // try to find if there's no empty line ...
int emptySamples=0; int emptySamples=0;
for(i=0; i<16;i++) { for(i=0; i<16;i++) {
mibBuffer[i]=0; //memset mibBuffer[i]=0; //memset
} }
readOffset=fileLength-0x10; readOffset=fileLength-0x10;
do { do {
read_streamfile(testBuffer,readOffset,0x10,streamFile); read_streamfile(testBuffer,readOffset,0x10,streamFile);
if(!memcmp(mibBuffer,testBuffer,16)) { if(!memcmp(mibBuffer,testBuffer,16)) {
emptySamples+=28; emptySamples+=28;
} }
readOffset-=0x10; readOffset-=0x10;
} while(!memcmp(testBuffer,mibBuffer,16)); } while(!memcmp(testBuffer,mibBuffer,16));
vgmstream->loop_end_sample-=(emptySamples*channel_count); vgmstream->loop_end_sample-=(emptySamples*channel_count);
} }
vgmstream->meta_type = meta_PS_HEADERLESS; vgmstream->meta_type = meta_PS_HEADERLESS;
vgmstream->allow_dual_stereo = 1; vgmstream->allow_dual_stereo = 1;
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset)) if (!vgmstream_open_stream(vgmstream,streamFile,start_offset))
goto fail; goto fail;
return vgmstream; return vgmstream;
fail: fail:
close_vgmstream(vgmstream); close_vgmstream(vgmstream);
return NULL; return NULL;
} }

View file

@ -1,38 +1,38 @@
#include "meta.h" #include "meta.h"
#include "../coding/coding.h" #include "../coding/coding.h"
/* RAW - RAW format is native 44khz PCM file */ /* RAW - RAW format is native 44khz PCM file */
VGMSTREAM * init_vgmstream_raw_pcm(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_raw_pcm(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
off_t start_offset; off_t start_offset;
int loop_flag, channel_count; int loop_flag, channel_count;
/* checks */ /* checks */
if (!check_extensions(streamFile, "raw")) if (!check_extensions(streamFile, "raw"))
goto fail; goto fail;
channel_count = 2; channel_count = 2;
loop_flag = 0; loop_flag = 0;
start_offset = 0x00; start_offset = 0x00;
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count, loop_flag); vgmstream = allocate_vgmstream(channel_count, loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
vgmstream->meta_type = meta_RAW_PCM; vgmstream->meta_type = meta_RAW_PCM;
vgmstream->sample_rate = 44100; vgmstream->sample_rate = 44100;
vgmstream->num_samples = pcm_bytes_to_samples(get_streamfile_size(streamFile), channel_count, 16); vgmstream->num_samples = pcm_bytes_to_samples(get_streamfile_size(streamFile), channel_count, 16);
vgmstream->coding_type = coding_PCM16LE; vgmstream->coding_type = coding_PCM16LE;
vgmstream->layout_type = layout_interleave; vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = 0x02; vgmstream->interleave_block_size = 0x02;
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset)) if (!vgmstream_open_stream(vgmstream,streamFile,start_offset))
goto fail; goto fail;
return vgmstream; return vgmstream;
fail: fail:
close_vgmstream(vgmstream); close_vgmstream(vgmstream);
return NULL; return NULL;
} }

View file

@ -1,36 +1,36 @@
#include "meta.h" #include "meta.h"
#include "../coding/coding.h" #include "../coding/coding.h"
/* WAVM - headerless format which can be found on XBOX */ /* WAVM - headerless format which can be found on XBOX */
VGMSTREAM * init_vgmstream_raw_wavm(STREAMFILE *streamFile) { VGMSTREAM * init_vgmstream_raw_wavm(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM * vgmstream = NULL;
off_t start_offset = 0; off_t start_offset = 0;
int loop_flag, channel_count; int loop_flag, channel_count;
/* check extension */ /* check extension */
if (!check_extensions(streamFile,"wavm")) if (!check_extensions(streamFile,"wavm"))
goto fail; goto fail;
start_offset = 0; start_offset = 0;
loop_flag = 0; loop_flag = 0;
channel_count = 2; channel_count = 2;
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag); vgmstream = allocate_vgmstream(channel_count,loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
vgmstream->meta_type = meta_RAW_WAVM; vgmstream->meta_type = meta_RAW_WAVM;
vgmstream->sample_rate = 44100; vgmstream->sample_rate = 44100;
vgmstream->num_samples = xbox_ima_bytes_to_samples(get_streamfile_size(streamFile), vgmstream->channels); vgmstream->num_samples = xbox_ima_bytes_to_samples(get_streamfile_size(streamFile), vgmstream->channels);
vgmstream->coding_type = coding_XBOX_IMA; vgmstream->coding_type = coding_XBOX_IMA;
vgmstream->layout_type = layout_none; vgmstream->layout_type = layout_none;
if (!vgmstream_open_stream(vgmstream, streamFile, start_offset)) if (!vgmstream_open_stream(vgmstream, streamFile, start_offset))
goto fail; goto fail;
return vgmstream; return vgmstream;
fail: fail:
close_vgmstream(vgmstream); close_vgmstream(vgmstream);
return NULL; return NULL;
} }

View file

@ -1,53 +1,54 @@
#include "meta.h" #include "meta.h"
/* .seb - Game Arts games [Grandia (PS1), Grandia II/III/X (PS2)] */ /* .seb - Game Arts games [Grandia (PS1), Grandia II/III/X (PS2)] */
VGMSTREAM * init_vgmstream_seb(STREAMFILE *streamFile) { VGMSTREAM* init_vgmstream_seb(STREAMFILE* sf) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
off_t start_offset; off_t start_offset;
int loop_flag, channel_count; int loop_flag, channels;
/* checks */ /* checks */
/* .seb: found in Grandia II (PS2) .idx */ channels = read_32bitLE(0x00,sf);
/* .gms: fake? (.stz+idx bigfile without names, except in Grandia II) */ if (channels > 2)
if (!check_extensions(streamFile, "seb,gms,")) return NULL;
goto fail; // 0x08/0c: unknown count, possibly related to looping
channel_count = read_32bitLE(0x00,streamFile); /* .seb: found in Grandia II (PS2) .idx */
if (channel_count > 2) goto fail; /* mono or stereo */ /* .gms: fake? (.stz+idx bigfile without names, except in Grandia II) */
/* 0x08/0c: unknown count, possibly related to looping */ if (!check_extensions(sf, "seb,gms,"))
return NULL;
start_offset = 0x800;
start_offset = 0x800;
if (read_32bitLE(0x10,streamFile) > get_streamfile_size(streamFile) || /* loop start offset */
read_32bitLE(0x18,streamFile) > get_streamfile_size(streamFile)) /* loop end offset */ if (read_u32le(0x10,sf) > get_streamfile_size(sf) || // loop start offset
goto fail; read_u32le(0x18,sf) > get_streamfile_size(sf)) // loop end offset
/* in Grandia III sometimes there is a value at 0x24/34 */ return NULL;
/* in Grandia III sometimes there is a value at 0x24/34 */
loop_flag = (read_32bitLE(0x20,streamFile) == 0);
loop_flag = (read_s32le(0x20,sf) == 0);
/* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag); /* build the VGMSTREAM */
if (!vgmstream) goto fail; vgmstream = allocate_vgmstream(channels,loop_flag);
if (!vgmstream) goto fail;
vgmstream->meta_type = meta_SEB;
vgmstream->sample_rate = read_32bitLE(0x04,streamFile); vgmstream->meta_type = meta_SEB;
vgmstream->sample_rate = read_s32le(0x04,sf);
vgmstream->num_samples = read_32bitLE(0x1c,streamFile);
vgmstream->loop_start_sample = read_32bitLE(0x14,streamFile); vgmstream->num_samples = read_s32le(0x1c,sf);
vgmstream->loop_end_sample = read_32bitLE(0x1c,streamFile); vgmstream->loop_start_sample = read_s32le(0x14,sf);
vgmstream->loop_end_sample = read_s32le(0x1c,sf);
vgmstream->coding_type = coding_PSX;
vgmstream->layout_type = layout_interleave; vgmstream->coding_type = coding_PSX;
vgmstream->interleave_block_size = 0x800; vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = 0x800;
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset))
goto fail; if (!vgmstream_open_stream(vgmstream, sf, start_offset))
return vgmstream; goto fail;
return vgmstream;
fail:
close_vgmstream(vgmstream); fail:
return NULL; close_vgmstream(vgmstream);
} return NULL;
}

View file

@ -1,65 +0,0 @@
#include "meta.h"
#include "../coding/coding.h"
/* SMC+SMH - from Wangan Midnight 1/R (System246) */
VGMSTREAM * init_vgmstream_smc_smh(STREAMFILE *streamFile) {
VGMSTREAM * vgmstream = NULL;
STREAMFILE * streamHeader = NULL;
off_t start_offset, header_offset = 0;
size_t stream_size;
int loop_flag = 0, channel_count, sample_rate;
int total_subsongs, target_subsong = streamFile->stream_index;
/* checks */
if (!check_extensions(streamFile, "smc"))
goto fail;
streamHeader = open_streamfile_by_ext(streamFile, "smh");
if (!streamHeader) goto fail;
total_subsongs = read_32bitLE(0x00,streamHeader);
if (target_subsong == 0) target_subsong = 1;
if (target_subsong < 0 || target_subsong > total_subsongs || total_subsongs < 1) goto fail;
if (total_subsongs*0x10 + 0x10 != get_streamfile_size(streamHeader))
goto fail;
header_offset = 0x10 + (target_subsong-1)*0x10;
start_offset = read_32bitLE(header_offset+0x00, streamHeader);
stream_size = read_32bitLE(header_offset+0x04, streamHeader);
sample_rate = read_32bitLE(header_offset+0x08, streamHeader);
/* 0x0c(2): always 0x10, frame size? */
channel_count = read_16bitLE(header_offset+0x0e, streamHeader);
loop_flag = 0;
/* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count,loop_flag);
if (!vgmstream) goto fail;
vgmstream->sample_rate = sample_rate;
vgmstream->num_samples = ps_bytes_to_samples(stream_size,channel_count);
vgmstream->num_streams = total_subsongs;
vgmstream->stream_size = stream_size;
vgmstream->meta_type = meta_SMC_SMH;
vgmstream->coding_type = coding_PSX;
vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = read_32bitLE(0x04, streamHeader);
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset))
goto fail;
close_streamfile(streamHeader);
return vgmstream;
fail:
close_streamfile(streamHeader);
close_vgmstream(vgmstream);
return NULL;
}

View file

@ -0,0 +1,64 @@
#include "meta.h"
#include "../coding/coding.h"
/* SMH+SMC - from Wangan Midnight 1/R (System246) */
VGMSTREAM* init_vgmstream_smh_smc(STREAMFILE* sf) {
VGMSTREAM* vgmstream = NULL;
STREAMFILE* sb = NULL;
off_t start_offset, header_offset = 0;
size_t stream_size;
int loop_flag = 0, channels, sample_rate;
int total_subsongs, target_subsong = sf->stream_index;
/* checks */
if (!check_extensions(sf, "smh"))
return NULL;
total_subsongs = read_s32le(0x00,sf);
if (target_subsong == 0) target_subsong = 1;
if (target_subsong < 0 || target_subsong > total_subsongs || total_subsongs < 1) goto fail;
if (total_subsongs * 0x10 + 0x10 != get_streamfile_size(sf))
return NULL;
sb = open_streamfile_by_ext(sf, "smc");
if (!sb) goto fail;
header_offset = 0x10 + (target_subsong - 1) * 0x10;
start_offset = read_u32le(header_offset+0x00, sf);
stream_size = read_u32le(header_offset+0x04, sf);
sample_rate = read_u32le(header_offset+0x08, sf);
// 0x0c(2): always 0x10, frame size?
channels = read_u16le(header_offset+0x0e, sf);
loop_flag = 0;
/* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channels, loop_flag);
if (!vgmstream) goto fail;
vgmstream->sample_rate = sample_rate;
vgmstream->num_samples = ps_bytes_to_samples(stream_size, channels);
vgmstream->num_streams = total_subsongs;
vgmstream->stream_size = stream_size;
vgmstream->meta_type = meta_SMC_SMH;
vgmstream->coding_type = coding_PSX;
vgmstream->layout_type = layout_interleave;
vgmstream->interleave_block_size = read_32bitLE(0x04, sf);
if (!vgmstream_open_stream(vgmstream, sb, start_offset))
goto fail;
close_streamfile(sb);
return vgmstream;
fail:
close_streamfile(sb);
close_vgmstream(vgmstream);
return NULL;
}

View file

@ -0,0 +1,124 @@
#include "meta.h"
#include "../coding/coding.h"
/* srcd - Capcom RE Engine */
VGMSTREAM* init_vgmstream_srcd(STREAMFILE* sf) {
VGMSTREAM* vgmstream = NULL;
STREAMFILE* subfile = NULL;
off_t start_offset = 0;
int loop_flag = 0;
int32_t loop_start_sample = 0, loop_end_sample = 0;
uint32_t container_type;
const char* extension = NULL;
VGMSTREAM* (*init_vgmstream_function)(STREAMFILE*) = NULL;
if (!is_id32be(0x00, sf, "srcd"))
return NULL;
if (!check_extensions(sf, "srcd,asrc,14,21,26,31"))
return NULL;
{
enum versions { VERSION_31, VERSION_21_26, VERSION_14, VERSION_UNKNOWN };
enum versions ver = VERSION_UNKNOWN;
//v31 - AJ_AAT
if (read_u32le(0x18, sf) > 0x02) {
ver = VERSION_31;
}
//v21 - CAS2
else if (read_u32le(0x41, sf) == 0x49) {
ver = VERSION_21_26;
}
//v26 - GTPD
else if (read_u32le(0x46, sf) == 0x4E) {
ver = VERSION_21_26;
}
//v14 - CAS
else if (read_u8(0x3A, sf) == 0x42) {
ver = VERSION_14;
}
switch (ver) {
case VERSION_31:
loop_flag = read_u8(0x34, sf);
loop_start_sample = read_u32le(0x35, sf);
loop_end_sample = read_u32le(0x39, sf);
break;
case VERSION_21_26:
loop_flag = read_u8(0x2C, sf);
loop_start_sample = read_u32le(0x2D, sf);
loop_end_sample = read_u32le(0x31, sf);
break;
case VERSION_14:
loop_flag = read_u8(0x28, sf);
loop_start_sample = read_u32le(0x29, sf);
loop_end_sample = read_u32le(0x2D, sf);
break;
default:
VGM_LOG("SRCD: Unknown version, disabling loop\n");
loop_flag = 0;
break;
}
}
container_type = read_u32be(0x0C, sf);
{
const off_t scan_start = 0x40;
const size_t scan_size = 0x100; //Should be small
off_t current_offset;
uint32_t magic_to_find = 0;
if (container_type == get_id32be("wav ")) {
magic_to_find = get_id32be("RIFF");
} else if (container_type == get_id32be("ogg ")) {
magic_to_find = get_id32be("OggS");
}
if (magic_to_find) {
for (current_offset = scan_start; current_offset < scan_start + scan_size; current_offset++) {
if (read_u32be(current_offset, sf) == magic_to_find) {
start_offset = current_offset;
break;
}
}
}
}
if (start_offset == 0)
goto fail;
/* Select the appropriate init function and extension based on container type */
if (container_type == get_id32be("wav ")) {
extension = "wav";
init_vgmstream_function = init_vgmstream_riff;
} else if (container_type == get_id32be("ogg ")) {
extension = "ogg";
init_vgmstream_function = init_vgmstream_ogg_vorbis;
} else {
VGM_LOG("SRCD: Codec not recognized");
goto fail;
}
subfile = setup_subfile_streamfile(sf, start_offset, get_streamfile_size(sf) - start_offset, extension);
if (!subfile) goto fail;
vgmstream = init_vgmstream_function(subfile);
if (!vgmstream) goto fail;
vgmstream->meta_type = meta_SRCD;
vgmstream_force_loop(vgmstream, loop_flag, loop_start_sample, loop_end_sample);
close_streamfile(subfile);
return vgmstream;
fail:
close_streamfile(subfile);
close_vgmstream(vgmstream);
return NULL;
}

View file

@ -1,55 +1,55 @@
#include "meta.h" #include "meta.h"
#include "../coding/coding.h" #include "../coding/coding.h"
/* WV6 - Gorilla Systems PC games [Spy Kids: Mega Mission Zone (PC), Lilo & Stitch: Hawaiian Adventure (PC)] */ /* WV6 - Gorilla Systems PC games [Spy Kids: Mega Mission Zone (PC), Lilo & Stitch: Hawaiian Adventure (PC)] */
VGMSTREAM * init_vgmstream_wv6(STREAMFILE *streamFile) { VGMSTREAM* init_vgmstream_wv6(STREAMFILE* sf) {
VGMSTREAM * vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
off_t start_offset; off_t start_offset;
int loop_flag, channel_count; int loop_flag, channels;
/* checks */ /* checks */
if (!check_extensions(streamFile, "wv6")) if (read_u32le(0x00,sf) != get_streamfile_size(sf))
goto fail; return NULL;
// 04: filename
if (read_32bitLE(0x00,streamFile) != get_streamfile_size(streamFile)) if (!is_id32be(0x2c,sf, "WV6 ") || !is_id32be(0x30,sf, "IMA_")) // "WV6 IMA_ADPCM COMPRESSED 16 BIT AUDIO"
goto fail; return NULL;
if (read_32bitBE(0x2c,streamFile) != 0x57563620 || /* "WV6 " */
read_32bitBE(0x30,streamFile) != 0x494D415F) /* "IMA_" ("WV6 IMA_ADPCM COMPRESSED 16 BIT AUDIO") */ if (!check_extensions(sf, "wv6"))
goto fail; return NULL;
/* 0x54/58/5c/60/6c: unknown (reject to catch possible stereo files, but don't seem to exist) */ // 0x54/58/5c/60/6c: unknown (reject to catch possible stereo files, but don't seem to exist)
if (read_32bitLE(0x54,streamFile) != 0x01 || if (read_s32le(0x54,sf) != 0x01 ||
read_32bitLE(0x58,streamFile) != 0x01 || read_s32le(0x58,sf) != 0x01 ||
read_32bitLE(0x5c,streamFile) != 0x10 || read_s32le(0x5c,sf) != 0x10 ||
read_32bitLE(0x68,streamFile) != 0x01 || read_s32le(0x68,sf) != 0x01 ||
read_32bitLE(0x6c,streamFile) != 0x88) read_s32le(0x6c,sf) != 0x88)
goto fail; return NULL;
/* 0x64: PCM size (samples*channels*2) */ // 0x64: PCM size (samples * channels * 2)
channel_count = 1; channels = 1;
loop_flag = 0; loop_flag = 0;
start_offset = 0x8c; start_offset = 0x8c;
/* build the VGMSTREAM */ /* build the VGMSTREAM */
vgmstream = allocate_vgmstream(channel_count, loop_flag); vgmstream = allocate_vgmstream(channels, loop_flag);
if (!vgmstream) goto fail; if (!vgmstream) goto fail;
vgmstream->sample_rate = read_32bitLE(0x60, streamFile); vgmstream->sample_rate = read_s32le(0x60, sf);
vgmstream->num_samples = ima_bytes_to_samples(read_32bitLE(0x88,streamFile), channel_count); vgmstream->num_samples = ima_bytes_to_samples(read_u32le(0x88,sf), channels);
vgmstream->meta_type = meta_WV6; vgmstream->meta_type = meta_WV6;
vgmstream->coding_type = coding_WV6_IMA; vgmstream->coding_type = coding_WV6_IMA;
vgmstream->layout_type = layout_none; vgmstream->layout_type = layout_none;
read_string(vgmstream->stream_name,0x1c+1, 0x04,streamFile); read_string(vgmstream->stream_name, 0x1c + 1, 0x04,sf);
if (!vgmstream_open_stream(vgmstream,streamFile,start_offset)) if (!vgmstream_open_stream(vgmstream,sf,start_offset))
goto fail; goto fail;
return vgmstream; return vgmstream;
fail: fail:
close_vgmstream(vgmstream); close_vgmstream(vgmstream);
return NULL; return NULL;
} }

View file

@ -12,7 +12,7 @@ enum {
VGMSTREAM_MAX_CHANNELS = 64, /* +40ch multilayers */ VGMSTREAM_MAX_CHANNELS = 64, /* +40ch multilayers */
VGMSTREAM_MIN_SAMPLE_RATE = 300, /* 300 is Wwise min */ VGMSTREAM_MIN_SAMPLE_RATE = 300, /* 300 is Wwise min */
VGMSTREAM_MAX_SAMPLE_RATE = 192000, /* found in some FSB5 */ VGMSTREAM_MAX_SAMPLE_RATE = 192000, /* found in some FSB5 */
VGMSTREAM_MAX_SUBSONGS = 65535, /* +20000 isn't that uncommon */ VGMSTREAM_MAX_SUBSONGS = 90000, /* +20000 isn't that uncommon, known max is 89734 in EA NHL 14 sbs+sbr */
VGMSTREAM_MAX_NUM_SAMPLES = 1000000000, /* no ~5h vgm hopefully */ VGMSTREAM_MAX_NUM_SAMPLES = 1000000000, /* no ~5h vgm hopefully */
}; };

View file

@ -317,7 +317,6 @@ init_vgmstream_t init_vgmstream_functions[] = {
init_vgmstream_ubi_lyn_container, init_vgmstream_ubi_lyn_container,
init_vgmstream_msb_msh, init_vgmstream_msb_msh,
init_vgmstream_txtp, init_vgmstream_txtp,
init_vgmstream_smc_smh,
init_vgmstream_ppst, init_vgmstream_ppst,
init_vgmstream_sps_n1_segmented, init_vgmstream_sps_n1_segmented,
init_vgmstream_ubi_bao_pk, init_vgmstream_ubi_bao_pk,
@ -330,7 +329,6 @@ init_vgmstream_t init_vgmstream_functions[] = {
init_vgmstream_xmd, init_vgmstream_xmd,
init_vgmstream_cks, init_vgmstream_cks,
init_vgmstream_ckb, init_vgmstream_ckb,
init_vgmstream_wv6,
init_vgmstream_str_wav, init_vgmstream_str_wav,
init_vgmstream_wavebatch, init_vgmstream_wavebatch,
init_vgmstream_hd3_bd3, init_vgmstream_hd3_bd3,
@ -368,8 +366,6 @@ init_vgmstream_t init_vgmstream_functions[] = {
init_vgmstream_dsp_adpx, init_vgmstream_dsp_adpx,
init_vgmstream_ogg_opus, init_vgmstream_ogg_opus,
init_vgmstream_nus3audio, init_vgmstream_nus3audio,
init_vgmstream_imc,
init_vgmstream_imc_container,
init_vgmstream_smp, init_vgmstream_smp,
init_vgmstream_gin, init_vgmstream_gin,
init_vgmstream_dsf, init_vgmstream_dsf,
@ -512,6 +508,8 @@ init_vgmstream_t init_vgmstream_functions[] = {
init_vgmstream_audiopkg, init_vgmstream_audiopkg,
init_vgmstream_swar, init_vgmstream_swar,
init_vgmstream_ivb, init_vgmstream_ivb,
init_vgmstream_srcd,
init_vgmstream_mhwk,
/* lower priority metas (no clean header identity, somewhat ambiguous, or need extension/companion file to identify) */ /* lower priority metas (no clean header identity, somewhat ambiguous, or need extension/companion file to identify) */
init_vgmstream_agsc, init_vgmstream_agsc,
@ -539,6 +537,10 @@ init_vgmstream_t init_vgmstream_functions[] = {
init_vgmstream_vai, init_vgmstream_vai,
init_vgmstream_ezw, init_vgmstream_ezw,
init_vgmstream_vgs_old, init_vgmstream_vgs_old,
init_vgmstream_imc,
init_vgmstream_imc_container,
init_vgmstream_wv6,
init_vgmstream_smh_smc,
/* need companion files */ /* need companion files */
init_vgmstream_pos, init_vgmstream_pos,
init_vgmstream_sli_loops, init_vgmstream_sli_loops,

View file

@ -496,7 +496,7 @@ typedef enum {
meta_LSF_N1NJ4N, /* .lsf n1nj4n Fastlane Street Racing (iPhone) */ meta_LSF_N1NJ4N, /* .lsf n1nj4n Fastlane Street Racing (iPhone) */
meta_XWAV, meta_XWAV,
meta_RAW_SNDS, meta_RAW_SNDS,
meta_HYPERSCAN_KVAG, /* Hyperscan KVAG/BVG */ meta_KVAG,
meta_PSND, meta_PSND,
meta_ADP_WILDFIRE, meta_ADP_WILDFIRE,
meta_QD_ADP, meta_QD_ADP,
@ -721,6 +721,8 @@ typedef enum {
meta_AUDIOPKG, meta_AUDIOPKG,
meta_SWAR, meta_SWAR,
meta_IVB, meta_IVB,
meta_SRCD,
meta_MHWK
} meta_t; } meta_t;
#endif #endif

View file

@ -295,7 +295,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83DE0C00180A9BD400269051 /* Build configuration list for PBXProject "vio2sf" */; buildConfigurationList = 83DE0C00180A9BD400269051 /* Build configuration list for PBXProject "vio2sf" */;
@ -428,6 +428,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -480,6 +481,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -656,6 +656,7 @@
<string>mds</string> <string>mds</string>
<string>mdsp</string> <string>mdsp</string>
<string>med</string> <string>med</string>
<string>mhwk</string>
<string>mjb</string> <string>mjb</string>
<string>mi4</string> <string>mi4</string>
<string>mib</string> <string>mib</string>
@ -829,7 +830,7 @@
<string>skx</string> <string>skx</string>
<string>slb</string> <string>slb</string>
<string>sli</string> <string>sli</string>
<string>smc</string> <string>smh</string>
<string>smk</string> <string>smk</string>
<string>smp</string> <string>smp</string>
<string>smv</string> <string>smv</string>
@ -851,6 +852,7 @@
<string>spsd</string> <string>spsd</string>
<string>spw</string> <string>spw</string>
<string>srsa</string> <string>srsa</string>
<string>srcd</string>
<string>ss2</string> <string>ss2</string>
<string>ssd</string> <string>ssd</string>
<string>ssf</string> <string>ssf</string>

View file

@ -156,7 +156,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "APL" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "APL" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -242,6 +242,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -287,6 +288,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -185,7 +185,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 83D3C5EE201C674D005564CB /* Build configuration list for PBXProject "AdPlug" */; buildConfigurationList = 83D3C5EE201C674D005564CB /* Build configuration list for PBXProject "AdPlug" */;
@ -315,6 +315,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -370,6 +371,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -189,7 +189,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
}; };
buildConfigurationList = 8359FF1217FEF35C0060F3ED /* Build configuration list for PBXProject "ArchiveSource" */; buildConfigurationList = 8359FF1217FEF35C0060F3ED /* Build configuration list for PBXProject "ArchiveSource" */;
@ -330,6 +330,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -382,6 +383,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Release; name = Release;
}; };

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -160,7 +160,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CoreAudio" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CoreAudio" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -285,6 +285,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -330,6 +331,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -190,7 +190,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CueSheet" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CueSheet" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -339,6 +339,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -384,6 +385,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -245,7 +245,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FFMPEG" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FFMPEG" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -376,6 +376,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
}; };
name = Debug; name = Debug;
}; };
@ -425,6 +426,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.7"> version = "1.7">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -184,7 +184,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FileSource" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "FileSource" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -332,6 +332,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -377,6 +378,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -10,7 +10,7 @@
17C93F080B8FF67A008627D6 /* FlacDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C93F040B8FF67A008627D6 /* FlacDecoder.m */; }; 17C93F080B8FF67A008627D6 /* FlacDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C93F040B8FF67A008627D6 /* FlacDecoder.m */; };
8301C147287805F500651A6E /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 8301C146287805F500651A6E /* NSDictionary+Merge.m */; }; 8301C147287805F500651A6E /* NSDictionary+Merge.m in Sources */ = {isa = PBXBuildFile; fileRef = 8301C146287805F500651A6E /* NSDictionary+Merge.m */; };
834D18FE2D7F949900F13B89 /* CogAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834D18FD2D7F949900F13B89 /* CogAudio.framework */; }; 834D18FE2D7F949900F13B89 /* CogAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834D18FD2D7F949900F13B89 /* CogAudio.framework */; };
836EF0DA27BB970B00BF35B2 /* libFLAC.12.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 836EF0D927BB970B00BF35B2 /* libFLAC.12.dylib */; }; 836EF0DA27BB970B00BF35B2 /* libFLAC.14.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 836EF0D927BB970B00BF35B2 /* libFLAC.14.dylib */; };
83AA660B27B7DAE40098D4B8 /* cuesheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 83AA660A27B7DAE40098D4B8 /* cuesheet.m */; }; 83AA660B27B7DAE40098D4B8 /* cuesheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 83AA660A27B7DAE40098D4B8 /* cuesheet.m */; };
8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
@ -40,7 +40,7 @@
834A42B4287AF7AA00EB9D9B /* AudioChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioChunk.h; path = ../../Audio/Chain/AudioChunk.h; sourceTree = "<group>"; }; 834A42B4287AF7AA00EB9D9B /* AudioChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioChunk.h; path = ../../Audio/Chain/AudioChunk.h; sourceTree = "<group>"; };
834D18FD2D7F949900F13B89 /* CogAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CogAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 834D18FD2D7F949900F13B89 /* CogAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CogAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8356BD1927B3CCBB0074E50C /* HTTPSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTTPSource.h; path = ../HTTPSource/HTTPSource.h; sourceTree = "<group>"; }; 8356BD1927B3CCBB0074E50C /* HTTPSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTTPSource.h; path = ../HTTPSource/HTTPSource.h; sourceTree = "<group>"; };
836EF0D927BB970B00BF35B2 /* libFLAC.12.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libFLAC.12.dylib; path = ../../ThirdParty/flac/lib/libFLAC.12.dylib; sourceTree = "<group>"; }; 836EF0D927BB970B00BF35B2 /* libFLAC.14.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libFLAC.14.dylib; path = ../../ThirdParty/flac/lib/libFLAC.14.dylib; sourceTree = "<group>"; };
83747C4A2862DCF40021245F /* Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Shared.xcconfig; sourceTree = "<group>"; }; 83747C4A2862DCF40021245F /* Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Shared.xcconfig; sourceTree = "<group>"; };
8384912D180816C900E7332D /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Logging.h; path = ../../Utils/Logging.h; sourceTree = "<group>"; }; 8384912D180816C900E7332D /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Logging.h; path = ../../Utils/Logging.h; sourceTree = "<group>"; };
83AA660A27B7DAE40098D4B8 /* cuesheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = cuesheet.m; sourceTree = "<group>"; }; 83AA660A27B7DAE40098D4B8 /* cuesheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = cuesheet.m; sourceTree = "<group>"; };
@ -56,7 +56,7 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
834D18FE2D7F949900F13B89 /* CogAudio.framework in Frameworks */, 834D18FE2D7F949900F13B89 /* CogAudio.framework in Frameworks */,
836EF0DA27BB970B00BF35B2 /* libFLAC.12.dylib in Frameworks */, 836EF0DA27BB970B00BF35B2 /* libFLAC.14.dylib in Frameworks */,
8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */, 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -115,7 +115,7 @@
1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = { 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
836EF0D927BB970B00BF35B2 /* libFLAC.12.dylib */, 836EF0D927BB970B00BF35B2 /* libFLAC.14.dylib */,
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */, 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
); );
name = "Linked Frameworks"; name = "Linked Frameworks";
@ -193,7 +193,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Flac" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "Flac" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -334,6 +334,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -379,6 +380,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.7"> version = "1.7">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -337,6 +337,8 @@ void ErrorCallback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorS
FLAC__StreamDecoderInitStatus ret; FLAC__StreamDecoderInitStatus ret;
if(isOggFlac) { if(isOggFlac) {
FLAC__stream_decoder_set_decode_chained_stream(decoder, true);
ret = FLAC__stream_decoder_init_ogg_stream(decoder, ret = FLAC__stream_decoder_init_ogg_stream(decoder,
ReadCallback, ReadCallback,
([source seekable] ? SeekCallback : NULL), ([source seekable] ? SeekCallback : NULL),
@ -384,8 +386,13 @@ void ErrorCallback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorS
AudioChunk *chunk = nil; AudioChunk *chunk = nil;
while (blockBufferFrames <= 0) { while (blockBufferFrames <= 0) {
if(FLAC__stream_decoder_get_state(decoder) == FLAC__STREAM_DECODER_END_OF_STREAM) { FLAC__StreamDecoderState state = FLAC__stream_decoder_get_state(decoder);
if(state == FLAC__STREAM_DECODER_END_OF_STREAM) {
return nil; return nil;
} else if(state == FLAC__STREAM_DECODER_END_OF_LINK) {
if(!FLAC__stream_decoder_finish_link(decoder)) {
return nil;
}
} }
if(!FLAC__stream_decoder_process_single(decoder)) { if(!FLAC__stream_decoder_process_single(decoder)) {

View file

@ -232,7 +232,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "GME" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "GME" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -405,6 +405,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -451,6 +452,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View file

@ -183,7 +183,7 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = YES; BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1620; LastUpgradeCheck = 2600;
}; };
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "HTTPSource" */; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "HTTPSource" */;
compatibilityVersion = "Xcode 12.0"; compatibilityVersion = "Xcode 12.0";
@ -314,6 +314,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Debug; name = Debug;
@ -359,6 +360,7 @@
OTHER_CFLAGS = "-Wframe-larger-than=4000"; OTHER_CFLAGS = "-Wframe-larger-than=4000";
OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000"; OTHER_CPLUSPLUSFLAGS = "-Wframe-larger-than=16000";
SDKROOT = macosx; SDKROOT = macosx;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SYMROOT = ../../build; SYMROOT = ../../build;
}; };
name = Release; name = Release;

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1640" LastUpgradeVersion = "2600"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

Some files were not shown because too many files have changed in this diff Show more